操作系统简介

在计算机刚诞生的时候,是没有操作系统这一概念的,我们程序员想要编写程序,首先要编写操作操作计算机硬件的程序,再在这个基础上去写我们的程序,这是一个很繁琐的活儿。

现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。
一般而言,现代计算机系统是一个复杂的系统。

  • 如果每位应用程序员都必须掌握该系统所有的细节,那就不可能再编写代码了(严重影响了程序员的开发效率:全部掌握这些细节可能需要一万年…)
  • 管理这些部件并加以优化使用,是一件极富挑战性的工作,于是,计算安装了一层软件(系统软件),称为操作系统。它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理刚才提到的所有设备。

操作系统:简单来说,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。

操作系统两大功能:

  • 隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的更好,更简单,更清晰的模型(系统调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。
  • 将应用程序对硬件资源的竞态请求变得有序化

操作新系统发展史

操作系统主要分这么几个阶段:

  • 手工操作
    程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。
  • 批处理系统
    批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)。
  • 多道程序系统
    所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。
  • 分时系统
    分时技术:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。
  • 实时系统
    系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理。
  • 通用操作系统
    具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。

详情点这里➡️操作系统简介

操作系统内核

内核(Kernel)
内核就是由一条条指令组成的庞大的指令集,就相当于一段代码。
如上所说,操作系统就是一个(一组)程序,这个程序的重点在于协调、管理和控制计算机硬件资源和软件资源。没有软件的计算机就相当于一堆废铁。操作系统的作用就是让CPU可以开始判断与计算,让内存可以读取数据,让硬盘可以被访问等。上面提到的这些都与操作系统的内核相关。一台计算机能做哪些事,不能做哪些事,全由内核进行控制。只有内核提供了相关功能,计算机才可以做相应的操作。举例来说:一台计算机的内核不支持TCP/IP协议,无论你买什么样的网卡,都无法进行上网操作。

内核在开机后就一直常驻在内存中,存放内核的这块内存区域是受保护的,用户无法直接访问。

内核具备的功能:

操作系统内核负责整个计算机系统相关的资源分配与管理,具有很强大的功能。

  • 系统调用接口
    方便程序员更轻松容易的调用硬件,对硬件资源进一步利用。
  • 程序管理
    内核必须能够控制多个任务,让CPU的资源分配变得更合理。
  • 内存管理
    当内存不足时,内核可以提供内存交换功能
  • 文件系统管理
    内核可以识别文件系统,这样我们才可以对文件进行增删改查。例如:mac os系统不识别ntfs格式的硬盘,所以我们无法直接使用。

内核是控制管理硬件的,那么内核一定要识别硬件才可以对其进行管理、控制。硬件的更新换代是特别迅速的,内核如何才能驱动一个新硬件呢
内核具有这么几个特性:

  • 操作系统必须要能够驱动硬件,如此应用程序才能够使用该硬件功能。
  • 一般来说,操作系统会提供开发接口,让开发商制作他们的驱动程序。
  • 要使用新硬件功能,必须要安装厂商提供的驱动程序才行。
  • 驱动程序是由厂商提供的,与操作系统开发者无关。

Linux发展史

早期的计算机多用于军事、科学领域及学术研究等,当时的操作系统还处于多道批处理系统阶段,使用起来相当不便。在20世纪60年代初,麻省理工学院开发了分时操作系统。

1965年前后,由贝尔实验室(bell)、麻省理工学院(MIT)、通用电气公司(GE)联合发起了Multics项目,该项目的目的是让大型主机可以同时提供300台以上的终端机连接使用。1969年左右,贝尔实验室退出该项目组。Ken Thompson,贝尔实验室中的一员,在项目组时收货颇多,回去以后,利用闲暇的一个月时间,使用汇编语言写了一组内核程序,以及一个小的文件系统。这就是UNIX的原型。

该文件系统有两个重要概念

  • 所有的程序或系统装置都是文件(万物皆文件)
  • 不管构建编辑器还是附属文件,所写的程序只有一个目的,就是要有效地完成目标。

1973年,Thompson与Ritchie合作将最初版本的文件系统改为使用更高级的语言编写,当时的高级程序语言有B语言,但是B语言所编译出来的内核性能不是很好,后来Dennis Ritchie将B语言重新改写为C语言,再以C语言重新改写编译内核,最后发行出UNIX的正式版本。

汇编语言需要与硬件有有密切的配合,所以最初的文件系统是不具备移植性的或者说移植性很差,UNIX是以高级语言C语言编写的导致其移植性变得很强大。

紧接着来到下一阶段,伯克利大学的Bill Joy创建了UNIX的一个重要分支——BSD,Bill Joy同时还是著名的Sun公司的创办者。Sun公司以BSD开发的内核进行自己的商业UNIX版本。

再后来,大学教授谭宁邦为了教学自己手写了Minix内核程序,这是一个UNIX Like的内核程序,为了避免版权纠纷,谭宁邦完全不看UNIX内核源码。唯一的缺点就是谭宁邦教授认为,Minix是用于教育的,所以对Minix只是点到为止,没有再进一步上升。

1991年,芬兰的赫尔辛基大学的Linus Torvalds在论坛上发布了一个小小小的内核程序,这个内核程序可以在Intel的386机器上面运行,让很多人对其产生兴趣,从此开始了Linux不平凡的旅程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Noah Ren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值