【问题标题】:Why does syscall need to switch into kernel mode?为什么系统调用需要切换到内核模式?
【发布时间】:2010-10-23 17:28:19
【问题描述】:

我正在为我的操作系统期末考试而学习,想知道是否有人可以告诉我为什么操作系统需要切换到内核模式以进行系统调用?

【问题讨论】:

    标签: operating-system system-calls


    【解决方案1】:

    系统调用专门用于在内核模式下运行操作,因为出于安全原因,通常的用户代码不允许这样做。

    例如,如果你想分配内存,操作系统是有特权的(因为它知道页表并被允许访问其他进程的内存),但你作为用户程序不应该被允许偷看或破坏其他进程的内存。 这是一种沙盒方式。所以你发送一个系统调用请求操作系统分配内存,这发生在内核级别。

    编辑:我现在看到 Wikipedia article 在这方面非常有用

    【讨论】:

      【解决方案2】:

      由于这被标记为“作业”,我不会只是给出答案,而是会提供一个提示:

      内核负责访问计算机的硬件并确保应用程序不会相互影响。如果任何应用程序可以在没有内核合作的情况下访问硬件设备(例如硬盘驱动器)会发生什么?

      【讨论】:

        猜你喜欢
        • 2017-09-02
        • 2019-04-21
        • 1970-01-01
        • 2014-05-30
        • 2019-06-06
        • 1970-01-01
        • 2020-01-17
        • 2014-05-12
        • 1970-01-01
        相关资源
        最近更新 更多