在过去的四年中,我作为应用程序开发人员(主要是C语言)在* nix环境中工作。
请建议一些书籍/博客等,以提高我的* nix内部知识。
在过去的四年中,我作为应用程序开发人员(主要是C语言)在* nix环境中工作。
请建议一些书籍/博客等,以提高我的* nix内部知识。
Answers:
除了在以前的帖子中已经做过的一些很好的建议之外,还有一些关于如何理解Unix的“精神”的建议:
Kernighan和Pike撰写的“ Unix编程环境”:一本旧书,但它展示了Unix环境的实质。它还将帮助您成为有效的Shell用户。
“不耐烦的Unix”是学习导航Unix环境的有用资源。我最喜欢的之一。
如果您想成为高级用户,没有什么比O'Reilly的“ Unix Power Tools”更好,它包含Unix专业人士的集体技巧和窍门。
我还没有看到的另一本有趣且具有教育意义的书是《操作系统,设计和实现》,这是安迪·塔南鲍姆(Andy Tanenbaum)的书,其中以12k行代码包含了完整的Unix操作系统的源代码。
我经常使用的书籍/网站/手册:
Linux内核:本书作为TLDP(Linux文档项目)的一部分在线出版。它不是最新的,也不是内部手册,而是提供了有关内核原理和机制的有用信息和入门资料。
了解Linux内核:恕我直言,这是具有操作系统设计和概念背景的初学者的最佳书。它是最新的,涵盖了2.6版的内核。网上有这本书的HTML版本,但我认为它很可能是warez。
在研究linux内核内部结构时,通常需要学习硬件的工作方式以及抽象提供的硬件。英特尔为此提供了出色的手册。
英特尔64和IA-32架构软件开发人员手册:最新的详细信息。
英特尔80386程序员参考手册:我知道它有点旧,但是我从该手册中学到了很多东西。
如果您需要研究操作系统的设计和概念,建议您阅读以下书籍: 操作系统概念。
简而言之O'REILLY Linux内核
和O'REILLY Linux设备驱动程序
Linux系统编程或Robert Love的其他任何书籍(这些都是O'Reilly的书籍):
我同意所有其他观点,我不得不说史蒂文斯的《 APUE》(我有第二版)是经典。我还要补充一点,埃里克·雷蒙德(Eric Raymond)的《 UNIX编程艺术》在我的榜单上排名第一。
好吧,对于BSD Unices来说,有4.4BSD操作系统的设计和实现,现在可以在http://www.freebsd.org/doc/zh/books/design-44bsd/上免费获得其部分内容。
Linux设备驱动程序是另一个很好的资源。这将为您提供另一种进入内部运作方式的方法。从序言:
从表面上看,这是一本有关为Linux系统编写设备驱动程序的书。当然,这是一个值得的目标。新硬件产品的流量可能不会很快放缓,并且有人将不得不使所有这些新小工具都可以在Linux上使用。但是本书还涉及Linux内核如何工作以及如何使其工作适应您的需求或兴趣。Linux是一个开放系统。希望通过这本书,它对更多的开发人员社区更加开放和易于使用。
要了解内核为什么要支持什么以及要支持什么,请看一下Eric Raymond撰写的《 Unix编程的艺术》。它需要相当高的哲学水平,但它与其他书籍的实质内容很相配。