操作系统如何管理进程
How does the operating system manage processes
操作系统是如何管理程序权限的?如果你在写一个底层程序,不使用任何系统调用,直接控制处理器,那么如果程序直接控制处理器,操作系统如何下注?
编辑
看来我的问题不是很清楚,抱歉,我英语说得不好,我用的是翻译器。无论如何,我想知道操作系统如何管理程序的权限(例如 root 用户等...)。如果一个程序在没有进行系统调用的情况下编写得非常低,那么它可以完全访问处理器吗?如果要说它可以为所欲为,因此操作系统的各种用户/权限并不重要。但是,从我收到的第一个答案中,我读到没有系统调用就无法制作有用的程序,因此程序不能直接与硬件交互(例如,我的意思是 bios 如何与硬件交互)?
1) 不可能有不进行任何系统调用的程序。
2) 控制处理器运行的指令必须在内核模式下执行。
3) 进入内核模式的唯一方法是通过异常(包括系统调用)。通过控制异常的处理方式,操作系统可以防止恶意访问。
If a program is written to really low-level without making system calls, then can it have full access to the processor?
在现代系统中这是不可能的。不管你喜不喜欢,都会在后台进行系统调用。
取决于 OS。像 MS-DOS 这样的东西只是一个 OS 并且不会阻止程序接管整个机器本质上让程序 运行 具有内核特权。
具有内存保护的任何 OS 试图防止单独的进程相互踩踏,内核不允许用户-space 进程直接与 [=16= 对话] 硬件。
特权用户-space 进程可能被允许将设备的视频 RAM and/or I/O 寄存器映射到它自己的地址 space,基本上充当设备驱动程序。 (例如 Linux 下的 X 服务器)
操作系统是如何管理程序权限的?如果你在写一个底层程序,不使用任何系统调用,直接控制处理器,那么如果程序直接控制处理器,操作系统如何下注?
编辑
看来我的问题不是很清楚,抱歉,我英语说得不好,我用的是翻译器。无论如何,我想知道操作系统如何管理程序的权限(例如 root 用户等...)。如果一个程序在没有进行系统调用的情况下编写得非常低,那么它可以完全访问处理器吗?如果要说它可以为所欲为,因此操作系统的各种用户/权限并不重要。但是,从我收到的第一个答案中,我读到没有系统调用就无法制作有用的程序,因此程序不能直接与硬件交互(例如,我的意思是 bios 如何与硬件交互)?
1) 不可能有不进行任何系统调用的程序。
2) 控制处理器运行的指令必须在内核模式下执行。
3) 进入内核模式的唯一方法是通过异常(包括系统调用)。通过控制异常的处理方式,操作系统可以防止恶意访问。
If a program is written to really low-level without making system calls, then can it have full access to the processor?
在现代系统中这是不可能的。不管你喜不喜欢,都会在后台进行系统调用。
取决于 OS。像 MS-DOS 这样的东西只是一个 OS 并且不会阻止程序接管整个机器本质上让程序 运行 具有内核特权。
具有内存保护的任何 OS 试图防止单独的进程相互踩踏,内核不允许用户-space 进程直接与 [=16= 对话] 硬件。
特权用户-space 进程可能被允许将设备的视频 RAM and/or I/O 寄存器映射到它自己的地址 space,基本上充当设备驱动程序。 (例如 Linux 下的 X 服务器)