给韶光以生命,而不是给生命以韶光

大家好,我是柒八九

今日,咱们持续计算机底层常识的探索。咱们来谈谈关于操作体系的相关常识点。

如果,想了解该系列的文章,能够参考咱们已经发布的文章。如下是往期文章。

文章list

  1. 计算机底层常识之CPU
  2. 计算机底层常识之二进制
  3. 计算机底层常识之处理小数
  4. 计算机底层常识之内存和磁盘的关系&数据压缩
  5. 计算机底层常识之运转环境&可执行文件

你能所学到的常识点

  1. 操作体系功用的历史 引荐阅览指数 ⭐️⭐️⭐️⭐️
  2. 意识到操作体系的存在 引荐阅览指数 ⭐️⭐️⭐️⭐️
  3. 体系调用和高档编程言语的移植性 引荐阅览指数 ⭐️⭐️⭐️⭐️⭐️
  4. 操作体系和高档编程言语使硬件抽象化 引荐阅览指数 ⭐️⭐️⭐️⭐️⭐️
  5. Windows 操作体系的特征 引荐阅览指数 ⭐️⭐️⭐️

好了,天不早了,干点正事哇。

计算机底层常识之操作体系


操作体系功用的历史

在计算机中尚不存在操作体系的年代,完全没有任何程序,因而程序员就需求编写出处理相关的一切程序。用机器言语编写程序,然后再运用开关将程序输入,这个进程非常麻烦。于是,有人开宣布仅具有加载运转功用监控程序,这便是操作体系的原型。

经过事先发动监控程序,程序员就能够根据需求将各种程序加载到内存中运转。

计算机底层常识之操作体系

随着年代的开展,人们在运用监控程序编写程序的进程中,发现很多程序都有共通的部分。例如,键盘输入、显示器输出文字等。因而,根本的输入输出部分的程序被追加到了监控程序中。因而,初期的操作体系就运用而生了。

计算机底层常识之操作体系

之后,开端有更多的功用被追加到监控程序中。例如,硬件操控程序、言语处理器(汇编、编译、解析)以及各种实用程序等。从此可知,操作体系自身并不是单独的程序,而是多个程序的集合体

计算机底层常识之操作体系


意识到操作体系的存在

咱们期望制造运用的程序员意识到一点,那便是他们制造的不是硬件,而是运用操作体系功用的运用

尽管,对程序员来说,把握硬件的根本常识是必需的,不过,在操作体系诞生后,就没有必要再编写直接操控硬件的程序了。不过,要想成为一个全面的程序员,有一点需求清楚的是,把握根本的硬件常识,并凭借操作体系进行抽象化,能够大大提高编程功率。

在操作环境这个运转环境下,运用并不是直接操控硬件,而是经过操作体系来间接操控硬件。

计算机底层常识之操作体系


体系调用和高档编程言语的移植性

操作体系的硬件操控功用,通常是经过一些小的函数集合的形式来供给的。这些函数及调用函数的行为统称为{体系调用|System Call},也便是运用对操作体系的功用进行调用。

C言语等高档编程言语并不依存于特定的操作体系。这是由于不管Windows还是Linux都能运用几乎相同的源代码。因而,高档编程言语的机制便是,运用单独的函数名,然后再在编译时将其转换成相应操作体系的体系调用

用高档编程言语编写的运用在编译后,就转换成了运用体系调用的本地代码

计算机底层常识之操作体系


操作体系和高档编程言语使硬件抽象化

经过运用操作体系供给的体系调用,程序员就没必要编写直接操控硬件的程序了。而且,经过运用高档编程言语,有时甚至也无需考虑体系调用的存在。这是由于操作体系和高档编程言语能够使硬件抽象化

咱们用C言语编写一个往文件中写入字符串的运用。

#include <stdio.h>
void main(){
  //翻开文件
  FILE *fp = fopen("MyFile.txt","w");
  /写入文件
  fputs("前端柒八九",fp);
  // 封闭文件
  fclose(fp);
}
  • fopen()是用来翻开文件的函数
  • fputs()是用交游文件中写入字符串的函数
  • fclose()是用来封闭文件的函数

在运用被编译运转后,MyFile文件中就会被写入前端柒八九字符串。

文件是操作体系对磁盘前言空间的抽象化

正如前面介绍过,硬件被划分为了多个扇区,并以扇区为单位对磁盘进行读写。

计算机底层常识之操作体系

变量fp中被赋予的是fopen()函数的返回值。该值称为文件指针。运用翻开文件后,操作体系就会主动申请分配用来管理文件读写的内存空间。这个内存空间的地址能够经过fopen()函数的返回值取得。用fopen()翻开文件后,接下来便是经过指定文件指针来对文件进行操作。


Windows 操作体系的特征

  1. 32/64位操作体系
  2. 经过API函数集来供给体系调用
  3. 供给采用了{图形用户界面|Graphical User Interface}的用户界面
  4. 经过WYSIWYG完成打印输出
  5. 供给多使命功用
  6. 供给网络功用及数据库功用
  7. 经过即插即用完成设备驱动的主动设定

咱们来挑几个咱们比较感兴趣的来简略讲讲。

经过WYSIWYG完成打印输出

WYSIWYGWhat You See Is What You Get的缩写。翻译成中文便是所见即所得

WYSIWYG指的是显示器上显示的内容能够直接经过打印机打印输出。在Windows中,显示器和打印机是被作为平等的图形输出设备处理的,而该功用也就为WYSIWYG的完成供给了条件。

凭借WYSIWYG功用,根本上在同一个程序中就能够完成显示和打印这两方面的操作了。

供给多使命功用

多使命指的是一起运转多个程序的功用。Windows是经过时钟切割技术来完成多使命功用的。

时钟切割指的是在短时间间隔内,多个程序切换运转的方法。在用户看来,便是多个使命在一起运转。而Windows会主动切换多个程序的运转。此外,Windows还具有以程序中的函数为单位来进行时钟切割的多线程功用

计算机底层常识之操作体系

供给网络功用及数据库功用

Windows中,网络功用是作为规范功用供给的。数据库功用有时也会在之后进行追加。网络功用和数据库功用,虽并不是操作体系自身不行欠缺的功用,但由于它们和操作体系很接近,所以被统称为中间件而不是运用。

中间件的意思是处于操作体系和运用的中间

操作体系和中间件合在一起,也称为体系软件

计算机底层常识之操作体系

经过即插即用完成设备驱动的主动设定

{即插即用|Plug-and-Play}指的是新的设备连接(Plug)后马上就能够运用(Play)的机制。新的设备连接到计算机后,体系就会主动安装和设定用来操控该设备的设备驱动程序。

设备驱动是操作体系的一部分,供给了同硬件进行根本的输入输出的功用。


后记

分享是一种态度

参考资料:《程序是怎样跑起来的》

全文完,既然看到这里了,如果觉得不错,顺手点个赞和“在看”吧。

计算机底层常识之操作体系