你真的懂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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值