Notes:《程序员的自我修养——链接、装载与库》

记录下每章的知识点,便于以后对着这份知识图谱,复习和重组。

温故而知新

万变不离其宗

掌握硬件中的核心部件:CPU、内存、I/O控制芯片
了解CPU核心频率提升过程中硬件构架的演进:从Bus,到PCI/ISA,再到PCI Express

站得高,望得远

系统软件分为:平台性的和程序开发性的
平台性系统软件:操作系统内核、驱动、运行库、系统工具
程序开发性系统软件:编译器、汇编器、链接器

软件体系结构层与层之间的Interface

Application Programming Interface:Glibc库提供的POSIX的API
System call Interface:Linux使用0x80号中断作为系统调用接口

不要让CPU打盹

多任务系统:操作系统接管了所有硬件资源,本身也处于受硬件保护的级别,所有应用都以process方式运行在比操作系统权限更低的级别,每个process有自己的独立地址空间,互相隔离

抢占式CPU分配方式:CPU由操作系统统一分配,因为CPU分配给每个process的时间都很短,即CPU在多个process间快速切换,造成了很多process同时在运行的假象

文件在磁盘中的结构

以Linux下的文件:/home/user/test.dat,长度8000字节为例,Linux的ext3文件系统,可能将该文件以如下方式存储:前4096字节,存储在磁盘扇区1000~1007号,每个扇区512字节,8个扇区4096字节;文件4097~8000字节共3904字节,存储在磁盘扇区2000~2007号,8个山区4096字节,剩下的192字节没有用到,无效。

这里还提到了硬盘管理一种LBA方式,就是为硬盘分扇区,并将所有扇区从0开始编号,硬盘信息只对文件系统展示自己的扇区编号,屏蔽磁道、盘面等概念。和前段时间接触到的预分配机制很像,也是将SD卡分成数据块,对数据块编号。

文件系统读取磁盘中信息时,首先向1000~1007号扇区发送read请求。磁盘驱动向硬件发送I/O命令,最常见的方式就是读写寄存器。在x86平台上,有65535个硬件寄存器,不同硬件分配到不同端口地址上。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值