`
javamore
  • 浏览: 63374 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

你真的懂hello world吗?

 
阅读更多

Hello world是程序员入门必备良品,但你真理解hello world后面的过程吗,下面将从操作系统的角度阐述hello world?

 

#include <stdio.h> 
 int main(int argc, char *argv[]) 
{ 
      puts("hello world"); 
       return 0; 
 } 

 

 

  1. 用户告诉操作系统执行hello程序
  2. 操作系统找到该程序,检查其类型
  3. 检查程序首部,找出正文和数据的地址
  4. 文件系统找到第一个磁盘块
  5. 父进程需要创建一个新的子进程,执行hello程序
  6. 操作系统需要将执行文件映射到进程结构
  7. 操作系统设置CPU上下文环境,并跳到程序开始处
  8. 程序的第一条指令执行,失败,缺页中断发生
  9. 操作系统分配一页内存,并将代码从磁盘读入,继续执行
  10. 更多的缺页中断,读入更多的页面
  11. 程序执行系统调用,在文件描述符中写一字符串
  12. 操作系统检查字符串的位置是否正确
  13. 操作系统找到字符串被送往的设备
  14. 设备是一个伪终端,由一个进程控制
  15. 操作系统将字符串送给该进程
  16. 该进程告诉窗口系统它要显示字符串
  17. 窗口系统确定这是一个合法的操作,然后将字符串转换成像素
  18. 窗口系统将像素写入存储映像区
  19. 视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)
  20. 显示器发射电子束
  21. 你在屏幕上看到hello world

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics