`
javamore
  • 浏览: 63582 次
  • 性别: 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

 

分享到:
评论

相关推荐

    Android手机上的HelloWorld程序源代码

    不懂你是ASP/PHP或是VB/VC,如果你看一些与此相关的专业书籍的话,几乎都会说到HelloWorld程序,带你领略各自编程语言的艺术殿堂。本代码是与Android手机编程有关的,运行于Java环境,最近Android手机软件开发搞的很...

    VC++编程的第一个MFC工程Hello World

    环境:Windows XP SP3、 VC++ 6.0 IDE 目的:讲解怎样使用VC++ 6.0 IDE书写一个最简单的MFC应用。 过程:本人在学习"Programming ...学习对象:VC++的初学者--想看懂怎样使用VC++书写一个最简单的Hello World窗体程序。

    世界编程大赛第一名的作品和我的helloworld代码

    在描述中,“虽然不是很会,也不是很懂,完全仿照世界编程大赛第一名的作品的代码编写方式写了个helloworld”表明了作者在尝试理解和学习高级编程技巧。尽管作者可能对复杂的编程概念不甚了解,但通过模仿顶级选手的...

    Hello_world_firststepinc_c_C++_

    在这个教学模板中,我们将探讨C语言和C++的基础知识,特别是如何编写并运行你的第一个程序——“Hello, world!”。 描述中提到的“Hello world templet to teach c language”进一步确认了这个教程的目标是教授...

    混乱C语言代码之HelloWorld版

    一共6个程序,所有的程序的目的都只有一个:打印出Helloworld! 看你能看懂几个! 注:前5个用C语言编译器即可,最后一个需要使用C++的编译器。 代码1到5在DJGPP下编译通过,代码6使用VC6的cl.exe编译通过。

    Hello World! Computer Programming for Kids and Other Beginners

    Sande -- Hello World! Computer Programming for Kids and Other Beginners -- 2009 -- code.7z

    HelloWorld.java

    基础在cmd上跑一个java虚拟机,简单中的简单,基础中的基础,和java语法一样(扯淡),写的长一点在cmd很帅(虽然懂的觉得你很无聊,但是给姑娘效果很好)

    Learn Java File By Hello World Example

    在学习Java类文件的过程中,我们将通过一个简单的“Hello World”示例来探索Java类文件的内部结构和编译后的字节码。Java开发者通过深入理解Java类文件的组成,能够更好地掌握Java语言的各种高级特性,比如反射机制...

    Hello-world:加入另一个存储库

    看到一个你不懂的单词? 我们加入了表情符号 :open_book: 在一些关键术语旁边。 单击它以查看其定义。 哦! 我还没有自我介绍... 我是GitHub Learning Lab机器人,我在这里可以帮助指导您学习和掌握本课程涵盖的各个...

    学习java这些你搞懂了吗

    ### 学习Java这些你搞懂了吗? #### 问题一:我声明了什么! 在Java中,当我们声明一个变量时,实际上是在指定一种特定的数据类型并为其分配内存空间。例如,`boolean test = true;` 这行代码声明了一个布尔类型的...

    shell你只需要懂这些

    创建名为 `helloworld.sh` 的文件,添加以下内容: ```bash #!/bin/bash echo "Hello World" ``` 其中,`#!/bin/bash` 表示该脚本使用 bash 作为解释器。`echo` 命令则用于在终端上显示指定的文本。 接下来,需要...

    易语言源码Hello Window.7z

    易语言是一种专为中国人设计的编程语言,它以简体中文作为编程语句,降低了编程的门槛,使得不懂英文的用户也能轻松学习编程。"Hello Window.7z" 是一个包含易语言源码的压缩包,很可能是用来展示或教学如何创建一个...

    java你必须搞懂的问题

    ### Java你必须搞懂的问题 #### 问题一:我声明了什么! 在Java中,当你看到这样的代码: ```java String s = "Hello world!"; ``` 实际上,这行代码并没有直接创建一个新的`String`对象,而是声明了一个名为`s`...

    每个JAVA初学者都应该搞懂的问题!

    ` 这样的语句时,实际上是在做两件事情:一是声明了一个类型为String的引用变量`s`,二是初始化这个引用变量,使其指向一个在常量池中存储的字符串对象`"HelloWorld!"`。这里的关键在于理解Java中的引用与对象的概念...

    java 每个新手都要搞懂弄明白的

    当你声明`String s = "Hello world!";`时,实际上你创建的并不是一个String对象,而是声明了一个名为`s`的引用变量,它指向内存中一个包含文本"Hello world!"的String对象。这里的重点是,`s`只是一个指针,它存储了...

    学习Java 必须搞懂的6个问题

    ### 学习Java必须搞懂的六个问题 在学习Java编程的过程中,对于初学者来说,掌握以下几个关键概念是非常重要的。本文将围绕这六个问题展开详细解释,帮助大家更好地理解和运用这些核心知识点。 #### 1. **字符串...

    JAVA初学者都应该搞懂的六个问题

    这意味着我们又声明了一个新的引用变量`string`,它同样指向类型为`String`的对象,而且在这个例子中,`string`与`s`指向的是同一个对象,即内容为`"HelloWorld!"`的那个`String`对象。 #### 问题二:“==”和`...

Global site tag (gtag.js) - Google Analytics