linx初始化及进程管理.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linx初始化及进程管理

Linux系统结构、初始化及进程管理 一、linux系统结构 linux系统由4个部分构成: ? 用户应用程序—在某个特定的L i n u x系统上运行的应用程序集合,它将随着该计算机系统的用途不同而有所变化,如文字处理应用程序、Web浏览器。 ? O/S服务—这些服务一般认为是操作系统的一部分(窗口系统,命令外壳程序等);此外,内核的编程接口(编译工具和库)也属于这个子系统。 ? L i n u x内核—包括内核抽象和对硬件资源(如C P U)的间接访问。 ? 硬件控制器—这个子系统包含在L i n u x实现中所有可能的物理设备,例如,C P U、内存硬件、硬盘以及网络硬件等都是这个系统的成员。 二、linux内核组成: linux内核由5个子系统组成: 1. 进程调度程序( S C H E D)负责控制进程访问C P U。调度程序所使用的策略可以保证进程能够公平地访问C P U,同时保证内核可以准时执行一些必需的硬件操作。 2. 内核管理程序( M M)使多个进程可以安全地共享机器的主存系统。此外,内存管理程序支持虚拟内存。虚拟内存使得L i n u x可以支持进程使用超过系统中的内存数量的内存。暂时用不着的存储信息可以交换出内存,存放到永久性存储器上(如磁盘的交换分区或交换文件中),然后在需要它们的时候再交换回来。 3. 虚拟文件系统( V F S)。通过提供一个所有设备的公共文件接口, V F S抽象了不同硬件设备的细节。此外, V F S支持与其他操作系统兼容的不同的文件系统格式。 4. 网络接口( N E T)提供了对许多建网标准和网络硬件的访问。 5. 进程间通信( I P C)子系统为单个L i n u x系统上进程与进程之间的通信提供了一些机制。 这些子系统虽然实现的功能相对独立,但存在着较强的依赖性(调用依赖模块中相应的函数),所以说linux内核是单块结构(monolithic)的。 三、Linux初始化 1.从BIOS到KERNEL 计算机在接通电源之后首先由BIOS进行自检,即进行所谓的POST(Power?On?Self? Test),然后依据BIOS内设置的引导顺序从硬盘、软盘或CDROM中读入“引导块”。 如通常BIOS中设的引导顺序为C在最前面,那么就把C盘(第一个IDE硬盘)的第0柱面,第0头的第1个扇区读入内存,然后跳到那里开始执行。这个扇区有一个大家熟悉的名字——MBR(Main?Boot?Record)。换句话说,MBR里面存放的是一小段程序以及分区表的数据(446+64+2)。在使用WIN9X和DOS时,这里面放的代码就把分区表里标记为Active的分区的第一个扇区(一般存放着操作系统的引导代码)读入内存并跳转到那里开始执行。 而在用LILO(或GRUB)引导LINUX时,有两种选择: ??(1)?把LILO安装在MBR。这时就由BIOS直接把LILO代码调入内存,然后跳转执行LILO。即 ????????BIOS——LILO(在MBR中)——KERNEL ??(2)?把LILO安装在LINUX分区,并把LINUX分区设为Active。这时,BIOS调入的是windows下的MBR代码。因为windows下的MBR不能引导linux内核。所以,你必须借助于Linux的启动软盘来引导linux内核,即 ????????BIOS——引导软盘——LILO(在活动分区的第一个扇区)——KERNEL MBR或硬盘活动分区的第一个扇区很小(512字节),只能存放很少的代码,所以它会读取Lilo的第二部分代码(root文件系统的/boot/boot.b),第二部分代码会读取启动菜单信息,提示用户选择启动哪个OS,若选择linux,则装入Linux内核并执行。 因为在读入及执行MBR时,操作系统还没有起来,所以只能用BIOS提供的INT13来进行磁盘操作,而老的INT13只能读写IDE硬盘1024柱面之前的数据,由此可知任何操作系统的引导代码必须在1024柱面之前。对于LINUX来说,不管使用方式(1)还是方式(2)启动,都要保证KERNEL放在1024柱面之前。只有在KERNEL起来以后,才有读/写1024柱面以后数据的能力。因为LINUX不使用INT13来进行硬盘操作。因此,作为操作系统要能被正确引导,如果是借助于BIOS来进行,它们的引导部分都必须在1024柱面之前。如果操作系统本身还是基于INT13来进行磁盘操作的话,那么它也只能读/写1024柱面之前的数据。 现在新版的BIOS大多支持扩展的INT13,可以支持大于1024柱面的IDE硬盘的读写。所以这个问题几乎就不存在了。 从KERNEL到login?prompt 内核引导-arch/i386/boot/setup.S(实模式

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档