文章吧-经典好文章在线阅读:深度探索Linux操作系统的读后感10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

深度探索Linux操作系统的读后感10篇

2022-05-14 12:15:03 来源:文章吧 阅读:载入中…

深度探索Linux操作系统的读后感10篇

  《深度探索Linux操作系统》是一本由王柏生著作,机械工业出版社出版的平装图书,本书定价:89.00,页数:421,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。

  《深度探索Linux操作系统》读后感(一):深度探索Linux操作系统

  《深度探索linux操作系统:系统构建和原理解析》是探索linux操作系统原理的里程碑之作,在众多的同类书中独树一帜。它颠覆和摒弃了传统的从阅读linux内核源代码着手学习linux操作系统原理的方式,而是基于实践,以从零开始构建一个完整的linux操作系统的过程为依托,指引读者在实践中去探索操作系统的本质。这种方式的妙处在于,让读者先从宏观上全面认清一个完整的操作系统中都包含哪些组件,各个组件的作用,以及各个组件间的关系,从微观上深入理解系统各个组件的原理,帮助读者达到事半功倍的学习效果,这是作者潜心研究linux操作系统10几年的心得和经验,能避免后来者在学习中再走弯路。此外,本书还对编译链接技术(尤其是动态加载和链接技术)和图形系统进行了原理性的探讨,这部分内容非常珍贵。

  全书一共8章:第1章介绍了如何准备工作环境。在第2章中构建了编译工具链,这是后面构建操作系统各个组件的基础。在这一章中,不仅详细讲解了工具链的构建过程,而且还通过对编译链接过程的探讨,深入讨论了工具链的组成及各个组件的作用,理解工具链的工作原理对理解操作系统至关重要。第3~4章,从零开始构建了一个具备用户字符界面的最小操作系统,详细讲解了构建的过程以及涉及的技术细节。第5章从理论的角度探讨了这一过程,从内核的加载、解压一直讨论到用户进程的加载,包括用户空间的动态链接器为加载程序所作的努力。第6~7章首先构建了操作系统的基础图形系统,然后在此基础上构建了桌面环境。第8章深入探讨了计算机图形的基础原理,包含2d和3d程序的渲染、软件渲染、硬件渲染等内容,同时也从操作系统的角度审视了pipeline。

  《深度探索Linux操作系统》读后感(二):一本俯瞰Linux系统全局的书籍

  lt;<深度探索Linux操作系统>>是2013年才出版的新作.

  该书刚出版不久我就入手了. 要说的话, 本人对技术书籍其实是蛮挑的, 一方面是因为我个人的书柜已经快放不下了, 另一方面作为一个在Linux系统环境下工作有了几年经验的 C 程序员, 懂得识别技术书籍的好坏. 所以我从来不肯往自己的书柜中添加哪怕一本我认为不够好的书籍.

  其实我个人对于程序语言方面的涉猎还算广泛, 命令式的, 函数式的均略懂. 编译方面的书籍也翻过不少, 也尝试过自己写前端. 我称自己是一个 C 程序员的原因是我喜欢这门语言, 因为它强迫具有强烈好奇心的程序员去理解计算机系统和各种底层机制, 而这些东西在满足程序员的好奇心之后, 还会慢慢地令他着迷.

  对于程序员来说, Linux 系统太容易让其沉迷其中了. 在古老的命令行终端下有各式各样的脚本解释器, 随手写几行就是一个可解释执行的程序. 而对 C 程序员来说, 和命令行操作方式浑然一体的编辑, 编译, 以及执行环境, 配合 shell 脚本和 Makefile, 一切是如此轻便灵动和随心所欲. 当了解并习惯了命令行上的各种操作之后, 有些时刻甚至会觉得各种笨重缓慢并向程序员隐瞒程序构建过程的IDE显得有些可笑.

  从命令行和C语言开始, 程序员慢慢成长, 并开始越来越不满足. 看上去程序员所知道的越来越多, 知识亦日益丰富, 但是这些表面的知识越来越无法填满日益强烈的好奇心. 如果知识没有体系, 那么这些知识终究只是知识, 它们凌乱, 容易被忘却, 如同乡间田野中随处可见的小花朵. 而作为有智识的人类, 需要的是一整座种满各种品相花簇甚至奇珍异草的花园, 还要有一张花园的地图. 如此构建起来的体系, 方可称之为智慧.

  然而构建体系却并非易事. 语言, 数据结构和算法, 编译原理, 计算机系统以及其下的硬件构架, 它们之间相互交叉渗入, 各种各样的机制甚至 trick 令人眼花缭乱. 若非深入花园数年, 又怎能辨得各色花香? 对程序员来说, 确是路漫漫其修远兮.

  lt;<深度探索 Linux 操作系统>>一书的作者显然已经走过了足够漫长的道路. 当然, 其实我个人觉得本书的副标题更加切合其讲述的内容. 本书的优秀之处正是在于, 它以 Linux 系统为立足点, 讲述了一个完善的计算机系统体系. 更重要的是, 这种讲述不是大学那种照本宣科的讲述计算机系统的教材, 而是带有真正的实践意义的书籍.

  本书首先从C语言的工具链开始, 讲述了一个 C 程序从源代码到最终可执行程序的构建过程. 首先分清楚工具链中各个工具的工作, 然后从汇编代码, 二进制文件格式以及链接器的工作入手, 确切地让 C 程序员清楚地掌握自己所写的程序的每一个字节. 作者的经验是如此老到, 刚好讲解了最需要被 C程序员所了解的内容 -- 但是, 以我工作了这些年的经验来看, 我发现并不是所有的 C程序员都了解作者所讲述的这些内容(对这些东西完全不了解的 C程序员, 我很难认同他们是合格的).

  然后本书开始讲解内核的构建. 内核的映像如何组成, 内核的构建过程和配置. 该章讲述的脉络是如此的清晰可见, 确实印证了作者的话语, "实践检验真理". 接下来, 根文件系统, initramfs, 一步一步, 从内核开始, 一个可以实用的操作系统逐渐成型. 可能有的同学说, 这不跟 LFS(Linux From Scratch) 差不多的感觉么! 非也. LFS 确实也讲述系统构建, 然而在我看来, 二者虽形似, 而神远. 有没有听过"LFS 和 LFS 差距十万八千里"这句话? 对于一般的系统管理人员来说, 能够通过 LFS 构建一个可用系统已经相当不错了. 他们一般不会去深入到构建这些程序的细节, 以及内核的机理 -- 简单的说, 别想在 LFS 中看到代码啦. 但是本书则深入系统原理, 从内核本身的机制入手, 一些代码看似信手拈来, 实则若非深入实践, 绝无此等浑厚功力.

  而从内核到用户空间, 则是程序员理解程序执行环境及其底层机理之精要! 众所周知, 进程乃为操作系统所须提供之首要抽象(另一个重要抽象是文件). 总体上来说, 我们可以将计算机系统抽象为一个三层构架: Application Layer, Kernel, Hardware, 即应用, 内核, 硬件. 所谓操作系统, 就是内核管理了所有硬件资源, 内核之上则运行着众多进程. Linux 内核以 task_struct 簿记一个进程的所有信息, 将其列入优先级队列, 调度辗转, 以呈纷繁精彩. 此中涉及之要, 又以内存管理为首. 内核为进程提供虚拟空间这一抽象, 使得进程以为自己处于一个有限而平坦的私有的存储器中, 并可使用系统所提供的一切资源. 然则, 程序如何加载以使其成为进程? 虚拟空间到物理存储的的映射若何? user space 到 kernel space 切换时需要保存哪些上下文信息... 均可在此书中找到答案. 而关于动态运行库之机理, 亦为理解程序执行环境之极重要一环. 本书也提供了关于此问题的深入解答.

  本书后小半部分是关于构建一个实用的根文件系统, 以及, 建立图形环境. 有的同学觉得不应该讲这个 -- 而我的感觉正好相反. 要了解一个完整的系统是如何构建的, 图形环境是不可或缺的一部分. 即使是 Linus 本人看来, 在 Linux 之上构建图形环境也是一个好主意. 而且, 本书对图形环境的讲述正是从基础开始, 也是原理性的讲述. 这正好是我需要的. 本人 QT 和 GTK 都略懂, 能写点儿花里胡哨又没用的小程序. 可惜一直对 x11 不算清楚, 而本书的讲述解决了我不少疑问.

  最后, 给本书做个总评.

  其一. 本书的立足点是系统的构建和原理. 这意味着, 不能将本书当着是 Linux 内核源码解析一类来看. 某种程度上来说, 本书的立足点更高一些, 正如本文的标题所言, 是要宏观地俯瞰 Linux 系统的全局, 包括内核和应用层, 以及其相互交互的机制. 然而作者对 Linux 内核以及应用层机制的全面了解, 使得本书闪光点非常多, 信手拈来的代码和作者的深厚功底, 确实令人佩服.

  其二. 本书的内容对读者亦有相当的要求. 要求读者对 Linux 系统, C语言, Shell, Makefile等等都有一定的熟识程度, 而且对 Linux 内核和计算机系统理论要有一些基本认识, 否则本书就是明珠暗投了.

  鉴于本书对于初级程序员(而且本书主要针对 Linux 系统环境下的 C程序员)来说确实有一定难度, 这注定了本书的受众不会太广泛. 而本书对于 Linux 系统构建和原理方面的讲述确实非常出众, 是不可多得的优秀书籍. 对于 Linux 环境下喜欢 Linux 内核或者正在学习内核的同学或者Linux 内核驱动工程师等, 本书值得5星力荐!

  《深度探索Linux操作系统》读后感(三):作者发的勘误分享:针对第一版

  当年看见我标记阅读之后作者很热心地发豆油提醒我,感谢作者,应一位豆瓣用户的请求,在此分享

  49页的安装内核头文件这一小节中:

  ”make ARCH=i386 INSTALL_HDR_PATH=$SYSROOT/usr/headers_install“, 请在"headers_install" 前加一个空格。

  《深度探索Linux操作系统》读后感(四):非官方, 部分勘误表

  把我发现及综合楼主的贴一下, 有一些不是错误, 只是由于我这边的硬件条件与书中不一致(如书中用了virtualbox,而我这边用kvm等,,其中不同硬件的驱动会与书中有不少出入,,,基本整书都翻过, 我照着书做到chapter6中的前面部分(也就是把SSHD搭完我就收手了, 毕竟后期折腾windowX与我一开始的想法有些出入)

  深度探索Linux操作系统:系统构建和原理解析.pdf

  errata :

  50.

  while

  on the /vita/build

  mkdir glibc-build

  modify to

  mkdir -p glibc_build/posix

  49的安装内核头文件这一小节中:

  ”make ARCH=i386 INSTALL_HDR_PATH=$SYSROOT/usr/headers_install“, 请在"headers_install" 前加一个空格。

  compile the glibc first times,

  --with-headers=$SYSROOT/include

  modify to

  --with-headers=$SYSROOT/headers_include/include

  if you use the us1404 server with the

  gcc --version

  gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

  while compile the

  47

  cross-gcc-tmp

  would report error

  编译gcc-4.7.2出错:In function '__absvdi2':internal compi...

  you'd better use the 4.7.3..

  with the kvm I use the virtio as the disk controller, but not work,

  o add a scsi disk with the virt-manager instead,

  and then, I follow the guilde with

  https://forums.gentoo.org/viewtopic-t-297185-view-next.html?sid=5c21a1c8867d7629e0858be085c96b79

  compile the

  Code:SYM53C8XX Version 2 SCSI support (SCSI_SYM53C8XX_2)

  Location:

  -> Device Drivers

  -> SCSI device support

  -> SCSI device support (SCSI)

  -> SCSI low-level drivers

  Depends:

  CI && SCSI

  and then done

  ---------------------------------------------------------------------------------------------

  102 页

  ed -r -e 这行我得不出结果,

  这一个就是要从输出的中括号中得到库的文件名.

  ---------------------------------------------------------------------------------------------

  126

  mkdir -p initramfs/lib/modules/3.7.4/kernel/drivers/ata

  --change the

  cp -drf /vita/sysroot/lib/modules/3.7.4 /vita/initramfs/lib/modules/

  ecause the driver (modules you really needed may different from the book)

  --------------------------------------------------------------------------------------------------------------------

  288

  openssh make install could report error

  edit the Makefile int the openssh dir

  and search the

  install

  then

  change the

  install: $(CONFIGFILES) $(MANPAGES) $(TARGETS) install-files install-sysconf host-key check-config

  to

  install: $(CONFIGFILES) $(MANPAGES) $(TARGETS) install-files install-sysconf host-key

  《深度探索Linux操作系统》读后感(五):Step By Step from Kernel to X Window, 独特的 Linux From Scratch

  在我学习实践lfs的时候, 发现了这本书, 开始的时候以为和lfs没有太大区别, 无非是lfs的翻译与实践.

  在我实践lfs的过程中, 发现无论是lfs还是clfs, 需要安装的工具链相关软件非常之多, 而且没有说明为什么一定要这么做. 之后我开始结合本书来重新审视lfs, 发现书里所写的lfs操作路径非常的独特与具有启发性.

  其实从0开始手工构造一个可以运行的linux还是非常直接的, 做一些划分磁盘, 安装辅助系统的工作, 然后直接打造一个交叉编译工具链(只需要binutils,gcc,glibc)就可以了.

  这个时候就可以开始编译系统内核了, 并借助辅助操作系统安装好的grub来对这个新编译好的内核做引导了, 就是这么直接, 这么的直奔目标. 把lfs的焦点聚集在kernel上, 这样的操作步骤会让我们自然的从kernel的视角来做进一步的思考, 这也符合整个os的启动运行过程. 先grub, 后kernel, 后rootfs.

  在kernel启动之后, 我们再来构建根文件系统, 之后构建图形界面;非常自然的按照linux整个启动过程来走, 相当的直接和明了.

  除了构建过程之外, 相关的各种运行原理也讲的非常多, 在这一点上其实可以做一些取舍或者章节调整; 因为可以讲解的内容太多了, 反而让当前的主线流程不清晰.

  如果从内容上来讲, 本书的内容可谓相当丰富, 涵盖了

  lt;Linkers and Loaders>

  lt;From Power Up To Bash Prompt>

  lt;Linux From Scratch>

  以及我当前没有涉猎的X Window相关原理.

  不同时间, 来阅读不同的主题, 交叉参考, 自会收获良多, 感谢作者.

  《深度探索Linux操作系统》读后感(六):linux与好奇人士的桥梁

  这是一本可操作性非常强的书,按照书本的步骤已经能从头构建32位的Linux内核和系统。

  Linux的构建,关键在于实践,而这本书能很好地指导实践。

  与其它介绍内核原理、源代码和指导构建的书不同,这本书可操作性非常强。我曾经按照其它的一些书籍,包括O'reilly出版的或嵌入式硬件相关的等一些书籍,均未构建成功过,比较灰心丧气,但这本书我已经操作了一半了,小有成就感。我的机器是64位,因此我按照书中介绍和网络搜索,基本顺利推进,所以很感谢作者的分享。

  这本书还有一些原理的介绍,知其然知其所以然,如果手勤,再多到网上搜搜,那么一定会功力大增,亲手操作过一次,把所有的沟沟坎坎都趟过去,对Linux系统的认知,就大不同了。

  这本书架起了Linux爱好者和Linux的桥梁,能让读者更加真切的感受到Linux的心跳,当你修改一行Linux代码然后再次编译时,你会惊呼:原来如此!

  欢迎各位同好到:

  来探讨和研究《深度探索Linux操作系统》,这是专为本书开辟的社区网站,供共同爱好者切磋论剑,网站全部使用开源,并对一下资源:

  1、王柏安老师的书籍《深度探索Linux操作系统》

  4、Oracle公司的开源数据库MySQL

  5、PHP、Linux的技术和软件

  表示感谢!

  《深度探索Linux操作系统》读后感(七):一本构建Linux Firmware的好书

  本人已经从事嵌入式开发大概有5年的时间,也做过3个较大的嵌入式项目。但对于一般的单位来说,系统构建这部分知识比较底层,很少有机会接触。一般都是应用层的代码编写,总觉得都在这个行业已经工作5年了,应该朝更高的方向发展下。所以一直尝试自己编译一个比较完善的系统。看了不少书籍和网站,知识都是很零散。后来在网上看到这本书,一看定价还真不便宜,但是想想自己在网上搜索的那些东西,经常浪费很多时间,就下定决心买了一本。

  说来,我对386/XP这种架构还是要比ARM敢兴趣一点,因为你不可能整天在办公室摆弄一个板子吧。这本书完整的介绍了编译一个完整的386结构的图像系统。开始的时候,希望大家用这个版本的Linux作为服务器ubuntu-11.10-server-i386.iso,用这个版本作为客户端ubuntu-11.10-desktop-i386.iso。对于初学者来说,希望大家能先向王老师索要一份电子版本的前几章的电子版,以免把个别命令敲错了。有时候编译了半天失败后,才发现是一个属性敲错了。

  还要说的一点就是,我开始的时候很怀疑书上所有的例子是否能全部编译过,经过了我的一个月的探索和实践,终于验证完可以全部通过。这个过程是一个很艰辛的过程,我本人由于兴趣,基本上一天投入10小时以上,就连周末也是。由于敢兴趣也不觉的累了,呵呵。

  到现在,我基本上掌握了书上的大部分知识,在这个过程中,真心的感谢王老师,每次遇见问题时都发邮件给他,都得到耐心有效的回答。对比下我们公司为Linux咨询机构每年所付的咨询费用觉得这本书真是物有所值。我准备给我们部门的童鞋做个类似方面的培训和分享,希望对Linux或者嵌入式开发的童鞋都能拥有这本书,在梦想的道路上少走弯路,呵呵。本人留个邮箱可以交流下llldddfffldf@163.com

评价:

[匿名评论]登录注册

评论加载中……