《OpenWrt智能路由系统开发》书摘

时间:2022-11-22 23:01:30


《OpenWrt智能路由系统开发》书摘

​前不久看到一位同事在看这本书,书中对嵌入式的基础知识做了一些介绍,书名说是开发,但是大部分都是配置的贴图。本书适合查漏补缺,书中的开发板则完全没必要买,岛主替大家划了重点,想看这本书的朋友可以后台私信或留言,提供电子版链接。

《OpenWrt智能路由系统开发》书摘

关于 OpenWrt

OpenWrt是嵌入式设备上运行的linux系统。OpenWrt 的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的 Linux 电脑系统,也加快了开发速度。
你会发现无论是 ARM, PowerPC 或 MIPS 的处理器,都有很好的支持。并且附带3000左右的软件包,用户可以方便的自定义功能来制作固件。
也可以方便的移植各类功能到openwrt下。

书摘

大部分路由器采用的都是MIPS指令集。MIPS采用了RISC精简指令集设计技术。
龙芯便是MIPS架构下的一种处理器。
MIPSEL:MIPS指令集的一种子集,采用了小端字节序,与Intel x86采用的一致。

  • Nor Flash:最早用于嵌入式的闪存技术,读取速度接近于内存,写入速度稍慢。
  • Nand Flash:目前使用最多的闪存技术,容量较大,在手机、U盘中用得较多,在路由器中使用得较少。
  • SPI Flash:串行总线闪存技术,目前路由器使用得最多,读取速度比Nor Flash慢,但体积更小,成本更低。

CPU使用的都是BGA封装或低成本的QFN封装。

  • SoC:片载系统,表示在CPU内部集成了大量的其他芯片和功能,减少电路板外围芯片数量。
  • RoC:片载路由器,表示一个CPU就可以满足路由器所需要的最核心

U-Boot是德国DENX小组开发的用于嵌入式CPU的引导程序(U-Boot也支持x86架构),它支持10来种不同的操作系统。它小巧、速度快,已经成为了Atheros和Ralink产品的标配引导系统,并且在所有嵌入式的引导系统中市场占有率最大。

U-Boot引导系统工作流程:
开发板上电→晶体振荡器发起频率振动→CPU启动内部代码→U-Boot启动→U-Boot根据参数设置倍频→U-Boot进行一些其他的内部寄存器配置→U-Boot启动操作系统。

刷机就是刷写新的系统到板载闪存上。

jffs2文件系统负责完成格式化。
在Linux系统中对闪存类存储器是采用MTD(内存技术设备)类设备驱动实现的,MTD是用于访问内存类设备(ROM、Flash)的Linux驱动子系统。它的主要目的是使Flash闪存类设备更加容易被访问,为此它在硬件和上层提供了一个抽象的接口使得在操作系统下我们可以像操作硬盘一样操作这类设备。

文件系统:
(1)首先,引导程序启动内核完成之后,由内核加载roofs_rom只读分区部分来完成系统的初步启动。
(2)rootfs_rom只读分区采用的是Linux内核支持的squashFS文件系统(一种压缩只读文件系统),加载完毕后将其挂载到/rom目录(同时也挂载为/根目录)。
(3)系统将使用JFFS2文件系统格式化的rootfs_data可写文件分区并且将这部分挂载到/overlay目录。
(4)系统再将/overlay透明挂载为/根目录。
(5)最后将一部分内存挂载为/tmp目录

BusyBox是一个集成了一百多种常用Linux命令和工具的软件。

UCI是集中式配置信息管理接口(Unified Configuration Interface)的缩写,它是OpenWrt引进的一套配置参数管理系统。UCI管理了OpenWrt下最主要的系统配置参数,并且提供了简单、容易、标准化的人机交互接口。UCI中已经包含了网络配置、无线配置、系统信息配置等基本路由器所需的主要配置参数。同时,UCI也可以帮助开发人员快速地建立一套基于OpenWrt的智能路由产品控制界面。

  • DMZ:独立隔离区,处在独立隔离区的计算机是直接暴露在外,不经过防火墙保护的。
  • UPnP:一种多媒体传输协议,用于游戏、娱乐软件。
  • VPN:(虚拟专用网)被定义为通过一个公用网络(通常是国际互联网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。
  • DTS:(Device Tree Source)设备树是Linux内核中管理设备的一种方式,通俗点讲就是告知Linux内核当前硬件存在何种设备。

如果你想要这本书的电子版,底部评论留言邮箱。

《OpenWrt智能路由系统开发》书摘