操作系统如何加载程序

Posted myguaiguai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统如何加载程序相关的知识,希望对你有一定的参考价值。

操作系统如何加载程序

1.用户编写完代码后,通过编译器将编译为数据段、代码段、堆栈段、bss段,由链接器链接为装入模块

2.用户通知操作系统要运行的程序

3.操作系统根据路径找到对应的程序,检测程序的头部,找到代码段和数据段的位置

4.文件系统根据这些段的位置找到对应的磁盘块

5.操作系统创建进程(创建运行环境),并将要执行的程序的各个段映射到这个进程的空间

6.通过进程调度执行到了该进程,将CPU的上下文切换为该进程的上下文,然后执行程序的第一条指令。

7.执行指令发现指令并不在内存,于是产生缺页异常,从磁盘拷贝然后继续执行。

8.执行到printf,跳转到库函数执行,通过软中断发起系统调用,操作系统根据系统调用号跳转到对应的中断处理程序运行。

9.操作系统分配设备,并执行显示驱动程序

10.窗口系统将像素写入到存储映像区

11.视频硬件将像素表示成一组模拟信号输出的显示器

12.显示器发射电子束

13.屏幕看到hello world

以上是关于操作系统如何加载程序的主要内容,如果未能解决你的问题,请参考以下文章

如何延迟加载反应应用程序直到触发操作?

linux如何加载驱动

在没有 Class.forName() 或系统属性的情况下如何加载 JDBC 驱动程序? [复制]

操作系统是如何启动的

Linux如何实现开机启动程序详解(转)

GRUB 的第一阶段引导加载程序如何加载第二阶段引导加载程序?