操作系统笔记

1. 公设是学习和研究的起点,类似理科学中的公理和定理,以此为基础向上研究;

2. 硬件适配设备(外设)即 IO 接口,接口即标准;

3. 硬件输入输出上大体上分为串行和并行两种;

4. 显卡上的显存也要映射到物理内存;

5. 外设运行的原理:外设 -----》IO 接口 -----》IO 接口上的寄存器(常说的端口)----》 CPU;

6. 用户态和内核态是针对 CPU 来讲的,CPU 是运行在用户态(特权 3 级)还是内核态(特权 0 级);

7. 应用程序经过编译器编译后生成机器码在 CPU 上运行,当要调用硬件资源时,调用系统调用号,通过操作系统进行系统调用;应用程序作系统调用时 CPU 从特权 3 级进入特权 0 级,这种情形叫陷入内核;

8. 内存是随机读写设备,访问其中一处不用从头开始找,只需直接给地址就可以;

9. 内存分段是给 CPU 用的,分段的意义首先是为了重定位;假如没有分段,编译器编译后要将程序放在内存物理地址 100-200 处,这时该地址就不能放其他数据了;如果采用分段式,采用基地址 + 偏移地址方式,可以把程序放在任意内存段中。

10. 如何用 16 位寄存器访问 20 位地址空间呢?CPU 设计者设计,在 CPU 接到“段基址 + 段偏移地址“地址后,自动将段基址乘 16,即左移 4 位,然后再加上段偏移地址,这样就能找 20 位地址了;

11. 操作系统在平坦模式和多段模式下,应用程序操作内存方式不同。高级语言均采用平坦模式,仅汇编语言采用多段模式;

12. 操作系统采用虚拟内存管理即采用处理器的分页机制;

13. 程序对齐,为了使程序大小为 16 的倍数,编译器在程序中塞了好多 0,让程序出现很多空隙,这种情况中程序对齐;

14. 全局描述符表(Global description table),记录了段的起始,大小等信息;GDT是由操作系统处理供 CPU 使用的;

15. 内存访问方式:物理地址 -----》线性地址(选择子+GDT)-----》虚拟地址(CPU 开启地址分页功能后);

16. Linux 程序和 Windows 程序不能互相通用的原因首先是程序格式不同,Linux 程序格式是 elf 格式,Windows 程序是 PE 格式;其次,两个操作系统系统调用的接口不同,Linux 中API称为系统调用,是通过 int 0x80 这个软中断实现的,而 Windows 中的API 是存在于动态链接库文件(DLL)中的;

17. 程序中 static 变量即全局变量,是放在数据段中,局部变量放在栈内存中,方便随时清理;

18. 堆是程序运行过程中用于动态内存分配的内存空间,是操作系统为每个用户规划的,属于软件范畴;栈是处理器运行的必备内存空间,是硬件必须的,但也是操作系统分配的;

19. 解释型语言也叫脚本语言,脚本语言由脚本解释器执行。在脚本解释器看来,脚本代码就是一个长字符串。

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值