作者ggg12345 (ggg)
看板Programming
标题Re: [请益]不能卖OS,也要学写OS打下基础:从程式뤠…
时间Wed Jun 13 00:27:16 2007
※ 引述《ji3g45j (pig)》之铭言:
: 虽然有人反对本文,但我认为OS真的是个增加软体设计能力最好的范本
: 文中提到将OS中某个模组拿掉,练习写一个功能一样的模组"装"上去
: 这个过程就大概让学生了解模组是什麽,该怎麽设计一个模组,如果
: 去trace现代的OS kernel更能够学到很多高效能的写法
从推文可以知道认同的并不少.
trace os, 更改模组, 替换成自己写的模组 有助於
1.认识 模组分解
2.版本控制
但可能还有
3.测试样本与测试程式的建立
4.外部相依模组与移机相容
5.除错
可是, 为甚麽是以 OS 为例 ? 可以做为上面这种实例练习的也很多,
如 Compiler , 资料库, 多线程的Web server(不是网页) 也是有模组.
还有, 动到 OS kernel, 常涉及使用的 Language Compiler 版本与
Library 的支援, 不仅机器相当於重灌 kernel , 使用的程式语言还
会更动到 include 底下的 .h 档与 lib 档, 会让原来其他的 AP 或
程式因此受波及变得编译时不正常. 使得机器必须特别安排工作目录
与工作区, 让每位学生专用一个大大的独立工作区, 甚至是配属一台
专门练习的机器. (当然, 这是很好的系统支援与管理实例)
挑 OS 这个课做实例, 就会有配备与帐号管理的问题. 虽然 Nachos
使用工作站会很方便, 而且是使用模拟程式代替实质系统, 但要提供
这种环境的人力与配备, 支援上还是会让这个 OS 课变得 "特权".
: 我ㄧ直认为写软体系统就跟盖房子一样,只是写软体太简单了,工具的使用实在是
: 太简单了,不像是盖房子,一定要先做到90%的规划,才能开始动工,才能开始
: 雇挖土机、起重机来盖一栋大楼
: 那软体呢?
: 不乏有非常多的人不做任何规划就开始动工,导致写出来的系统
: 没有模组,无法再度被使用,老是在抱怨bug太多做不完。
: 真的!!做越多的规划,越能够避免掉房子盖了又拆再重盖,直接在纸上走这条路
: 就会让我们在软体系统的设计上顺畅许多,bug也能够在控制的范围内
OS 这个软体可能是模组数量与复杂度最高者之一, 要让学生练习换模组,
总要先知道模组大概彼此相关的部份, 教师或助教的熟练是避不了的, 靠
教学相长故然是个办法, 但学生若耗太多时间在此课, 别的老师也会受波
及而哇哇叫 !
此外, 这个课可以发表研究论文的地方较不容易, 老师要被数论文批, 教
这种课又要知道很多, 还要能对付实例疑难杂症, 不是很容易生存.
为甚麽从实例教软体工程, 却是要挑明以 OS 为例 ?
有教软体工程的教师就强调现在要发展的软工是要为软体的发展而服务的,
而 OS 先天就是为硬体而服务的软体(这句话是有问题的, OS 也支援所有
的软体. 但这表明了部份研究软工者的情结).
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.1.146