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

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