第 1 题
同一进程的两个线程通常共享什么,又各自保留什么?
尚未检查本题。
查看答案与评价要点
参考答案:通常共享虚拟地址空间、代码、堆和打开文件等进程资源;各自保留寄存器、栈、程序计数与调度状态。
评价要点:指出至少两类共享资源;指出独立执行上下文或栈;不把线程误写成完全隔离进程
浏览器未允许保存进度;当前为只读学习模式。
第 2 周 · 初阶
掌握OS核心,进入容器世界
周目标:掌握OS核心概念、Linux实操、虚拟化与容器化技术
课程成果:CO1 CO8
已学习 0 / 7 天
Day 8
建议时长:60 分钟
本日 CO:CO1 CO8
从一次程序运行建立操作系统资源链:程序装入后成为进程,进程拥有虚拟地址空间与文件描述符表,线程共享进程资源但各自保留执行上下文;调度器让可运行任务竞争 CPU,虚拟内存通过页表提供地址转换、保护与受控共享,VFS 把不同文件系统统一到 open/read/write 等接口,阻塞与非阻塞 I/O 则决定调用者等待数据时如何继续工作。今天不把 top 中的一个高数值直接当作故障,而是结合时间窗、进程状态和证据解释现象。
5 分钟 · MP3 · 双主持人讲解
磁盘上的程序是静态指令和数据;运行后,内核为它建立进程标识、虚拟地址空间、打开文件表和安全凭据。线程是可被调度的执行流,同一进程内的线程通常共享代码、堆和文件描述符,但各自拥有寄存器、栈与调度状态。多线程可以隐藏等待或利用多核,却也会引入竞态、锁竞争和上下文切换成本,所以线程数增加不等同于吞吐必然增加。
Linux 工具展示的是不同观察面。ps 给出采样时刻的进程或线程字段,top 连续刷新 CPU、内存和状态,/proc/<pid>/status 与 /proc/<pid>/fd 暴露内核维护的进程信息。R 表示可运行或正在运行,S 常表示可中断睡眠;CPU 高、负载高和响应慢不是同一个命题,必须记录持续时间、任务状态和并发条件再解释。
应用使用虚拟地址,处理器和页表把它翻译到物理页;这种抽象提供保护、按需分页和受控共享。匿名内存通常承载堆栈,文件数据读入后可进入页缓存,写入也可能先成为脏页再回写存储。因此 free 输出中的 available 比简单的 free 更接近可供新负载使用的内存,缓存占用不能一律视为泄漏,出现交换或 OOM 也应结合工作集与回收压力判断。
文件名先经 VFS 路径查找关联目录项和 inode,open 返回当前进程文件描述符表中的小整数,read/write 再通过该描述符访问打开文件对象。阻塞 I/O 在条件未满足时让调用线程等待;非阻塞、复用和异步机制改变等待组织方式,却不会让底层数据瞬间到达。分析 I/O 要同时看调用语义、队列、缓存、设备延迟和错误,而不是只记住一个“异步更快”的口号。
在 Linux 学习环境中启动一个受控 CPU 任务,使用 ps、top、free 与 /proc 观察进程、线程、内存和文件描述符,并保存前后对照。
同一进程的两个线程通常共享什么,又各自保留什么?
尚未检查本题。
参考答案:通常共享虚拟地址空间、代码、堆和打开文件等进程资源;各自保留寄存器、栈、程序计数与调度状态。
评价要点:指出至少两类共享资源;指出独立执行上下文或栈;不把线程误写成完全隔离进程
为什么不能看到 free 很小就断言系统发生内存泄漏?
尚未检查本题。
参考答案:Linux 会用内存保存可回收页缓存,应结合 available、RSS/工作集趋势、交换与回收或 OOM 证据观察。
评价要点:说明页缓存可能可回收;引用 available 或趋势;提出至少一种补充证据
尚未完成自测。
根据给定 ps 与 free 输出标注 PID、状态、线程数、RSS 和 available,并用一句话解释每项不代表什么。
完成受控任务的前中后快照,画出进程—线程—虚拟内存—文件描述符—VFS—设备关系,并附完整命令记录。
再比较一个 I/O 等待任务与 CPU 任务的状态变化,提出采样频率、重复次数和混杂变量控制方案。
学习状态:未学习
Day 9
建议时长:60 分钟
本日 CO:CO1 CO8
把 Linux 运维任务拆成路径、身份、进程和日志四条线:文件系统层级说明数据放在哪里,用户/组与 rwx 权限决定谁能对目录项和文件做什么,Shell 脚本把可重复观察固化为带错误处理的步骤,systemd 单元描述服务的启动条件与生命周期,journal 则提供按单元、启动批次和时间过滤的日志。练习只读取本机状态并写入个人临时目录,不修改系统服务或全局权限。
5 分钟 · MP3 · 双主持人讲解
最新Linux安装+Linux安装激活教程,附安装包及激活码,Linux下载安装教程,Linux安装包,Linux虚拟机安装,Linux操作系统
Python_子瑶 · 已核验 2026-08-29
Linux 目录不是随意命名的文件夹集合:/etc 常放主机配置,/var 容纳可变数据和日志,/run 保存本次启动的运行态,/tmp 用于临时文件,普通学习产物应优先留在个人目录。文件 rwx 控制读、写、执行;目录的执行位关系到能否穿越和访问其中条目。判断权限必须同时看对象类型、所有者、所属组、其他用户以及上级目录,不能只看到 777 就认为问题解决。
最小权限意味着只授予完成任务所需的身份和操作。chmod 777、长期使用 sudo 或把用户加入高权限组会扩大攻击面;复制配置前应保留原文件并理解恢复路径。本日实验只在 mktemp 创建的个人临时目录中改变权限,通过 `stat` 和一次预期失败证明边界,既不修改 /etc,也不接触其他用户的数据。
可维护 Shell 脚本应有明确解释器、`set -eu`、参数检查、变量双引号和可预测输出;采集命令失败时要保留退出状态,而非输出一份看似完整的空报告。监控报告至少写时间、主机与操作系统、运行时间/负载、可用内存和文件系统容量,并说明每项只是观察信号,不把瞬时高负载直接诊断为 CPU 故障。
systemd 管理单元的依赖和状态,`systemctl --user` 可在支持的发行版中查看当前用户服务;`journalctl --user` 读取用户可见日志。系统级日志常受组或 root 权限限制,学员不应为完成练习扩大权限。状态显示 failed 时,先记录退出码和最近日志,再检查配置、依赖和资源;不应反复 restart 掩盖第一现场。
编写只读监控脚本,采集时间、负载、内存、磁盘与指定用户服务日志,并证明脚本在失败路径也返回明确状态。
为什么目录有读权限但没有执行权限时,仍可能无法读取其中已知文件?
尚未检查本题。
参考答案:目录执行位控制路径穿越和访问目录项;读位主要允许列出名称,二者语义不同。
评价要点:指出执行位负责路径穿越;区分列目录与访问条目;结合上级目录权限说明
服务显示 failed 后,为什么不应先连续 restart?
尚未检查本题。
参考答案:重启可能覆盖或扰动第一现场,应先记录状态、退出码、时间窗和相关 journal 日志,再基于证据定位配置、依赖或资源问题。
评价要点:强调保留第一现场;列出状态/退出码/日志证据;提出证据驱动检查顺序
尚未完成自测。
解释一组 `ls -ld` 输出中所有者、组和目录执行位,并运行教师提供的只读采集脚本。
独立完成带严格模式和错误记录的监控脚本,附脚本、运行命令、退出码、报告样例与清理证据。
加入参数化采样次数与间隔、文件锁或原子写入,并解释如何避免并发运行互相覆盖报告。
学习状态:未学习
Day 10
建议时长:65 分钟
本日 CO:CO1 CO8
用分层和时间线排查“服务访问失败”:先确认进程是否存在及监听地址,再确认本机连接、名称解析与路由,然后查看应用/系统日志,最后用 strace 在授权进程上观察系统调用。ss 展示套接字,ip 展示地址与路由,journalctl 关联日志,strace 揭示应用和内核接口;每个工具只回答一类问题。防火墙是潜在环节,但本日不改 iptables/firewalld 规则,以免中断主机或远程连接。
5 分钟 · MP3 · 双主持人讲解
“端口不通”可能来自进程未启动、只绑定回环地址、连接目标或端口错误、名称解析异常、路由不可达、防火墙丢弃或应用返回错误。排查从最靠近服务的事实开始:确认 PID,再用 `ss -ltnp` 查看本机监听地址和端口。127.0.0.1 只接受本机回环访问,0.0.0.0 表示所有 IPv4 本地地址,但仍不代表外部网络、防火墙和上游路径必然可达。
客户端证据要区分 DNS、建连和 HTTP 层。`curl -v` 能显示解析、连接与响应阶段,`ip route get` 能查看内核为目标选择的路由;连接被拒通常提示目标主机可达但端口无监听或被主动拒绝,超时则可能涉及丢包或路径。以上只是诊断线索而非绝对结论,应与服务端监听和日志在同一时间窗交叉验证。
日志说明应用认为什么发生了,系统调用跟踪说明进程向内核请求了什么以及返回值如何。strace 可看到 openat、connect、bind、read、write 等调用,但输出可能包含路径、参数和数据,也会增加运行开销;只能跟踪本人启动或明确授权的实验进程,提交前必须脱敏。先用过滤项限制调用集合和时间,再根据 errno 回到文件、网络或权限假设。
修改防火墙前必须有变更窗口、当前规则备份、带外访问和回滚方法,因为一条错误规则即可切断 SSH。本实验通过错误端口模拟失败,不执行 iptables、nft 或 firewall-cmd 写操作。学校式排障记录应包含平台、时间线、预期、每条命令及退出码、关键输出、下一步假设和清理证据,使另一个人能复现推理而不是只看到最终答案。
启动仅绑定 127.0.0.1 的临时 HTTP 服务,制造错误端口,从监听、连接、日志和系统调用四层定位并清理。
`ss` 显示服务只监听 127.0.0.1:8765,可以推出什么,不能推出什么?
尚未检查本题。
参考答案:可推出本机回环地址存在监听;不能推出其他主机可访问,也不能证明防火墙、路由或应用响应正确。
评价要点:指出回环范围;区分监听与端到端可达;列出至少一个仍需验证的环节
strace 看到 connect 返回 ECONNREFUSED 时,下一步应保留哪些交叉证据?
尚未检查本题。
参考答案:保留目标地址/端口、时间和退出码,并在服务端核对 PID、ss 监听及同时间窗日志,确认是目标错误还是确无监听。
评价要点:记录调用参数与 errno;核对服务端监听;关联时间窗日志
尚未完成自测。
根据教师给出的 ss、curl 和日志片段,按监听、连接、应用三层排序并指出缺失证据。
完成错误端口与正确端口对照实验,提交命令、退出码、时间线、分层判断和清理记录。
再设计一个名称解析或绑定地址故障,但仍限定在本机授权环境,比较不同故障的可观察信号。
学习状态:未学习
Day 11
建议时长:65 分钟
本日 CO:CO1 CO8
虚拟机以虚拟 CPU、内存、块设备和网络设备提供接近完整计算机的边界,来宾运行自己的内核。Type 1/Type 2 是理解部署位置的教学分类,不能替代对实际数据路径和权限的分析。Linux KVM 提供内核虚拟化接口,QEMU 提供机器与设备模型并可结合硬件加速;qcow2 支持稀疏分配与写时复制,但快照不是独立备份。今天先核验主机能力,再对学习者自有磁盘镜像做创建、检查和清理。
5 分钟 · MP3 · 双主持人讲解
虚拟机看到 vCPU、来宾物理内存、虚拟磁盘和虚拟网卡,并在其上启动独立内核;VMM 将敏感操作、内存映射和设备访问协调到主机资源。KVM 暴露 `/dev/kvm` 和 ioctl 接口创建 VM/vCPU,QEMU 可提供系统仿真与设备模型,二者常组合使用。KVM 不可用时,QEMU 可能退回软件模拟,功能仍可能运行但性能口径完全不同。
Type 1 常指直接运行于硬件或宿主内核层的 Hypervisor,Type 2 常指作为宿主操作系统应用运行的方案;现实产品可能跨越简化分类。选型应检查来宾隔离、设备模型、驱动、管理面、性能和运维边界,而不是凭类别标签断言更安全或更快。虚拟机管理权限等同于对来宾磁盘、内存与网络的高权限,应使用专用实验资源。
qcow2 等格式可以稀疏分配:逻辑容量大于当前宿主实际占用,因此 `qemu-img info` 与 `du` 回答不同问题。写时复制快照让新写入进入增量层,回退速度可能很快,但它依赖原镜像链;误删基础镜像、宿主盘损坏或恶意加密仍会破坏恢复能力。快照用于短期回退,独立备份还需要不同故障域和恢复演练。
比较 VM 时要先固定 vCPU、内存、镜像、来宾版本、磁盘缓存/总线、网络模式和预热时间。只比较启动耗时会忽略隔离和运维收益,只比较一个微基准也不能外推所有业务。可靠记录包含主机是否支持 KVM、实际加速器、QEMU 版本、镜像校验值、命令退出码,以及快照前写入、回退后验证和资源清理证据。
检查 /dev/kvm 与 QEMU 能力,创建小型 qcow2 实验盘,记录稀疏文件证据并设计虚拟机快照恢复验证。
在常见 Linux 虚拟化栈中,KVM 与 QEMU 各自承担什么角色?
尚未检查本题。
参考答案:KVM 提供内核虚拟化接口和硬件加速能力,QEMU 提供机器/设备模型并驱动来宾运行;具体配置需核验实际加速器。
评价要点:说明 KVM 内核接口;说明 QEMU 设备或系统模型;提到实际加速条件
为什么 qcow2 快照不能直接等同于备份?
尚未检查本题。
参考答案:快照常依赖基础镜像与同一宿主故障域,无法独立抵御底层损坏或误删;备份还需独立副本与恢复验证。
评价要点:指出依赖链;指出共享故障域;要求独立副本和恢复演练
尚未完成自测。
标注一张主机硬件—KVM—QEMU—来宾内核—应用层次图,并解释每层一个职责。
完成能力检查和 qcow2 稀疏盘实验,提交版本、命令、输出、依赖图和安全清理记录。
在授权实验机启动最小来宾,设计一致性快照前后的写入/回退验证,并讨论应用一致性限制。
学习状态:未学习
Day 12
建议时长:75 分钟
本日 CO:CO1 CO8
容器把一个或多个进程放进 Linux 命名空间(namespaces)、cgroups 和文件系统层所形成的受限视图中,仍与主机共享内核;镜像是不可变内容与配置的分层制品,容器是在其上增加可写层的运行实例,仓库存储和分发镜像。Dockerfile 描述构建步骤,但可复现性还取决于固定基础镜像标识、构建上下文、依赖和架构。Docker daemon 或 docker 组通常拥有高权限,练习使用 Docker Desktop 或 rootless 环境并限制端口、挂载与清理目标。
5 分钟 · MP3 · 双主持人讲解
镜像由只读层和运行配置组成,Dockerfile 的 FROM、COPY、RUN、USER、CMD 等指令构成构建过程;容器启动后增加可写层并创建进程。删除容器不会自动删除镜像,删除镜像也不应被当作删除外部卷。构建上下文中的文件可能被发送给构建器,因而需要 `.dockerignore` 排除密钥、版本库和大文件,不能把凭据写进镜像层。
Linux 容器通常共享主机内核,PID、mount、network、user 等 namespace 提供视图隔离,cgroups 控制和统计资源;这些机制降低耦合却不是虚拟机那样的独立来宾内核。特权容器、宿主 socket、宽泛 bind mount 或 root 身份会显著削弱边界。比较隔离时必须具体到内核、进程、文件、网络、设备和管理权限。
仅写 `FROM nginx:alpine` 不能保证未来得到同一内容,因为标签可以指向新镜像;严格复现应保存解析到的 digest、目标 CPU 架构和构建器版本,并对应用文件做校验。缓存能加速构建,但也可能隐藏输入变化,所以实验报告要注明是否使用缓存。镜像层历史是审计线索,不应包含令牌、密码或私钥。
运行时把服务绑定到 `127.0.0.1` 的随机宿主端口,避免端口冲突和无意暴露到局域网;容器名与镜像标签由本次临时目录生成的 `lab_token` 构造,并加 `aiknow.exercise` 归属标签。清理不能只相信可猜测的名字:必须同时核对创建成功后保存的对象 ID 与归属标签。`docker inspect` 可查看配置和状态,宿主 `ps` 证明容器仍是主机上的进程。Docker 管理接口能力很高,学员只对自己的容器和镜像操作,不用 `docker system prune` 这类全局清理。
构建只含静态页面的 Nginx 镜像,运行到回环端口,检查镜像层、容器进程与挂载后完成精确清理。
镜像和容器的核心区别是什么?
尚未检查本题。
参考答案:镜像是可分发的只读分层制品与配置;容器是基于镜像创建、带可写层和运行进程的实例。
评价要点:指出镜像不可变制品;指出容器运行进程;提到可写层或实例关系
为什么加入 docker 组或访问 Docker daemon 需要按高权限管理面看待?
尚未检查本题。
参考答案:Docker API 可创建高权限容器、挂载宿主路径或控制主机资源,误用可能突破预期隔离,因此需最小授权和精确操作。
评价要点:指出 daemon 可控制主机资源;举出挂载或特权风险;提出最小权限
尚未完成自测。
根据一份 Dockerfile 标出构建输入、镜像层、运行命令和端口映射,并运行教师提供的镜像。
独立构建静态站点镜像,保存 Dockerfile、版本、镜像 ID、回环访问、inspect 与精确清理证据。
固定基础镜像 digest,比较有/无缓存构建并加入非 root USER 与健康检查,说明每项改善的边界。
学习状态:未学习
Day 13
建议时长:75 分钟
本日 CO:CO1 CO8
Docker Compose 用一份声明式 YAML 描述本机多容器应用的服务、网络、卷和依赖;Kubernetes 将目标状态进一步组织为 Pod、Deployment 与 Service:Pod 是最小可部署单元并共享部分网络/存储上下文,Deployment 管理副本与滚动更新,Service 为动态 Pod 集合提供稳定网络抽象。二者都不自动解决数据备份、密钥管理和应用就绪性,入门练习以配置校验和受控本地部署为主。
4 分钟 · MP3 · 双主持人讲解
Compose 文件声明服务所用镜像或 build、端口、环境变量、网络和卷;`docker compose config` 可解析变量并输出归一化配置,是启动前的重要检查。`depends_on` 表达启动依赖并不天然证明下游业务已就绪,服务仍需健康检查、重试和正确失败处理。具名卷可能在容器删除后继续存在,所以 `down` 与 `down --volumes` 的数据后果不同。
可复现 Compose 实验要保存 compose.yaml、`.env.example`、镜像 digest、Compose 版本和验证命令,真实密码不能提交。端口仍只绑定回环,卷只装载实验目录。`project_name` 必须由本次随机令牌生成;清理前要把当前资源 ID 与启动成功后保存的 `project_ids` 对照,并核验 Docker 自动设置的 `com.docker.compose.project` 归属标签。不能仅凭项目名执行 down,更不能对归属不明的共享项目执行 `down --volumes` 或全局 prune。
Pod 包含一个或多个紧密协作容器,共享网络 namespace 和可声明的卷;单独 Pod 通常是短暂对象。Deployment 保存 Pod 模板和副本期望,由控制器通过 ReplicaSet 推进更新与替换;Service 用标签选择器关联一组后端,为变化的 Pod 提供稳定访问方式。Service 不是 Deployment 的别名,Deployment 也不会自动持久化数据库。
初学者无需立刻创建集群资源。`kubectl create ... --dry-run=client -o yaml` 可在客户端生成清单,再人工检查镜像、标签、selector 与端口是否闭合;客户端 dry-run 不证明服务器版本、准入策略或运行结果。若进入共享集群,必须使用教师分配 namespace、最小 RBAC、资源限额和清理清单,本日不要求集群管理员权限。
用 Compose 启动一个只绑定回环端口的前端服务并验证/清理,再用 kubectl 客户端 dry-run 生成 Deployment 与 Service 清单。
Dockerfile 与 Compose 文件分别回答什么问题?
尚未检查本题。
参考答案:Dockerfile 描述如何构建镜像制品;Compose 文件描述服务如何以镜像、网络、端口、卷和环境配置共同运行。
评价要点:指出构建与运行区别;列出 Compose 至少两类拓扑信息;不把二者互换
Kubernetes 中 Deployment 和 Service 为什么都需要?
尚未检查本题。
参考答案:Deployment 管理 Pod 副本与更新,Service 通过 selector 为变化的后端 Pod 提供稳定网络访问;二者职责不同。
评价要点:Deployment 对副本/更新;Service 对稳定访问;说明通过标签关联
尚未完成自测。
给 Compose 与 Kubernetes 对象卡片配对职责,并只运行 config 与 kubectl client dry-run。
完成 Compose 启动、访问、证据留存和精确清理,再解释生成的 Deployment/Service 标签选择关系。
加入第二个无状态服务与健康检查,画出 Compose 网络和 Kubernetes Service 端点变化,并说明持久数据仍缺什么。
学习状态:未学习
Day 14
建议时长:90 分钟
本日 CO:CO1 CO8
把本周知识收束为同一工作负载的三种边界:裸机/主机直接进程使用主机内核与硬件,虚拟机通过 KVM/QEMU 等栈获得虚拟硬件并运行独立来宾内核,容器把进程置于 namespaces/cgroups 与分层文件系统中而共享主机内核。比较必须固定任务、输入、CPU/内存限制、版本、测量方法与重复次数,同时观察启动、资源、隔离、可移植性、运维和清理;不能用一次更快的结果宣布某种形态普遍优胜。
6 分钟 · MP3 · 双主持人讲解
裸机在本作业中指工作负载直接运行于物理 Linux 主机,不经过来宾 VM;若主机本身是云虚拟机,必须标为 VM,不能伪称裸机。VM 运行独立来宾内核并看到虚拟设备,容器共享宿主内核。三者的启动时间、空闲占用和 I/O 路径不同,但实际结果还受镜像缓存、CPU 架构、调度、后台负载、存储和热身影响。
可比实验应使用同一脚本与输入,固定线程数和资源上限,每种环境至少重复三次并保存原始结果。计时须明确是冷启动、热启动还是任务执行,内存须说明 RSS、宿主总增量或来宾分配量。若工具口径无法等价,就并排呈现并解释不可比,不把不同含义的数字强行画进同一排名。
隔离矩阵至少检查内核、PID、文件系统、网络、资源控制和管理面。VM 的独立来宾内核扩大边界但也增加镜像与补丁对象;容器启动轻量却共享内核,特权设置会削弱隔离;裸机直接进程路径简单,但多个任务共享主机资源。安全结论必须写清配置,不可只用“VM 安全、容器不安全”概括。
来源表应把每条官方 HTTPS 文档映射到具体声明,并由学习者记录实际访问日期;课程作者的 verified_on 不能代替。实验表保存 OS/内核、QEMU/KVM、Docker、镜像或来宾身份、命令、退出码、时间戳、重复结果和清理证据。反思要说明结论适用范围、最强混杂变量、一次失败观察和下一轮如何改善。
完成“VM、容器与裸机可复现实验”草稿,用同一只读任务比较三种环境,提交证据、隔离矩阵、来源与反思。
容器与虚拟机最关键的内核边界差异是什么?
尚未检查本题。
参考答案:常见容器共享宿主内核并隔离进程视图;虚拟机运行独立来宾内核并通过虚拟硬件访问主机资源。
评价要点:指出容器共享宿主内核;指出 VM 独立来宾内核;联系虚拟设备或隔离边界
三环境耗时不同,为什么仍不能立即宣布最快者是所有场景最佳方案?
尚未检查本题。
参考答案:单一任务和有限样本不能覆盖隔离、资源、缓存、I/O、运维与可移植性,结论必须限定条件并用重复实验与多维证据支持。
评价要点:限制外推范围;指出至少两个混杂变量;纳入隔离或运维权衡
尚未完成自测。
使用教师提供的三环境证据包完成层次图和六维隔离矩阵,指出三项不可直接比较的指标。
在授权实验环境完成三次重复的同任务比较,提交原始证据、来源、清理记录和四维量规自评。
加入受控资源限制与冷/热两组实验,用中位数和离散程度描述结果,并提出能推翻当前结论的后续实验。
学习状态:未学习