Linux和uClinux 1991年8月,芬兰的一个学生在comp.os.minix新闻组贴上了以下这段话:
你好所有使用minix的人-我正在为386(486)AT做一个免费的操作系统(只是为了爱好,不会象gnu那样很大很专业.
这名学生就是Linus Torvalds, 而他所说的'爱好'就变成我们今天知道的Linux。
由于Linux的源代码公布在互联网上,可以免费得到,因此从一开始就吸引了世界各地的UNIX 行家为Linux 编写了大量的驱动程序和应用软件,在短短几年时间里,Linux 就发展成为一个相当完善的操作系统,而且Linux支持的硬件平台是所有操作系统中最多的,目前Linux支持硬件平台:Intel的IA64、 Compaq的Alpha、Sun的Sparc/Sparc64、SGI的Mips、IBM的S396、ARM、PowerPC等。Linux更大的影响在于它正逐渐地应 用于嵌入式设备,uClinux正是在这种氛围下产生的。uClinux就是Micro-Control-Linux,它也是一个开放源码的项目,uClinux的源代码 和开发工具可以免费从http://www.uclinux.org上下载得到。uClinux是专为那些没有MMU(内存管理单元)的嵌入式处理器开发的,和主流的Li nux相比,uClinux有以下的特点: 1.简化了内核加载方式,uClinux 的内核可以在Flash上直接运行:就是把uClinux的内核的可执行映象烧写到flash上,系统启动时从Flash的某个地址开始逐句执行;也可以加载到内存中运行 :把内核的压缩文件存放在Flash上,系统启动时读取压缩文件在内存里解压,然后开始执行。 2.采用了romfs文件系统作为root文件系统:这种文件系统相对于一般的ext2文件系统要求更少的空间,首先内核支持romfs文件系统比支持 ext2文件系统需要更少的代码,其次romfs文件系统相对简单,建立文件系统superblock需要更少的存储空间。Romfs文件系统不支持动态擦写,对于系统需 要动态保存的数据采用RAM盘的方法处理,RAM盘采用ext2文件系统。 3.使用了Flat可执行文件格式:elf格式有很大的文件头,flat文件对文件头和一些段信息做了简化。 4.重写了应用程序库: uClibc对libc做了精简,uClinux对用户程序采用静态连接的形式。uClinux的开发环境 www.uclinux.org为uClinux提供了GNU的交叉编译器,包括以下组件:Gcc交叉编译器,即在宿主机上开发编译目标上可运行的二进制文件;Binut ils辅助工具,包括objdump、as、ld等;Gdb调试器。 |