※ 引述《UNARY.bbs@bbs.cse.ttu.edu.tw (Rootkit Researcher)》之銘言:
: 在 Linux,user mode 之下,如果有 root 權限,可以呼叫 iopl()
: 然後可以存取 I/O port
: 比如說以下程式在一般 PC 上執行,可以直接進行 hard reboot
: 你可以用 gcc 編譯然後執行看看
: #include <sys/io.h>
: int main (){
: iopl (3);
: /* we can make a hard reboot through
: the keyboard port 0x64 with a byte 0xFE */
: asm("mov $0xFE, %al");
: asm("out %al, $0x64");
: // never reach here...
: iopl (0);
: return 0;
: }
大家都把c/c++看作好像只會在OS上用到...
其實有非常多的場合是不能掛os但又要達到某種程度上的可維護性
這時候就沒有iopl()這種函數,也沒有printf(),因為這些都要自己設計
與實現,如果是全都要自己來做,那這5項的概念就很重要了(其實還有很多),
但人總是怕麻煩,既然在os上已經可以做到,何必要自己來做呢?
那當然就是成本與需求問題嘛~~當你的專案成本與需求,無法或不需要使用os,
那這時當然就要自己設計一個系統了,所以有些時候並不是只要printf("%d",a)
就能夠讓你的LCD顯示a...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.39.71.29