问1:为什么需要由Linux这样的OS来调用外部设备?
答1:如果不,就需要为每个进程单独编写调用设备的代码。这样不仅麻烦,而且多进程同时调用设备时,可能会冲突。为了解决上述问题,Linux把设备调用处理整合成了一个叫作设备驱动程序的程序,使进程通过设备驱动程序访问设备。
问2:世界上的设备很多,需要为每个设备编写一个接口吗?
答2:虽然世界上存在各种设备,但对于同一类型的设备,Linux可以通过同一个接口进行调用
问3:如果某个进程因为Bug或者程序员恶意操作,导致多个进程同时调用设备怎么办?
答3:为了避免这种情况,Linux借助硬件,使进程无法直接访问设备。具体来说,CPU存在内核模式和用户模式两种模式,只有处于内核模式时才允许访问设备。另外,使设备驱动程序在内核模式下运行,使进程在用户模式下运行。
问4:什么是内核?何时调用内核?由谁来调用内核?
答4:除了设备驱动程序,还有进程管理系统、进程调度器、内存管理系统也全都在内核模式下运行。把这些在内核模式下运行的OS的核心处理整合在一起的程序就叫作内核。如果进程想要使用设备驱动程序等由内核提供的功能,就需要通过被称为系统调用的特殊处理来向内核发出请求。
问5:操作系统OS由什么组成的呢?内核吗?
答5:OS并不单指内核,它是由内核与许多在用户模式下运行的程序构成的。
问6:内核的功能是什么?
答6:内核负责管理计算机系统上的CPU和内存等各种资源,然后把这些资源按需分配给在系统上运行的各个进程。