机器语言时代
早期程序软件直接和计算机硬件打交道,而硬件机器只认识0和1,因此我们需要学习机器看得懂的语言来开发应用程序。
面临的挑战
1 需要了解机器语言
2 需要了解所有硬件的相关功能函数
3 编写的程序不具有移植性
高级语言时代
机器语言的编写和修改是极其痛苦的,后来人们计出一种让人类看的懂得程序语言,并创造一种“编译器”来将这些人类能够写的程序语言转译成为机器能看懂得机器码, 如此一来我们修改与撰写程序就变的容易。
高级语言出现解决人们不在需要使用机器语言,然而还是不能做到编译的程序处处运行。开发的程序依旧需要针对不同机器不同底层硬件做适配
操作系统
操作系统(Operating System, OS)是由高级语言编写的一组程序, 这组程序的重点在于管理电脑<br>的所有活动以及驱动系统中的所有硬件并将其核心功能抽象为提供系统调用的接口。这样我们开发程序只需要和操作系统打交道而不在需要参考底层的硬件。
特性
操作系统的核心层直接参考硬件规格写成, 所以同一个操作系统程序不能够在不一样的硬件架构下运行
操作系统只是在管理整个硬件资源,包括CPU、内存、输入输出设备及文件系统文件
应用程序的开发都是参考操作系统提供的开发接口, 所以该应用程序只能在该操作系统上面运行而已,不可以在其他操作系统上面运行的。
核心功能
系统调用接口(System call interface)
程序管理(Process control)
内存管理(Memory management)
文件系统管理(Filesystem management)
设备的驱动(Device drivers)