目录linux
可能有不少同窗都有碰到下面我说的这个场景,当咱们花了8888大洋买了一台16G内存的专业吃鸡电脑时,打开电脑发现本身的电脑内存只有15G不到,而后就开始了吃鸡之旅。ios
可是若是你对你少掉的内存关心的话,你会发现并非厂商为了节省造价成本,而这少掉的内存被某种东西给占用了,这种东西就是咱们这篇文章的主角——操做系统。编程
在了解操做系统以前,咱们首先回顾下编程的目的,编程的目的是奴役计算机,取代人力。windows
如今想象一个这样的场景,若是你是奴隶主(人),你在黑市上买了一个奴隶(计算机),你想让这个奴隶干扫地的活,可是这个奴隶可能不明白扫地是什么意思,甚至可能都不知道你全程在逼逼啥。这个时候你可能会考虑买一个管家(操做系统),这个管家既能和你交流,也能和奴隶交流,而后你有任何命令都将由这个管家传达给奴隶。架构
如今让咱们来想象咱们在计算机上打开一个文件的流程:首先咱们须要开机,其次咱们须要打开一个文件。可能咱们全部人都会认为这没啥,可是,这个时候你须要注意,文件它是什么呢?由于咱们太习觉得常了,因此咱们忽略了这个问题:文件是什么呢?这个时候我不得不告诉你,你能够把文件理解成一个虚拟的单位,有了这个虚拟的单位,咱们再也不须要考虑机械手臂的运转,你只须要文件能够双击打开、能够写入数据、能够CTRL+S保存。操作系统
如今让咱们来思考文件这个虚拟的单位是谁提供的呢?若是有使用过linux系统的同窗应该知道,linux系统中看不到任何一个文件的图标,只有一行一行的代码?(可是Linux一切皆文件)blog
linux系统既然看不到文件的图标,那么windows系统的电脑上文件图标是谁提供的呢?毫无疑问。这个时候咱们能够得知windows系统电脑上的文件这个虚拟单位是windows操做系统提供的。也正是在启动计算机的时候,计算机开启了操做系统这个软件(计算机除了硬件,就是软件,软件通常用来控制硬件)。可是须要注意的是,只要你想打开一个文件,归根结底都是须要你去操做硬件的,只不过是操做系统不只给咱们提供了文件这个概念,而且把对文件打开的这个复杂操做封装成了一个双击文件的接口给咱们。接口
刚刚和同窗们聊了聊计算机打开文件的流程。咱们知道了文件这个虚拟概念是操做系统给咱们的。这个时候咱们须要回过头来看看咱们的计算机,计算机建立的初心不是让咱们写一个操做系统来控制硬件的。内存
计算机建立的目的是为了让咱们人奴役他们,让它们替咱们干活。那是否是说咱们能够经过计算机开发一款ATM系统,让它们天天24小时不停歇的吞钱、吐钱呢?毫无疑问是能够的。有了操做系统在计算机上的一切操做都将变得很简单,那是否是说咱们就须要在每台计算机上都写一套操做系统呢?经过常识来看,咱们是不须要的,咱们只须要复制其余人的操做系统便可,可是在计算机建立初期是须要本身手写操做系统的?但现在,若是真的让咱们写一个操做系统出来,可能咱们一生都使出吃奶的劲都无能为力。资源
应用程序其实很好理解,计算机只由硬件和软件组成,应用程序必定不是硬件,那么软件中除了操做系统咱们均可以称之为应用程序。说了这么多,其实就像让你明白一件事:应用程序位于操做系统之上,它主要用来帮助人干各类各样的工做,它不直接与硬件交互。
经过上面从文件到应用软件的铺垫,咱们在这里直接给出操做系统的定义:操做系统位于计算机硬件与应用软件之间,它是一个协调管理计算机资源和软件资源的控制程序。它把对硬件的复杂操做,封装成一个一个简单的接口,供人们使用。
为了明白为何要有操做系统。咱们在这里再给出一个计算机系统的组成:一套完整的计算机系统由计算机硬件、操做系统和应用程序组成,对这三个组件的解释以下:
因为咱们之后开发都是都是应用程序,应用程序没法操做硬件,但凡须要操做硬件,都是调用操做系统的接口。
操做系统的启动:操做系统代码由硬盘读入内存(BIOS程序),CPU运行操做系统代码(CMOS存储器),运行成功后操做系统接管操做硬件的工做。
应用程序的启动:应用程序代码有硬盘读入内存,CPU运行应用程序码,运行成功便可使用应用程序。虽然应用程序的启动和操做系统的启动有着殊途同归之处,可是得明确一点:装了操做系统以后才能装应用程序,才有应用程序这个概念。所以上述应用程序对硬件控制的每一步操做,都依赖于操做系统的帮助。