Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望这本书给读者带来什么? #7

Open
zyfjeff opened this issue Apr 20, 2017 · 12 comments
Open

希望这本书给读者带来什么? #7

zyfjeff opened this issue Apr 20, 2017 · 12 comments

Comments

@zyfjeff
Copy link
Contributor

zyfjeff commented Apr 20, 2017

No description provided.

@zyfjeff
Copy link
Contributor Author

zyfjeff commented Apr 20, 2017

大家都发表一下自己的意见,内容包括:

  • 你希望这本书改编后是什么样的
  • 你当初在学习这本书的时候是什么情况
  • 觉得这本书有什么问题,哪些需要改进的。

@cljcore
Copy link
Contributor

cljcore commented Apr 25, 2017

希望大家把自己的真实想法写出来

@ty92
Copy link

ty92 commented Apr 28, 2017

以前在读这本书时同时会阅读相关的内核源代码,由于现在的内核版本都比较高,而本书的版本比较老,使得自己有些地方看不太懂,并且书中有些实例代码不能成功运行,无法看到想要的结果。
在后边的改编中,希望将内核版本提升为较高版本,并且将书中代码和其对应起来,使得读者在后边学习过程中可以完整复现(这两块在老师和师兄的带领下已经在做了)。还有就是希望在书中可以多添加一些流程图或者框图之类更加直观的东西,感觉可以更好的理解。

@windghoul
Copy link
Collaborator

windghoul commented Apr 28, 2017

我希望改编之后的书本代码更贴近新版本,能够增加一些图片让内核运行的流程更好更加直观的展示给读者看,能够做到一本入门书该做的事情

另外,我觉得我们应该正确的定位这本书的位置,是一本linux入门教材,还是一本linux提升教材,这样的修订侧重点就应该不一样,个人之见,望各位指正。

@taocr
Copy link
Contributor

taocr commented Apr 28, 2017

希望这本书能够让读者在了解到一部分系统编程的基础上对内核有部分的认识,不会很深,但是对Linux整体的内核各子系统有比较充分的介绍,毕竟在一开始学习时很多人对Linux都没有什么经验,这样可以为学习Linux打下良好的接触。

之前的学习时认为有以下不足:
个人认为首先需要定位这本书适合学习到什么阶段的读者,研一开始学习的时候对Linux完全不熟悉,对系统编程没有基本的了解,因此直接去学习内核的机制比较难以理解,因此书中认为应该有一部分入门系统编程的例子,或者是提及其他书籍上相关章节上好的例子让读者配套学习。
对于某些章节,觉得缺少流程图,感觉概念上没有一个清晰的认识,可能在每个章节有一个整体的概况图能够更好地帮助学习。
代码部分由于版本较老,Bug比较多。
内核模块的编程部分,深刻地记得因为Makefile部分严格的空格格式的要求,一直不能编译通过,这里希望能够有详细的说明。

@wenshizhang
Copy link

我觉得在讲源码的时候,能稍微解释一下有一些设计的初衷很大程度上帮助理解,我觉得理解比记忆更重要一些。而且对Linux零基础的读者来说,负担也比较轻。

还有我不是很理解我们本书的侧重点是讲Linux操作系统还是Linux内核编程,我期待的是讲操作系统的,内核的编程是为了帮助了解Linux操作系统的。想象中,操作系统是一个整体的,须弥藏芥子。书上讲的每个子系统很详尽,但是看不清整个操作系统的运作。

@zhlgithub
Copy link

起初在学习Linux时,作为零基础的我,学习起来相当吃力,印象最为深刻的是,对于书上的代码,直接去跑,总会出现bug。建议对于初学者来说,在学习内核之前,进行相应基础的补充。
对于之后书籍的改编,可以添加一些流程图,让读者在阅读时更容易理解,尽量保证书中的代码可以让读者进行时能够运行成功。

@lxr0912
Copy link

lxr0912 commented Apr 28, 2017

