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
分享到:
相关推荐
不懂你是ASP/PHP或是VB/VC,如果你看一些与此相关的专业书籍的话,几乎都会说到HelloWorld程序,带你领略各自编程语言的艺术殿堂。本代码是与Android手机编程有关的,运行于Java环境,最近Android手机软件开发搞的很...
环境:Windows XP SP3、 VC++ 6.0 IDE 目的:讲解怎样使用VC++ 6.0 IDE书写一个最简单的MFC应用。 过程:本人在学习"Programming ...学习对象:VC++的初学者--想看懂怎样使用VC++书写一个最简单的Hello World窗体程序。
在描述中,“虽然不是很会,也不是很懂,完全仿照世界编程大赛第一名的作品的代码编写方式写了个helloworld”表明了作者在尝试理解和学习高级编程技巧。尽管作者可能对复杂的编程概念不甚了解,但通过模仿顶级选手的...
在这个教学模板中,我们将探讨C语言和C++的基础知识,特别是如何编写并运行你的第一个程序——“Hello, world!”。 描述中提到的“Hello world templet to teach c language”进一步确认了这个教程的目标是教授...
一共6个程序,所有的程序的目的都只有一个:打印出Helloworld! 看你能看懂几个! 注:前5个用C语言编译器即可,最后一个需要使用C++的编译器。 代码1到5在DJGPP下编译通过,代码6使用VC6的cl.exe编译通过。
Sande -- Hello World! Computer Programming for Kids and Other Beginners -- 2009 -- code.7z
基础在cmd上跑一个java虚拟机,简单中的简单,基础中的基础,和java语法一样(扯淡),写的长一点在cmd很帅(虽然懂的觉得你很无聊,但是给姑娘效果很好)
在学习Java类文件的过程中,我们将通过一个简单的“Hello World”示例来探索Java类文件的内部结构和编译后的字节码。Java开发者通过深入理解Java类文件的组成,能够更好地掌握Java语言的各种高级特性,比如反射机制...
看到一个你不懂的单词? 我们加入了表情符号 :open_book: 在一些关键术语旁边。 单击它以查看其定义。 哦! 我还没有自我介绍... 我是GitHub Learning Lab机器人,我在这里可以帮助指导您学习和掌握本课程涵盖的各个...
### 学习Java这些你搞懂了吗? #### 问题一:我声明了什么! 在Java中,当我们声明一个变量时,实际上是在指定一种特定的数据类型并为其分配内存空间。例如,`boolean test = true;` 这行代码声明了一个布尔类型的...
创建名为 `helloworld.sh` 的文件,添加以下内容: ```bash #!/bin/bash echo "Hello World" ``` 其中,`#!/bin/bash` 表示该脚本使用 bash 作为解释器。`echo` 命令则用于在终端上显示指定的文本。 接下来,需要...
易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语句,降低了编程的门槛,使得不懂英文的用户也能轻松学习编程。"Hello Window.7z" 是一个包含易语言源码的压缩包,很可能是用来展示或教学如何创建一个...
### Java你必须搞懂的问题 #### 问题一:我声明了什么! 在Java中,当你看到这样的代码: ```java String s = "Hello world!"; ``` 实际上,这行代码并没有直接创建一个新的`String`对象,而是声明了一个名为`s`...
` 这样的语句时,实际上是在做两件事情:一是声明了一个类型为String的引用变量`s`,二是初始化这个引用变量,使其指向一个在常量池中存储的字符串对象`"HelloWorld!"`。这里的关键在于理解Java中的引用与对象的概念...
当你声明`String s = "Hello world!";`时,实际上你创建的并不是一个String对象,而是声明了一个名为`s`的引用变量,它指向内存中一个包含文本"Hello world!"的String对象。这里的重点是,`s`只是一个指针,它存储了...
### 学习Java必须搞懂的六个问题 在学习Java编程的过程中,对于初学者来说,掌握以下几个关键概念是非常重要的。本文将围绕这六个问题展开详细解释,帮助大家更好地理解和运用这些核心知识点。 #### 1. **字符串...
这意味着我们又声明了一个新的引用变量`string`,它同样指向类型为`String`的对象,而且在这个例子中,`string`与`s`指向的是同一个对象,即内容为`"HelloWorld!"`的那个`String`对象。 #### 问题二:“==”和`...