硬件与内核的关系,或者说 硬件与编译器的关系

来源:百度知道 编辑:UC知道 时间:2024/05/30 23:15:45
举个例子//
(回答具体的 200++的奖励哦,,)
像 C语言自带的数据类型 int 整型。假设占 4个字节,那么在硬件上是怎么实现的?
也就是说,在Linux下,我用 int 定义了一个占4个字节的空间,这些是怎么在硬件上 实现的?或者说 编译器是怎么识别和定义 int的??
像 系统调用函数 open();全是C语言编写的,那么是怎么在硬件上实现的??
mxy8898 - 助理 三级
我看了一下你提供的资料,不对啊,上面所说的是 建立在程序基础上的啊~~不是硬件啊。
回答者:匿名 8-14 02:44
你说的是屁话啊? 举的是什么例子啊??硬件和内核没有关系?
硬件和编译器没有关系? 那你不要硬件的支持来运行操作系统啊?不要硬件的支持来编程啊? 本人是学嵌入式的!,我和你才没有共同语言,,还有我不信椰树。。

dgandd - 见习魔法师 二级
你答非所问啊..你说的我都知道,我就是想了解一下更底层的东西。。。
===================================================
这可能和电子技术有关系,请高人,指导一下。。

高级语言编译器是把高级语言编译成汇编
所谓4个字节 无非就是把4个字节一起操作,不过操作代码由低层来完成
你看不到

举个例子 比如加法 A+B = c
c 大于一个字节

程序会逐个字节相加 然后假如某个字节溢出 则进位
目前常用硬件多为16bit 32bit
很多类似这种操作都是硬件完成的
假如想了解具体电路 可以参看数字逻辑
硬件加法器 + 乘法器 之类

C语言的运行在操作系统上,系统的运行靠内核来维持,内核的运转才要靠硬件的工作.
你的INT数据类型占用的4的字节是指存放在物理内存中的大小,而硬件是不会识别你这个INT的,你要用到这个INT类型的时候会调用到他,从物理内存中提取,操作系统将他存放到ROM内存中,然后等待操作系统的调用,系统拿到这个INT然后通过编译器的转换最后在应用程序中表示出来.

任何的编程语言都不会在硬件上有什么体现,不要说实现.
语言的实现要靠应用程序,而应用程序的运行要靠操作系统.你的每一个组成计算机的部件都不认识OPEN,INT等等标签

INT的数据存放与别的类型数据存放没有不同(数据长短会区别)
真正的不同是在调用该段数据时所进行的处理(编译时就已经决定了)
也许可以尝试下一个数据和指向它的指针用不同数据类型调用会有何不同
(由于本人长期使用的是汇编,上面只是猜想而已)

看就知道LZ太菜了.程序的开发有专门的工具,比如微软的可视化VB软件,程序员只需要知道VB语言代码,在软件上编写程序.微软的可视化VB软件是编译出CPU识别的代码.在运行程序的时候CPU才能进行计算.这非常简单的程序开发.大型的软件开发需要得到更多技术支持.比如3DSMAX这类的软件需要CPU厂商和系统开发商的支持才行,在中国目前都还有这样的公司有能力开发出这样的软件,这样的人才都出国了.建议LZ去谷歌.全世界的人都用他,中国人用百度.

像这样的专业性这么强的问题最好去开发人员一类的论坛去问,在这种通用论坛很难找到满意的答案。

操作系统主要分为两部分:内核(Kernel),壳(Shell)。