linux – 当加载操作系统时,内核是否继续作为普通程序运行?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 当加载操作系统时,内核是否继续作为普通程序运行?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1265字,纯文字阅读大概需要2分钟。
内容图文
![linux – 当加载操作系统时,内核是否继续作为普通程序运行?](/upload/InfoBanner/zyjiaocheng/958/621d43b7a44e486db98a56e280e8a1b3.jpg)
我在这里有一个类似的问题:https://stackoverflow.com/questions/43819072/does-the-kernel-stop-running-on-its-own-when-the-os-is-fully-loaded,但它有相互矛盾的答案(所以请不要将此问题标记为重复).
回到我的问题.我知道当计算机开机时,BIOS开始运行,BIOS将运行引导加载程序,引导加载程序将运行内核.
现在内核开始作为普通程序运行(通过“正常程序”我的意思是内核不仅仅是其他程序调用的一组函数,而是它自己运行的程序).现在内核将执行以下任务:
>初始化硬件和内核数据结构.
>切换到保护模式.
>初始化中断描述符表.
>等(此article列出了内核执行的更多任务).
内核完成这些任务后,操作系统将加载,用户可以开始使用它.
我的问题是:现在操作系统已加载,内核是继续作为普通程序运行,还是以这种方式停止运行并且仅在发生中断时运行?
解决方法:
任何内核都与“正常程序”完全相反.尽管微内核人员可能喜欢将OS服务作为与用户应用程序处于同一级别的进程运行的想法,但内核总是必须包含一些不是的部分.如果不出意外,必须有操作系统的某些部分来处理进程的调度和切换,以及它们之间的通信.
特别是,在Linux上,内核被映射到地址空间上部的所有进程的地址空间.从某种意义上说,它是每个流程的一部分,因为某些流程可能正在运行内核代码,而同时某些其他流程可能正在运行用户空间代码.
我不会说内核作为普通程序运行,但它也不会在中断上“仅”运行,因为用户空间代码也可以调用内核例程:这就是系统调用的内容.引用“仅”,因为中断并不是特别的,某种常规计时器滴答是很常见的.
内容总结
以上是互联网集市为您收集整理的linux – 当加载操作系统时,内核是否继续作为普通程序运行?全部内容,希望文章能够帮你解决linux – 当加载操作系统时,内核是否继续作为普通程序运行?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。