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

本文共 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/418300

你可能感兴趣的文章
vue项目优化--使用CDN和Gzip
查看>>
JS练习实例--编写经典小游戏俄罗斯方块
查看>>
简述Linux的启动过程
查看>>
fir.im Weekly - 如何写出零 bug 的代码
查看>>
springboot+postgresql+docker实例
查看>>
[LeetCode] Reverse Vowels of a String
查看>>
Java集合类的排序
查看>>
猴子都能看懂的《Git 分支管理》
查看>>
【面试算法】链表反转
查看>>
Git基本命令学习
查看>>
读书笔记:高性能网站建设
查看>>
镭速(Raysync)文件传输高可用安装部署介绍!
查看>>
使用 Jaeger 完成服务间的链路追踪
查看>>
Java NIO使用及原理分析 (一)
查看>>
「技术层面」剖析B2B供应链系统技术架构的部署方案 ...
查看>>
《淘宝网开店 拍摄 修图 设计 装修 实战150招》一一1.3 数码相机日常使用注意事项...
查看>>
《程序员之禅》一一10.10 淡泊宁静
查看>>
《MATLAB图像处理超级学习手册》一一2.1 矩阵的创建
查看>>
还在用密码登录 ECS?ECS 控制台更安全的 SSH 密钥对 来了
查看>>
哪种编程语言最流行?而这到底又意味着什么
查看>>