你真的懂hello world吗?
Hello world是程序员入门必备良品,但你真理解hello world后面的过程吗,下面将从操作系统的角度阐述hello world?
?
#include <stdio.h> int main(int argc, char *argv[]) { puts("hello world"); return 0; } ?
?
- 用户告诉操作系统执行hello程序操作系统找到该程序,检查其类型检查程序首部,找出正文和数据的地址文件系统找到第一个磁盘块父进程需要创建一个新的子进程,执行hello程序操作系统需要将执行文件映射到进程结构操作系统设置CPU上下文环境,并跳到程序开始处程序的第一条指令执行,失败,缺页中断发生操作系统分配一页内存,并将代码从磁盘读入,继续执行更多的缺页中断,读入更多的页面程序执行系统调用,在文件描述符中写一字符串操作系统检查字符串的位置是否正确操作系统找到字符串被送往的设备设备是一个伪终端,由一个进程控制操作系统将字符串送给该进程该进程告诉窗口系统它要显示字符串窗口系统确定这是一个合法的操作,然后将字符串转换成像素窗口系统将像素写入存储映像区视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)显示器发射电子束你在屏幕上看到hello world
?