linux 书目

秦斌
2023-12-01
发信人: superwiles (wiles), 信区: KernelTech
标  题: 最近无聊,发个书目,适合进入faq
发信站: 水木社区 (Wed Apr 19 07:57:07 2006), 转信

         欢迎转载 请注明出处

在别的地方写的,转到这边。抛砖引玉, 希望能对初学者有所裨益. 希望大家多指正.

所 指得类unix系统 指得是包含unix(商标所有权归opengroup所有) ,以及unix各个变体(aix,hp-unix,Solaris,BSD, FreeBSD ,etc ) 以及克隆 例如linux.下面这个是目前最全面的谱系图,大家有兴趣 可以看看,了解一下.
[unix 谱系图]  [url] http://www.levenez.com/unix/[/url]


Step 0:
     这个阶段的同学基本对OS没有认识, 可以从安装系统, 配置系统,学习各种编辑器的使用,与脚本的编写.建议从Linux入手,毕竟比较容易得到各种发行版本,而且用户群比较大,有了问题容易得到解答.推荐的 发行版本是桌面Ubuntu,服务器 Debian.

   推荐教材:
    LinuxCBT  系列的培训教材不错, swf文件, 属于手把手教的,只是用英语教学.

    O'Reilly 出版了一系列的关于linux环境下的工具使用的书.  包括了Bash,vim , emacs,linux 配置等 很多.用到具体工具时可以参考.学习linux发行版本制作最好去检索LFS的相关信息。

    入门阶段各个linux社区的FAQ很重要,基本包含了初学者能碰到的大部分问题,好好利用.

Step 1:
    
      对于系统使用有了基本掌握之后,开始进入编写应用程序阶段,
      进入这阶段前提是C语言必须 有非常扎实的基础.
      能基本使用vim,emacs ,其中之一.
      基本会编写makefile.

      这阶段学习的必备之书是APUE.作者steven是我非常敬佩的前辈,
      可惜英年早逝.这本书讲解非常全面,初学会感到困难,但是坚持下来受益非浅.

      Howto write  makefile   这个有中文的,可以作为写makefile的参考.


     这里除了一般的应用程序外有3个重要的分支.

        A.网络编程.  类unix下有非常丰富的网络工具所以这个是很大的一类分支.
                     网络通信本质上也是进程间通信,所以steven的进程间通信3卷
                     本就是必看的书(steven生前只完成了2卷
                     第三卷由他的朋友续写.具体情况不明).作为更进一步可以
                     研究apache的衍生项目APR和ACE(这个需要比较深厚的C++
                     功底).可以说网络编程是一个非常大的分支,精通
                     需要耗费很多时间.研究内核看完steven的前2卷即可.

        B.Xwindows   这个涉及到GUI, 也是一个庞大的分支,研究内核只需要关注X
                     的架构和驱动之间的关系即可.这个分支很庞大,可是好的书其
                     实不多.只有92年的这个系列
                     O 'Reilly - The Definitive Guides To The X Window
                     Systems,
                     Vol 1 - Xlib Programming Manual, 3Rd Ed .

        最近xserver的架构有很大的变化,xgl的出现石破天惊,看过novell2月在法国的演示。真是无话可说.只能说在创新这一点上我们还没有资格来谈.这点我同意BNN的观点,这10年我们的任务就是学习,追赶.

          C. 脚本.研究内核掌握Bash即可,不过这几年perl,php,python,ruby都很
             火爆,国内这这方面也很红火.

Step2:
         开始进入OS 的正题, 首先要掌握基本概念
         首推 operating system concepts 第六版
         通过这本书可以掌握基本概念, 有个感性认识.
         然后可以看<<操作系统设计与实现>>
         这本书是结合minix这个教学系统来讲的,也是经典书籍
         不过很少有人有耐心看完上下两册.
        
         还有一本很好的书籍
         Operating Systems: A Design-Oriented Approach
         这本书很难找,
         当年我从一堆垃圾书中掏到这本世图的影印本,印数很小,
         不过确实是一本好书,作者把每章的概念
         对应到java代码 ,深入浅出,可惜没人重视.

          M. J. Bach , The Design of the UNIX Operating System,
         Prentice-Hall
         经典中的经典

         这个阶段主要是从总体上把握OS的整体结构,对各个概念基本了解.

step 3:
          
           以linux为平台的内核开发的初级阶段.

            <<understand linux kernel>> 3th

            <<Linux Device Driver >> 3th

            <<Linux kernel Develop>> 2th
        
            <<Approach for.x86.and.PowerPC.Architectures>>
 

            介绍unix OS内核的几本重要的书:

              The Design and Implementation of the FreeBSD Operating System
              FreeBSD 的经典诠释.

              The Design and Implementation of the 4.4BSD Operating System

              4.4BSD-Lite的经典诠释
                  

             《 UNIX 高级教程系统技术内幕 》中文的是96年的老版本,
              听说出新版了,还没到手,谁有希望可以分享一下。

             Solaris Internals: Core Kernel Architecture
    
Step4:
          从这里开始进入了OS的具体实现和内核很具体的分支.
          进入这章之前必须要对编译器, 体系结构有中等水平的认识.
          也就是说编译器要看过龙书,体系要看过量化方法这本.
          最好加上see mips run
          调度, 内存管理, 网络协议栈,文件系统,体系相关.进程管理,
          Linker&&Loader  ,  tool-chain
          这些都是很重要的分支都有很重要的应用.

          对于调试器原理要有一定的了解,能熟练使用


          The Linux&reg; Networking Architecture:
          Design and Implementation of Network
 
          Understanding The  Linux Virtual Memory Manager  Mel Gorman  ,
          和这本书的作者讨论过, 很nice的人,却在ibm做java coder
          好奇怪 呵呵。2.4内核内存管理的全面分析, 2.6中改动不小
 
          linux 情景分析 2.4 kernel 的全面分析. 浙大的毛德操,李善平老师力作.

          linux 完全注释  linux 早期版本的全面解析 国人力作

          [url]www.opensolaris.org[/url]
           solaris 代码已经公开  可以参考

          Wiley.UNIX.Filesystems.Evolution.Design.and.Implementation

          SunOS50MultithreadArchitecture

          Wiley - Symbian OS Internals {Real-time Kernel Programming}

          这一阶段 书籍已经是辅助,主要是靠查看代码,做实际的修改,实验,比较.
          
Step 5 :
          进入微内核高端专用系统移植与开发.QNX, IOX , RTEM,ARINC-653 XEN

          纯粹的学术研究的os :
          Plan 9  (派生出utf8 , proc 文件系统)  Plan B  Hurd(gmach)
          Oskit  L4
          
          到这一阶段的人数很有限, 基本是靠团队,靠实力,靠经验摸索了


有用的工具:  lxr  索引代码的利器.
最好的大补材料:MiT的算法导引。emule上有课程录像。kuth的书内容太多。这个比较适合无聊的时候看一节课两节课。看几遍肯定大有裨益

 有关系统软件的战略问题见陈怀临的对中国系统软件的思考
  [url] http://www.xtrj.org/[/url]
--
 类似资料: