热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

程序编译过程: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内核

 



推荐阅读
author-avatar
jin冫g_-_-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有