第一章linux内核概述

第一章linux内核概述

ID:35110906

大小:3.60 MB

页数:164页

时间:2019-03-18

第一章linux内核概述_第1页
第一章linux内核概述_第2页
第一章linux内核概述_第3页
第一章linux内核概述_第4页
第一章linux内核概述_第5页
资源描述:

《第一章linux内核概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第一章Linux内核概述Linux内核是一个庞大而复杂的操作系统的核心,不过尽管庞大,但是却采用子系统和分层的概念很好地进行了组织。在本文中,您将探索Linux内核的总体结构,并学习一些主要的子系统和核心接口。您还可以通过其他IBM文章的链接更深入地进行学习。由于本章的目标是对Linux内核进行介绍并探索其体系结构和主要组件,因此首先回顾一下Linux的简短历史,然后从较高的层次审视Linux内核的体系结构,最后介绍它的主要子系统。Linux内核具有超过600万行的代码,因此本文不可能进行完整的介绍。请使用指向其他内容的链接进一步学习。1.1linux简短历史尽管Linux

2、绝对是最流行的开源操作系统,但是相对于其他操作系统的漫长历史来说,Linux的历史非常短暂。在计算机出现早期,程序员是使用硬件语言在裸硬件上进行开发的。缺少操作系统就意味着在某个时间只有一个应用程序(和一个用户)可以使用这些庞大而又昂贵的设备。早期的操作系统是在20世纪50年代开发的,用来提供简单的开发体验。二十年后,AndrewTanenbaum创建了一个微内核版本的UNIX®,名为MINIX(代表minimalUNIX),它可以在小型的个人计算机上运行。这个开源操作系统在20世纪90年代激发了LinusTorvalds开发Linux的灵感(请参看图1所示)。Linux快

3、速从一个个人项目进化成为一个全球数千人参与的开发项目。对于Linux来说,最为重要的决策之一是采用GPL(GNUGeneralPublicLicense)。在GPL保护之下,Linux内核可以防止商业使用,并且它还从GNU项目(RichardStallman开发,其源代码要比Linux内核大得多)的用户空间开发受益。这允许使用一些非常有用的应用程序,例如GCC(GNUCompilerCollection)和各种shell支持。1.2linux内核组成1.2.1linux内核简介现在让我们从一个比较高的高度来审视一下GNU/Linux操作系统的体系结构。您可以从两个层次上来考

4、虑操作系统,如图2所示。最上面是用户(或应用程序)空间。这是用户应用程序执行的地方。用户空间之下是内核空间,Linux内核正是位于这里。GNUCLibrary(glibc)也在这里。它提供了连接内核的系统调用接口,还提供了在用户空间应用程序和内核之间进行转换的机制。这点非常重要,因为内核和用户空间的应用程序使用的是不同的保护地址空间。每个用户空间的进程都使用自己的虚拟地址空间,而内核则占用单独的地址空间。Linux内核可以进一步划分成3层。最上面是系统调用接口,它实现了一些基本的功能,例如read和write。系统调用接口之下是内核代码,可以更精确地定义为独立于体系结构的内

5、核代码。这些代码是Linux所支持的所有处理器体系结构所通用的。在这些代码之下是依赖于体系结构的代码,构成了通常称为BSP(BoardSupportPackage)的部分。这些代码用作给定体系结构的处理器和特定于平台的代码。1.2.2Linux内核属性在讨论大型而复杂的系统的体系结构时,可以从很多角度来审视系统。体系结构分析的一个目标是提供一种方法更好地理解源代码,这正是本文的目的。Linux内核实现了很多重要的体系结构属性。在或高或低的层次上,内核被划分为多个子系统。Linux也可以看作是一个整体,因为它会将所有这些基本服务都集成到内核中。这与微内核的体系结构不同,后者会

6、提供一些基本的服务,例如通信、I/O、内存和进程管理,更具体的服务都是插入到微内核层中的。每种内核都有自己的优点,不过这里并不对此进行讨论。随着时间的流逝,Linux内核在内存和CPU使用方面具有较高的效率,并且非常稳定。但是对于Linux来说,最为有趣的是在这种大小和复杂性的前提下,依然具有良好的可移植性。Linux编译后可在大量处理器和具有不同体系结构约束和需求的平台上运行。一个例子是Linux可以在一个具有内存管理单元(MMU)的处理器上运行,也可以在那些不提供MMU的处理器上运行。Linux内核的uClinux移植提供了对非MMU的支持。1.2.3Linux内核子系

7、统现在使用图3中的分类说明Linux内核的主要组件。系统调用接口SCI层提供了某些机制执行从用户空间到内核的函数调用。正如前面讨论的一样,这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。SCI实际上是一个非常有用的函数调用多路复用和多路分解服务。在./linux/kernel中您可以找到SCI的实现,并在./linux/arch中找到依赖于体系结构的部分。进程管理进程管理的重点是进程的执行。在内核中,这些进程称为线程,代表了单独的处理器虚拟化(线程代码、数据、堆栈和CPU寄存器)。在用户空间,通常使用进程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。