作者:jin冫g_-_- | 来源:互联网 | 2023-06-26 13:07
程序编译过程:gccHelloWorld.c-E-oHelloWorld.i预处理:加入头文件,替换宏。gccHelloWorld.c-S-cHelloWorld.s编译:包含预处
程序编译过程:
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内核