美文网首页
先有操作系统还是先有编译器?

先有操作系统还是先有编译器?

作者: 不一样的卡梅利多 | 来源:发表于2017-06-14 14:31 被阅读451次

这个问题有点儿像是 最古老的 现有鸡和先有蛋一样。但是这个问题是有答案的

1、最开始编写代码都是 一串 二进制代码 01 。先用机器代码写很简单的操作系统

 2、在简单的操作系统上面 写简单的编译器

 3、在操作系统上面写代码 ,通过编译软件编译成 机器码。

 4、操作系统与编译器循环迭代。

 5、编译器与操作系统相互优化。

 所以 ,

 是先有 操作系统的,后有编译器,用编译器编译后续操作系统  代码

  附:操作系统启动过程 (30天自制操作系统)

1、   计算机通电 ,bois 自检  bois 代码加载到内存地址,一般内存的某段地址是bois 代码独用的。操作系统与应用程序不能访问

 2、 bois 程序执行  磁盘第一个扇区 (512 字节)的代码。第一个扇区里面的启动代码应该包含加载操作系统代码到内存

 3、 启动扇区调用“bois 函数” 讲程序执行位置移动到操作系统所在的内存的地址。

 4、操作系统这样就开始运行了。

第一扇区 汇编代码 示例:

; hello-os

; TAB=4

; 标准FAT12格式软盘专用的代码 Stand FAT12 format floppy code

DB 0xeb, 0x4e, 0x90

DB "HELLOIPL" ; 启动扇区名称(8字节)

DW 512 ; 每个扇区(sector)大小(必须512字节)

DB 1 ; 簇(cluster)大小(必须为1个扇区)

DW 1 ; FAT起始位置(一般为第一个扇区)

DB 2 ; FAT个数(必须为2)

DW 224 ; 根目录大小(一般为224项)

DW 2880 ; 该磁盘大小(必须为2880扇区1440*1024/512)

DB 0xf0 ; 磁盘类型(必须为0xf0)

DW 9 ; FAT的长度(必??9扇区)

DW 18 ; 一个磁道(track)有几个扇区(必须为18)

DW 2 ; 磁头数(必??2)

DD 0 ; 不使用分区,必须是0

DD 2880 ; 重写一次磁盘大小

DB 0,0,0x29 ; 意义不明(固定)

DD 0xffffffff ; (可能是)卷标号码

DB "HELLO-OS  " ; 磁盘的名称(必须为11字?,不足填空格)

DB "FAT12  " ; 磁盘格式名称(必??8字?,不足填空格)

RESB 18 ; 先空出18字节

; 程序主体

DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c

DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a

DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09

DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb

DB 0xee, 0xf4, 0xeb, 0xfd

; 信息显示部分

DB 0x0a, 0x0a ; 换行两次

DB "hello, world"

DB 0x0a ; 换行

DB 0

RESB 0x1fe-$ ; 填写0x00直到0x001fe

DB 0x55, 0xaa

; 启动扇区以外部分输出

DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00

RESB 4600

DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00

RESB 1469432

相关文章

  • 先有操作系统还是先有编译器?

    这个问题有点儿像是 最古老的 现有鸡和先有蛋一样。但是这个问题是有答案的 1、最开始编写代码都是 一串 二进制代码...

  • 你不知道的JavaScript-上册-第四章-提升

    先有鸡还是先有蛋?什么意思 编译器再度来袭?什么意思 函数优先? 小结? 第一个问题:先有鸡还是先有蛋? 来看代码...

  • 提升

    4.1 先有鸡还是先有蛋 代码执行自上而下? 所以,到底是声明(蛋)在前,还是赋值(鸡)在前? 4.2 编译器解释...

  • 编译器的"先有鸡还是先有蛋"?

    还真有人对这个问题孜孜不倦:-)既然我能设计编译器,那我设计编译器总不能直接用机器语言写吧,那我写编译器的源代码的...

  • 先有主子还是先有奴才

    先有主子还是先有奴才 先有鸡还是先有鸡子?曾有很多人为这个问题纠缠不清,争论不休。然而,有谁讨论过先有主子还是先有...

  • 光怪陆离答题铺

    提问一: 先有鸡还是先有蛋? 回答: 鸡蛋,鸡蛋,鸡在蛋前,所以先有鸡。 提问二: 先有男人还是先有女人? 回答:...

  • 先有面包还是先有爱情?

    1 上个周末,约了一位老同学W君吃饭,吃饭席间,聊起了当年一起读书的往事,聊到了现在的职业,聊到了家庭状况。 以前...

  • 先有鸡还是先有蛋

    先有鸡还是先有蛋? 如果你读过亚里士多德,那么这个问题很容易解决。答案是先有鸡。 首先,鸡和蛋,在时间顺序上没有先...

  • 先有鸡还是先有蛋?

    先有鸡还是先有蛋,这是一个颇有争议的话题. 今天我们就从分子生物学角度来探讨一下吧! 首先,生物的繁衍主要来自两点...

  • 先有需求还是先有技术?

    菜园子第403个话题 先有需求还是先有技术? 【话题分类】行业 【话题难度】★★★★ 昨日,马化腾发表公开信,陈述...

网友评论

      本文标题:先有操作系统还是先有编译器?

      本文链接:https://www.haomeiwen.com/subject/axgsqxtx.html