0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_78858299 来源:前端柒八九 作者:前端柒八九 2023-03-31 15:55 次阅读

操作系统功能的历史

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

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

图片

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

图片

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

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

图片


意识到操作系统的存在

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

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

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

图片


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

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

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

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

图片


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

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

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

#include 

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84533
  • 程序员
    +关注

    关注

    4

    文章

    931

    浏览量

    29572
  • 机器语言
    +关注

    关注

    0

    文章

    35

    浏览量

    10699
收藏 人收藏

    评论

    相关推荐

    计算机操作系统PPT

    计算机操作系统PPT操作系统引论(1章)进程管理(2-3章)存储管理(4章)设备管理(5章)文件管理(6章)操作系统接口(7章)系统安全性(
    发表于 11-07 11:19

    计算机软件与操作系统

    计算机软件与操作系统  功能强大的计算机自从走进了人类的生活就发挥着越来越重要的作用,随着时代的发展,计算机已与人们的日常生活息息相关。不能不说计算
    发表于 09-13 10:09

    计算机操作系统进程的起源

    计算机操作系统-进程(1)起源、定义、组成、组织、特征
    发表于 06-10 11:41

    计算机操作系统

    计算机操作系统-进程(2)进程的状态与转换
    发表于 05-25 16:45

    在ARM中计算机技术和知识的分享

    1.相关资料的分享,c/c++语言面试宝典,从面试的角度看待编程语言应该如何学习2.计算机基础和操作系统资料分享,在应用的计算机底层的时候必须得掌握的
    发表于 10-21 14:27

    计算机软硬件知识

    –1946-1957晶体管 第二代–1958-1964 操作系统刚出现的时期中小规模集成电路 第三代–1965-1970大超大集成电路第四代–1971-至今 以微处理器为核心、也称个人PC、最广泛使用操作系统的时期计算机应用:科
    发表于 07-22 06:31

    什么是计算机操作系统

    什么是计算机操作系统操作系统是一种为应用程序提供服务的系统软件,是一个完整的计算机系统的有机组成部分。从层次上来看,
    发表于 12-14 06:50

    嵌入式系统与通用计算机操作系统的区别是什么

    嵌入式系统与通用计算机操作系统的区别以前仅学习并接触过嵌入式系统,通过对比,可以把以前学过的知识对应到
    发表于 12-22 06:35

    计算机操作系统课件

    计算机操作系统课件内容如下第1章  计算机操作系统概述.ppt1.1  存储程序式计算机模型1.2 
    发表于 11-07 09:43 0次下载
    <b class='flag-5'>计算机</b><b class='flag-5'>操作系统</b>课件

    2004年计算机操作系统试题

    计算机专业计算机操作系统试题 2004年1月一、选择题(选择一个正确答案的代号填入括号中,共40分)1.操作系统是为了提高计算机的C1](
    发表于 01-07 19:24 2次下载

    计算机操作系统》课程教学探讨

    计算机操作系统课是一门涉及知识面广的专业基础课程,该课程的教学一直在计算机专业教学计划中居重要位置.本文在分析了目前国内计算机
    发表于 04-18 21:12 48次下载

    计算机测控系统操作系统概述集合【labview基础知识

    计算机测控系统操作系统概述集合,labview基础知识
    发表于 01-12 11:13 19次下载

    计算机操作系统原理与设计

    计算机操作系统原理与设计算机操作系统原理与设计 计算机操作系统原理与设计
    发表于 06-03 14:30 42次下载

    计算机操作系统的最基本特征是什么_计算机操作系统是什么的接口

    计算机操作系统是用户与计算机的接口,在计算机中,操作系统是其最基本也是最重要的基础性系统软件;
    发表于 09-03 15:36 1.4w次阅读

    为什么计算机需要操作系统

    今天,我们从三个方面来简单聊聊为什么计算机系统需要操作系统这个话题。
    的头像 发表于 02-03 11:00 1703次阅读