一、计算机操作系统
什么是操作系统?
操作系统位于计算机硬件与应用软件之间,是一个协调管理计算机资源和软件资源的控制程序,它把对对计算机硬件的一系列复杂的操作封装成一个个简单的接口供人们使用。
为什么要有操作系统?
一套完整的计算机系统是由计算机硬件、操作系统和应用程序三部分组成:
应用程序:应用程序基于操作系统之上,它主要用来帮助人干各种各样的工作,它不直接与硬件交互。
操作系统:操作系统一般用来控制硬件,把对硬件复杂的操作封装成一个简单又优美的接口,给用户或应用程序使用。也就是说,但凡需要用硬件的地方,都需要用到操作系统。如Linux、Windows和ios等。
计算机硬件:以二进制形式存储数据,如CPU、硬盘和内存等
由于我们以后开发的都是应用程序,应用程序无法操作计算机硬件,这时候我们就需要操作系统提供的接口来完成对计算机硬件的操作
补充
应用程序的启动:
- 双击应用程序
- 发送指令给操作系统
- 操作系统把指令转换成二进制形式发给cpu
- cpu把指令发送给内存
- 内存从硬盘中调取应用程序的数据
- 应用程序读入内存,启动
操作系统的启动
开机会启动ROM存储器,ROM存储器会临时代替CPU控制BIOS程序(CMOS存储器中含有操作系统代码路径)并让CPU运行操作系统代码,运行成功后操作系统+CPU接管操作硬件的工作(ROM+CMOS充当了临时操作系统)
二、编程语言分类
1、机器语言
由于计算机以二进制的形式存储数据,如果我们要奴役计算机,则需要使用二进制编写程序。这个二进制代码编程则是使用机器语言编程,直接操作硬件。它的优缺点如下:
- 优点:执行效率高
- 缺点:开发效率低
2、汇编语言
汇编语言类似于机器语言,但是汇编语言只是把一串二进制数写成一个英文单词。因此你不需要去记住二进制数,而是需要去记住一个一个英文单词,虽然汇编语言用英文标签代替二进制指令,本质还是在直接操作硬件。它的优缺点如下:
- 优点(较于机器语言):开发效率高
- 缺点(较于机器语言):执行效率低
3、高级语言
直接用人能理解的语言和语法风格来编写程序,无需考虑复杂的硬件操作。用高级语言编写的程序需要翻译成计算机所能理解的二进制指令才能执行。按照翻译方式的不同高级语言可以分为编译型和解释型两大类。
编译型
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等
解释型
执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。