• 操作系统直接决定了计算机系统的整体性能


    返璞归真1

    本文选自《返璞归真——UNIX技术内幕》一书

    操作系统作为计算机中核心的系统软件,直接决定了计算机系统的整体性能。学习操作系统的过程中,理解所有操作系统设计背后的原理是非常重要的,但如果能够把这些原理和真实的操作系统实现结合起来,则可以更加深刻地理解操作系统的本质所在。

    美国贝尔实验室的丹尼斯·里奇(Dennis Mac Alistair Ritchie)和肯尼思·汤普森(Kenneth lane·Thompson)共同开发的C和UNIX是本领域最重要的成果之一,对整个计算机产业产生了深远的影响。因此,通过深入分析阅读UNIX这一经典系统的源代码实现来学习操作系统是非常有价值的途径。UNIX 第6版(UNIX V6)是现代各类UNIX操作系统的源头,它具备了现代操作系统的绝大部分特征:进程管理和调度、内存管理、文件系统和I/O设备管理等。在此之后,UNIX分为众多不同流派,但它们基本上都秉承了UNIX V6的设计思想。

    作者郝庆丰曾在朗讯、摩托罗拉等公司从事多年的软件开发工作,参与过多个UNIX及Linux下大型软件项目的设计和开发,有着数十万行代码的开发经验。基于这些基础,他编写了这本讲解UNIX的书籍,针对PDP-11处理器,给出UNIX V6近万行源码的详细解析,其中也包含了很多作者自己的开发经验和理解。在写作过程中,作者翻阅了大量资料,做了很多实验。因此,书中深入浅出、详略得当的讲解使得某些原本艰涩难懂的代码变得生动活泼,甚至妙趣横生。对于重点章节或很艰深的部分,作者则不吝笔墨、列举多个例子阐明;在每章结束还有针对性地提出一些思考题,让读者进一步巩固本章内容。

    全书共分15章。第1章主要讲述UNIX诞生的经过、流派和它的特点。第2章主要讲述UNIX框架及其运行的硬件平台。第3章讲述虚拟内存的主要功能及UNIX虚拟内存的实现原理。第4章主要讲述启动过程。第5章主要讲述进程管理和调度的实现。第6章是对中断处理过程的讲解,而第7章讲述和中断类似的自陷的处理过程。第8章讲解文件系统,其实是文件系统的内核实现,而用户实现部分在第12章讲述。第9章讲解UNIX是如何管理I/O(输入/输出)设备的。第10章在第4章的基础上更全面地阐述UNIX的交换过程,因为交换是进程管理中一个很重要的概念。第11章讲述UNIX可执行文件的格式。第12章讲述UNIX系统调用的实现过程,包括了文件系统、进程和信号等部分。第13章不仅讲解已有的各种进程间通信的方式(信号、文件、管道),而且还给出其他多种进程间通信方式(信号量、互斥体、消息等)的示例实现。第14章给出现代操作系统才有的线程的示例实现。最后第15章讲述UNIX的登录过程和20世纪80年代出现的网络文件系统NFS,进而体现其对网络多用户的支持。

    本书适用于具有丰富开发经验特别是想了解操作系统实现或对其感兴趣的软件工程师。

    对于初级软件工程师,只要能认真研习,它也将是你提高软件开发水平的一个很好的选择。

    清华大学计算机系教授、博士生导师 郑纬民

    2010年4月15日于北京清华园

    返璞归真1

    书名:返璞归真——UNIX技术内幕

    作者:郝庆丰 编著

    ISBN 978-7-121-10871-6

    出版日期:20106

    定价:89.00(CD光盘1)

    开本:16

    页码:768

    宣传语

    节选10000行UNIX内核源码

    耳目一新的视角

    入木三分的剖析

    生动详尽的图例

    作者实现的线程

    恰似醍醐灌顶,让你彻底了解UNIX内核。

    操作系统是一种对计算机中各个设备和资源进行管理并给应用软件提供各种服务的系统软件,它的实现可分用户态和内核态两大部分。一般而言,操作系统的算法和设计的复杂性大多在内核态部分。因此,了解操作系统的内核实现对于了解整个操作系统是非常重要的。

    本书详细阐述操作系统的内核(也包括少量用户态部分),选择UNIX第6版的全部内核代码及少量用户部分代码、总计10 000行作为讲解对象,由框架到细节、由基础到高级地进行讲述;在此过程中贯穿了操作系统中的各种知识和概念,比如内存管理、进程调度、中断和设备管理以及文件系统等,使得内容非常易于读者理解。

    选择UNIX作为讲解对象是因为它强大的生命力和应用的广泛性。在精妙的设计思想下,它具有小巧高效而健壮的内核、丰富的功能、易扩展的架构和良好的开放性。UNIX所定义的很多接口(比如文件访问接口)已经成为行业标准。本书在讲解时,作者把这10 000行代码按照不同的功能模块分成不同的章节。每章一般最小以函数为单位,但在讲解某个功能或接口时,又会牵涉到很多相关的函数,并其中揭示了很多优秀的设计思想、数据结构和算法。

    本书适用于具有丰富开发经验的高级软件工程师,尤其是有志于进行操作系统研究或对操作系统实现感兴趣的软件工程师,也可作为本专科院校计算机及相关专业学生学习操作系统和C语言的参考书。初级软件开发人员在阅读本书时可能会碰到一些困难,但如能坚持研究,它也会是你提高编程水平的一个很好的选择。

    本书购买地址:中国互动出版网

    本书详细信息:http://www.broadview.com.cn/10870

    更多图书信息:www.broadview.com.cn

    想即时获取更多图书及活动资讯,赶快加入博文视点读者俱乐部 吧!

  • 相关阅读:
    Python 变量回收
    centos服务器内部开启端口
    mysql启动不起来汇总
    torch中DataLoader加载字典
    torch.meshgrid函数
    如何配置好python脚本的命令行参数
    git忽略文件,.gitignore配置
    jupyter如何解析命令行参数argv
    怎么制作虚拟环境的yaml
    如何提高matplotlib在jupyter中作图的分辨率
  • 原文地址:https://www.cnblogs.com/broadview/p/1762395.html
Copyright © 2020-2023  润新知