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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【154】 第34卷 第2期

2012-2(下)

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 操作系统构建原理与应用

Theory and application of Linux operating system

张 君 ZHANG Jun

(呼伦贝尔学院,呼伦贝尔 021000)

摘 要: 随着计算机科学与技术的飞速发展,Linux操作系统以其开源、模块化程度高、硬件支持多等

特点获得了前所未有的发展,本课题皆在通过详细介绍Linux操作系统的起源,内核架构原理等基础知识,为广大读者提供全面的专业知识,课题的最后介绍了Linux操作系统目前的应用现状。

关键词: Linux;原理;调度;GNU

中图分类号:TP316 文献标识码:A 文章编号:1009-0134(2012)2(下)-0154-03Doi: 10.3969/j.issn.1009-0134.2012.2(下).48

收稿日期:2011-10-30

作者简介:张君(1978-),女,辽宁义县人,讲师,研究方向为计算方法理论。究的深入,Linux 操作系统不仅改变了传统的操作系统的编程模式,还成为了目前微软操作系统的最强大的竞争对手。

1 Linux 内核

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

操作系统的分析需要明确操作系统的体系架构,因此,分析操作系统不能仅仅局限于某一个角度、分析操作系统的其中的一个目标便是能够使得我们能够更加清晰理解操作系统的源码。Linux 内核从架构上得到创新,实现了技术性比较强的体系架构属性。一方面,Linux 内核是由很多个子系统组成的,另外一个方面,Linux 操作系统将所有的服务集成与内核一体中,因此,Linux 内核又是一个完整的整体。这些与微内核的体系架

第34卷 第2期 2012-2(下)

【155】

构存在着诸多不同之初,微内核先是会为用户提供一些简便的、使用频率高的服务,比如输入输出、内存管理以及通信等,但是,微内核却将具体的服务都嵌入到微内核层中。随着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 操纵系统为测试新的协议提高了一个优秀的

相关文档
最新文档