计算机和操作系统基础知识
1、操作系统(Operating System,简称 OS),是管理计算机硬件与
软件资源的计算机程序,同时也是计算机系统的内核与基石
操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、
控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统
也提供一个让用户与系统交互的操作界面
2、操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以
通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱
动硬件设备,实现用户要求。以现代标准而言,一个标准PC的操作系统
应该提供以下的功能:
(1)进程管理(Processing management)
(2)内存管理(Memory management)
(3)文件系统(File system)
(4)网络通信(Networking)
(5)安全机制(Security)
(6)用户界面(User interface)
(7)驱动程序(Device drivers)
3、指令集架构(Instruction Set Architecture,简称 ISA),又称指令
集 或 指令集体系,是计算机体系结构中与程序设计有关的部分,包含了
基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理
以及外部 I/O
指令集架构包含一系列的 opcode 即操作码(机器语言),以及由特定
处理器执行的基本命令
4、指令是由指令集架构定义的单个的 CPU 操作。在更广泛的意义上,
指令可以是任何可执行程序的元素的表述,如:字节码
指令分为特殊指令和普通指令,只有操作系统才能运行特殊指令(也称
特权指令),应用程序只能运行普通指令。应用程序要想运行特殊指令,
必须通过系统调用
5、两种调用:
(1)系统调用(System Call)
(2)库调用(Library Call)
6、两种用户界面(User Interface,简称 UI):
(1)图形用户界面(Graphical User Interface,简称 GUI)
(2)命令行界面(Command Line Interface,简称 CLI)
7、两种接口:
(1)应用二进制接口(Application Binary Interface,简称 ABI),它描述
了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口
(2)应用编程接口(Application Programming Interface,简称 API),
它就是软件系统不同组成部分衔接的约定,即 是操作系统 或 库提供给应用
程序调用使用的代码
ABI 不同于 API,API 定义了源代码和库之间的接口,因此同样的代码可以
在支持这个 API 的任何系统中编译,然而 ABI 允许编译好的目标代码在使
用兼容 ABI 的系统中无需改动就能运行
8、操作系统分类
(1)Windows
(2)Unix-like(类 Unix)
1)Linux
2)Minix
3)macOS(macOS 的由来:从 Mac OS X,改为 OS X,再改为 macOS。
截止 2018/08/26,再未变动)
(3)Unix
1)Unix System(截止 2018/05/31,最新版是 Unix System V Release 4,
包含 AIX、Solaris、HP-UX 等)
2)BSD Unix (分为三种:FreeBSD、NetBSD、OpenBSD)
「简单来说,分为 System(嫡出) 和 BSD(庶出)」
附:
关于 macOS 到底是 Unix 还是 Unix-like,这个问题一直存在争议,不过争论
这个意义不大,这里姑且认为 macOS 是 Unix-like,参考链接:
(a)https://zh.wikipedia.org/zh-cn/Darwin_%28%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%29
(b)https://zh.wikipedia.org/wiki/MacOS#Unix%E8%AA%8D%E8%AD%89
(c)https://blog.hoppinglife.com/2014/02/mac-os-x%E4%B8%8D%E6%98%AFunix/
9、程序运行空间:
(1)内核空间(Kernel Space):内核、核心扩充、驱动程序运行在内核空间上
(2)用户空间(User Space):应用程序运行在用户空间上
「运行空间(Space)也可以理解为运行模式(Mode)」
10、可移植操作系统接口(Portable Operating System Interface,
简称 POSIX),是 IEEE 为要在各种 UNIX 操作系统上运行软件,而
定义 API 的一系列互相关联的标准的总称
「最后一个 X 表明了其对 Unix API 的传承」
11、两种格式:
(1)可移植可执行(Portable Executable),也就是 PE 格式,是一种用
于可执行文件、目标文件和动态链接库的文件格式,主要使用在 Windows
操作系统上
PE文件格式主要用于EXE文件、DLL文件、.sys(驱动程序)和其他文件
类型
(2)可执行和可链接格式(Executable and Linkable Format),也就是
ELF 格式,是一种用于可执行文件、目标文件、共享库和核心转储的标准文
件格式
不同操作系统上应用程序和库的格式
| 应用程序格式 | 库 |
Windows | PE格式(Portable Executable) | DLL(Dynamic Link Library),动态链接库 |
Linux/Unix | ELF格式(Executable and Linkable Format) | SO(Shared Object) |
12、计算机的五大组成:
运算器、控制器、存储器、输入设备、输出设备
13、六种开源协议的异同如下图所示:BSD、Apache、GPL、LGPL、MIT、Mozilla
参考链接:
(4)https://zhuanlan.zhihu.com/p/38409620
(5)https://zhuanlan.zhihu.com/p/31881162
(6)http://www.gnu.org/licenses/license-list.html