电子说
在计算机中尚不存在操作系统的年代,完全没有任何程序,因此程序员就需要编写出处理相关的所有程序。用机器语言编写程序,然后再使用开关将程序输入,这个过程非常麻烦。于是,有人开发出仅具有 「加载」 和 「运行功能」 的 「监控程序」 ,这就是操作系统的原型。
通过事先启动监控程序,程序员就可以根据需要将各种程序加载到内存中运行。
随着时代的发展,人们在利用 「监控程序」 编写程序的过程中,发现很多程序都有 「共通」 的部分。例如,键盘输入、显示器输出文字等。因此,基本的 「输入输出」 部分的程序被追加到了监控程序中。因此,初期的操作系统就应用而生了。
初期的操作系统 = 监控程序 + 基本的输入输出程序
之后,开始有更多的功能被追加到监控程序中。例如,硬件控制程序、语言处理器(汇编、编译、解析)以及各种实用程序等。从此可知, 「操作系统本身并不是单独的程序,而是多个程序的集合体」 。
我们希望制作应用的程序员意识到一点,那就是他们制作的不是硬件,而是 「利用操作系统功能的应用」 。
虽然,对程序员来说,掌握硬件的基本知识是必需的,不过,在操作系统诞生后,就没有必要再编写直接控制硬件的程序了。不过,「要想成为一个全面的程序员,有一点需要清楚的是,掌握基本的硬件知识,并借助操作系统进行抽象化,可以大大提高编程效率。」
❝在操作环境这个运行环境下,应用并不是直接控制硬件,而是通过操作系统来 「间接」 控制硬件。
❞
操作系统的硬件控制功能,通常是通过一些小的 「函数集合」 的形式来提供的。这些函数及调用函数的行为统称为系统调用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()
打开文件后,接下来就是通过指定文件指针来对文件进行操作。
32/64
位操作系统WYSIWYG
实现打印输出我们来挑几个我们比较感兴趣的来简单讲讲。
WYSIWYG
实现打印输出WYSIWYG
是What You See Is What You Get
的缩写。翻译成中文就是 「所见即所得」 。
WYSIWYG
指的是显示器上显示的内容可以直接通过打印机打印输出。在Windows
中,显示器和打印机是被作为同等的图形输出设备处理的,而该功能也就为WYSIWYG
的实现提供了条件。
借助WYSIWYG
功能,基本上在同一个程序中就可以实现显示和打印这两方面的操作了。
❝ 「多任务」 指的是同时运行多个程序的功能。
Windows
是通过 「时钟分割」 技术来实现多任务功能的。❞
时钟分割指的是在短时间间隔内,多个程序切换运行的方式。在用户看来,就是多个任务在同时运行。而Windows
会自动切换多个程序的运行。此外,Windows
还具有 「以程序中的函数为单位来进行时钟分割的多线程功能」 。
Windows
中,网络功能是作为 「标准功能」 提供的。数据库功能有时也会在之后进行追加。网络功能和数据库功能,虽并不是操作系统本身不可欠缺的功能,但因为它们和操作系统很接近,所以被统称为 「中间件」 而不是应用。
❝中间件的意思是处于 「操作系统和应用的中间」 。
❞
操作系统和中间件合在一起,也称为**「系统软件」**
即插即用Plug-and-Play指的是新的设备连接(Plug
)后立刻就可以使用(Play
)的机制。新的设备连接到计算机后,系统就会自动安装和设定用来控制该设备的 「设备驱动」 程序。
设备驱动是操作系统的一部分,提供了同硬件进行基本的输入输出的功能。
全部0条评论
快来发表一下你的评论吧 !