博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内核启动过程
阅读量:6909 次
发布时间:2019-06-27

本文共 513 字,大约阅读时间需要 1 分钟。

hot3.png

                 以x86体系结构的计算机为例

         

第一步是BIOS从启动设备中导入主引导记录(MBR),接下来MBR中的代码查看分区表并从活动分区读取GRUB,LILO或SYSLINUX等引导装入程序(Bootloader),之后引导装入程序会加载压缩后的内核映像并将控制权传递给内核。内核获得控制权后,会将自身解压并投入运行。

x86的cpu有两种操作模式:实模式和保护模式。在实模式下,用户仅可以使用1MB内存,并且没有任何的保护。保护模式复杂很多,使用可以使用更多的高级功能。cpu必须在中途将实模式切换到保护模式。切换是单向的,不可逆的。

内核初始化的第一步是执行实模式下的汇编代码,之后切换到保护模式,执行init/main.c文件中的start_kernel()函数。start_kernel()首先会初始化cpu子系统,之后让内存和进程管理系统就位,接下来启动外部总线和I/O设备,最后一步是激活init进程,它是所有Linux进程的父进程。init进程执行启动必要的内核服务的用户空间脚本,并且最终派生出控制台终端程序和显示登录提示。

转载于:https://my.oschina.net/u/854744/blog/418286

你可能感兴趣的文章
比肩微信小程序的快应用联盟
查看>>
天猫与九大快递合作 价格热战之后的冷静竞争
查看>>
git pull force
查看>>
scons用户手册
查看>>
使用new操作符来调用一个构造函数的时候发生了什么
查看>>
element-ui之el-scrollbar源码解析学习
查看>>
ceph 的pg诊断
查看>>
交换机配置vlan 访问控制列表
查看>>
我的友情链接
查看>>
12个时间管理妙招
查看>>
2014阿里巴巴校园招聘研发工程师笔试题(北邮站)
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
solr搜索引擎使用
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Python面向对象之类的成员
查看>>
[一文一命令]more命令详解
查看>>
mapreduce运行机制
查看>>
netstat 命令详解
查看>>
网络I/O模型
查看>>