LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4330|回复: 10

请问一下,Linux的内核是用什么语言编写的啊

[复制链接]
发表于 2006-1-26 16:24:29 | 显示全部楼层 |阅读模式
Linux的内核用的是什么语言啊!
发表于 2006-1-26 16:36:59 | 显示全部楼层
C 語言呀 >_<
回复 支持 反对

使用道具 举报

发表于 2006-1-27 14:52:56 | 显示全部楼层
C + 汇编
回复 支持 反对

使用道具 举报

发表于 2006-1-28 19:39:29 | 显示全部楼层
显然是用C写的
回复 支持 反对

使用道具 举报

发表于 2006-1-29 10:32:00 | 显示全部楼层
汇编+C语言
回复 支持 反对

使用道具 举报

发表于 2006-1-29 11:52:17 | 显示全部楼层
用C语言的原因是:效率较高。
若用C++,虽然支持OOP,但效率低。用C语言仍然可以模拟一定的OOP效果。
当然,还有一个原因,UNIX是用C重写的。而Linux是UNIX的变种,当然用同一种语言兼容性较好。
针对特定平台的版本当然还要有部分汇编代码。
回复 支持 反对

使用道具 举报

发表于 2006-1-30 12:48:51 | 显示全部楼层
to lsg-debian:
C++效率要高于C,可以比较一下std::sort和qsort的效率。而且不是因为UNIX是拿C写的。因为GNU就是GNU's Not Unix,Linux内核也是重写,而不是抄袭Unix,否则会导致不必要的麻烦。
Linux用C和汇编,而不是C++还因为
1、在Linux写出来得时候,C++还是一门比较新的语言,尚在标准化之中(C++在1998年才标准化完,而Linux在1991年就出了0.01),当时语言本身也有很多的问题,无法保证写出来的程序的可用性和对于将来的兼容性;
2、当时的GNU软件全部是用C写出来的。原因同上。用C语言能保证内核与shell和其他软件的结合。而且RMS也不喜欢C++,C++也确实有点复杂了。
回复 支持 反对

使用道具 举报

发表于 2006-1-31 13:25:11 | 显示全部楼层
看来楼上喜欢C++,其实C++并不复杂,关键是OOP复杂。
丘奇(Church)猜想表明:有明确步骤的计算均可通过图灵机实现。即语言无关性。
我觉得不用C++的原因还是因为继承等机制使效率明显下降,当然也有楼上所讲的当时C++尚不成熟的原因(像sina选用FreeBSD而不是Linux)。
回复 支持 反对

使用道具 举报

发表于 2006-1-31 13:45:24 | 显示全部楼层
是gnu c, 和ansi c不完全符合
<<Linux Kernel Development>>第一章就有说明...
回复 支持 反对

使用道具 举报

发表于 2006-2-6 11:57:17 | 显示全部楼层
应该是 GNU C + 汇编

内核用了许多 GNU C 的扩展
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表