关于汇编,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了,已经是可执行的机器码了,还要编译器干嘛?
[解决办法]