步骤 1 / 7
程序想做一件只有内核能做的事
程序不能直接操作硬件,这是为了保护整台机器。
程序想在终端上打印一行字,但它没有权限直接操作屏幕、磁盘或网卡。 如果谁都能直接碰硬件,一个出错的程序就可能写坏磁盘,或者偷看别的程序的数据。 这就像网页里的 JavaScript 不能随便读你电脑上的文件,只能通过浏览器提供的接口。
操作系统
程序不能直接碰硬件,想读写文件、上网、打印,都得通过“系统调用”这扇门请内核代办。
以 Linux(x86-64)上一个程序往终端打印一行字为例。
步骤 1 / 7
程序不能直接操作硬件,这是为了保护整台机器。
程序想在终端上打印一行字,但它没有权限直接操作屏幕、磁盘或网卡。 如果谁都能直接碰硬件,一个出错的程序就可能写坏磁盘,或者偷看别的程序的数据。 这就像网页里的 JavaScript 不能随便读你电脑上的文件,只能通过浏览器提供的接口。
| 当前状态 | 发生了什么 |
|---|---|
| 用户态 | 程序想打印文字,但无权直接操作硬件 |