网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Linux > Misc > 文章  
BabyLinux操作系统的制作过程(上)
文章来源: ChinaITLab 文章作者: GuCuiwen 发布时间: 2007-01-22   字体: [ ]  
 

  一、什么是BabyLinux

  BabyLinux不是一个完整的发行版,它是利用原有的一套完整的Linux系统的内核原代码和编译工具,利用busybox内建的强大功能,在一张软盘上做的一个很小的Linux系统。它具备一个Linux系统的基本特征,支持Linux系统最常用的一百多个命令,支持多种文件系统,支持网络等等,你可以把它当做一张Linux起动盘和修复盘来用,你也可以把它当做一个静态路由的路由器软件,当然,你也可以把它当做一个Linux玩具,向你的朋友炫耀Linux可以做的多么小。我把它叫做BabyLinux因为它很小巧,小的很可爱,像一个刚刚出生的小baby。

  二、为什么要作这样一个Linux

  先说说我一开始的想法,当我一开始接触Linux的时候,看到书上说,Linux通常安装只需要60MB左右的空间,但是我发现装在我硬盘上的Redhat 6.0确要占据好几百MB的空间。为什么我的Linux这么大呢? 后来我发现,装在我机器上的那么多东西只有不到30%是我平时常用的,还有30%是我极少用到的,另外的40%基本上是不用的。于是,我和大多数初学者一样,开始抱怨,为什么Linux不能做的精简一点呢?于是,我萌发了自己裁减系统的想法。可惜那个时候我还没有听说过有LFS和Debain。等到我积累了足够的Linux知识后,我开始制作这样一个小系统。

  制作这样一个小系统最大的意义在于,你可以通过制作系统了解Linux的启动过程,学会raMBdisKB的使用,让你在短时间内学到更多的Linux知识。当然,你会得到很大的乐趣。这个项目只是做一个具有基本特征的Linux系统,如果你想自己做一个具有完整功能的Linux,请阅读Linux From Scratch (LFS)文档。

  三、什么人适合读这篇文档

  如果你是一个Linux爱好者,并且很想了解Linux的启动过程和系统的基本结构,而且是一个喜欢动手研究小玩意的人,那么这个文档可以满足你的需求。如果你仅仅是用Linux来做一些普通的日常工作,而不在乎你的Linux到底怎么工作,那么这份文档也许不太适合你。另外,如果你是Linux爱好者,但是目前还是一个刚刚入门的newbi,我建议你先把Linux命令学好。不过我想我会尽可能的把这份文档写详细一些,如果你有足够的毅力,或许一个newbi也能成功做一个babyLinux。

  四、应该具备的知识

  在做一个babyLinux之前,你应当已经会应用Linux最常用的命令。并且至少有一次成功编译并安装系统内核的经历,会通过编译源代码来安装软件。如果你具备了这些条件,那么做这样一个小系统会很顺利,如果你还没有掌握这些知识, 你可能会遇到一些困难。但是只要有毅力,也可以成功。你不需要具备编程的知识,因为我的目标是:让具有中等以上Linux水平的爱好者可以通过阅读文档轻松完成这个项目。关于一张软盘上的Linux还有一个很著名的Linux叫LOAP (Linux On A Floppy) 但是它是由比较专业的人员需要编写很多程序完成的。而且没有关于它制作过程的文档。

  五、Linux系统引导过程简介

  首先,主板的BIOS会读取硬盘的主引导记录(MBR),MBR中存放的是一段很小的程序,它的功能是从硬盘读取操作系统核心文件并运行,因为这个小程序太小了,因此通常这个小程序不具备直接引导系统内核的能力,它先去引导另一个稍微大一点的小程序,再由这个大一点的小程序去引导系统内核。在Linux系统中这样的小程序有LILO和GRUB。在这个项目中,我决定用LILO来做系统引导程序。在软盘上启动Linux系统的过程和在硬盘上启动的过程相似。

  Linux系统内核被引导程序装入内核并运行后,Linux内核会检测系统中的各种硬件。并做好各种硬件的初始化工作,使它们在系统正式运行后能正常工作。之后内核做的最后一个工作是运行

  /sbin下的init程序,init是英文单词initialization(初始化)的简称,init程序的工作是读取/etc/inittab文件中描述的指令,对系统的各种软硬件环境做最初化设定。最后运行MBingetty等待用户输入用户名登录系统。所有的工作就这么简单,虽然Linux启动的时候有很多内容,看上去十分高深,但是都不过是对这个过程的扩充。明白了这个道理,你可以写一些脚本程序让它在系统启动的特定时间运行完成任务。事实上系统内核并不关心/sbin下的init是不是真的init,只要是放在 /sbin下名叫init的可执行程序它都可以执行。可以做以下实验:

  编写一个非常简单的C程序:

main()
{
  printf("hello,world!\n");
}

  保存后以init.c保存它,并用gcc编译。

#gcc --static -o init init.c

 
推荐文章
·BabyLinux操作系统的制作过程(下
 

 
共2页: 上一页 1 [2] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·第一台基于”OpenMoko”
·BabyLinux操作系统的制
·难得一见 十大经典Linux
相关文章
·BabyLinux操作系统的制
·打造适合自己Slackware
·用Linux系统引导CD为服
·Linux操作系统下信号与
·自己动手做一个最小的Li
·简单编译升级内核激活FC
·一个Linux爱好者的2.6.1
·定制Linux系统内核,发
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统