一起来玩路由器之目标篇

第一次接触网络还是初中的时候,那时候学校搞信息化试点,给我们上了几节电脑课,具体学什么已经忘了,只记得后来有人在电脑上装上了红警,从此一发不可收拾,许多同学沉迷网络游戏,贻误学业。
那个年代,网络如同洪水猛兽,小孩猎奇,大人警惕。
那时我就想,网络是什么?这种好奇心很快就被QQ上闪动的头像取代。
我们步入一个新的时代。

大学读的是通信工程专业,第一门编程语言课是C++程序设计,看着黑黑的窗口打出hello world的字样,我的内心没有半点激动,甚至觉得无比的枯燥乏味。那是一个失败的课程,至今记忆犹新。
后来开了计算机网络课程,学完之后,七层模型烂熟于心,可我依然觉得那是天书。天书可以用来讲段子,考试前许多人找我给他讲段子,因为大家都不懂,我的段子讲得比较好。后来大家考试都写了好多段子。
读研的时候,也许是想要讲一个好段子,又重新选了计算机网络这门课。老师是用英文授课的,还记得老师经常调侃班上的几个黑人留学生,让他们回答问题。可是当我认真学完课程之后,连段子都不会讲了。
从此,我的心中萌生一个念头—智商的差距是无法弥补的。
知道工作以后,从事网络相关的工作的开发,才一点一点的理解了,什么是编程,什么是网络,什么是计算机组成机构。
这也是写这一系列文章的初衷之一,真正告别那个年代,告别那懵懂的年岁,美好的年华和错过的花儿。
写这一系列的文章,有三个愿景:

  1. 梳理知识结构
    工作快三年了,学了很多,积累了一定的经验,也遇到很多困难,而最让人头疼的是感觉自己的专业知识很零碎,不成体系,便想借写此系列文章好好梳理一下自己的知识体系。悟已往之不谏,知来者之可追,希望自己在技术的道路上,可以更上一层楼。
  2. 感恩开源社区
    这一年混迹于许多开源社区,业余很多时间都花在github、恩山无线论坛、openwrt社区上,感谢那么多人愿意分享自己的知识、心得,在此写这一系列文章也算是回馈社区,致敬开源共享精神。
  3. 分享自己的知识
    我认为知识是用来分享的,技术只有通过分享、交流才能碰撞出新的火花,在此也希望这一系列文章能够给嵌入式开发的新手一点启示,在工作、学习的路上少走一些弯路。
    接下来便进入正题,本目标篇主要从以下几个方面阐述:
  • 文章体系
  • 学习目标
  • 功能目标

    文章体系

    本系列文章拟从以下几个方面铺陈,从原理和实践两个维度循序展开,这是一个长期的过程
  • 硬件平台选型及分析
    选用华为HG255D路由器作为开发平台
  • 引导程序分析与改造
    采用Uboot作为引导程序
  • openwrt分析与研究
  • 路由器功能设计与实现
    根据个人喜好,为路由器添加个性化功能

    学习目标

    因为本系列文章自带梳理知识体系愿景的属性,从而学习目标成为重中之重,初步拟定要实现以下目标
  • 完善CPU体系架构知识体系
    深入研究mips体系架构和指令集
  • 透彻分析引导程序
    透彻分析Uboot启动代码,在Uboot上移植uip网络协议栈,同时完成Uboot的改造,使其具有简单的任务管理、内存管理、中断管理、锁和并发机制,成为一个小型的玩具操作系统。
  • 深入理解openwrt软件架构
    openwrt的核心思想在于其软件架构,这里试图深入分析研究openwrt系统的组织、编译和设计思想
  • 深入研究linux内核
    linux内核是一个庞然大物,这里说是深入研究,也不过是沧海一粟罢了,本系列文章也试图从一些侧面深入研究下linux内核
  • 具备定制个性化路由器功能的能力
    学习openwrt的ipk包管理体系、luci框架,在此基础上做定制开发
  • 深入理解、应用网络协议
    深入分析研究TCP/IP协议栈,梳理出从应用层到驱动层报文转发的全路径,并掌握常用的网络分析工具和调试方法

    功能目标

    既然文章题目叫一起来玩路由器,玩作为本系列文章的萌属性,也是不容小觑的,拟完成以下功能目标
  • 传统路由器功能
  • 不死boot
  • wan多拨
  • 挂载移动硬盘
  • 挂载无线网卡
  • 自动破解wifi密码
  • SSR科学上网
  • 家庭私有云
  • 挂载USB摄像头监控
  • 无线审计
  • 脱机下载
  • 内网穿透
  • 常用服务器搭建
  • 广告屏蔽
  • portal推送和认证
文章目录
  1. 1.
  2. 2. 文章体系
  3. 3. 学习目标
  4. 4. 功能目标