zoukankan      html  css  js  c++  java
  • 《Csapp》学习笔记(1)

    Andrew,gz,2013-3-17

    本文为《Csapp》的学习笔记,旨在加深对操作系统的认识,往“稀缺”程序员靠近。

    1. 信息是什么?

    信息是“位+上下文”。也就是说,信息在计算中如此表达,由多个有序位(BIT)及其值(0或1)组成的整体。

    2. 编译系统的大致流程

    wps_clip_image-5341

    图表 1 编译系统

    1.预编译阶段

    输入的是C语言的源文件,通常为*.c。它们通常带有.h之类头文件的包含文件。这个阶段主要处理源文件中的#ifdef、 #include和#define命令。该阶段会生成一个中间文件*.i,但实际工作中通常不用专门生成这种文件,因为基本上用不到;若非要生成这种文件不可,可以利用下面的示例命令:

    gcc -E test.c -o test.i

    2.编译阶段

    输入的是中间文件*.i,编译后生成汇编语言文件*.s 。这个阶段对应的GCC命令如下所示:

    gcc -S test.i -o test.s

    3.汇编阶段

    将输入的汇编文件*.s转换成机器语言*.o。这个阶段对应的GCC命令如下所示:

    gcc -c test.s -o test.o

    4.链接阶段

    将输入的机器代码文件*.s(与其它的机器代码文件和库文件)汇集成一个可执行的二进制代码文件。这一步骤,可以利用下面的示例命令完成:

    gcc test.o -o test

    信息的表示和处理

    3. 各类型的大小

    wps_clip_image-2209

    4. “大小端”(big-edian和little-endian)

    endian: The ordering of bytes in a multi-byte number.[3]
    端:在计算机系统体系结构中用来描述在多字节数中各个字节的存储顺序。

    wps_clip_image-21232

    图表 2 Mapping registers to memory locations

    5. 参考文献

    [1] ly61baby.http://blog.csdn.net/ly61baby/article/details/6767624[20130317]

    [2] GCC使用入门.http://developer.51cto.com/art/200609/32317.htm[20130317]

    [3] 大小端.http://www.eygle.com/digest/2007/01/whats_mean_endian.html

    [4] wiki.http://en.wikipedia.org/wiki/Endianness

  • 相关阅读:
    XmlNode中Value和InnerText的区别
    C# 后台POST和GET 获取数据
    XDocument简单入门
    一个基于jQuery的简单树形菜单
    使用C#的HttpWebRequest模拟登陆网站
    JS中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
    height、clientHeight、scrollHeight、offsetHeight区别
    使用httpwebrequest Post数据到网站
    sql语句中left join、inner join中的on与where的区别
    SQL Join的一些总结
  • 原文地址:https://www.cnblogs.com/facingwaller/p/2966770.html
Copyright © 2011-2022 走看看