操作系统(Operating System)2

本文介绍了操作系统的演变历程,从早期的串行处理到现代的多道批处理系统和分时系统,并详细阐述了操作系统提供的关键服务,如程序开发、运行、I/O设备访问等,以及重要的接口如指令体系结构ISA、应用程序二进制接口ABI和应用程序编程接口API。

Ch2 Operating System
图2.1

计算机硬件和软件结构如图。操作系统链接上层应用和下层硬件指令集体系结构。
简单的说,操作系统提供了以下服务:
程序开发
程序运行
I/O设备访问
文件访问控制
系统访问
错误检测和响应
记账

同时提供了三个重要接口:
指令体系结构ISA
应用程序二进制接口 ABI
应用程序编程接口 API

Evolution of Operating Systems 操作系统的改革
推动操作系统革新的原因如图:
图2.2
操作系统的发展史
图2.3
串行处理:对于20世纪后期50年代中期的计算机,当时的控制台包括显示灯、触发器、某种类型的输入设备和打印机。用机器代码编写的程序通过输入设备。
简单的批处理系统:为提高利用率,人们想到了批处理,也是顾名思义,一批流水线式处理。
批处理的中心思想是使用一个成为监控程序(Monitor)的软件,通过使用这类操作系统,用户不用再直接访问机器。用户吧卡片或磁带中得作业提交给计算机操作员,按顺序组织成批。
多道批处理系统
为了使处理器拥有更多的使用率,避免空闲,产生的多道批处理,多道批处理必须依赖于某些计算机硬件。最有帮助的是支持I/O中断和直接存储器访问(Direct Memory Access, DMA)的硬件,通过中断驱动的I/O或DMA,处理器可谓一个作业发出I/O命令,在设备进行I/O操作时处理器中断(正在等待中的进程)开始另一个进程。
分时系统
使用多道程序设计,可使用批处理。
个人理解多道处理和分时系统的区别就是一个强调效率一个强调公平,查了一些资料都没有太好的解释,老师的ppt如是。
diff

关于Linux内核(kernel)
kernel内核组件有:
信号(signals)使用信号来向进程提供信息
系统调用(System calls)通过系统调用请求服务。

### 麒麟操作系统安装时出现 'Operating System not found' 的解决方案 当在 VM 虚拟机环境中尝试安装麒麟操作系统并遇到 `Operating System not found` 错误时,通常是因为虚拟机未正确加载 ISO 映像文件或者配置不完整所致。以下是针对该问题的具体分析和解决办法: #### 1. **确认虚拟机设置** 确保虚拟机已正确配置启动设备顺序。通过编辑虚拟机设置,调整 BIOS 启动优先级,使光驱(CD/DVD 或 ISO 文件)成为首选启动项[^1]。 ```plaintext 具体操作步骤: - 打开虚拟机软件(如 VMware Workstation/Player 或 VirtualBox)。 - 右键点击目标虚拟机 -> 编辑虚拟机设置。 - 进入“选项”->“高级”,检查引导顺序是否设置了 CD/DVD 为第一启动项。 ``` #### 2. **验证 ISO 镜像文件的有效性** 错误可能源于使用的 ISO 镜像文件损坏或版本不适配。建议从官方渠道重新下载最新的麒麟操作系统镜像文件,并校验其 MD5 值以确保完整性[^2]。 ```bash # 使用以下命令计算本地 ISO 文件的 MD5 校验值并与官网提供的一致性对比 md5sum kylin-os.iso ``` #### 3. **指定正确的 ISO 映像路径** 如果 ISO 文件路径未被正确定位,则可能导致系统无法识别启动介质。需手动指定 ISO 文件的位置,并确保虚拟机能够访问它[^4]。 ```plaintext 具体操作步骤: - 返回到虚拟机设置窗口中的“硬件”部分。 - 添加一个新的 CD/DVD 设备。 - 将模式更改为“使用 ISO 映像文件”。 - 浏览至存储有合法麒麟 OS 镜像文件的目录完成关联绑定。 ``` #### 4. **检查虚拟硬盘状态** 有时即使提供了有效的启动媒介仍会出现此提示,可能是由于虚拟硬盘尚未初始化或格式化不当引起。创建新的虚拟硬盘或将现有磁盘重置后再试一次可能会解决问题[^3]。 --- ### 示例代码片段:自动挂载ISO脚本 (适用于某些环境) 对于批量部署场景下频繁更换不同OS镜像的情况,可编写简单脚本来简化流程: ```python import os def mount_iso(iso_path, vm_name): command = f"vmrun -T ws connectCdrom {vm_name} {iso_path}" result = os.system(command) if result == 0: print(f"{vm_name}'s cdrom successfully mounted with {iso_path}.") else: print("Failed to mount the iso file.") if __name__ == "__main__": iso_file_location = "/path/to/kylin-os.iso" virtual_machine_identifier = "KylinVM" mount_iso(iso_file_location, virtual_machine_identifier) ``` --- #### 总结 上述方法涵盖了大部分因配置失误引发的操作系统找不到类别的常见原因处理方式。实际应用过程中可根据具体情况灵活选用其中一种或多组合策略来排除故障。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值