發信人tester.bbs@bbs.csie.ncu.edu.tw (try or test),
看板Programming
標 題Re: 侯捷說:以為使用 C++(或任何語言)就能開發出很ꘊ發信站: 中央大學松濤風情資訊站 (Mon Apr 17 09:34:04 2006)
轉信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!news.csie.ncu!Evergreen
> ==>發信人: bert@Evergreen (哇哩咧...), 信區: programming
> > ==>發信人: TKyo.bbs@ptt.cc (暗黑貴公子), 信區: programming
> > ※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言:
> > : 是否是用組語直接設定 I/O port 與 kernel memory space ? 還是透過
> > : libray system call ?
> > 取得 Ring 0 權限部份應該可以用其他語言完成
> > 至於直接 I/O, 就得利用組語
> 直接 I/O 要利用組語是 x86 限定, 或者該說是非 MMIO 架構限定
> MMIO 架構的話, 定到記憶體位址就可以進行 I/O 存取
PC 的 X86 兩種 I/O 都有用到, 傳統的 CGA/VGA/EGA 介面, 就有
Memory Map IO .
1. 教學實習需要使用者的環境, 一般的 PC 教室是不會給
root/administrator 權限.
2. 在 Win2k/XP , Linux 這類 OS 讓 X86 處於 Priviledge Protection
的 VM386 mode 之下, 組語的練習, 想不要透過 Library System call
直接使用 I/O port 或 MMIO port 都是有困難的, 除非入侵取得 root.
3. 即使是在 root 權限下, 這種直接動用到 I/O port , Real Address
的程式只能在 Kernel Priviledge Mode 下執行, 通常都是事先對系統
做好下次開機前的 system execution sequence 或 link , 等下次開
機才被執行生效. 練習時寫錯了, 可能就開不起來.
4. 提供 Library System Call 就隔開了實體的硬體世界, 而高階語言在
OS 的支援下對實體 I/O 都是以 "視同檔案" 的方式使用.
5. 事實是直接控制硬體在高階語言環境是受制於 Library/System Call.
--
◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234
推 UNARYvvv:怎麼還在 VM386 . . . = = 04/17 10:11
→ abcdefghi:樓上第一天看tester的文章?他只是無聊在網路上自言自語 04/17 13:26
推 MasterChang:他的硬體世界僅現在PC,所以不要想太多....笑笑就好.. 04/17 15:20
推 UNARYvvv:^____^ 一開始就回過他說沒這東西了 看來他很喜歡VM..XD 04/17 19:01
推 lg31cm:教授這學期課特別少? 04/19 22:38