操作系统构成:
控制程序: 硬件控制、程序运行控制
编程语言处理器: 汇编、编译、解析
实用程序: 文本编辑器、调试工具、Dump 程序等
操作系统本身不是单独的程序,而是多个程序的集合体,这个运行环境下,应用不直接控制硬件,而是通过操作系统来间接控制。
系统调用与高级编程语言的移植性:
系统调用:操作系统的硬件控制功能,通常通过一些小的函数集合体的形式提供,这些函数及调用函数的行为成为系统调用
可以移植性:为了实现一份源代码可以在不同的操作系统运行,高级编程语言一般不依存于特定操作系统,而是使用独自的函数名,然后在编译时将其转换成相应操作系统的系统调用(高级语言编写的源代码在编译后转换成了利用系统调用的本地代码),也存在部分可以直接调用系统调用的编程语言,但是这样编写的程序移植性不好,比如在 win 下编写的直接调用 win 系统调用的程序不能在 linux 上运行。
操作系统和高级编程语言是硬件抽象化:提高了程序编写效率喝难度,编写程序时不需要关注底层硬件直接是如何协作的,如文件是操作系统对磁盘媒介空间的抽象化,编写代码时,只需要执行相应的函数调用就可以实现文件的读写,而不用去关注底层的磁盘硬件
Windows 操作系统的特征
是 32 位或者 64 位操作系统
通过 Api 函数集来提供系统调用(API通过多个DLL文件提供,如Win32 api)
采用 GUI 图形用户界面(gui开发的难点,在任何操作顺序下都能正常运行,因为程序不知道用户会点击哪一部操作选项)
通过 WYSIWYG(显示器上显示的文本几图形等)可以通过打印机直接打印输出,最初显示与打印需要编写 2 个不同的程序实现
提供多任务功能(同时运行多个程序的功能,windows通过时钟分割技术实现:短时间间隔内多个程序的运行切换)与多线程功能(以程序中的函数为单位来进行时钟分割)
提供网络功能及数据库功能(虽不是操作系统所必须的,但是作为标准组件,由于与操作系统接近所以也称为中间件)
通过即插即用实现设备驱动的自动设定(设备驱动提供了同硬件进行基本输入输出的功能)