CC++ & Algorithm

操作系统基础操作

简单89
语言版本:C++Python
概述:操作系统是计算机的大管家,管理硬件、运行软件、让用户轻松操作电脑。

操作系统:计算机的超级大管家

你有没有想过,当你打开电脑、玩游戏、写作业时,是谁在背后帮你安排好一切?是操作系统!它就像学校里的管理员,管理着教室(硬件)、课程(软件)、还有同学们的排队(进程),让每个人都能有序地学习。没有操作系统,计算机就是一堆冷冰冰的零件,什么也干不了。


操作系统到底是什么?

操作系统是计算机里最重要的系统软件,它负责:

  • 管理硬件:CPU(大脑)、内存(临时工作台)、硬盘(储物柜)、鼠标键盘(手和眼睛)等。
  • 运行软件:你双击图标打开程序时,操作系统会为它分配资源。
  • 提供操作界面:你可以用鼠标点击、键盘打字,不用直接写二进制代码。
  • 安全保障:防止程序之间互相干扰或乱改数据。

生活中的例子:
就像食堂阿姨——她负责安排窗口排队(管理CPU时间),给你打饭(分配内存),还收拾餐桌(清理垃圾)。你只需要说“我要一份红烧肉”,剩下的阿姨帮你搞定。


操作系统怎样工作?——资源分配的智慧

当你同时打开浏览器、音乐播放器和编程软件时,操作系统会做三件事:

  1. CPU时间片轮转:把CPU的工作时间切成极短的小段,轮流给每个程序用。比如浏览器用0.01秒,音乐播放器用0.01秒……因为切换非常快,你感觉它们在“同时运行”。
  2. 内存分配:每个程序分到一块内存区域,互不干扰。如果音乐播放器想占用浏览器的内存,操作系统会阻止它——就像在图书馆里每人一张书桌,不能乱占别人的位置。
  3. 文件管理:你保存作业时,操作系统会找到硬盘的空闲位置写进去,并记录文件名和路径。

生活例子
周末你同时做三件事:写数学作业、听歌、吃零食。

  • 你的大脑(CPU)不能同时做三件事,于是你写5分钟作业,听1分钟歌,吃一口零食……循环进行,这就是“时间片轮转”。
  • 作业本放在桌上(内存),零食放在旁边,音乐在手机里,各占各的位置。
  • 你想找上周的数学卷子,得从书包(硬盘)里翻出来,操作系统就像你妈妈帮你记住“卷子在第二层夹层里”。

常见的操作系统

操作系统常见于特点
Windows大部分个人电脑、学校机房界面友好,游戏多,易上手
macOS苹果电脑美观,稳定,和苹果手机配合好
Linux服务器、程序员、树莓派免费、可自由修改,适合编程学习

小提示:你的手机里也有操作系统,比如安卓(基于Linux)和iOS(基于macOS)。所以学好了操作系统知识,手机电脑都能懂。


用C++和操作系统“聊天”

C++本身不直接控制硬件,但可以通过系统调用让操作系统帮忙。比如,你想知道Windows版本,可以用 system("ver")

system 函数的作用是:把括号里的字符串当作命令,交给操作系统的“命令行”去执行。就像你对电脑说“帮我查一下Windows版本”,系统会乖乖照做。

#include <iostream>
#include <cstdlib>  // 必须要包含这个头文件才能用 system
using namespace std;

int main() {
    cout << "当前操作系统信息:" << endl;
    system("ver");          // 在Windows下显示版本号
    cout << "按任意键继续..." << endl;
    system("pause");        // 暂停程序,让你看清结果
    return 0;
}

扩展一下:你还可以试试其他命令:

  • system("dir"); —— 列出当前文件夹里的所有文件(类似文件管理器)
  • system("cls"); —— 清空屏幕上的文字
  • system("calc"); —— 打开计算器(Windows程序)

下面的程序让你选择一个命令来执行:

#include <iostream>
#include <cstdlib>
#include <string>   // 为了用 string 类型
using namespace std;

int main() {
    // 定义命令变量,初始化为空字符串
    string cmd = "";  

    cout << "请输入你想执行的操作编号:" << endl;
    cout << "1: 查看Windows版本" << endl;
    cout << "2: 清屏" << endl;
    cout << "3: 打开计算器" << endl;
    cout << "你的选择(1-3):";

    int choice;          // 用户的选择
    cin >> choice;

    // 根据选择设置命令字符串
    if (choice == 1) {
        cmd = "ver";
    } else if (choice == 2) {
        cmd = "cls";
    } else if (choice == 3) {
        cmd = "calc";
    } else {
        cout << "无效选择" << endl;
        return 0;
    }

    // 执行命令
    system(cmd.c_str());   // cmd.c_str() 把string转成system需要的格式
    return 0;
}

system 函数的参数必须是C风格字符串(字符数组),所以要用 .c_str() 转换。


新手容易犯的错误

  1. 忘记包含头文件system<cstdlib> 中声明,不包含会报错“未定义的标识符”。
  2. 命令写错大小写:Windows命令不区分大小写,但Linux严格区分。例如 VER 在Windows可以,在Linux不行。跨平台程序要小心。
  3. 滥用 systemsystem 可以执行任意命令,但如果程序被别人恶意利用,可能删除文件或破坏系统。在学校作业或安全环境下练习没问题,正式软件尽量避免使用
  4. 认为所有操作系统一样ver 只在Windows有效,Linux下要用 uname -a。如果想让程序跨平台,需要判断当前系统(后面会学到)。

完整的跨平台示例(进阶)

下面这个程序能同时判断操作系统,并执行对应的命令:

#include <iostream>
#include <cstdlib>
using namespace std;

int main() {
    cout << "欢迎来到操作系统探测程序" << endl;

    // 在Windows下,环境变量OS的值为"Windows_NT"
    // 可以用 system 执行 "echo %OS%" 来查看,但这里我们用条件编译
    #ifdef _WIN32
        cout << "检测到Windows系统" << endl;
        system("ver");
    #else
        cout << "检测到非Windows系统(Linux/macOS)" << endl;
        system("uname -a");
    #endif

    cout << "按任意键退出..." << endl;
    system("pause");   // Windows专用暂停,Linux下会报错,但没关系
    return 0;
}

#ifdef _WIN32 是预处理指令,编译时自动判断是否Windows。Linux下没有 pause 命令,程序会显示错误并继续,不影响学习。


接下来可以学什么?

  • 文件操作:用C++读写文件,就像操作系统里的“保存”和“打开”。
  • 进程管理:用 system("start notepad") 打开记事本,试试同时启动多个程序。
  • 环境变量:像 PATH 这样的系统变量,决定你的命令在哪里找。
  • 图形界面:用Windows API或Qt写自己的“小操作系统界面”。

操作系统就像一个默默付出的朋友,了解它越多,你写程序就越得心应手。下次电脑卡顿时,你会知道:这是操作系统在忙着分配资源呢!

例题精讲

1单选题

操作系统的主要功能是什么?

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

操作系统是计算机硬件的一部分。

3判断题

在Windows操作系统中,可以通过任务管理器查看正在运行的程序和进程。

4单选题

以下哪个是常见的操作系统?

AMicrosoft Word
BLinux
CGoogle Chrome
DAdobe Photoshop
5填空题
在C++中,可以使用system函数执行操作系统命令。例如,在Windows下执行清屏命令。请填空:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
    ___; // 清屏命令
    cout << "Hello" << endl;
    return 0;
}