zoukankan      html  css  js  c++  java
  • 3 关于操作系统基本了解

    操作系统

    引入

    倘若我们要开发一个应用程序,比如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

  • 相关阅读:
    实验3 颜色、字符串资源使用
    存储管理实验
    内存的分配与回收
    实验三
    JavaScript事件循环机制
    Js练习代码
    学习笔记(es6 react vue)
    express中间件的理解
    es6-Promise对象学习
    iscroll插件的使用
  • 原文地址:https://www.cnblogs.com/aweisl/p/13469014.html
Copyright © 2011-2022 走看看