计算机系统漫游
1.1信息就是位+上下文 系统中所有的信息都是由一串位组成的, 所谓的位就是bit, 每八位是一个字节也就是byte, 理论上讲所有的文件可以分为两种, 一种是由ascii字符组成,这种我们也称作文本文件(其实其他字符编码也算, 这里不考虑), 剩下的都叫做二进制文件。所以其实一个文件到底会被如何翻译其实完全取决于上下文。 1.2程序被其他程序翻译成不同的格式 文中举了C语言的例子: 源文件(src.c)经过预处理器(cpp)生成被修改的源文件(src.i)然后经过编译器(ccl)生成汇编代码(src.s)然后是汇编器(as)生成可重定位的目标程序(src.o,从这里开始就是二进制文件了),最后经过链接器(ld)生成可执行文件。 这里我解释一下可重定位, 所谓的重定位定位的是地址, 因为只有经过了前面的编译处理才能得出最终数据段(.data)以及代码段(.text)的最终大小, 重定位在于为指令和全局变量等分配实际的系统空间。 1.3了解编译系统如何工作是大有益处的 如果能够弄懂编译系统工作原理, 可以在性能优化, 解决链接错误以及避免安全漏洞等方面有更加全面的了解。 1.4处理器读并解释存储在存储器中的设备 首先对于系统硬件组成的一个基本的认识 : 总线用来携带信息字节贯穿整个系统,其传送的字节块被称之为字, 字中的字节数是一个基本的系统参数也叫做字长, 一般为32位或者是64位