Linux考试试卷评讲(6)

3.请给出把Linux安装在USB硬盘上,使之能从USB硬盘启动的简要步骤。(本题60分)
评讲:本题已经是老生常谈啦,我也不想在这里再说n+1遍了。本题的意义在于,如果弄懂
了这个过程,也就基本上了解了Linux系统的结构。

4.请编写程序,产生100个进程,构成如下的星形结构。让它们模拟基于星形结构工作的以
太网通讯方式。即:位于中心的进程1模拟HUB的功能,它会把任何一端发送的数据转发给
其他所有进程。这样,进程2-100这99个进程任何一个进程发送的数据,其他进程都能接收
到。在此基础上,实现1+2+3+\ldots+99的分布式计算。(本题60分)
提示:进程1和其他进程之间是双向通讯,可以用两条管道分别传递发送和接收两个方向的
流。也可以用socketpair直接实现双向流的传递,本题目不要求数据流通过标准输入输出
实现。
附:socketpair和pipe使用范例:
int fd[2], pipefd[2];
socketpair(AF_UNIX, SOCKET_STREAM, 0, fd);
pipe(pipefd);
其中,用pipe创建的pipefd[0]用于读,pipefd[1]用于写;而socketfd创建的fd[0], fd[
1]读写都可以。

评讲:本题比Class.7.5的课后习题出的还要简单。毕竟考试时在纸上写程序和平时在电脑
上敲程序是完全不同的。虽然本题要简单一点,但是基本上没有做过Class.7.5课后作业的
同学是不可能写出正确的程序的。这也从另一个侧面了解Class.7.5课后作业的完成情况,
并且了解到原来有这么多同学做了Class.7.5的作业,却因为没有做好而不敢提交这一事实


下面还要澄清几个错误的观点:
1.什么是Linux
很多同学至今连Linux是什么都不清楚。Linux这个概念有两意性。狭义的讲,Linux是指那
个300M源代码,编译后50M左右的内核(内核这个词也有两意性,这里指的是广义的内核,
也就是狭义的内核+模块)。由于一个Linux内核不能做任何事情,需要很多用户态的程序的
帮助,例如需要bash来提供shell,需要各种各样的命令来操作习题(ls,cd,mkdir,rm...)
,需要XF86/XOrg提供图像界面,需要KDE/Gnome提供窗口管理器...因此,就有各种各样的
发行版的出现,把特定版本的Linux内核和特定版本的各种工具/软件/脚本结合在一起,组
成一个发行版,这个发行版就是广义的Linux。通常为了区分,对于狭义的Linux,一般称
之为GNU/Linux,以强调Linux也是GNU的一部分。

2.Continuation不是递归。
在解释阴阳迷题的时候,很多同学都认为两个函数是互相递归调用的关系,这就根本没有
理解Continuation了。Continuation是持续性,和递归没有半点关系。而Continuation到
底是什么呢?这是个让初学者最难理解,也是最让程序员心动的特征。这方面偶是初学者
,所以请大家直接看别人的文章... ...

3.对待Windows的态度
很多同学,像小学生表决心一样说Windows如何如何的烂,如何的不安全,Windows是毒药
... ...,不要以为这样就可以迎合偶拿到高分,偶可没这么狭隘。事实上无论是Windows
还是Linux,都仅仅是一个工具,工具用的顺手就行了,否则就是自寻烦恼。更何况Windo
ws很烂虽然是个事实,不过这也是过去的事情了,现在在与Linux的竞争中,Windows也在
逐步变得更为稳定和更为安全。
因此,学习Linux之前,先考虑清楚自己的目的。比如偶的目的就很简单:控制自己玩游戏
的欲望,并顺便驾驭最强力量。对于不准备在计算机领域发展的同学,偶强烈不推荐学习
linux,反之亦反。

4.Linux很难学
这个观点么无外乎说自己已经用了多少多少年Windows了,已经习惯了,不能指望普通用户
也懂这么多技术细节等等。这里偶必须说明,为了教学,偶展示的都是Linux最底层和最核
心的东西,相对与你们学习Linux的时间,当然觉得困难了。即使是Windows,如果你以前
没碰过电脑,恐怕也不是这么简单就能在10天内搞定一切吧。当初偶初学Linux,整整痛苦
了2周,这2周里面除了郁闷还是郁闷,基本上什么事情都搞不定,而且也没地方问人。不
过挺过来后就好多了,偶到现在用Linux也就3-4年的历史,比很多同学用Windows的历史都
要短,甚至只有某些同学用Windows历史的一半。可是偶现在在Linux下面能做的事情,无
论是数量还是效率都比大部分人在Windows下面做要高很多,这就是学习Linux的回报。而
且还不止于此,学习Linux最大的回报并不在于你掌握Linux这一强力工具本身,而在于你
从此具备了很强的自学能力,从此可以无视环境的限制而学习任何自己想学的东西。

5."我的目标就是赚钱"
本来这个和Linux课程无关,不过也顺带说说吧。这个观点是毫无疑问的,没有哪个人会对
这个问题有疑义。不过所谓“有心栽花花不开,无心插柳柳成荫”,即使是Bill Gates,
他的目标也根本不是赚钱,他成为世界首富也是无心插柳而已。所以,劝所有抱着这样念
头的同学,不要心比天高,好好踏踏实实的做好你作为学生的本职工作吧。想赚钱,先想
想自己的核心竞争力再说。

6.Richard Stallman VS Linus Tovalds
这两个人的观点是有分歧的。Richard Stallman是个典型的理想主义者,他认为基于微内
核的设计从技术上讲是最为完美的,也是未来的趋势,而Linux这种单内核的东西仅仅是一
个过渡,因此Richard才不遗余力的做Hurd内核。而Linus是很现实的,他喜欢先有东西再
完善,而且他和Minix的作者有多次关于微内核好还是单内核好的争吵。所以听说以前Ric
hard和Linus的关系并不好,不过现在似乎不错,而且Linux也终于套上了GNU/Linux的头衔
。不过我敢说,这两个人心里肯定都对GNU/Linux这个名字有某种程度的不屑,当然两个人
不不屑的是由“/”分割的不同的单词,呵呵。

7.X Server和Linux
有人把X体系说成是Linux的优越性的体现,真是大汗...
X体系比Linux要早的多,而且在Linux还没有诞生的时候就是工业标准。Linux更改了自己
使得他能够适应X体系,因此有人评论Linux是“一夜之间就有了图形界面”。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/835e40460eebed6346801814f80a3e2f.html