※ 引述《Vishnu.bbs@bbs.cs.nthu.edu.tw (大王此乃房宮模型)》之銘言:
> ※ 引述《tinlans.bbs@whshs.cs.nccu.edu.tw (汀)》之銘言:
> > 你認為 user thread library 算是 system library 的一種嗎?
> > 如果今天我無聊去抓了一個叫 zthread 的 library 來裝,
> > 於是它也變成了 OS 的一部份...
> > 這樣說就很奇怪了。
> 你覺得Java byte code在JVM裡面執行,JVM算不算是個OS?
> (對,JVM「不只是」個OS,我問的是:對你的Java application
> 來說,JVM有沒有涵蓋OS的功能?)
> 同樣的,user thread library等於是把原本OS的process控制相
> 關的API「包裝」起來,給其他需要的Application呼叫使用,你
> 覺得這不叫OS的一部分?
> FreeBSD的linux emulator是不是OS的一部份?當然是。
以 FreeBSD 的 pthread 來說,
請 cd /usr/src/lib/libpthread/thread 然後 grep __sys_ *.[ch],
然後你會發現什麼呢,
發現把 __sys_ 去掉留下後面的字串就是 system call name,
接著你就會發現到你好像也能丟 1 到 2 週什麼事都不做,
就專門來設計一個有基本功能的新 user thread library 並不困難,
事實上靠那些 POSIX 制訂的 system calls 任何人都能寫一套 user thread library,
雖然我們不能排除 POSIX 制訂這些 system calls 是為了實現 pthread,
我對歷史並沒有太大的興趣...
不過事實就是 pthread 的確是使用這些 system calls 而出現的一個產物。
接著就是解答你似是而非的說法...
你說「user thread library等於是把原本OS的process控制相關的API包裝起來」,
這句話並沒有問題,但是「包裝起來給其它需要的 application 使用」這件事,
並不可能成立「它是 OS 的一部份這件事」,
邏輯上的三段論法來說你試圖使用的是 A -> B -> C 的三段論法,
你的 A -> B 的確是成立的,但你的 B -> C 並不成立,
所以你並不能夠讓 A -> C 成立。
你的 B -> C 描述的是:
「for all (包裝 OS process API 的 libraries) 必為 OS 的一部份」,
事實上這個 for all 無法成立,但若是 for some 可以成立。
我當然知道你想要澄清 OS != kernel 這件事實,
也想要澄清 OS 的東西是可以在 user space 下執行的,
你那一章讀得不錯,這沒問題...
今天要是我利用這些 system calls 實作了自己的 user thread library,
然後自己用在自己所屬的研究機關或公司行號內部開發程式使用,
你會認為我寫的 user thread library 也是 OS 的一部份嗎?
我的 user thread scheduler 固然呼叫了許多 system calls 來實現所需的功能,
但是會有人認為我這個 library 是 OS 的一部份嗎?
我不知道你懂不懂我要說的意思,
不是在探討 OS 課本怎樣寫...
OS 課本的確是說 OS 包含了這些東西,
但是並不代表這些東西一定要是 OS 的一部份,
好比 windows 的 explorer 是一種 command interpreter(或叫 shell),
在 OS 課本上說那也是 OS 的一部份,
很久之前就有人不喜歡那個 explorer 寫了自己的 shell 丟給大家玩,
你能說那是 OS 的一部份嗎?
老闆跟你說你可以下班回家了,
並不代表說你一定得立刻下班並且乖乖回家。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Chung Cheng University
Department: Computer Science and Information Engineering
Researching: GNU Toolchain Porting for Unified RISC/DSP Processor with VLIW
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰ * From:218-171-153-160.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎
--
* Modify: tinlans 05/02/02 1:57:02 <218-171-153-160.dynamic.hinet.net>