我如何才能完全理解操作系统的工作原理?
我知道这个问题的答案,但我认为我需要帮助才能找到答案。
我的大学讲师告诉我了解操作系统的最佳方法是“深入了解”Linux。实际上,有人能告诉我我该如何去做吗?我真的不太了解 Linux 或 dissamblers 等?
此外,任何其他有用的提示也将非常受欢迎。
我问这个问题的原因是因为最终我希望能够重写部分内核,优化操作系统,制作一个“准系统”版本,因为我对电子交易平台编程/高频交易非常感兴趣。
I have an idea of the answer for this, but i think i need help with the answer.
My university lecturer told me the best way to learn about an OS was to 'get inside' Linux. Would someone be able to tell me, practically, how i could go about doing this? I dont really know too much about Linux or dissamblers etc?
Also, any other useful tips would be very welcome.
The reason i am asking this is because eventually i want to be able to re-write parts of the kernel, optimise an OS, make a 'barebones' version as im very interested in electronic trading platform programming/high frequency trading.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我在学校读过这本书的一些章节:
Andrew S. Tanebaum 的《操作系统设计与实现》。
你可以看一下。
I read some chapters of this book in school:
Operating Systems Design and Implementation by Andrew S. Tanebaum.
You may take a look at it.
前往 OSDev wiki - 对于初学者来说这是一个很好的资源,而且比直接跳入 Linux 内核的火要友好得多。
http://wiki.osdev.org/
Head over to the OSDev wiki - it's a great resource for starters and much friendlier than jumping directly into the fires of the Linux kernel.
http://wiki.osdev.org/
有很多关于这个主题的书。这里甚至还有一个免费的 - Linux 设备驱动程序。将 LXR 也算作您的资源之一。
There are many books on the subject. Here's even a free one - Linux Device Drivers. Count LXR as one of your resources too.
其实在我开始做linux开发的时候,让我很好的理解了OS的作用的书就是《ARM架构参考手册》。
我了解通用处理器如何工作的基本概念:
各种模式(管理程序、用户等)、虚拟内存、页面、页表的概念。各种堆栈等......
然后,所有关于用户空间与内核空间、系统调用、进程、线程执行上下文等的事情......都非常适合我对处理器的心理模型。
然后我读了《Linux设备驱动程序》,这是第二版,但此后已经出版了第三版,它教会了我操作系统如何工作的一个方面。所以,编程书很好,但了解处理器的工作原理会有很大帮助
In fact, when I started to do linux development, the book that gave me a good interstanding of the role of an OS, was the "ARM architecture reference manual".
I understood basic concepts of how a general purpose processor works :
the various mode (supervisor, user, etc...), the concept of virtual memory, page, page table. The various stacks etc...
And then, all this things about userspace vs kernelspace, system call, process, thread execution contex etc... were fitting very nicely on the mental model I had of a processor.
Then I read "Linux device driver", it was the second edition, but a third one has been published since, and it teached me an aspect of how an OS work. So, programming book are fine, but understanding how a processor works is a great help