第1课_操作系统概述
热度🔥:33 免费课程
授课语音
操作系统概览
1. 什么是操作系统?
- 定义:操作系统(Operating System,OS)是管理计算机硬件和软件资源的系统软件,负责在计算机硬件与应用软件之间提供一个交互接口。
- 主要职责:
- 提供硬件抽象:使得应用程序不需要直接与硬件打交道。
- 管理系统资源:如CPU、内存、磁盘、网络设备等。
- 为用户和应用程序提供服务:如文件操作、进程调度等。
举例:
- 当你打开一个程序时,操作系统负责加载它到内存并分配适当的CPU时间进行运行。
2. 操作系统的主要功能
操作系统的核心功能包括但不限于以下几个方面:
进程管理:
- 进程(Process)是正在运行的程序的实例。
- 操作系统负责进程的创建、调度和终止,确保CPU资源被高效且公平地分配给各个进程。
- 进程调度:操作系统通过调度算法(如先来先服务FCFS、最短作业优先SJF、时间片轮转等)来决定哪个进程获得CPU时间。
- 进程同步与互斥:保证多个进程能够并发执行时,不会互相干扰,避免死锁等问题。
示例:
- 在Windows操作系统中,任务管理器显示了所有正在运行的进程。
内存管理:
- 操作系统负责管理计算机的主存(RAM),包括内存的分配、回收、保护以及内存的虚拟化(如分页和分段)。
- 虚拟内存:通过分页技术(Paging)允许程序使用比实际内存更大的地址空间,从而优化程序的内存使用。
- 内存保护:防止一个程序访问或修改其他程序的内存。
示例:
- 操作系统通过虚拟内存让应用程序认为它有独立的内存空间,实际上多个程序共享物理内存。
文件系统管理:
- 操作系统提供文件的存储、访问和管理功能,包括文件的创建、删除、读取、写入、修改等。
- 文件的组织结构:文件系统将数据存储在磁盘上,并为文件提供目录结构(如Windows的NTFS、Linux的ext4)。
示例:
- 在Linux中,文件系统采用树状目录结构,所有文件都从根目录
/
开始,用户文件存储在/home/username
下。
设备管理:
- 操作系统管理计算机的所有外部设备(如硬盘、打印机、显示器、鼠标等),通过设备驱动程序来实现与硬件的通信。
- I/O管理:操作系统使用I/O调度算法高效地处理多个设备的输入输出请求。
- 设备抽象:操作系统为硬件设备提供统一的接口,使得应用程序不需要关心硬件的具体实现。
示例:
- 当你插入USB设备时,操作系统自动检测并安装相应的驱动程序,让应用程序可以方便地使用该设备。
安全与权限管理:
- 操作系统负责管理系统资源的访问权限,防止非法操作和恶意攻击。
- 身份验证与访问控制:通过用户身份验证(如密码)来确保只有授权的用户才能访问特定资源。
- 加密与防火墙:操作系统通过加密技术保障数据安全,并通过防火墙阻止不受信任的网络访问。
示例:
- 在Windows操作系统中,用户通过登录界面输入用户名和密码进行身份验证。
3. 操作系统的历史发展
第一代操作系统(1940-1950年代):
- 计算机没有操作系统,程序直接控制硬件,操作复杂且容易出错。
- 例:早期的ENIAC和UNIVAC计算机。
第二代操作系统(1950-1960年代):
- 引入批处理系统(Batch Processing),通过将多个作业批量处理提高计算机资源的利用率。
- 例:IBM的OS/360。
第三代操作系统(1960-1970年代):
- 引入分时操作系统(Time-sharing Systems),使得多用户可以共享计算机资源。
- 例:Multics、UNIX。
第四代操作系统(1980年代至今):
- 引入图形用户界面(GUI)、网络操作系统、实时操作系统等。
- 例:Windows、Linux、MacOS、Android。
4. 操作系统的架构
操作系统的架构决定了它的设计、功能模块和扩展性,常见的架构包括:
单核架构(Monolithic Kernel):
- 所有操作系统的核心功能(如进程管理、内存管理、设备管理等)都在一个内核中实现。
- 优点:高效、直接。
- 缺点:代码庞大,难以扩展和维护。
- 例:Linux。
微内核架构(Microkernel):
- 仅提供操作系统最基本的功能,其它功能通过用户态进程实现(如设备驱动、文件系统等)。
- 优点:灵活、易于扩展。
- 缺点:性能可能较差。
- 例:Minix、QNX。
模块化架构(Modular Kernel):
- 结合了单核架构和微内核架构的特点,核心功能模块化,且可以加载和卸载模块。
- 例:现代Linux内核。
5. 常见操作系统及其特点
Windows:
- 面向个人计算机,广泛应用于桌面和企业环境。
- 提供图形用户界面(GUI),支持多任务处理。
- 支持广泛的硬件和软件。
Linux:
- 开源操作系统,广泛应用于服务器、嵌入式系统和开发环境。
- 高度可定制,支持命令行操作和图形界面。
- 有多个发行版,如Ubuntu、CentOS、Debian等。
MacOS:
- 苹果公司开发的操作系统,主要用于Mac系列计算机。
- 提供独特的图形用户界面和高度集成的生态系统。
Android:
- 基于Linux的移动操作系统,广泛应用于智能手机和平板。
- 开源,支持丰富的应用程序和硬件设备。
iOS:
- 苹果公司开发的移动操作系统,专为iPhone、iPad等设备设计。
- 提供优雅的图形用户界面,闭源系统,强大的App生态。
6. 操作系统的未来发展趋势
- 智能操作系统:结合人工智能(AI)技术,能够动态优化系统资源分配和调度,提升用户体验。
- 云计算与容器化:操作系统将更加依赖云计算平台,支持容器化技术(如Docker),提升灵活性和可扩展性。
- 物联网操作系统:专为物联网(IoT)设备设计,要求操作系统轻量、低功耗、实时响应。
7. 小结与讨论
- 操作系统作为计算机科学的核心技术,关系到计算机硬件的管理、软件的运行和用户的体验。
- 学生可以思考:当前操作系统在性能、安全性等方面面临哪些挑战?如何设计一个高效的操作系统架构?