首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

关于汇编,C,操作系统的联系,有些疑惑

2013-01-06 
关于汇编,C,操作系统的联系,有点疑惑比如一电脑,里面本身有汇编的编译器还是装了操作系统才有的,那C的编译

关于汇编,C,操作系统的联系,有点疑惑
比如一电脑,里面本身有汇编的编译器还是装了操作系统才有的,那C的编译器也是本身电脑有的吗??要是我写了个操作系统(大部分C嵌套小部分汇编)装在一部还没装任何操作系统的新电脑里,电脑如何工作,应该里面有个C编译器才行吧???
还有假如我装双系统(之前系统为windows,再装一个linux),都装在C盘,那么在linux下,其他盘的内容应该还存在吗?他们是共享其他硬盘空间还是划分为两部分,分别给这两个操作系统使用啊??

问题有点多,主要是最近看现代操作系统这本书想到的问题。
[解决办法]
无论是汇编还是 c 的编译/链接程序,都不是操作系统自身所附带的,往往是另外的独立的软件包安装到系统上才存在了。
自己写的操作系统,不论用的是什么语言,最后都是要建立成完整的引导和执行模块并创建到相应的磁盘空间上的。如果你将 c 的编译器打包进了你的操作系统,那么安装了这个操作系统之后,就会有它;如果没有将其包括进来,那就没有。
linux 和 windows 能安装在同一分区里吗?好像不能吧。至于其它盘,看具体的格式了,linux 所支持的分区格式大致是 FAT 、FAT32 ,至于 ntfs 分区,有些要加载相应驱动的吧。
[解决办法]
之所以叫做操作系统,最基本的是完成和cpu及各种硬件外设的通信,这些一般都是汇编来实现的,包括引导程序,初始化CPU及各种I/O设备,实模式转换到保护模式等等。至于编译器只是为了提高代码的生产效率而产生的了,也就是说,不需要编译器一样可以写操作系统,只是相当麻烦了。
[解决办法]
对于大部分由C和ASM构成的OS来说O,已经编译ok了,已经是可执行的机器码了,还要编译器干嘛?
[解决办法]

引用:
我也有同样的疑惑啊。操作系统如果是用C和少量汇编来写的,那么计算机是如何识别的呢?假如我现在把操作系统代码都写好了,要把它安装到一台裸机上,用什么来编译,难道是操作系统程序中还得有编译自身代码的程序?静待各位高手解释。

我们所用的系统安装盘,里面是操作系统代码已经编译好的文件,也就是可执行的二进制文件,还需要编译吗?
所以可以是在有编译器的A机上写操作系统代码并编译成二进制文件,再安装到B裸机上.
[解决办法]
编译器只负责编译成1010之类的cpu能译别的东西,而os这东西也就是已编译好的01010文件.cpu是能识别这些文件的,跟os有没有编译器没有关系,
要不是解释语言,别执行,别解释.如vb 要解释器的支持

热点排行