Re: [請益]不能賣OS,也要學寫OS打下基礎:從程式뤠…
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 9 之 66 篇):