精華區beta Programming 關於我們 聯絡資訊
> ==>發信人: 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