希望这本书改编后阅读起来能够通俗易懂,有些概念也可以适当的解释一下,希望内核源代码也能更接近最新版本,再就是程序运行部分可以更详细一点,最好配上图片说明,这样读者可以避免把太多的时间放在调试程序上。

@YangMao111
Copy link

由于这本书面向的读者大多数都是操作系统的初学者,所以我希望能多站在一个初学者的角度去考虑,降低学习的门槛,比如这本书现有的结构是一章介绍一个操作系统的子系统,所以可以在一章的开始以一个比较通俗的比喻来说明该子系统的意图是什么,这样可以在一开始读者就明白这一章需要解决的问题是什么,然后再从后面的详细内容中学习具体的解决方案,我觉得这样一个逻辑比较容易理解。
还有一个建议,这是我在学习文件系统时的感受,当时在学习文件系统时,一上来就介绍一个抽象的概念,其中的数据结构一会是磁盘的,一会是内存的,比较难理解,直到我学习《Unix/Linux编程实践教程》这本书时才想明白,因为这本书在文件系统一章中以我们都比较熟悉的磁盘作为引入点,从具体一步步的引入抽象的概念。我觉得这种方式挺好的。

@ppingfann
Copy link
Contributor

1.我第一次接触这本书的时候对linux命令行操作与linux系统编程有一点的了解。那个时候内核编程对于我是一片完全未知的区域。所以在理解什么是内核编程,为什么要学习内核编程上我浪费了很多时间和精力,走了好多弯路。我觉得在概述中应该再增加一些关于内核编程系统的、宏观的介绍。
2.关于本书的定位,我觉得这本书第二版大多都是通过具体的内核编程的例子来讲述,既然书名叫Linux操作系统原理与应用,但是大多数讲的是内核,对于Linux宏观层面的原理与应用并不多。
3.还有,本书的示例代码能用较新版的就用较新版的,但有些例子可能用较新版本的就会模糊了例子所要讲述的重点了,对于这些例子,要么换或者删除,要么就仍旧用旧内核版本来讲述。我这个想法是来自9.5中块驱动程序的例子。
4.关于流程图,确实需要增加流程图来使读者对于所要讲述的问题有更宏观更直接的了解,这样读起源码也会更有趣,不显乏味。
5.有些结构体的来源标识的不够清晰。
6.同学A的建议:可以适当增加些有趣的图片来辅助说明操作系统在某种情况做了些什么,冗长的代码让人看了就害怕
7.同学B的建议:linux简单的必须的命令行操作需要讲解一下,老师讲课时都不知道在上面按了些啥,也记不住
8.上面这两条是选课的同学给我说的,作为刚接触linux的人,他们首先提的建议就是要简述一些linux的基础操作。我觉得这个还是关于这本书的定位问题,如果定位为让一般的同学入门linux的话,确实应该多增加基础些的东西。

@wangzhangjun
Copy link

1.由于这本书是在讲Linux操作系统的原理,相对于操作系统原理来说,是一个实例化。所以在学习这本书的时候,是需要一些操作系统原理方面的知识的。当时自己学习时,就觉得当时本科的操作系统原理没有学好,但是这些内容时不应该出现在本书中的,这是自己的一个体会。

2.另外第一章可以对整个操作系统的运作加以描述,给读者一个宏观上的认识,了解各个子系统的功能后,在后续章节中对各个子系统进行详细介绍。

3.关于系统调用和相关命令,我觉得不应该在本书中进行详细论述,可以简单的说下相关系统调用的作用,本书还是应该以内核机制为主。(如果要说相关应用层的实现的话,那就详细说,整本书的内容要添加不少)

4.课本中相关的实验需要更新,当时做实验时由于内核版本等问题,无法正常运行,这对初学者来说,是一个障碍。

@cljcore
Copy link
Contributor

cljcore commented May 2, 2017

一一阅读了大家的真实想法,大家从不同的角度提出的建议都很有道理,在本次改版中,充分参考大家的意见。

@zyfjeff zyfjeff added 需求 and removed 任务 labels May 4, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment