构建linux之最小系统(原创) 献给我的2010
声明:该文件是对我2009年最后两周学习过程的总结,希望能帮助到学习中的人们。该文档按照当前日期的最新版GPL协议发布。欢迎转载,但须注明作者及出处。
作者:Jim Zheng。接触Linux 4年,但是一直处于自学状态,没有机会参与Linux平台的产品开发。很希望能用上Linux平台作实际开发。联系方式:zhengweishang@google.com
日期:2010.1.1
内容提要:
1。最小系统的意义
2。最小系统的要素
3。主机环境介绍
4。软件版本选择
5。构建完成之文件
6。最小系统启动信息
7。详细构建过程
8。下一步工作
1。最小系统的意义
在我的开发经历中,每当要使用新的硬件或软件平台时,我都会从他们的最小系统开始。比如新使用一款单片机,我会首先研究其电源、复位、时钟、JTAG、UART。根据这些可以搭建一个开发的最小硬件系统。我在维护一套3W行的C语言软件时,也曾将起其精简到1千行的最小系统,仅包含消息机制、在屏幕上显示一个小图标、队列服务等,而其他的功能都是一些添加上去的模块。吃透这个最小系统后,增加功能或修正bug就简单很多。最小系统有些像建房子打的地基,对它理解透了,会发现那些眼花缭乱的功能通过添砖加瓦的工作就可以完成了。现今的软硬件系统设计时模块化都做得很好,增减一个功能模块已经是个比较简单的事情。
我想比较深入的学习Linux,于是想到:Linux的最小系统是什么样?
2。最小系统的要素
Linux的发布版本都提供了大量完善的功能和服务,而我想建立的最小系统之仅包含以下要素:
A. 有字符显示。
B。能通过键盘输入字符
C。能执行ls等简单命令
根据以上需求,并分析Linux平台的架构。该最小系统特征如下
A。kernel+rootfs, 不使用initrd.
B. ls等命令放在rootfs中,elf格式。静态编译,不支持动态链接库。
C。 kernel支持elf可执行文件格式
D。 kernel不支持可加载模块功能。必要的驱动直接编译到kernel中。
E。kernel应包含字符的显示驱动、键盘驱动。
F。rootfs放在IDE硬盘上,所以kernel应包含PATA驱动
G。rootfs为EXT3文件系统,kernel应包含EXT2、EXT3文件系统驱动。
3。主机环境介绍
[root@goldway ~]# cat /proc/version
Linux version 2.6.18-1.2798.fc6 (brewbuilder@hs20-bc2-4.build.redhat.com) (gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #1 SMP Mon Oct 16 14:37:32 EDT 2006
[root@gold
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
很多LINUX初学者分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限可能存在错误,请高手指正.
一,linux本身没有图形界面,linux现在的图形界面 ......
cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
引用:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
//============= ......
linux线程(pthread)编程中的segmentation fault!!
Posted on 星期五, 3月 27th, 2009 at 10:28 下午
源文来自http://www.isongzi.com/2009/03/27/pthread-segmentation-fault/
继socket bad addres 错误之后,在创建线程【pthread_create()】的时候又出现了 segmentation fault。
错误语句如下:
pthread_create(& ......
关于Linux的视频编程(v4l2编程)
Posted on 星期一, 2月 23rd, 2009 at 11:47 下午
源文来自http://www.isongzi.com/2009/02/23/v4l2/
前言:目前正在忙于ARM平台的Linux应用程序的开发(其实是刚刚起步学习啦)。底层的东西不用考虑了,开发板子提供了NAND Bootloader,和Linux 2.6的源码,而且都编译好了。自己编译的 ......