Skip to content

Latest commit

 

History

History

chapter01

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

1 计算机系统漫游

系统中的所有信息都是由bit串构成(明文->编码->底层01),信息的解释取决于具体的context

C程序编译过程:预处理->编译->汇编->链接

这一章抛出了很多值得想象的问题:

  • switch 语句是否比一系列的if then else 高效的多?
  • 一个函数调用的开销是多少?
  • while循环比for高效?
  • 指针引用比数组引用更高效吗?
  • 为何将循环求和的结果放到一个本地变量中,比将其放到一个通过引用传递过来的参数中相比,运行速度快很多呢?
  • 为何只是重新排列算术表达式中的括号,既可以让一个函数运行快很多呢?
  • 静态变量和全局变量的区别?
  • 在不同的C文件中定义相同的两个全局变量,会发生什么?
  • 静态库和动态库的区别?
  • 在命令行上制定链接库,其顺序有何影响?
  • 有些连接错误为何直到运行时才出现?

操作系统的抽象:进程,虚拟存储器,文件

  • 进程线程的区别?
  • 虚拟地址空间的每个区的含义,结构?
  • 本地磁盘可以看做远程文件系统的高速缓存

利用hello.c的运行过程,漫游了在不同组件直接的通信复制过程,体现了缓存的重要性

hello.c

抽象的重要性

指令集结构提供了对实际处理器硬件的抽象,使用这个抽象,机器代码程序员可视自己的程序运行在一个一次只执行一条指令的处理器上。 而底层的硬件比抽象的指令集要复杂精细的多,他并行执行多条指令,但是总是与那个简单有序的模型保持一致。