APP下载

Linux操作系统构建原理与应用

2012-11-25ZHANGJun

制造业自动化 2012年4期
关键词:源码内核进程

ZHANG Jun

0 引言

Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统[1]。Linux一词的诞生之初仅仅代表的是Linux操作系统的内核,但是,随着Linux操作系统内核的不断发展,Linux一词代表的是Linux操作系统,并不仅仅局限于内核。Linux得名于计算机业余爱好者Linus Torvalds。

Linux操作系统诞生与1981年,同一年,IBM公司推出享誉全球的微型计算机IBM PC。到1991年,GNU计划已经开发出了许多工具软件,其中包括有名的emacs编辑系统、bash shell程序、gcc系列编译程序、gdb调试程序等等。这些软件为Linux 操作系统的开发创造了一个合适的环境,是Linux 能够诞生的基础之一。GNU计划旨在开发一个类似Unix的操作系统,并且该操作系统是完全免费的、开源的。但是Linux内核的发展并不是很顺利,Gnu C编译器的诞生也没有加快免费的GNU 操作系统的诞生,MINIX操作系统在发展的过程中已经有了版权,但是这种操作系统是有偿的,并不是免费的。对于Linux操作系统而言,已经发展到关键阶段,自1991年以来,Linus Torvalds便着手编制属于自己的操作系统,随着研究的深入,Linux操作系统不仅改变了传统的操作系统的编程模式,还成为了目前微软操作系统的最强大的竞争对手。

1 Linux内核

操作系统的诞生是围绕着计算机的软件以及硬件而发展的,Linux操作系统的诞生的目的便是用于和硬件进行通信,并为使用者提供服务的最底层的支撑软件,计算机的软件以及硬件是相互关联的,绝不能分割开。一个完整的计算机是由许多个硬件部件组成的,比如,处理器、内存、外围输入输出设备、硬盘等一些列电子设备。但是,这些硬件没有得到软件的支撑,硬件是毫无意义的。使得这些硬件能够投入工作的软件便是操作系统,操作系统也可以理解为硬件使能的软件,Linux操作系统中的操作系统指的是“内核”或者“核心”,一个完整的Linux内核主要有以下几个主要部分组成:文件系统、网络通信、存储管理系统、系统调用、CPU和进程管理以系统初始化引导等。

操作系统的分析需要明确操作系统的体系架构,因此,分析操作系统不能仅仅局限于某一个角度、分析操作系统的其中的一个目标便是能够使得我们能够更加清晰理解操作系统的源码。Linux内核从架构上得到创新,实现了技术性比较强的体系架构属性。一方面,Linux内核是由很多个子系统组成的,另外一个方面,Linux操作系统将所有的服务集成与内核一体中,因此,Linux内核又是一个完整的整体。这些与微内核的体系架构存在着诸多不同之初,微内核先是会为用户提供一些简便的、使用频率高的服务,比如输入输出、内存管理以及通信等,但是,微内核却将具体的服务都嵌入到微内核层中。随着Linux内核的不断发展,Linux内核已经发展的非常稳定,并且在内存的使用以及CPU的使用上面大大提高了效率。此外,Linux内核具备非常好的移植特性,Linux内核编译通过之后便可以运行在不同类型的CPU处理器中以及体系架构不同的平台上。

2 Linux操作系统构建原理

Linux的研发团队可以称之为Linux社区,他们主要负责开发以及规范Linux内核,并将内核的版本控制成唯一的。但是,实际中的Linux操作系统中的内核的版本则指的是Linux内核的版本号。Linux1.0是Linux内核的第一版,诞生于1994年3月14日,从此之后,Linux内核版本便会不断被更新。Linux内核为了能够友好的与Copyright相对照,特将已经发展标准的GNU许可协议修改为Copyleft。通用的公共许可(GPL)授权用户可以拷贝、修改以及销售带有Copyleft的应用程序,或者Copyright应用程序,但是,必须确保应用程序可以进一步的进行拷贝、修改以及销售,同时,也必须确保其余的用户也可以无偿的获取最新的内核源码。实践证明。通用的公共许可(GPL)在Linux内核发展的过程中起到了非常大的作用,GPL不仅将Linux带入了商业化的阶段,还使得Linux编程人员更加团结,不断的诱惑新的系统爱好者加入到Linux中。一个Linux内核主要由下面几个子系统组成:

系统调用接口:系统调用接口简称SCI,SCI主要是为执行从用户空间到内核的一系列的函数调用提供特殊的机制。SCI主要依赖于操作系统的体系架构,SCI的实现源码主要存放在文件路径./linux/kernel中,而依赖的体系架构源码则存放在./linux/arch中;进程管理,进程管理子系统的主要工作是执行相关的进程操作。通常情况下,进程管理在内核中也称之为线程管理,主要代表的是单独的CPU虚拟化。进程这个术语一般情况下在用户空间叫的比较多,但是Linux内核并没有将进程与线程两个概念分别开来、Linux内核中新的进程的创建方式是通过SCI提供的应用程序编程接口(API),通过提供的API,用户可以通过执行kill、exit命令停止相关进程,并可以在进程与进程之间实现同步与通信,通信机制主要有signal或者POSIX机制。进程管理个工作还需要负责处理不同进程之间如何共享CPU的需求的操作。因此,O(1)调度程序便随着Linux内核的诞生而被研究出来,该算法是一种全新的调度算法,无论目前竞争CPU的进程有多少个,O(1)调度程序算法均可以在固定的世间中进行操作,可以理解为调度进程的时间是固定的,不会因为竞争CPU的进程是数量而变化。O(1)调度程序算法还可以支持多种CPU处理器(称为对称多处理器或SMP)。进行管理的源码部分主要在内核的文件系统中的./linux/kernel文件中,而依赖于体系结构的源代码则存放在./linux/arch中。

