万物能够划分为两类:编程
前者是称为神造事物或者天然存在的事物,后者称为人造事物。计算机学科是一我的造学科。编程语言
人造学科的4大特色:spa
对于绝大多数人编写程序的人来讲,使用编程语言称为高级程序设计语言,如C、C++、Java等。但因为计算机并不认识高级语言编写的程序,编好的程序须要进行编译变成计算机可以识别的机器语言程序,而这须要编译器和汇编器的帮助。其次,机器语言程序须要加载到内存,造成一个运动中的程序,即进程,而这须要操做系统的帮助。进程须要在计算机芯片CPU上执行的机器语言指令须要变成可以一个个时钟脉冲里执行的基本操做,这须要指令集结构和计算机硬件的支持,而整个程序的执行过程还须要操做系统提供服务和程序语言提供的执行环境(runtime environment)。这样,一个从程序到微指令执行的过程就完成了。操作系统
因此,从上面的描述中咱们能够看出:程序的运行至少须要以下4个因素:翻译
须要注意的是,程序执行过程是从高级语言编写的程序开始的。而实际并不是这样。事实上,程序可能直接使用机器语言或汇编语言进行编写。用这种称为"低级"的语言编写出来的机器语言无需通过编译器的翻译就能够在计算机指令集上执行。若是在汇编语言上编写的汇编程序,则只须要通过汇编器的翻译便可加载执行。设计
总的来讲操做是掌控计算机局势的一个系统。具体来讲操做系统是介于计算机和应用软件之间的一个软件系统,位于操做系统的下面是硬件平台,上面则是应用软件。进程
所以,当咱们理解了操做系统表明的是掌控事情的系统,可是究竟掌控什么事情呢?固然是计算机上或计算机里发生的一切事情。最原始的计算机并无操做系统,而是直接由人来掌握事情,即所谓的单一控制终端、单一操做员模式。可是随着计算机复杂性的增加,人已经不能胜任直接掌控计算机了。因而咱们编写出操做系统这个“软件”来掌控计算机,将人类从日益复杂的掌控任务中解脱出来。这个掌握有着多层深远的意义。内存
首先,因为计算机的功能和复杂性不断的发生变化(趋向更加复杂),操做系统所掌控的事情也就愈来愈多,愈来愈复杂。同时,操做系统自己可以使用的资源也不断增长(如内存容量)。这就是早期操做系统不断改善的根本缘由。资源
其次,既然操做系统是专门掌控计算机的,那么计算机上发生的全部事情天然须要操做系统的知晓和许可,未经操做系统赞成的任何事情都可视为非法的,也就是病毒和入侵攻击所试图动做的事情。做为操做系统的设计人员,咱们固然须要确保计算机不发生任何咱们不知情或不一样意的事情。可是人的能力是有限的,人的思惟也是有缺陷的,咱们设计出的系统天然不会十全十美,也会有缺陷,这就给了攻击者可乘神之机。操做系统设计人员和攻击者之间的博弈是当前驱动操做系统改善的一个重要动力。 编译器