【操作系统】操作系统中“hello world!”的输出

关于hello world的输出:

  • 如下图所示为“hello world!”的输出过程,其中包含有很多种硬件与软件的支持
    • 软件:
      1. 用汇编语言写成的程序
      2. 主存储器(硬盘)中存储的数据和寄存器中暂存的数据
      3. 寄存器的寄存数据文档
    • 硬件:
      1. 主存储器
      2. I/O端
      3. CPU
      4. 控制总线,数据传输总线
      5. 图形控制器及外设
    • 具体的实现过程:
      1. 通过汇编语言直接将数据存储在主存储器上
      2. 发送指令到CPU,CPU先将从主存储器获取的数据暂存在寄存器中,寄存器通过译码器将数据转为二进制
      3. 转换好的二进制通过总线将数据传到图形控制器
      4. 图形控制器对其二进制进行处理并将其写入某一位显存地址
      5. 通过电脑屏幕或外设呈现出第一个字符H
      6. 数据反馈回CPU,发现指令未执行完毕,则继续重复执行上述操作,直至指令执行完毕

hello world 图解

操作系统做了什么?

  1. 找到helloworld 程序的相关信息, 检查其 类型是否是可执行文件;并通过程序首部信息,确定代码 和 数据在可执行文件中的位置并计算出对应的磁盘块 地址
  2. 创建 一个新 的进程,并将helloworld可执行文件映射到该进程结构,表示由该进程执行helloworld 程序
  3. 操作系统:为helloworld 程序设置CPU 上下文环境,并跳到程序 开始 处执行helloworld 程序 的 第一 条 指令,由于此时代码数据还没有调入内存,发生 缺页异常
  4. 分配 一 页物理内存 ,并将代码从磁盘 读入内存,然后继续执行helloworld 程序helloworld 程序执行puts 函数,在显示器上写 一字符串
  5. 找到要将字符串送往的显示设备
  6. 控制设备的 进程告诉设备的窗口系统它要显示 字符串,窗口系统确定这是一个合法的操作,然后将字符串转换成 像素, 将像素写入设备的存储 映像区

猜你喜欢

转载自blog.csdn.net/weixin_44321600/article/details/104672022