zoukankan      html  css  js  c++  java
  • 第一章 计算机系统漫游

    1. 1信息就是位+上下文

    系统中的所有信息:包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传输的数据,都是由一串比特值表示。

    区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。比如,在不同的上下文中一个同样的数字系列可以表示一个整型、浮点、字符串或者机器指令。

    1. 2 程序被其他程序翻译成不同格式
    #include <stdio.h>
    
    int main(){
         printf("hello, world
    ");
         return 0;      
    }

    C语言hello的编译过程

    分为一下四个阶段:

      预处理阶段:

        将“#”开头的程序修改成C语言源程序,#include <stdio.h>告诉程序,将#include <stdio.h>中的stdio.h文本文件引入到程序代码中重组成为新的代码,而这个代码的文件名就叫<文件名>+.i,注意,这还是文本文件。

      编译器阶段:

        将hello.i文件翻译成为hello.s文件,他是汇编语言的程序,依然时文本文件。代码结构如下:

          

      汇编器阶段:

         通过汇编器将hello.s文件翻译成机器语言,并且名字是hello.o文件。这是二进制文件。

      链接器阶段:

        请注意,hello程序调用printf函数,他是每个C库标准提供的函数,在一个名为printf.o文件中,系统可以直接读取到内存中执行,是一个可执行文件。

    1. 3 了解编译系统对我们开发有什么好处?

      优化性能:

      理解链接时出现的错误:

      避免安全漏洞:

    1. 4系统的硬件组成

      总线:贯穿整个系统的电子管道,叫做总线。

      I/O(输入/输出)设备:

      主存:

      处理器(CPU):

  • 相关阅读:
    Qt QTimer定时器相关
    C#Datetime和long之间转换
    C# 把图片资源转成字节数组写入到数据库
    Qt QProcess启动和关闭外部程序
    Qt绘图
    有哪些十分惊艳的书值得推荐3
    Stack Overflow 推荐编程书单
    《编写可读代码的艺术》的读书笔记 (脑图)
    [apache spark]洞见纽约车辆事故|bluemix|apache spark
    [lean scala]|How to create a SBT project with Intellij IDEA
  • 原文地址:https://www.cnblogs.com/hardykay/p/11268520.html
Copyright © 2011-2022 走看看