UNIX操作系统是怎么被编译的

Gs_Yu 2015-01-06 10:32:42
UNIX是用高级语言C语言写的,比较容易移植(书上写的)
问题:
1.既然是用C语言的写的,那么肯定要经过编译,但是编译UNIX的编译器怎么来的?
2.编译器也是应用程序,在操作系统被编译前,它又运行在哪里?

希望各位大侠帮帮我,困扰了很长时间
...全文
275 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
一根烂笔头 2015-01-06
  • 打赏
  • 举报
回复
1、这里好似有“鸡生蛋蛋生鸡”的悖论,其实没有!最早的C编译器用汇编写的,汇编器由大神用机器码(01)写的,机器码由电气工程师设计的,电路就是逻辑电路一堆晶体管,目前是集成电路,最早是继电器和真空电子管。在汇编器出来之前,以及没有大的存储器的时代,纸带是个好东西,上面一排8个位置,有的有孔,有的没孔,打孔表示1,不打孔表示0,大神们都有用01写程序,一写一长条,屌不屌? 第一个C编译器不知道谁写的,里奇自己用C写了一个最早的C语言版本的C编译器 2、可交叉编译!用某个机器A编译另外一个机器B的程序,生成机器B的机器码!这个机器A可以是有OS的也可以没有OS的,哪怕是能跑编译器的电路也可以!
赵4老师 2015-01-06
  • 打赏
  • 举报
回复
搬开关,在卡片上穿孔,…… 也能编程。
赵4老师 2015-01-06
  • 打赏
  • 举报
回复
先有鸡还是先有鸡蛋? 最早的鸡是从什么蛋中孵出来的? 最早的鸡蛋是哪个鸟类下的?
luciferisnotsatan 2015-01-06
  • 打赏
  • 举报
回复
lz去了解下计算机的发展历史,就知道了。 不然,在编译之前,应该要先写代码吧。那写代码的编辑器也是应用程序吧,连操作系统都没有,那怎么写代码?
luciferisnotsatan 2015-01-06
  • 打赏
  • 举报
回复
引用 1 楼 FightForProgrammer 的回复:
还有个叫汇编的东东。
汇编之前,还有个叫机器码的。
ForestDB 2015-01-06
  • 打赏
  • 举报
回复
鸡生蛋,蛋生鸡的问题。
u010231493 2015-01-06
  • 打赏
  • 举报
回复
首先。unix下一般用gcc编译C语言,g++编译c++ 编译其实是四个过程:预处理、编译、汇编、链接 由gcc这个程序执行。 gcc只是个程序,程序也就是一堆二进制码构成的东西罢了! 写个字符串变成二进制码的程序不冲突呀!
帅得不敢出门 2015-01-06
  • 打赏
  • 举报
回复
编译器不一定要用c写。
FightForProgrammer 2015-01-06
  • 打赏
  • 举报
回复
还有个叫汇编的东东。
「已注销」 2015-01-06
  • 打赏
  • 举报
回复
在写 C-Compiler 之前: 一般要写一个 Pre-C-Compiler ,这个pre-c也能编译C语言,但是,是编译最原始语法的C语言。 再用Pre-C-Compiler 编译用原始C语言写出的有高级特征C语言编译器的源代码。 问题又来了,Pre-C-Compiler是拿什么做出来的? 当然是用现有语言和编译器。 当然,你也可以直接用现有的语言和编译器直接写高级特征的C语言编译器,但这样的话,你的这套编译器工具试用范围就有限了。因为在很多OS上都提供了Pre-C编译器,一般是一个名字叫CC的程序。

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