我对操作系统编程很感兴趣,我想白手起家写我自己的内核。我精通C语言,还懂一点汇编。我打算买一本Andrew tanenbaum的书:"Operating systems Design and implementation“,开始读这本书。每个人都告诉我,这只是浪费时间,如果我放弃写自己的内核的想法就好了。但我只是想知道一切是如何在幕后工作的,学习编写自己的内核只是为了教育目的,我没有任何幻想,我的操作系统将是巨大的和可用的。
除了购买A.T OS Design and Implementation之外,还有什么方法可以了解OS在幕后是如何工作的?是否足以构建我自己的linux发行版?学
我对所有这些细节以及它们如何在Linux中相互关联感到有点困惑。"Unix内部“一书指出,lightweight process (LWP)是内核支持的用户线程,内核看不到进程内部的线程。对于Linux,这仍然是正确的吗?
据我所知,用户空间线程被安排在进程内部,通过更高层次的抽象作为pthread库,而不需要内核的干预。我说的对吗?
我对所有这些低级的东西,汇编语言都比较陌生。想要了解更多细节。为什么Linux和Windows汇编语言之间存在差异?
据我所知,当我编译一个C代码时,操作系统并不能真正生成纯机器或汇编代码,它会生成依赖于操作系统的二进制code.But,为什么?
例如,当我使用x86系统时,CPU只理解x86 ASM am I right?.So为什么我们不写纯x86汇编代码,为什么根据操作系统有不同的汇编变体?如果我们编写纯ASM或操作系统生产纯ASM,那么操作系统之间就不会有二进制兼容性问题了吗?
我真的想知道他们背后的所有原因。任何详细的答案,文章,书都会很棒。谢谢。
我正在遵循"Linux从零开始“的图书版本8.0,我到达了部分(5.7 )。Glibc-2.25)在尝试配置glibc时,我会得到以下错误:
这些关键程序丢失了或者太老了: gawk
当我在终端中写gawk时,我得到了这样的结果:
Command 'gawk' is available in '/usr/local/bin/gawk'
The command could not be located because '/usr/local/bin' is not included in the PATH environment varia
我是一个中级程序员,有丰富的Linux内核编程经验。在实习期间,我主要参与了内核和驱动程序代码的调试。最近,我完成了罗伯特·洛夫( Robert )的“内核开发”一书的研究。我正在阅读Jonathan编写的Linux设备驱动程序手册。但我现在面临着一个令人不安的问题。这些书都没有教我如何编写真正的(硬件)设备驱动程序。LDD3e的书告诉我如何编写我非常擅长的基于内存的软件驱动程序和sysfs接口。那我从哪里开始呢?要求是什么,我该怎么做?
P.S:我已经开始阅读“的基本Linux设备驱动程序”一书。