我正在研究我的操作系统最后,并想知道是否有人可以告诉我为什么操作系统需要切换到系统调用的内核模式?为什么系统调用需要切换到内核模式?
1
A
回答
3
系统调用特别用于在内核模式下运行操作,因为出于安全原因,不允许通常的用户代码执行此操作。
例如,如果您想分配内存,操作系统有权执行此操作(因为它知道页表并且可以访问其他进程的内存),但是作为用户程序不应该被允许偷看或破坏其他进程的记忆。 这是沙箱你的一种方式。所以你发送一个系统调用请求操作系统分配内存,这发生在内核级别。
编辑:我现在看到Wikipedia article关于这个
1
因为这个惊人的有用被标记的“功课”,我不会只给出答案走,但会提供一个提示:
内核负责访问计算机的硬件并确保应用程序不会互相接触。如果任何应用程序可以在没有内核协作的情况下访问硬件设备(比如硬盘驱动器),会发生什么?
相关问题
- 1. 如何从用户模式切换到内核模式?
- 2. 操作系统中的用户模式和内核模式有什么区别?
- 3. 为什么现代操作系统需要这么多内存?
- 4. 为什么建立和使用内核模块需要depmod?
- 5. 上下文切换和内核模式
- 6. 将系统调用编写为内核模块
- 7. 为什么在从实模式切换到保护模式之前需要禁用中断?
- 8. 为什么我需要回到系统提示符?
- 9. 冗余的Linux内核系统调用
- 10. 为什么需要显式转换?
- 11. 为什么多处理器系统需要禁用中断
- 12. 为什么使用libusb需要卸载内核驱动程序?
- 13. 使用内核模块锁定系统调用
- 14. JAVA为什么arrayCopy系统调用?
- 15. 什么使read()成为系统调用?
- 16. 关系型数据库出了什么问题,为什么要切换到mongoDB
- 17. 在4.x.x内核中找到64位内存的系统调用表内核
- 18. 什么是系统调用?
- 19. 系统调用kill内核内核进程
- 20. 核心数据:为什么需要NSFetchedResultsControllerDelegate?
- 21. I/O系统调用需要退出
- 22. 为什么调用系统grep比在Ruby中匹配要慢?
- 23. 如何在内核模块中安装系统调用
- 24. 为什么我的GridView切换到编辑模式?
- 25. 切换android系统
- 26. 为什么我的程序不能用mkdir系统调用设置0777模式?
- 27. 登录系统:为什么需要会话?
- 28. 为什么Java需要PATH系统变量?
- 29. 内核内存在Windows操作系统中包含什么?
- 30. 将SMS系统连接到我的ERP需要什么?