CC++ & Algorithm

操作系统基础——Windows和Linux

中等0
语言版本:C++
概述:操作系统是计算机的大管家,管理所有软硬件。Windows和Linux是两种常见的管家。

操作系统这个大管家,到底管些什么?

操作系统就像学校里的大管家——它要管教室(CPU)、储物柜(内存)、作业本(硬盘)、还有同学们(各种程序)。没有它,电脑里的硬件和软件会乱成一团,谁都想用资源,结果谁都别想好好工作。

Windows 和 Linux 是两种最常见的“管家”。Windows 像一位耐心细致、处处给你提示的班主任,桌面上有图标,鼠标点一点就能打开软件。Linux 更像一位高冷的图书馆管理员,说话全靠键盘敲命令——但这套命令系统非常强大,许多服务器、编程工具都离不开它。

在深入学习之前,我们先来理解操作系统的几个核心职责。


1. 操作系统的四大核心工作

职责干什么用的生活中的比喻
进程管理让多个程序同时运行,互不干扰班主任同时安排全班同学做不同科目的作业,谁都不能占着课桌不放
内存管理给每个程序分配一块“记忆空间”每位同学分到一个储物柜,你的书不能放到别人柜子里
文件系统组织硬盘里的所有文件和文件夹学校档案室按年级、班级、科目分类摆放
设备管理管理鼠标、键盘、打印机、屏幕值日生负责开关投影仪、发粉笔,保证每节课设备正常

生活中的例子:
你同时打开浏览器查资料、用画图软件做海报、后台还在播放音乐。操作系统必须让这三个程序轮流使用 CPU(比如每0.01秒切换一次),让它们看起来在“同时运行”,而且不会因为争抢内存而崩溃。


2. Windows vs Linux:两位管家的不同风格

对比项WindowsLinux
界面图形界面为主,点击图标命令行为主,也可装图形界面
操作难度容易上手,一眼就懂初期要记住命令,但熟练后效率很高
常见用途办公、游戏、家用电脑服务器、编程、大数据、嵌入式设备
文件路径用反斜杠 \C:\用户\小明用斜杠 //home/xiaoming
权限管理管理员账户默认拥有全部权限普通用户不能随便动系统文件,安全更严格

小提示: 在 Python 里写路径时,推荐用正斜杠 / 或者双反斜杠 \\,这样 Windows 和 Linux 通用,不会因分隔符出错。


3. 用 Python 模拟操作系统的更多功能

我们已经在原代码中通过 os 模块模拟了文件管理。现在再扩展几个常用操作,让你更清楚“管家”是怎么工作的:

import os      # 调用操作系统模块
import time    # 用于模拟任务调度

# 1. 查看当前工作目录(就像看一下教室门牌号)
current_dir = os.getcwd()
print("当前文件夹位置:", current_dir)

# 2. 列出所有文件(类似 Linux 的 ls 或 Windows 的 dir)
all_items = os.listdir(".")  # "." 代表当前文件夹
print("该文件夹里的内容:")
for item in all_items:
    print("   ?", item)

# 3. 创建一个新文件夹(就像在储物柜里多放一个盒子)
new_folder = "我的作业"
if not os.path.exists(new_folder):   # 先检查是否已存在
    os.mkdir(new_folder)
    print("✅ 成功创建文件夹:", new_folder)
else:
    print("⚠️ 文件夹已存在:", new_folder)

# 4. 在新建文件夹里创建一个文本文件(写入个人信息)
file_path = os.path.join(new_folder, "自我介绍.txt")  # 跨平台拼接路径
with open(file_path, "w", encoding="utf-8") as f:
    f.write("姓名:小明\n班级:CSP-J\n爱好:编程、打篮球")
print("✅ 已写入文件:", file_path)

# 5. 模拟“进程调度”——让两个任务轮流执行(计时运行)
def task_a():
    print("? 任务A:背单词")
    time.sleep(1)   # 模拟耗时1秒
    print("   A完成")

def task_b():
    print("? 任务B:做数学题")
    time.sleep(0.5) # 模拟耗时0.5秒
    print("   B完成")

