※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言:
> 我的認知,Kernel通常會有以下的功能:
> Semaphores
> Event Flags
> Mutual Exclusion Semaphores (to reduce priority inversions)
> Message Mailboxes
> Message Queues
> Task Management (Create, Delete, Change Priority, Suspend/Resume etc.)
> Fixed Sized Memory Block management
> Time Management
這是對一般Mutlitasking的作業系統來說吧?
實際上,對一個Mutlitasking的OS來說,上面所要求的功能也有點怪怪的。
而且如果照上面這麼說,DOS的Kernel就不是Kernel了嗎?
> 這還不包含Device Driver、File System以及TCP/IP的 Protocol 在內
> 你確定64K以內可以作到嗎?
做個web server不一定要用上File system的。
TCP/IP的Stack在8051上面implement的話,一般都會使用簡化過的版本。
Device Driver,如果你想維持kernel的獨立,自然是要用個Device Driver。
不過在8051上面,就乾脆一點把控制device需要的功能,整進kernel去就可以了。
> 在64K上面就寫一個web server,這個我相信
> 只是可以掛的網頁內容,可能就不太豐富了 (隨便一張A圖就差不多64K了)
圖片或是網頁的內容不一定要全部存在記憶體裡。
可以放在其他的裝置上,如硬碟上。有需要時,再去讀取。
> 加上
> ROM裡面必須只有單一的web server 程式,不能有OS
> 要不然根本就裝不下
> 去問問你學長是不是這樣?
> 如果不是,那可就神奇了
> 這樣的東西實用性不高吧!
> 我是有想到說你可以外接HDD,
> 那麼你就可以將網頁內容裝到HDD內,
> 這樣一來就不會受限於64K了
> 可是這樣一來,又多了HDD的Driver 及File system要加進來
> 就又是程式容量空間不夠的問題
> 在我的認知裡,一顆MCU通常只固定安裝一個程式
嗯....時代進步了....
> 而OS存在的目的,在於提供動態載入AP及多工的操作環境
OS存在的目的不是這個吧?
如果是這個,那麼DOS就該死了....
> 這兩個東西兜在一起,有可能嗎?
以Keil C所提供的RTX51來說Code size大約6-8K,Data Size: < 200 Bytes
在網路上面查到的TCP/IP + HTTP的大約佔15-20K,Data Size: < 2K Bytes
FAT32 File System(Read only)大約2K,Data Size: < 4K Bytes.
再加上雜七雜八的code及memory的使用。我想64K的ROM Code是綽綽有餘的。
--
Gary W. Lee
URL: http://www.dev.idv.tw/
A web site about C/C++, Tcl, Python, wxWidgets, UNIX/Linux, Windows ..., etc.
--
※ Origin: 元智大學 風之塔 <bbs.yzu.edu.tw>
※ From : asgarthr.sentelic.com
※ X-Info: Re: [閒聊]驅動程式漫談-IX
※ X-Sign: 115PGE6CKrdwKYF5kbBA (05/04/13 14:52:54 )