《程序员的自我修养》读书笔记(一)

1.第一章 温故而知新

1.1 从Hello World 说起

对于下面这样一个简单的Hello World程序, 提出以下的问题:

#include <iostream>
int main()
{
    printf("Hello World!") ;
    return 0;
}
  • 编译器编译产生的可执行文件中是什么?除了机器码还有什么?他们是怎么存放的?怎么组织的?
  • C语言库和运行时库是怎么回事?是怎么实现的?
  • Hello World 程序是怎么运行起来的,操作系统是怎么装载他的,他从哪里开始执行?到哪结束?main函数之前发生了什么?main函数结束之后又发生了什么?
  • Hello World程序运行时在内存中是什么样子

以上几个问题是我挑选出来概念比较模糊的。希望在后面的部分能够较好的解决这些疑惑

1.2 万变不离其宗

​ 计算机硬件有三个部分最为关键:CPU,内存,IO控制芯片。对于一些高级语言的开发者,基本上只需要关注CPU,对于提供虚拟机的一些语言,甚至连CPU都不需要关心。

IO控制芯片具体是哪些部件,是指声卡,显卡,磁盘控制器吗?

​ 早期,计算机CPU和内存速度相似,而IO设备速度慢很多,为了协调CPU与IO设备之间的速度,并且与之有较为统一的接口进行通信,为每个IO设备设计了IO控制器。当时,所有的IO控制器和CPU,内存是连接在同一条BUS上的。

​ 后来,随着CPU速度超越内存速度,CPU和内存通过一条系统总线进行通信,其中系统总线与内存速度一致,而CPU采用倍频的方式进行工作&#

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值