极客时间:操作系统实战45讲


程序编译过程:

gcc HelloWorld.c -E -o HelloWorld.i 预处理:加入头文件,替换宏。

gcc HelloWorld.c -S -c HelloWorld.s 编译:包含预处理,将 C 程序转换成汇编程序。

gcc HelloWorld.c -c HelloWorld.o 汇编:包含预处理和编译,将汇编程序转换成可链接的二进制程序。

gcc HelloWorld.c -o HelloWorld 链接:包含以上所有操作,将可链接的二进制程序和其它别的库链接在一起,形成可执行的程序文件。

 

.i:有很多#开头的常量或变量

.s:汇编指令

.o:看不懂

objdump -d HelloWorld可以得到有内存地址和二进制指令的汇编文件

 

手写操作系统

链接:https://zhuanlan.zhihu.com/p/373996858

操作系统启动经历的流程:

加电后启动BIOS固件,加载引导设备GRUB,引导后加载磁盘分区中的操作系统,可以在界面中自己选择

原文:简单解释一下,PC 机 BIOS 固件是固化在 PC 机主板上的 ROM 芯片中的,掉电也能保存,PC 机上电后的第一条指令就是 BIOS 固件中的,它负责检测和初始化 CPU、内存及主板平台,然后加载引导设备(大概率是硬盘)中的第一个扇区数据,到 0x7c00 地址开始的内存空间,再接着跳转到 0x7c00 处执行指令,在我们这里的情况下就是 GRUB 引导程序。

 

内核:宏内核,微内核,混合内核

宏内核有极致的性能,微内核有极致的扩展性,可移植性

内核功能:文件管理,内存管理,I/O管理,进程管理

 

三种内核架构

Linux内核:内核架构最为复杂,宏内核,但性能强劲

Darwin内核:微内核架构,ios内核

windows NT(new technology):混合内核架构,windows内核

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM