前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机底层知识之操作系统

计算机底层知识之操作系统

作者头像
前端柒八九
发布2022-12-19 21:38:08
6460
发布2022-12-19 21:38:08
举报
文章被收录于专栏:柒八九技术收纳盒

❝给时光以生命,而不是给生命以时光 ❞

大家好,我是「柒八九」

今天,我们继续「计算机底层知识」的探索。我们来谈谈关于「操作系统」的相关知识点。

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

文章list

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

你能所学到的知识点

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

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


操作系统功能的历史

在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入,这个过程非常麻烦。于是,有人开发出仅具有「加载」「运行功能」「监控程序」,这就是操作系统的原型。

通过事先启动监控程序,程序员就可以根据需要将各种程序加载到内存中运行。

随着时代的发展,人们在利用「监控程序」编写程序的过程中,发现很多程序都有「共通」的部分。例如,键盘输入、显示器输出文字等。因此,基本的「输入输出」部分的程序被追加到了监控程序中。因此,初期的操作系统就应用而生了。

初期的操作系统 = 监控程序 + 基本的输入输出程序

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


意识到操作系统的存在

我们希望制作应用的程序员意识到一点,那就是他们制作的不是硬件,而是「利用操作系统功能的应用」

虽然,对程序员来说,掌握硬件的基本知识是必需的,不过,在操作系统诞生后,就没有必要再编写直接控制硬件的程序了。不过,「要想成为一个全面的程序员,有一点需要清楚的是,掌握基本的硬件知识,并借助操作系统进行抽象化,可以大大提高编程效率。」

❝在操作环境这个运行环境下,应用并不是直接控制硬件,而是通过操作系统来「间接」控制硬件。 ❞


系统调用和高级编程语言的移植性

操作系统的硬件控制功能,通常是通过一些小的「函数集合」的形式来提供的。这些函数及调用函数的行为统称为系统调用System Call,也就是应用对操作系统的功能进行调用。

C语言等高级编程语言并不依存于特定的操作系统。这是因为无论Windows还是Linux都能使用几乎相同的源代码。因此,「高级编程语言的机制就是,使用独自的函数名,然后再在编译时将其转换成相应操作系统的系统调用」

用高级编程语言编写的应用在「编译后」,就转换成了利用系统调用的「本地代码」


操作系统和高级编程语言使硬件抽象化

通过使用操作系统提供的「系统调用」,程序员就没必要编写直接控制硬件的程序了。而且,通过使用高级编程语言,有时甚至也无需考虑系统调用的存在。这是因为「操作系统和高级编程语言能够使硬件抽象化」

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

代码语言:javascript
复制
#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)的机制。新的设备连接到计算机后,系统就会自动安装和设定用来控制该设备的「设备驱动」程序。

设备驱动是操作系统的一部分,提供了同硬件进行基本的输入输出的功能。


后记

「分享是一种态度」

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端柒八九 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章list
  • 你能所学到的知识点
  • 操作系统功能的历史
  • 意识到操作系统的存在
  • 系统调用和高级编程语言的移植性
  • 操作系统和高级编程语言使硬件抽象化
  • Windows 操作系统的特征
    • 通过WYSIWYG实现打印输出
      • 提供多任务功能
        • 提供网络功能及数据库功能
          • 通过即插即用实现设备驱动的自动设定
          • 后记
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档