您的位置:首页 > 职场人生

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

2017-12-19 00:00 302 查看
记录下每章的知识点,便于以后对着这份知识图谱,复习和重组。

温故而知新

万变不离其宗

掌握硬件中的核心部件: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个硬件寄存器,不同硬件分配到不同端口地址上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: