程序员的自我修养0

  • 导师给了一个书籍清单,其中<<程序员的自我修养>>这本书旁边写了个必修,想来是非常重要的书籍了,所以,我决定花时间啃完这本书,并且把重要的内容做成笔记,分享到csdn
  • 阅读该书需要的前置知识
    1. 操作系统
    2. 计算机组成原理
    3. linux,我之前有发布过linux文章,把那个文章看完即可
    4. c++/c

需要提前知道的一些小知识点

  1. 北桥芯片(North birdge/PCI bridge) : 随着图形化操作系统的普及,游戏是3d游戏和多媒体的发展,慢速的i/o总线以及无法满足图形设备的巨大需求,为了协调cpu,内存和高速的图形设备,人们专门设计了一个高速的北桥芯片,以便他们之间可以高速的交换数据
  2. 南桥芯片(South birdge/ISA birdge) : 北桥连接高速设备,如果这个时候再把低速设备连接到北桥芯片就会拖累速度,所以我们将鼠标键盘等低速设备连接到南桥芯片,然后南桥芯片再连接到北桥上
  3. 对称多核处理器(SMP,symmetrical Multi-Processing) : 就是各个CPU在系统中所处的地位和所发挥的功能都是一样的,但是比较昂贵和奢侈,并且只适用于问题可以比较简单分解的情况,所以在商用服务器和需要大量计算的环境
  4. 多核心处理器(multi-core Processing) : 其实就是SMP的简化版,逻辑上看来两者是一样的,只是各个处理器共享比较昂贵的缓存等部件,只保留多个核心,并且以一个处理器的外包装打包发售
  5. 推荐阅读https://www.cnblogs.com/bombe1013/p/3294307.html
  6. 之前学习硬盘,我们都只有硬盘由多个盘片,每个盘片的两个盘面都可以存储数据,一个盘面又会划分多个磁道,每个磁道又划分为若干个扇区,这就是硬盘的划分方式,每个扇区一般为512字节,但是存在一个问题,就是每个磁道的周长是不一样的,如果每个磁道有相同的扇区数,你们最内侧磁道数据肯定越密集,越外侧越稀疏,会造成浪费,但是如果每个磁道扇区数目还不一样的话,也会造成计算困难,所以现在为了屏蔽这些复杂的硬件细节,推出了LBA方式,整个硬盘的所有扇区从0开始计数,叫做逻辑扇区号,待真正需要用到的时候,在通过一定的方式转换为实际的(盘面号,柱面号,扇区号)
  7. 源代码变成可执行文件需要四步
    1. 预编译(compile)gcc -E hello.cpp -o hello.ii ,如果是.c文件,生产的预编译文件的后缀应该是.i,预编译的特点是,主要处理#有关的内容,比如
      1. #include,将被包含的文件插入到预编译指令的位置
      2. #define,将宏常量展开,也就是代码中用到宏常量的地方,全部用值替代
      3. 删除所有注释
      4. 保留@pragma
    2. 编译gcc -S hello.cpp -o hello.s,生成汇编代码文件,里面的都是汇编语言
      1. 词法分析
      2. 语法分析
      3. 语义分析
      4. 优化
    3. 汇编(assembly)gcc -c hello.cpp -o hello.o,将生成目标文件,文件内的内容是机器可以直接执行的,这个过程比较简单,只需要对照机器语言-汇编语言对照表,一一翻译即可
    4. 链接生成可执行文件.out
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值