Openwrt学习笔记(一)——系统架构

下表是OpenWrt系统架构和其他系统架构的对比(列表中有些url打不开,请自行翻/墙):
  Desktop Distributions OpenWrt Android Replicant mer-based
Typical main memory size 128 MiB to 16 GiB (or more) 32 MiB to 512 MiB1) min 92 MiB for Android 2.1 
min 340 MiB for Android 4.0
?
Supported instruction sets almost anything almost anything x86, 86-64, ARM, MIPS32
non-volatile storage space 100 MiB 8 MiB2) 150MiB for Android 2.1
512MiB for Android 4.0
?
kernel Linux kernel
FOSS and binary drivers FOSS drivers: e.g. 802.11Iaccess Android binary drivers    
C standard library glibc uClibc bionic glibc + libhybris eglibc 2.15
init init
Upstart
Initng
systemd busybox-initd procd Android init-fork   systemd
  rsyslog / syslog-ng busybox-klogd, busybox-syslogd    
  watchdog busybox-watchdog    
  udev hotplug2 ubox?    
  cron busybox-crond    
  atd na    
  D-Bus ubus Binder ? D-Bus
network configuration NetworkManager + GUI netifd ConnectivityManager
(not ConnMan = ConnectionManager!)
? ConnMan
  GLib 
(GObject, Glib, GModule, GThread, GIO)
libubox ? ? Qt-based?
  PulseAudio PulseAudio (optional) PulseAudio PulseAudio PulseAudio
Package management system dpkg/APT
RPM/yum
portage
pacman
opkg apk ? RPM

1. 从上表我们可以看到,openwrt主要的优势体现在小,它运行的内存最小只要32M,存放FW的最小size只要8M,同时能够满足大多数汇编指令集的需求,所以从硬件成本来说,openwrt操作系统可以适应于内存和flash更小的产品上,对于功能相对单一的智能产品,openwrt有它独特的优势。

2. 不仅如此,openwrt支持使用和其他操作系统(Desktop Distributions/android)一样的linux内核,包括对802.11的支持,这也使它在无线开发方面有更多的空间。

3. openwrt使用的C库是uClibc,并不是使用glibc,它是一个面向嵌入式Linux系统的小型的C标准库,uClibc比一般用于Linux发行版的C库GNU C Library (glibc)要小得多,glibc目标是要支持最大范围的硬件和内核平台的所有C标准,而uClibc专注于嵌入式Linux.很多功能可以根据空间需求进行取舍。

4. 在openwrt中,文件系统的启动以及管理和其他几个系统有些不一样,而且在最新的版本中更是使用了集合度比较高的daemon进程进行控制。一般文件系统的启动都是从init进程开始的,从下表中我们可以看到,不同的操作系统,启动的进程不一样,即使是同一种“操作系统”,在新旧版本间的启动方式也不一样,比如openwrt中,将旧版本的bosybox里面的一些功能整合在了procd里面,hotplug2对热插拔事件的监听也又ubox来替代,crond仍然用busybox里面的,ubus是dbus的简化版,简洁的API接口更适用于嵌入式平台。

init
Upstart
Initng
systemd busybox-initd procd
rsyslog / syslog-ng busybox-klogd, busybox-syslogd
watchdog busybox-watchdog
udev hotplug2 ubox?
cron busybox-crond
atd na
D-Bus ubus


5. netifd是用来监控和配置网络信息

6. libubox是一些管理工具

7. opkg是openwrt里面安装一些应用程序的工具,就像ubuntu里面的apt-get, 安卓里面的apk

总的来说,运行一个openwrt系统至少需要一个32M内存+8M flash, 它支持linux内核,新版本文件系统的主要管理工具包括procd,ubox,ubus,netifd和opkg.

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值