其他
↓推荐关注↓《linux系统调用的来龙去脉》分为上下两篇,本文为上篇。1.前言开始正题前先讲两个生活小案例来引出系统调用的意义。案例一:图书馆安居不用架高堂,书中自有黄金屋。娶妻莫恨无良媒,书中自有颜如玉。图书馆是我喜欢去的一个地方,相信大家也都去过。在图书馆我们可以自由阅读任何书,广泛的汲取各种知识。正是由于所有人都可以自由的阅读任意书籍,所以经常就会出现书籍位置出现错乱,书籍页面出现损坏,甚至还会出现书籍遗失的情况。实例二:收藏馆价值连城的艺术品往往存放在特定温度和湿度的存储柜中,为了确保艺术品的安全,通常将它们存放到安全级别很高的收藏馆中。如果客户希望参观它们,先需要提交申请,进入收藏馆后,由专门的人员拿出艺术品供客户参观欣赏。这样保证了艺术品不受破坏,也保证了艺术品的安全。根据上述两个例子得出以下结论:如果每个用户都能自由使用“资源”,随着时间的推移,“资源”就会出现损坏。如果“资源”由“专业人员”管理,每个用户只能间接的使用“资源”,这样就可以安全的长久的使用“资源”。2.如何保证系统安全性操作系统提供给应用程序运行环境,让各种应用得以运行。在应用程序运行过程中有些操作是非常危险的,如果每个应用程序都能自由进行任何操作,就有可能带来如下各种问题:1、多个应用程序直接去操作硬件外设,就会出现相互冲突,可能会出现需要应用程序A的读取数据,被应用程序B读取的情况。2、多个应用程序被加载到内存,应用程序A占用了一个内存区域Z,应用程序B自己强制清空内存区域Z,那么就给应用程序A带来致命问题。3、部分应用程序需要硬件中断让自己在合适的时机开始执行,如果其它应用程序把中断关掉,那么这些依靠中断触发的应用程序将再也得不到执行。在应用程序运行过程中有些危险的操作将会对其它应用程序造成伤害,甚至会对操作系统造成伤害,导致系统崩溃。如果所有应用程序都可以使用这些操作,那么整个系统将是不稳定的,不安全的。如何防止应用程序对其它应用程序和操作系统造成伤害?造成这种问题的原因是每个应用程序都可以自由的使用关键“资源”,这就类似上文提到的图书馆模式,每个人都可以自由阅读所有书籍,所以容易出现书籍损坏(影响其它人阅读)。为了让应用程序都能正常运行不受其它应用程序伤害,为了系统能安全,稳定的长久运行,系统需要使用收藏馆模式。在收藏馆模式下关键“资源”由“专业人员”管理,每个应用程序只能间接的使用“资源”。3.特权级为了让系统系统能安全,稳定的长久运行,必须有一个有特权的“专业人员”对核心资源进行管理,那么就带来两个问题:1、专业人员的特权是什么?2、如何获取特权?特权是啥?计算机的硬件和软件是共同在发展,为了适应操作系统,处理器发展出两种权限模式:用户模式和特权模式。以ARM