内存管理:内存管理是Linux内核管理的非常重要的资源。Linux内核为了提高整个操作系统的效率,虚拟内存交由硬盘进行管理,其管理方式则是按照内存中的区、块、页的方式,最小的管理方式便是页。Linux内核不仅对可用内存进行管理,还管理着虚拟内存映射以及物理映射所采用的硬件机制进行管理,整个linux内核管理的内存要高于4KB缓冲区。Linux内存管理模式采用的是抽象4KB的缓冲区,比如采用slab分配器,其基数便是这4KB缓冲区,接着从中分配结构,并及时的跟踪内存页的使用情况,比如哪些页面是坏页,哪些页面已经写满以及哪些页面是空的、可用的等。这样便可以使得操纵系统能够根据页的使用情况对内存进行动态适时调整。文件系统路径./linux/mm中存放着内存管理的相关的程序源码。

虚拟文件系统:虚拟文件系统简称为VFS,是Linux内核中相对比较重要的一个子系统,主要作用是为内核的文件系统提供通用的抽象接口,存在与文件系统与SCI之间,可以理解为二者之间的交换层,VFS上面便是文件系统与用户之间,比如为用户提供类似open、close等函数的一个通用API抽象。VFS下面则是文件系统的抽象,主要是定义了API抽象函数的实现形式。文件系统的源码存放在./linux/fs文件中。

3 Linux操作系统应用

Linux操作系统是免费的、开源的,因此,Linux操纵系统为测试新的协议提高了一个优秀的平台。Linux操作系统集成了市面上通用的网络协议,不仅支持TCP/IP网络传输协议,还支持GbE级别以上的高速网络传输协议。Linux内核是以模块的形式进行编译的,是动态的,用户可以根据需要对内核中的软件组件进行删除以及添加操作,Linux内核又称之为动态可加载内核。Linux内核最为独特的一点便是Linux内核还可以嵌入到其余的操作系统中运行,实现了在操作系统中运行操作系统的模式。目前,Linux内核为了扩充运用,在内核中为用户空间添加了一个全新的应用接口,称为KVM—基于内核的虚拟机,KVM允许别的非Linux的操作系统在启用了KVM的内核之上运行,惟一的限制是底层处理器必须支持新的虚拟化指令。

Linux操作系统的应用遍及各个领域,目前一些国家正在将其电子政务系统向Linux平台迁移。中国政府在Linux领域一直给予极大的支持,出台了一系列加强Linux软件标准建设的一系列重要举措,这些重要举措是:成立Linux软件标准工作组、建立国家Linux公共服务平台体系和出台软件政府采购管理办法。标准工作组致力突破重大应用瓶颈,目前在推广Linux应用中,标准问题已经成为当务之急。任何一项新技术发展到一定程度,如果没有统一的标准就没有了方向。最终的目标是让Linux与Windows精确兼容[3],所谓精确兼容,就是使用Linux的效果要与Windows非常接近,在有限应用,如桌面Office、Email、浏览器等应用中,Linux与原来的Windows能够很好地衔接,这就是标准。

公共平台服务中小企业,Linux的标准非常重要,而建立Linux评测体系和公共服务也同等重要,从政府的角度出发,目前正在建立一个国家Linux公共服务平台,为广大中小企业创造更好的创新环境。据介绍,这个公共服务平台是非盈利机构,由政府建立,为中小企业创新提供服务。此外,电脑及信息家电的操作系统支配所有的运算功能,Linux操作系统应用的相关领域包括个人使用的PC、企业使用的服务器、信息家电功能运算、以及企业软件开发等,此外,Linux操作系统除了影响个人的使用习惯外,也因为价格、功能、以及市场占有率等因素,深深影响企业、个人使用的意愿、投资成本,甚至相关的软、硬件信息产业。

在信息家电嵌入式操作系统方面,Linux操作系统应用的非常广泛,Linux操作系统的特性正好符合IA产品的操作系统小、稳定、即时与多工等需求,许多世界大厂包括新力、IBM等纷纷在其IA中采用Linux。各个国家正在全力发展Linux系统,使得Linux系统后势看好,能够逐渐与Windows并驾其驱。

4 结束语

计算机操作系统是一切软件运行的最基本平台,在计算机系统软、硬件之间起到承上启下的作用,是软、硬件沟通的桥梁,操作系统的研发工作需要对计算机的硬件非常熟悉,同时也需要非常高的可发技术水平,是计算机软件的核心技术,掌握了操作系统的技术,也就掌握了软件的核心技术,这不仅对于我国软件人才的培养是十分重要,也能进一步促进整个软件产业健康全面的发展。Linux系统的源代码是公开的、开放的,任何人只要有兴趣都可以进行全面深入的研究,并在此基础上开发相应的软、硬件产品,促进整个计算机产业研究和技术的发展。

[1] 曾树洪, 刘卫国. Linux内核抢占的实现机制分析[J]. 惠州学院学报, 2008, 6.

[2] 邹勇, 王青, 李明树. Linux内核的实时支持的研究与实现[J]. 计算机研究与发展, 2002, 39(4): 466-472.

[3] BOVETDP, MARCOC. 深入理解 Linux内核析[M]. 北京:中国电力出版社, 2007: 192-212 .

猜你喜欢

源码内核进程
多内核操作系统综述①
面向数据可靠传输的高译码率带反馈的LT码
强化『高新』内核 打造农业『硅谷』
国内一站式工程设备租赁平台众能联合完成C2、C3两轮融资
活化非遗文化 承启设计内核
浅谈开源操作系统的历史
企业如何保护源码
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
微软发布新Edge浏览器预览版下载换装Chrome内核