何为操作系统
操作系统,也是一种软件,但与我们日常使用的微信,QQ等应用软件不同,它属于系统软件。既如此,不得不先了解什么是软件?
何为软件?
软件(Software) 相较于 硬件(Hardware) 而言,是一种逻辑和命令的集合,而非实体。硬件是看得见、摸得着的物理组件,如 硬盘(HDD)、内存(RAM)、传感器等。相比之下,软件严格意义上没有可以直接触摸的物理形态。
可以把 软件 理解为 一段“指挥硬件的指令”,就像一段话,告诉计算机该如何工作。例如:“打开播放器,播放音乐”,“打开文档,显示内容”,“执行计算,把结果显示在屏幕上”。但是,计算机并不懂人类的语言,它只能识别二进制数据(0 和 1)。为了让软件可以被存储和运行,它需要存储在硬件中,通常采用以下三种方式:
- 电子存储:通过 电流高低电平 存储,例如 SSD、RAM、U 盘(闪存)。
- 磁性存储:通过 磁场方向变化 存储,例如 HDD(机械硬盘)、磁带。
- 光学存储:通过 光盘表面的凹坑和平面反射率变化 存储,例如 CD、DVD、蓝光光盘。
因此,软件虽然没有具体的物理形态,但它依赖于物理存储介质,以不同的方式存储和运行。
软件分级
在对软件的解释中,提到软件是“指挥硬件的指令”,但软件与硬件的交互并不是随意的,而是必须严格遵循一定的规则。如果软件直接操作硬件而不受控制,可能会导致硬件损坏、系统崩溃,甚至引发安全事故。因此,计算机系统会对软件进行分级管理,不同等级的软件对硬件的访问权限不同:
- 底层软件(如操作系统、驱动程序、固件)这些软件可以直接控制硬件,例如 CPU 调度、内存管理、磁盘读写、设备驱动等。由于它们掌控着硬件的“命脉”,一旦出错,可能会导致系统崩溃或硬件损坏。
- 应用软件(如浏览器、视频播放器、办公软件)这些软件无法直接操作硬件,它们只能通过操作系统提供的“接口”与硬件交互。例如,一个视频播放器不能直接控制显卡,而是通过操作系统调用显卡驱动来播放视频。
- 受限的软件(如虚拟机、沙盒环境中的程序)这类软件运行在受限环境中,无法访问关键硬件资源,以保证安全性。比如手机 APP 不能直接访问摄像头、麦克风、GPS,必须经过用户授权。
此时,便应该能知晓何为操作系统了。
操作系统(OS)是计算机系统中的基础软件,负责调度和控制计算机的硬件资源,并为软件提供运行环境。它通过规则和权限机制,协调硬件与软件之间的交互,确保系统的稳定性、安全性和高效运行。
- 调度:让多个软件公平、高效地使用硬件资源,防止冲突、死机、卡顿。
- 控制: 限制软件的权限,防止它们滥用资源,确保安全性。
- 硬件资源:CPU(中央处理器),内存(RAM),存储设备(HDD/SSD),输入输出设备(键盘、鼠标、显示器、打印机等),网络资源(Wi-Fi、以太网、蓝牙等
- 为软件提供运行环境:计算机软件并不能直接控制硬件,而是依赖操作系统提供的服务来运行。
- 运行环境:系统 API(应用程序接口),文件系统,进程管理,用户界面,权限管理等
操作系统的分类
虽然操作系统的核心职能相同(管理硬件资源、调度任务、提供运行环境),但对应不同的应用场景,需要不同的操作系统适用。
操作系统按设备用途分类
- 通用计算机操作系统(个人电脑 & 服务器)
- Windows(微软)
- macOS(苹果)
- Linux(开源)
- 移动设备操作系统
- Android(谷歌)
- iOS(苹果)
- 嵌入式操作系统
- RTOS(实时操作系统,用于汽车、工业控制等)
- VxWorks(航天、军工)
- FreeRTOS(微控制器)
- 服务器和超算操作系统
- Windows Server(微软服务器专用)
- Linux 发行版(Ubuntu Server、CentOS、Debian)
- Unix(如 AIX、Solaris)
- 特殊用途操作系统
- Mainframe OS(大型机系统,如 IBM z/OS)
- Hypervisor(虚拟机管理系统,如 VMware ESXi)
当我们下载电脑软件安装包时,通常需要选择操作系统,一般分为 Windows 和 macOS 两种。我们日常下载安装的软件,如微信、网易云等,属于应用软件。计算机软件并不能直接控制硬件,而是依赖操作系统提供的服务来运行。由于不同的操作系统提供的系统服务和 API 不同,应用软件需要针对不同系统开发对应的版本,否则无法正常运行。
在移动端也是同样的原理,应用软件依赖于操作系统提供的服务来运行。iOS(苹果) 生态封闭,只能运行 App Store 上架的官方应用,而 Android(谷歌) 基于开源的 Linux 内核,支持更高的自定义性和第三方应用。由于 Android 允许安装非官方来源的软件(如 APK 直接安装),相比 iOS,应用的适配范围更广,用户自由度更高,但安全性相对较低。
安卓开发是指在 Android 操作系统上进行软件开发,主要开发手机 APP、智能设备应用和系统底层软件。开发者需要遵循 Android 生态的规则,使用 Android SDK 提供的 API 进行开发。(稍后另起新文)
嵌入式开发是为特定硬件设备编写软件,不同于 PC 或手机 APP 开发,主要开发方向包括驱动开发(硬件驱动程序)、系统开发(嵌入式操作系统)、应用开发。(稍后另起新文)
对于操作系统,最后来个总结吧:
操作系统(Operating System, OS) 是计算机的核心软件,负责管理 硬件资源(CPU、内存、存储、网络)并提供软件运行环境。它是用户与计算机硬件之间的桥梁,使应用软件能够顺利运行。