【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

传统的嵌入式系统都是uboot+kernel+rootfs。其中最简单的rootfs就是ramfs+busybox+/dev + /etc + /lib。至于etc目录中的inittab和init.d/rcS这两个都是busybox中init程序分析的内容。如果本身没有busybox,其实也无所谓这两个脚本。

1、busybox就是普通的用户程序

建议同学们可以用objdump看一下busybox,不管是静态编译还是动态编译,busybox只是一个简单的类hello_world程序。

2、所有的命令都指向busybox

如果登录到嵌入式设备上,那么我们会发现其实所有命令指向的都是busybox这么一个程序。

3、第一个用户程序就是busybox

在kernel返回用户侧运行的第一个程序,即/bin/init或者/sbin/init,其本身运行的还是busybox程序。

4、返回用户侧后,第一个c函数不是init_main

之前说过,busybox就是普通的c代码,因此它的入口就是main函数、代码位于libbb目录下。只不过这个程序会判断argv[0]的数值,如果发现是init,那么会调用init_main,如果是cd,那么会调用cd_main,以此类推。

5、调试busybox

调试busybox有很多办法。a、调试的时候一般静态编译busybox;b、如果是自己添加的命令,只要gdb server+gdb调试就可以了;c、如果是系统自带命令,不确认系统是否调用busybox,可以用打印或者点灯的方法来解决;d、如果以上方法都不合适,可以自己写一个init程序代替busybox,android开机后的第一个用户程序就是自己写的,也没有用busybox,问题不大。大家平时使用较多的ubuntu,它的启动程序也不是busybox,一般也是由sysvinit+systemd一起完成的。

6、过分夸大的busybox

busybox只是rootfs的一个组成部分,没有busybox我们可以自己写一个简单的shell,这些问题都不大。特别是调试的时候,厘清drvier、busybox、script、rootfs问题的时候,常常需要我们自己手写init程序,这个时候如果对rootfs和busybox理解比较充分,调试就会变得很简单了。

随想录(被高估的busybox)相关推荐

  1. 安卓下使用 dropbear 开启SSH And arm 下的busybox

    安卓系统 4.2.2  硬件是荣耀立方 只对电视盒子部分进行了操作,没有修改路由部分 先安装<超级终端><RE文件管理器>(华为的应用市场里有),安装 <360超级roo ...

  2. 详解基于busybox、dropbear、ngnix制作完整的嵌入式Linux系统

    说明:         <一>:查看此博文,建议查看笔者上一篇博文(Linux启动过程),因为只有在完全了解Linux系统启动流程及一些配置文件的相关性,在阅读此博文才能有思路,理解起来更 ...

  3. 泰晤士报华科计算机排名,国内大学排行被“高估”的三所985大学,实力远小于排名,你认可吗?...

    原标题:国内大学排行被"高估"的三所985大学,实力远小于排名,你认可吗? 大学的实力往往反映出一所高校的科研.学术.论文发表等等方面的强与否,但是如今对于大学的评估并没有一个统一 ...

  4. 校准曲线(calibration curve)是什么?如何绘制校准曲线(calibration curve)?如何通过过校准曲线进行分析?什么是高估?什么是低估?

    校准曲线(calibration curve)是什么? 如何绘制校准曲线(calibration curve)? 如何通过过校准曲线进行分析? 什么是高估? 什么是低估? 注意:横纵坐标的差异,但是本 ...

  5. g++ linux 编译开栈_使用 linux kernel +busybox 定制linux系统

    写在开头: 本来是想使用linux kernel +busybox 制作一个教程的,后来快要结束的时候,死活找不到硬盘,我了解很多文章都有类似的,但是没有谈到硬盘找不到问题,最后历经艰辛,终于把问题解 ...

  6. 恭喜《软件随想录》得到了大家的一致认可!

    恭喜<软件随想录>得到了大家的一致认可! <软件随想录> 自2009.12出版至今已近一个半月,首印5000册即将售罄,重印已经发出.此销量在现今计算机类图书中,可谓相当不错了 ...

  7. 中美领军全球AI竞赛,人工智能被高估了么?

    2020-02-18 13:02:00 全文共3902字,预计学习时长13分钟 图源:Unsplash 不久前,谷歌前CEO施密特在出席众议院科学.太空和技术委员会的听证会时表示,美国可能在五到十年后 ...

  8. 人类倾向于高估人工智能的进步,低估自身智能的复杂性-读《AI 3.0》

    有很多关于人工智能的书.亚马逊网站上就有20,000本.其中很多书都有戏剧性的标题,比如<生命3.0> ,<终极算法> ,尤其是<奇点来临>.梅勒妮 · 米切尔的新 ...

  9. busybox filesystem httpd php-5.5.31 sqlite3 webserver

    /********************************************************************* busybox filesystem httpd php- ...

最新文章

  1. 决策树算法的原理(接地气版)
  2. 交换机的linux测试脚本,更新网络设备巡检脚本,各位大神可以看看,如有不足,请指正!...
  3. 全网最火爆的“人生重开模拟器”,快来!
  4. AutoCAD .NET API 之——DimStyleTableRecord 的属性列表
  5. WAP自助建站 我编程之路的启蒙
  6. [css] 说出至少十条你理解的css规范
  7. php 5.3.29 怎么开启debug_PHP代码审计之环境安装(一)
  8. 基于 cm-11 源码编译模拟器
  9. 最近架设的MUNIN,WEBALIZER,AWSTATS截图存档
  10. 光伏发电极其并网控制技术 最大功率点跟踪
  11. b2c京东流程图_京东商城网上交易流程分析
  12. matlab imagesc 平滑,在matlab中,如何使用imagesc在2D热图中“平滑”像素
  13. win7计算机管理没有用户模块,Win7系统安装“ipx协议”提示“找不到相应的模块”如何解决...
  14. Pr 视频速率与关键帧
  15. 【vmware】vmware tools 地址
  16. vue依赖webpack的环境配置(一)
  17. python数据分析-concat合并表,报错InvalidIndexError: Reindexing only valid with uniquely valued Index objects
  18. centos 7 安装sql 审核工具 inception + archer
  19. 全球尺度的高分辨率遥感产品
  20. opencv 帧差法 absdiff

热门文章

  1. vSphere vsan 6.5部署之一VCSA6.5安装
  2. Titon Toolkit – 非常强大的用户界面组件
  3. linux 审计工具auditd日志audit.log时间戳转换查看
  4. ios9 字符串与UTF-8 互相转换
  5. 2Sigma OA prepare: Longest Chain
  6. swift-01-利用元组判断字符串出现次数
  7. HashMap与ConcurrentHashMap的测试报告
  8. SAAS多租户实现方案_springboot 实现多租户_基于共享数据库_共享schema_共享数据表_基于baomidou_mybatis_plus---springcloud工作笔记158
  9. 通过二进制方式_部署node节点_安装kubelet和kube-proxy---K8S_Google工作笔记0014
  10. js工作笔记001---javascript中(function($){...})(jQuery)写法是什么意思