LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: archenemy

应用软件是否可以编进内核里?

[复制链接]
发表于 2010-2-5 08:16:58 | 显示全部楼层
不是太好吧!内核里的代码不能依赖其它外部库文件,要独立运行。所以如你所想的话,必将静态连接一大堆代码,内核体积就很巨大。
而且现在对安全性、稳定性考虑,都提倡能移出内核的,尽量移出。像以前的httpd内核模块,当时可能是linus想玩玩、兼实验性质的,不久就被裁剪掉了。
回复 支持 反对

使用道具 举报

发表于 2010-2-5 10:32:41 | 显示全部楼层
1.什么东西应该进内核呢?

最基本的东西应该进去,因为大家都用。

2.如果把gnome编译到内核里面会怎么样呢?

会有很多人重新编译内核剪除gnome,应为很多人不用。

3.能不能提升性能呢?

应该不会。

假设在gnome-terminal里面cp一个文件,

那么cp这个命令应该是调用libc中的buffered i/o函数,

而libc里面的buffered i/o是如何实现的呢?是调用kernel提供的system call里面的unbuffered i/o,

4.你即使编译进去有能怎么样呢?

内核会很大,而且你cp一下还是这个调用顺序,

不管是是否吧libc编译进入内核,系统运行的时候内核是在内存里面的,libc也是在内存里面的,

可能有些人说了,我要重新编写cp的源代码,我要直接走system call,但是效果是一样的,而且你需要制定buffer size,这个就不细说了。

5.把libc直接编译进内核和现在有什么区别呢?

内核是开机就加载,而libc是在文件系统里面的,后挂在文件系统以后运行init只有才加载的,

反正是加载,就是什么时候加载的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-5 13:16:43 | 显示全部楼层
楼上的回答真全面!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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