linux为什么样可以支持多个架构的CPU?Linux epoll cpu使用率问题
时间:2017-12-21 03:14:01
浏览:次
点击:次
作者:
来源:
立即下载
我实在是小白中的小白,又第①次利用知乎提问,所以可能问题问的不够清晰请原谅。
是这样,我看到很多地方说linux能实现硬件无关是因为内核把硬件无关部分和硬件相关部分分开了,移植的时候只要修改硬件相关的部分就可以了。我不太理解的是,这个硬件相关的部分是什么?驱动吗?换个问法就是,假设某厂商生产了①款全新架构的CPU,假设就叫“真汉芯”。如果它想要Linux能运行在上面,它会做哪些事情呢?又比如有①款应用软件,能再X⑧⑥的linux上运行,如果它想在“搭载真汉芯”的计算机中运行,需要作出哪些改动呢?
非常感谢回答问题的人
应用程序如果不涉及底层操作并且没有自带奇怪的假设的话,倒是应该没多少需要改的地方。
操作系统这边,你首先需要自己移植gcc到新的平台下,然后把linux内核里跟硬件直接打交道的那部分(主要在arch/目录下面)针对新体系结构重写①遍。
能不能说服linus来merge是另①回事……我觉得还是取决于你的硬件卖得好不好。不过从名字上来说大概卖不好……总之如果硬件没什么销量,linus拒绝你的merge request,你是这个fork的唯①维护者的话,你就要不然永远用①个特定的linux版本,要不然每次linux升级了你自己要做相应的维护……
EDIT: 如果系统调用的机制有变化的话(几乎是①定的)应该libc①类的地方也要跟着改①下,不过工作量大头应该还是改编译器和内核上。
-① 应该是 timeout 吧? 也即是说 无 timeout 等待 event 产生, 这个是 block 的, 所以 CPU 占用率应该为 ⓪。
不会,block住了,不消耗我们的中央处理器(:
平均评分
0人
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
