操作系统
引入
倘若我们要开发一个应用程序,比如xx视频,该软件的一个核心业务就是播放视频,开发者在开发程序时都必须依次开发两种:
-
1、控制硬件
-
编写一套完整的的控制程序,用来控制硬件的基本运行,以及把复杂的硬件的操作封装成简单的接口
-
-
2、再编写核心逻辑
-
基于控制程序的接口开发包含一系列业务逻辑的程序,为了与控制程序区分,可以称为应用程序
-
综上,对于不同公司的开发者来说,应用程序的业务逻辑各不相同,但硬件的控制程序都大致相同,为了避免所有程序员做重复劳动,以及不用再耗费精力去了解所有硬件的运行细节,有公司专门跳出来承担起控制程序的开发任务,这里所说的控制程序指的就是操作系统。
""" 发展历史 下面我们结合计算机的发展历史来回顾一下操作系统的发展历程。 1、第一代计算机(1945-1955):真空管和插件板 40年代中期,美国哈佛大学、普林斯顿高等研究院、宾夕法尼亚大学的一些人使用数万个真空管,构建了世界上第一台电子计算机。开启计算机发展的历史。这个时期的机器需要一个小组专门设计、制造、编程、操作、维护每台机器。程序设计使用机器语言,通过插板上的硬连线来控制其基本功能。 这个时候处于计算机发展的最初阶段,连程序设计语言都还没有出现,操作系统更是闻所未闻。 2、第二代计算机(1955-1965):晶体管和批处理系统 这个时期计算机越来越可靠,已从研究院中走出来,走进了商业应用。但这个时期的计算机主要完成各种科学计算,需要专门的操作人员维护,并且需要针对每次的计算任务进行编程。 第二代计算机主要用于科学与工程计算。使用FORTRAN与汇编语言编写程序。在后期出现了操作系统的雏形:FMS(FORTRAN监控系统)和IBMSYS(IBM为7094机配备的操作系统)。 3、第三代计算机(1965-1980):集成电路芯片和多道程序 60年代初,计算机厂商根据不同的应用分成了两个计算机系列,一个针对科学计算,一个针对商业应用。 随着计算机应用的深入,对统一两种应用的计算机需求出现了。这时IBM公司试图通过引入System/360来解决这个问题。 与这个计划配套,IBM公司组织了OS/360操作系统的开发,然后复杂的需求,以及当时软件工程水平低下使得OS/360的开发工作陷入了历史以来最可怕的“软件开发泥潭”,诞生了最著名的失败论著----《神秘的人月》。虽然这个开发计划失败了,但是这个愿望却成为了计算机厂商的目标。 此时,MIT、Bell Lab(贝尔实验室)和通用电气公司决定开发一种“公用计算机服务系统”----MULTICS,希望其能同时支持数百名分时用户的一种机器。结果这个计划的研制难度超出了所有人的预料,最后这个系统也以失败结束。不过,MULTICS的思想却为后来的操作系统很多提示。 20世纪60年代未,一位贝尔实验室曾参加过MULTICS研制工作的计算机科学家Ken Thompson,在一台无人使用的PDP-7机器上开发出了一套简化的、单用户版的MULTICS。后来导致了UNIX操作系统的诞生。 UNIX操作系统主导了小型机、工作站以及其他市场。也是至今最有影响力的操作系统之一,而Linux也是UNIX系统的一种衍生,下一讲我们将专门介绍一下UNIX的发展历史。 4、第四代计算机(1980-今):个人计算机 随着计算机技术的不断更新与发展,计算机神奇般地闯入了人们的生活,以低廉的价格就可以获得强大计算能力的计算机。 价格不再是阻拦计算机普及的门槛时,降低计算机的易用性就显得十分重要!由于UNIX系统的本身特点,使得其不太适合于在运行在个人计算机上,这时就需要一种新的操作系统。 在这一历史关键时候,IBM公司由于低估了PC机的市场,并未使用最大的力量角逐这一市场,这时Intel公司趁机进入,成为了当今微处理器的老大。同时善于抓住时机的微软公司的总裁比尔·盖茨适时地进入了这一领域,用购买来的CP/M摇身一变成为MS-DOS,并凭借其成为个人计算机操作系统领域的霸主。 虽然是苹果公司在GUI方面先拔头筹,但由于苹果公司的不兼容、不开放的市场策略,未能扩大战果,这时微软又适时地进入了GUI方面,凭借WINDOWS系统再次称雄。 """ 源自百度百科
总得来说: 操作系统的功能就是帮我们把复杂的硬件的控制封装成简单的接口,对于开发应用程序来说只需要调用操作系统提供给我们的接口即可
计算机系统三层结构
综上,我们开发应用程序本质是在控制硬件,但是我们直接打交道的是操作系统,应用程序都是通过操作系统来间接地操作硬件的,所以一套完整的计算机系统分为三层,如下
一个非常重要的基础概念:平台
应用程序都是运行于操作系统之上,而操作系统则是运行于硬件之上的,所以承载应用程序的是一台运行有操作系统的计算机,称之为应用程序的运行平台
计算机硬件 + 操作系统 ===》 平台
软件的跨平台性指的是:一款软件可以任意平台上运行,是衡量软件质量高低的一个非常重要的指标
有了聊聊计算机是怎么启动的
在计算机的主板上有一个基本的输入输出程序(Basic Input Output system)
BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。
启动流程
1.计算机加电
2.BIOS开始运行,检测硬件:cpu、内存、硬盘等
3.BIOS读取CMOS存储器中的参数,选择启动设备
4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)
5.根据分区信息读入bootloader启动装载模块,启动操作系统
6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI
- 补充 程序启动的三步
- 1 让操作系统找到 程序在硬盘的路径
- 2 操作系统把代码从硬盘加载到内存
- 3 cpu执行相关操作
参考 https://www.cnblogs.com/xiaoyuanqujing/articles/11640846.html