print("\n⏰ 开始模拟进程调度:")
task_a()
task_b()
print("调度结束——操作系统同时管住了两个任务!")

这段代码用 time.sleep 模拟了程序运行的耗时,实际上操作系统会在更短的时间内(毫秒级)切换任务,让你感觉不到等待。


4. 新手常犯的错误

  1. 路径分隔符写错

    • 错误:C:\Users\小明\作业(Python 中反斜杠 \ 是转义符,会导致错误)
    • 正确:C:/Users/小明/作业C:\\Users\\小明\\作业
    • 最佳实践:用 os.path.join() 自动适配当前系统。
  2. 忘记检查文件夹是否存在

    • 直接 os.mkdir() 创建已存在的文件夹会报错。
    • 一定要先判断 if not os.path.exists(...):
  3. 权限不足

    • 在 Linux 下,普通用户试图在 /root 里写文件会失败。
    • 如果在 Windows 的 C:\Program Files 里尝试新建文件,也可能需要管理员权限。
    • 解决方案:操作在用户自己的目录(如桌面、我的文档)里进行。
  4. 混淆命令行和图形界面的概念

    • 有的同学以为 Linux 不能用鼠标,其实 Linux 也可以装桌面环境。
    • 以为 Windows 没有命令行,其实 Windows 也有 PowerShell 或 cmd。

5. 完整可运行的代码汇总

把上面几段拼在一起,就是一份模拟操作系统的完整代码。复制到你的 Python 环境里运行,观察效果。

"""
模拟操作系统:文件管理与进程调度
"""
import os
import time

# ----- 文件系统部分 -----
print("===== 文件管理模拟 =====")
current = os.getcwd()
print("当前位置:", current)

items = os.listdir(".")
print("当前目录内容:")
for f in items:
    print("   - ", f)

folder = "学习资料"
if not os.path.exists(folder):
    os.mkdir(folder)
    print("创建文件夹:", folder)

file_path = os.path.join(folder, "python笔记.txt")
with open(file_path, "w", encoding="utf-8") as f:
    f.write("今天学习了 os 模块的用法。\n")
print("写入文件:", file_path)

# ----- 进程调度模拟 -----
print("\n===== 进程调度模拟 =====")
def homework(name, time_cost):
    print(f"{name} 开始运行...")
    time.sleep(time_cost)
    print(f"{name} 运行完毕!")

homework("写数学作业", 0.5)
homework("背英语单词", 0.8)
print("两个任务都完成了,说明操作系统调度成功!")

6. 接下来可以学什么?

  • 更多 os 模块功能os.remove() 删除文件、os.rmdir() 删除空文件夹、os.rename() 重命名。
  • 文件路径的优雅处理pathlib 模块(Python 3.4 以上)比 os.path 更现代。
  • Linux 基础命令cdmkdirrmcp——这些操作和 os 模块功能一一对应。
  • 任务调度与多进程:用 subprocess 模块启动其他程序,用 multiprocessing 实现真正的并行。

如果把操作系统比作一位管家,那么学编程就是学习怎么给这位管家下达指令。用 Python 的 os 模块,你就能直接用代码指挥文件、管理进程——就像拥有了一把控制电脑的遥控器。试试自己写一段代码,创建一个“考试复习资料”文件夹,再把不同科目的笔记分类放进去吧!

例题精讲

1单选题

操作系统在计算机中的作用是什么?

A管理计算机的硬件和软件资源
B只管理中央处理器(CPU)
C只管理内存和外存
D只管理输入输出设备
2判断题

在Linux系统中,使用命令行可以完成大部分操作,而Windows主要依赖图形界面,但两者都支持命令行操作。

3填空题
在Python中,要列出当前目录下的所有文件和文件夹,可以使用os模块的___函数。
4单选题

在Linux系统中,超级用户(系统管理员)的默认用户名是什么?

Aroot
Badmin
Csuper
Dadministrator
5判断题

Windows和Linux操作系统的文件路径分隔符不同,Windows使用反斜杠(\),而Linux使用正斜杠(/)。