我正在研究我的操作系统最后,并想知道是否有人可以告诉我为什么操作系统需要切换到系统调用的内核模式?为什么系统调用需要切换到内核模式?
1
A
回答
3
系统调用特别用于在内核模式下运行操作,因为出于安全原因,不允许通常的用户代码执行此操作。
例如,如果您想分配内存,操作系统有权执行此操作(因为它知道页表并且可以访问其他进程的内存),但是作为用户程序不应该被允许偷看或破坏其他进程的记忆。 这是沙箱你的一种方式。所以你发送一个系统调用请求操作系统分配内存,这发生在内核级别。
编辑:我现在看到Wikipedia article关于这个
1
因为这个惊人的有用被标记的“功课”,我不会只给出答案走,但会提供一个提示:
内核负责访问计算机的硬件并确保应用程序不会互相接触。如果任何应用程序可以在没有内核协作的情况下访问硬件设备(比如硬盘驱动器),会发生什么?
相关问题
- 1. 切换到(Linux)内核模式
- 2. 内核模块监控系统调用?
- 3. 操作系统中的用户模式和内核模式有什么区别?
- 4. 从用户模式切换到内核模式
- 5. 如何从用户模式切换到内核模式?
- 6. 为什么现代操作系统需要这么多内存?
- 7. 为什么建立和使用内核模块需要depmod?
- 8. Linux内核模块(内核3.5)中的系统调用拦截
- 9. 上下文切换和内核模式
- 10. 将系统调用编写为内核模块
- 11. 为什么在从实模式切换到保护模式之前需要禁用中断?
- 12. 为什么我需要回到系统提示符?
- 13. 为什么需要将django迁移到版本控制系统
- 14. Titan/JanusGraph管理系统需要什么?
- 15. 为什么同步需要上下文切换到OS?
- 16. 为什么需要显式转换?
- 17. MINIX 2 - 系统调用内核
- 18. 冗余的Linux内核系统调用
- 19. Linux内核中的系统调用
- 20. Linux内核AIO,开放系统调用
- 21. 更改linux内核系统调用号
- 22. Android内核,WiFi扫描系统调用
- 23. 跳转到装配切换到保护模式后内核
- 24. 为什么模式切换在过程切换中发生?
- 25. 为什么多处理器系统需要禁用中断
- 26. 为什么使用libusb需要卸载内核驱动程序?
- 27. 什么使read()成为系统调用?
- 28. JAVA为什么arrayCopy系统调用?
- 29. 使用内核模块锁定系统调用
- 30. 使用内核模块(LKM)添加系统调用