微量导航网-网站收录-自动收录网址,全站导航网
免费加入

热度: 2

编号:9161

分类:电影视频

加入:2025-01-14 07:58:34

点入:2025-05-14 23:41:11

备案:-

名称:-

SEO更新时间
2025-05-14T23:41:16

百度权重:百度权重0
百度移动:百度移动0
360 权重:360权重0
搜狗权重:搜狗权重0
Siriuss Blog

访问网站

https://www.yeefire.com

举报/报错
网站标签

该站未曾设置keywords


网站描述

该站未曾设置description


上一篇:aigo智慧存储

下一篇:弗戈工业在线 - 传播工业知识 传递品牌价值 传承工业文化

seo综合信息
SEO信息 百度来访IP:- | 移动端来访IP:- | 出站链接:0 | 站内链接:0
IP网速: IP地址:- 地址:- | 网速:703毫秒
ALEXA排名 世界排名: | 预估IP: | 预估PV:
备案信息 - | 名称:- | 已创建:7年2月19日
收录 百度 360 搜狗 谷歌
查询 0 0 0 0
电脑关键词 手机关键词 页面友好 首页位置 索引 近期收录
0 0 电脑端优秀 - 0 0
服务器信息 协议类型 - 页面类型 - 服务器类型 - 程序支持 - 连接标识 - 消息发送 - GZIP检测 - 源文件大小 - 压缩后大小 - 压缩率 -
网站快照

S i r i u s s B l o g S i r i u s s B l o g 今 晚 的 月 色 真 美 首 页 关 于 标 签 2 7 分 类 2 3 归 档 5 6 站 点 地 图 应 用 服 务 文 章 目 录 站 点 概 览 S i r i u s 丶 天 狼 热 爱 科 技 、 热 爱 生 活 。 欢 迎 来 到 S i r i u s 丶 天 狼 的 游 乐 园 ! 5 6 日 志 2 3 分 类 2 7 标 签 G i t H u b E M a i l T e l e g r a m R S S 友 情 链 接 l a p p o n i a 4 2 C l o u d 奕 奕 生 辉 L O N E 0 X 0 J e r r y s B l o g 0 % T h e m e N e x T w o r k s b e s t w i t h J a v a S c r i p t e n a b l e d 欢 迎 来 到 S i r i u s 丶 天 狼 的 游 乐 园 ! > 为 L i n u x 用 户 登 录 添 加 谷 歌 二 次 验 证 器 保 护 发 表 于 2 0 2 2 0 5 0 3 分 类 于 L i n u x 技 术 , 安 全 本 文 字 数 : 4 . 7 k 阅 读 时 长 ≈ 4 分 钟 为 L i n u x 用 户 登 录 添 加 谷 歌 二 次 验 证 器 保 护 G o o g l e A u t h e n t i c a t o r 使 用 一 次 性 密 码 ( O n e t i m e P a s s c o d e s ) ( O T P ) 进 行 两 步 验 证 。 i O S 、 A n d r o i d 和 B l a c k b e r r y 上 都 提 供 了 O T P 生 成 器 应 用 。 两 步 验 证 的 机 制 集 成 在 L i n u x 的 P A M 系 统 中 。 安 装 软 件 包 使 用 包 管 理 器 安 装 l i b p a m g o o g l e a u t h e n t i c a t o r 软 件 包 , 或 从 这 里 下 载 源 码 自 行 编 译 。 我 使 用 p a c m a n 包 安 装 软 件 包 : s u d o p a c m a n S l i b p a m g o o g l e a u t h e n t i c a t o r 。 如 果 你 用 过 G o o g l e A u t h e n t i c a t o r 二 次 验 证 器 的 话 你 肯 定 知 道 , 添 加 密 钥 的 方 式 有 两 种 : 一 种 是 扫 描 二 维 码 添 加 密 钥 , 另 外 一 种 是 手 动 输 入 密 钥 。 若 要 扫 码 添 加 , 则 需 要 在 终 端 生 成 配 置 二 维 码 , 你 需 要 额 外 安 装 q r e n c o d e 软 件 包 。 不 想 扫 码 的 话 你 可 以 不 用 安 装 , 这 个 软 件 包 是 一 个 可 选 项 。 设 置 插 入 式 验 证 模 块 注 意 ⚠ ️ : 若 通 过 S S H 进 行 G o o g l e A u t h e n t i c a t o r 的 所 有 配 置 , 在 完 成 所 有 配 置 并 测 试 正 常 之 前 , 请 勿 关 闭 S S H 会 话 , 否 则 可 能 会 无 法 登 录 。 此 外 , 最 好 在 激 活 P A M 之 前 生 成 密 钥 文 件 , 关 于 密 钥 文 件 在 下 方 会 有 介 绍 。 通 常 情 况 下 你 仅 仅 需 要 在 远 程 S S H 登 陆 的 时 候 才 需 要 开 启 二 次 验 证 , 对 应 的 P A M 的 配 置 在 文 件 / e t c / p a m . d / s s h d , 你 可 以 使 用 v i m 或 你 熟 悉 的 文 本 编 辑 器 在 非 注 释 行 的 行 首 添 加 : a u t h r e q u i r e d p a m _ g o o g l e _ a u t h e n t i c a t o r . s o 。 s u d o e d i t / e t c / p a m . d / s s h d 编 辑 后 的 内 容 如 下 / e t c / p a m . d / s s h d 1 2 3 4 5 a u t h r e q u i r e d p a m _ g o o g l e _ a u t h e n t i c a t o r . s o a u t h i n c l u d e s y s t e m r e m o t e l o g i n a c c o u n t i n c l u d e s y s t e m r e m o t e l o g i n p a s s w o r d i n c l u d e s y s t e m r e m o t e l o g i n s e s s i o n i n c l u d e s y s t e m r e m o t e l o g i n 这 样 将 会 首 先 询 问 二 次 验 证 码 , 验 证 成 功 后 才 会 询 问 密 码 , 二 者 都 要 成 功 验 证 后 才 允 许 登 录 。 交 换 p a m _ g o o g l e _ a u t h e n t i c a t o r . s o 与 s y s t e m r e m o t e l o g i n 两 行 会 改 变 验 证 顺 序 。 若 要 二 者 任 一 正 确 即 可 登 陆 的 话 则 , 将 配 置 信 息 修 改 为 a u t h s u f f i c i e n t p a m _ g o o g l e _ a u t h e n t i c a t o r . s o 。 此 时 会 先 询 问 二 次 验 证 码 , 若 正 确 则 直 接 登 录 到 系 统 , 否 则 验 证 密 码 , 两 者 任 一 正 确 即 可 登 录 系 统 。 还 需 要 在 文 件 / e t c / s s h / s s h d _ c o n f i g 内 开 启 质 疑 应 答 认 证 : 修 改 配 置 项 为 : C h a l l e n g e R e s p o n s e A u t h e n t i c a t i o n y e s 并 重 载 s s h d 服 务 : s y s t e m c t l r e l o a d s s h d 注 意 ⚠ ️ : 如 果 当 前 你 设 置 使 用 密 钥 登 陆 并 禁 止 密 码 登 录 , O p e n S S H 会 忽 略 如 上 所 有 的 配 置 , 若 想 使 用 密 钥 登 陆 同 时 开 启 二 次 验 证 的 话 你 需 要 几 个 额 外 步 骤 : 添 加 或 修 改 / e t c / s s h / s s h d _ c o n f i g 配 置 文 件 : 配 置 项 K b d I n t e r a c t i v e A u t h e n t i c a t i o n y e s 。 配 置 项 C h a l l e n g e R e s p o n s e A u t h e n t i c a t i o n y e s 。 配 置 项 A u t h e n t i c a t i o n M e t h o d s p u b l i c k e y , k e y b o a r d i n t e r a c t i v e : p a m 。 默 认 的 P A M 认 证 规 则 中 包 含 密 码 认 证 , 既 然 只 用 密 钥 和 二 次 验 证 码 登 陆 系 统 , 则 需 要 修 改 s s h d 的 P A M 规 则 , 编 辑 / e t c / p a m . d / s s h d 文 件 , 关 闭 密 码 验 证 : / e t c / p a m . d / s s h d 1 2 3 4 5 6 7 # % P A M 1 . 0 # a u t h r e q u i r e d p a m _ s e c u r e t t y . s o # d i s a b l e r e m o t e r o o t a u t h r e q u i r e d p a m _ g o o g l e _ a u t h e n t i c a t o r . s o # a u t h i n c l u d e s y s t e m r e m o t e l o g i n # 在 行 首 添 加 注 释 符 , 关 闭 密 码 登 录 规 则 。 a c c o u n t i n c l u d e s y s t e m r e m o t e l o g i n p a s s w o r d i n c l u d e s y s t e m r e m o t e l o g i n s e s s i o n i n c l u d e s y s t e m r e m o t e l o g i n 在 修 改 完 如 上 配 置 后 需 要 重 载 s s h d 服 务 , s u d o s y s t e m c t l r e l o a d s s h d 。 放 心 , 我 们 目 前 为 止 所 有 的 操 作 和 添 加 的 规 则 仅 针 对 S S H 远 程 登 录 有 效 , 到 目 前 位 置 还 没 有 结 束 , 你 还 需 要 最 后 一 步 , 为 用 户 生 成 密 钥 。 生 成 密 钥 文 件 提 示 ✅ : 可 选 安 装 q r e n c o d e 软 件 包 以 在 屏 幕 上 生 成 可 以 扫 描 的 二 维 码 。 扫 描 二 维 码 以 自 动 配 置 两 次 验 证 器 。 每 一 个 想 要 使 用 两 次 验 证 的 用 户 需 要 在 其 用 户 目 录 生 成 一 个 密 钥 文 件 , 使 用 命 令 g o o g l e a u t h e n t i c a t o r 来 完 成 : 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 $ g o o g l e a u t h e n t i c a t o r ─ ╯ D o y o u w a n t a u t h e n t i c a t i o n t o k e n s t o b e t i m e b a s e d ( y / n ) y W a r n i n g : p a s t i n g t h e f o l l o w i n g U R L i n t o y o u r b r o w s e r e x p o s e s t h e O T P s e c r e t t o G o o g l e : Y o u r n e w s e c r e t k e y i s : J 4 T 4 C 4 H Y T 2 K I A 5 2 W G S D J E O L M 2 I ( 验 证 器 配 置 密 钥 ) E n t e r c o d e f r o m a p p ( 1 t o s k i p ) : 2 6 9 3 7 1 ( 输 入 验 证 器 生 成 的 验 证 码 ) C o d e c o n f i r m e d Y o u r e m e r g e n c y s c r a t c h c o d e s a r e : ( 紧 急 备 用 令 牌 码 ) 9 3 3 9 4 7 3 0 1 4 3 9 4 0 7 3 3 3 4 9 1 9 1 1 8 6 1 1 2 1 5 7 2 2 1 7 4 7 8 3 D o y o u w a n t m e t o u p d a t e y o u r / h o m e / u s e r n a m e / . g o o g l e _ a u t h e n t i c a t o r f i l e ? ( y / n ) y ( 是 否 重 新 生 成 登 录 配 置 文 件 ? ) D o y o u w a n t t o d i s a l l o w m u l t i p l e u s e s o f t h e s a m e a u t h e n t i c a t i o n t o k e n ? T h i s r e s t r i c t s y o u t o o n e l o g i n a b o u t e v e r y 3 0 s , b u t i t i n c r e a s e s y o u r c h a n c e s t o n o t i c e o r e v e n p r e v e n t m a n i n t h e m i d d l e a t t a c k s ( y / n ) y ( 是 否 拒 绝 多 次 重 复 使 用 相 同 的 令 牌 ? 这 将 限 制 你 每 3 0 s 仅 能 登 录 一 次 , 但 会 提 醒 / 阻 止 中 间 人 攻 击 。 ) B y d e f a u l t , a n e w t o k e n i s g e n e r a t e d e v e r y 3 0 s e c o n d s b y t h e m o b i l e a p p . I n o r d e r t o c o m p e n s a t e f o r p o s s i b l e t i m e s k e w b e t w e e n t h e c l i e n t a n d t h e s e r v e r , w e a l l o w a n e x t r a t o k e n b e f o r e a n d a f t e r t h e c u r r e n t t i m e . T h i s a l l o w s f o r a t i m e s k e w o f u p t o 3 0 s e c o n d s b e t w e e n a u t h e n t i c a t i o n s e r v e r a n d c l i e n t . I f y o u e x p e r i e n c e p r o b l e m s w i t h p o o r t i m e s y n c h r o n i z a t i o n , y o u c a n i n c r e a s e t h e w i n d o w f r o m i t s d e f a u l t s i z e o f 3 p e r m i t t e d c o d e s ( o n e p r e v i o u s c o d e , t h e c u r r e n t c o d e , t h e n e x t c o d e ) t o 1 7 p e r m i t t e d c o d e s ( t h e 8 p r e v i o u s c o d e s , t h e c u r r e n t c o d e , a n d t h e 8 n e x t c o d e s ) . T h i s w i l l p e r m i t f o r a t i m e s k e w o f u p t o 4 m i n u t e s b e t w e e n c l i e n t a n d s e r v e r . D o y o u w a n t t o d o s o ? ( y / n ) n ( 是 否 将 验 证 码 有 效 窗 口 时 间 由 1 分 3 0 秒 增 加 到 约 4 分 钟 ? 这 将 缓 解 时 间 同 步 问 题 。 ) I f t h e c o m p u t e r t h a t y o u a r e l o g g i n g i n t o i s n t h a r d e n e d a g a i n s t b r u t e f o r c e l o g i n a t t e m p t s , y o u c a n e n a b l e r a t e l i m i t i n g f o r t h e a u t h e n t i c a t i o n m o d u l e . B y d e f a u l t , t h i s l i m i t s a t t a c k e r s t o n o m o r e t h a n 3 l o g i n a t t e m p t s e v e r y 3 0 s . D o y o u w a n t t o e n a b l e r a t e l i m i t i n g ? ( y / n ) y ( 是 否 启 用 此 模 块 的 登 录 频 率 限 制 , 登 录 者 将 会 被 限 制 为 最 多 在 3 0 秒 内 登 录 3 次 。 ) 建 议 将 备 用 令 牌 码 保 存 在 安 全 的 地 方 ( 打 印 出 来 并 放 在 一 个 安 全 的 位 置 ) , 因 为 当 丢 失 手 机 ( 即 你 的 两 步 验 证 器 ) 或 其 他 原 因 不 能 使 用 两 步 验 证 器 时 , 只 能 使 用 备 用 令 牌 码 登 录 。 它 们 同 时 也 被 保 存 在 ~ / . g o o g l e _ a u t h e n t i c a t o r , 你 可 以 在 登 录 后 随 时 查 阅 。 设 置 二 次 验 证 器 在 你 的 手 机 上 安 装 两 步 验 证 器 软 件 。 例 如 : G o o g l e A u t h e n t i c a t o r G o o g l e 应 用 商 店 / I O S . 在 软 件 中 创 建 一 个 新 验 证 , 输 入 密 钥 ( 如 例 子 中 的 ’ J 4 T 4 C 4 H Y T 2 K I A 5 2 W G S D J E O L M 2 I ’ ) 或 扫 描 二 维 码 来 导 入 密 钥 , 并 依 照 屏 幕 提 示 输 入 验 证 码 。 软 件 现 在 应 该 会 显 示 一 个 每 3 0 秒 更 新 的 验 证 码 。 测 试 验 证 在 完 成 测 试 前 请 不 要 断 开 目 前 已 经 的 S S H 连 接 ! 如 果 配 置 出 错 或 者 无 法 登 陆 还 可 以 有 补 救 的 机 会 , 否 则 失 联 的 痛 楚 就 要 一 人 默 默 感 受 了 ! 现 在 请 开 启 一 个 全 新 的 终 端 , 尝 试 S S H 连 接 到 完 成 了 上 述 配 置 的 主 机 , 如 果 你 配 置 了 密 码 和 二 次 验 证 , 则 下 面 的 显 示 与 你 会 有 略 微 差 别 。 总 之 , 尝 试 输 入 你 的 身 份 登 录 信 息 和 二 次 验 证 码 , 若 可 以 登 陆 系 统 , 那 恭 喜 你 🎉 ! 教 程 到 此 结 束 , 下 面 的 使 一 些 其 他 玩 法 , 若 感 兴 趣 请 继 续 了 解 ! 1 2 3 s s h u s e r n a m e @ 你 的 服 务 器 地 址 E n t e r p a s s p h r a s e f o r k e y / U s e r s / u s e r n a m e / . s s h / i d _ r s a : ( u s e r n a m e @ 你 的 服 务 器 地 址 ) V e r i f i c a t i o n c o d e : 其 他 配 置 用 于 桌 面 登 陆 谷 歌 两 次 认 证 插 件 可 以 同 时 用 于 控 制 台 与 G N O M E 桌 面 登 录 。 只 需 要 在 文 件 / e t c / p a m . d / l o g i n 或 / e t c / p a m . d / g d m p a s s w o r d 内 加 入 : a u t h r e q u i r e d p a m _ g o o g l e _ a u t h e n t i c a t o r . s o 存 储 位 置 如 果 想 要 改 变 密 钥 存 储 位 置 , 请 使 用 s e c r e t 参 数 : g o o g l e a u t h e n t i c a t o r s e c r e t = / P A T H _ F O L D E R / U S E R N A M E 然 后 更 改 / e t c / p a m . d / s s h d 内 的 路 径 配 置 : / e t c / p a m . d / s s h d 1 a u t h r e q u i r e d p a m _ g o o g l e _ a u t h e n t i c a t o r . s o u s e r = r o o t s e c r e t = / P A T H _ F O L D E R / $ u s e r = r o o t 用 于 强 制 P A M 使 用 r o o t 用 户 权 限 来 搜 索 文 件 。 另 外 请 注 意 , 密 钥 文 件 的 所 有 者 是 r o o t , 生 成 文 件 的 用 户 只 能 读 取 文 件 ( c h m o d : 4 0 0 ) : c h o w n r o o t . r o o t / P A T H _ F I L E / S E C R E T _ K E Y _ F I L E S c h m o d 4 0 0 / P A T H _ F I L E / S E C R E T _ K E Y _ F I L E S 欢 迎 来 到 S i r i u s 丶 天 狼 的 游 乐 园 ! > 硬 盘 发 表 于 2 0 2 2 0 1 2 6 更 新 于 2 0 2 2 0 5 0 3 分 类 于 操 作 系 统 , 硬 盘 本 文 字 数 : 1 6 k 阅 读 时 长 ≈ 1 4 分 钟 硬 盘 硬 盘 发 展 简 史 1 9 5 6 年 9 月 , 世 界 上 诞 生 了 第 一 台 磁 盘 存 储 设 备 I B M 3 5 0 R A M A C ( R a n d o m A c c e s s M e t h o d o f A c c o u n t i n g a n d C o n t r o l ) , 没 错 , 又 是 I B M , 这 就 是 蓝 色 巨 人 的 魅 力 , 在 几 十 年 前 已 经 为 科 技 领 航 。 此 设 备 用 磁 头 来 读 写 数 据 , 用 盘 片 来 存 储 数 据 , 以 后 的 硬 盘 都 是 以 这 样 的 模 式 发 展 。 这 个 磁 头 可 以 直 接 移 动 到 盘 片 上 的 任 何 一 块 存 储 单 元 , 从 而 实 现 了 随 机 存 储 。 虽 然 它 的 总 容 量 只 有 5 M B , 但 是 限 于 当 时 的 制 造 工 艺 水 平 , 一 共 使 用 了 5 0 个 直 径 为 2 4 英 寸 的 盘 片 , 摞 起 来 的 体 积 相 当 于 冰 箱 那 么 大 。 1 9 6 8 年 由 I B M 首 次 提 出 了 “ 温 彻 斯 特 / W i n c h e s t e r ” 的 技 术 , 这 可 是 个 了 不 起 的 技 术 。 “ 温 彻 斯 特 ” 技 术 的 精 髓 是 : “ 镀 磁 盘 片 在 密 封 空 间 中 高 速 自 转 , 磁 头 悬 浮 在 盘 片 上 方 , 固 定 在 磁 头 臂 上 沿 盘 片 径 向 移 动 ” 。 磁 头 不 与 盘 片 接 触 也 不 应 该 接 触 , 这 是 最 容 易 想 象 的 , 如 果 磁 头 与 盘 片 接 触 , 在 高 速 转 动 下 摩 擦 , 什 么 材 料 都 会 磨 损 , 数 据 自 然 就 丢 啦 。 另 外 , 盘 片 自 转 速 度 是 存 取 数 据 速 度 的 关 键 , 如 果 磁 头 与 盘 片 接 触 , 受 摩 擦 力 的 影 响 , 想 快 也 快 不 了 。 一 个 可 行 的 方 案 是 让 磁 头 在 盘 片 上 方 “ 悬 浮 ” , 与 盘 片 保 持 非 常 近 的 距 离 , 类 似 咱 们 物 理 实 验 中 的 气 垫 导 轨 。 盘 片 高 速 旋 转 会 产 生 气 流 , 磁 头 在 这 种 气 流 下 像 飞 碟 一 样 悬 浮 , 这 样 就 保 证 了 不 会 与 盘 片 有 摩 擦 。 磁 头 被 固 定 在 磁 头 臂 上 , 它 能 沿 盘 片 径 向 移 动 , 由 于 磁 头 和 盘 片 各 自 的 运 动 , 再 加 上 如 此 近 的 距 离 , 所 以 哪 怕 一 点 灰 尘 都 会 造 成 磁 盘 的 损 伤 。 于 是 , 磁 头 、 盘 片 被 密 封 在 了 一 个 盒 子 里 。 今 天 的 硬 盘 依 然 是 这 样 的 结 构 。 世 界 上 第 一 块 基 于 “ 温 彻 斯 特 ” 技 术 的 硬 盘 , 在 1 9 7 3 年 诞 生 , 它 就 是 所 有 硬 盘 的 源 头 I B M 3 3 4 0 , 容 量 6 0 M B , 由 两 个 3 0 M B 的 存 储 单 元 拼 合 而 成 。 从 此 硬 盘 技 术 的 发 展 便 有 了 成 形 的 结 构 基 础 。 所 以 , 今 天 的 硬 盘 也 称 为 温 盘 , 在 一 般 的 可 编 程 中 断 控 制 器 上 连 接 硬 盘 的 引 脚 都 标 有 温 彻 斯 特 硬 盘 呢 。 硬 盘 的 随 机 存 取 是 靠 磁 头 臂 不 断 移 动 实 现 的 , 磁 头 臂 移 动 到 目 标 位 置 的 时 间 称 为 寻 道 时 间 , 如 果 存 储 的 数 据 不 连 续 , 这 一 块 那 一 片 的 , 磁 头 就 得 不 断 调 整 位 置 , 这 是 机 械 式 硬 盘 不 可 避 免 的 , 这 便 是 硬 盘 的 瓶 颈 所 在 , 所 以 一 般 的 硬 盘 都 将 寻 道 时 间 作 为 重 要 参 数 。 在 众 多 竞 争 对 象 当 中 , 也 有 一 款 顽 强 地 活 了 下 来 , 它 就 是 S S D 固 态 硬 盘 , 人 家 也 有 几 十 年 的 历 史 了 。 S S D 固 态 硬 盘 为 我 们 带 来 了 全 新 的 解 决 方 案 , 看 起 来 就 像 大 块 的 内 存 条 。 存 在 即 合 理 , 尽 管 温 彻 斯 特 硬 盘 为 了 提 速 , 内 部 加 了 很 多 缓 存 , 应 用 了 各 种 优 化 寻 道 的 方 法 , 甚 至 接 口 已 经 变 成 了 串 口 , 但 主 流 磁 盘 转 速 还 是 7 2 0 0 转 , 速 度 却 提 升 有 限 。 于 是 固 态 硬 盘 的 优 势 开 始 显 山 露 水 , 其 最 大 的 优 点 是 速 度 快 , 但 缺 点 也 明 显 , 容 量 低 , 价 格 也 很 贵 。 主 要 还 是 运 用 在 要 求 存 储 速 度 较 快 的 生 产 环 境 中 如 数 据 库 系 统 。 当 然 现 在 随 着 固 态 硬 盘 价 格 越 来 越 便 宜 , 也 进 入 了 咱 们 老 百 姓 的 家 中 。 硬 盘 的 工 作 原 理 为 了 讲 清 楚 硬 盘 的 工 作 原 理 , 书 的 作 者 用 画 图 板 花 了 1 个 小 时 画 了 这 张 示 意 图 , 希 望 对 大 家 有 所 帮 助 。 左 边 的 主 轴 上 有 两 张 盘 片 , 其 实 不 止 2 张 , 这 里 示 意 性 的 画 了 两 张 。 盘 片 固 定 在 主 轴 上 随 主 轴 告 诉 转 动 , 目 前 主 流 个 人 电 脑 硬 盘 上 的 转 速 是 7 2 0 0 转 / 分 钟 。 每 个 盘 片 分 上 下 两 面 , 每 面 都 存 储 数 据 , 每 个 盘 面 都 由 一 个 磁 头 来 读 取 数 据 , 所 以 一 个 盘 面 上 对 应 2 个 磁 头 。 由 于 盘 面 与 磁 头 是 一 一 对 应 的 关 系 , 故 用 磁 头 号 来 表 示 盘 面 。 磁 头 编 号 从 上 到 下 以 0 开 始 计 数 , 所 以 用 磁 头 0 代 表 第 一 个 盘 面 。 磁 头 不 会 自 己 在 盘 片 上 移 动 , 它 需 要 被 固 定 在 右 边 的 磁 头 臂 上 , 在 磁 头 臂 的 带 动 下 , 沿 着 盘 片 边 缘 向 圆 心 的 方 向 来 回 摆 动 , 注 意 , 摆 动 的 轨 迹 是 个 弧 , 并 不 是 绝 对 径 向 地 直 来 直 去 。 一 方 面 这 是 因 为 磁 头 臂 是 由 步 进 电 机 驱 动 的 , 磁 头 臂 一 端 是 步 进 电 机 主 轴 , 另 一 端 是 磁 头 。 步 进 电 机 每 次 都 会 转 动 一 个 角 度 , 所 以 带 动 磁 头 臂 在 “ 画 圆 ” , 而 磁 头 位 于 磁 头 臂 的 另 一 端 , 所 以 也 跟 着 呈 钟 摆 运 动 , 运 动 轨 迹 是 个 弧 线 , 并 不 是 直 线 。 所 以 , 图 中 磁 头 臂 中 标 注 了 “ 类 似 于 ” 径 向 运 动 , 这 就 是 “ 类 似 ” 的 原 因 。 另 一 方 面 , 磁 头 读 取 数 据 也 不 需 要 做 直 来 直 去 的 移 动 , 能 否 找 到 数 据 , 只 跟 它 最 终 落 点 有 关 , 和 中 间 路 径 形 状 是 没 关 系 的 。 所 以 , 一 方 面 盘 片 的 自 转 , 另 一 方 面 磁 头 的 摆 动 , 这 两 种 动 作 的 合 成 , 使 磁 头 能 够 读 取 盘 片 任 意 位 置 的 数 据 。 说 完 了 硬 盘 内 部 各 部 件 的 运 动 , 再 说 下 存 储 逻 辑 。 盘 片 表 面 是 用 于 存 储 数 据 的 磁 性 介 质 , 为 了 更 有 效 管 理 磁 盘 , 这 些 磁 性 介 质 也 被 “ 格 式 化 ” 成 易 于 管 理 的 格 局 , 即 将 整 个 盘 面 划 分 为 多 个 同 心 环 , 以 圆 心 画 扇 形 , 扇 形 与 每 个 同 心 环 相 交 的 弧 状 区 域 作 为 最 基 本 的 数 据 存 储 单 元 。 这 个 同 心 环 就 称 为 磁 道 , 而 同 心 环 上 的 弧 状 区 域 是 扇 形 的 一 部 分 , 故 称 之 为 扇 区 , 它 作 为 我 们 向 硬 盘 存 储 数 据 的 最 基 本 单 位 , 大 小 是 5 1 2 字 节 。 我 们 写 入 的 数 据 最 终 是 写 进 了 磁 道 上 的 扇 区 中 。 注 意 啦 , 我 上 面 说 的 磁 道 是 个 环 , 不 是 线 , 很 多 教 科 书 上 介 绍 磁 道 时 都 简 单 画 了 个 圆 圈 , 这 容 易 让 人 误 解 磁 道 是 条 线 , 线 上 可 无 法 存 储 数 据 , “ 环 ” 是 有 横 截 面 的 , 数 据 就 存 储 这 些 “ 面 积 ” 中 。 磁 头 臂 带 动 磁 头 在 盘 片 上 方 移 动 , 就 是 在 找 磁 道 的 位 置 , 盘 片 高 速 自 转 , 就 是 在 磁 道 内 定 位 扇 区 。 看 图 , 配 合 着 想 像 力 理 解 一 下 。 磁 道 的 编 号 和 磁 头 一 样 也 是 从 0 开 始 的 。 相 同 编 号 的 磁 道 组 成 的 管 状 区 域 就 称 为 柱 面 。 图 中 , 两 个 盘 片 上 编 号 相 同 的 磁 道 , 它 们 之 间 用 灰 色 直 线 连 接 起 来 的 部 分 , 很 像 柱 子 的 弧 形 表 面 , 所 以 称 柱 面 。 如 果 盘 片 非 常 多 的 话 , “ 柱 面 ” 就 显 得 非 常 形 象 了 。 C P U 与 外 设 通 信 — I O 接 口 # 南 桥 输 入 输 出 控 制 中 心 中 提 到 了 , C P U 只 会 通 过 I O 接 口 与 外 设 通 信 , 那 么 硬 盘 的 I O 接 口 就 是 硬 盘 控 制 器 。 硬 盘 控 制 器 同 硬 盘 的 关 系 , 如 同 显 卡 和 显 示 器 一 样 , 它 们 都 是 专 门 驱 动 外 部 设 备 的 模 块 电 路 , C P U 只 同 他 们 说 话 , 由 它 们 将 C P U 的 话 转 译 给 外 部 设 备 , 这 是 它 们 的 共 同 点 。 不 过 , 不 同 的 是 显 卡 和 显 示 适 配 器 是 分 开 的 , 因 为 显 示 器 太 大 了 , 不 能 塞 到 机 箱 里 , 但 是 现 在 的 硬 盘 和 硬 盘 控 制 器 是 在 一 起 的 , 为 什 么 用 但 是 这 个 词 呢 , 是 因 为 很 早 之 前 硬 盘 控 制 器 和 硬 盘 也 是 分 开 的 , 不 过 业 界 内 几 个 大 佬 合 作 开 发 出 的 新 的 接 口 , 这 才 将 硬 盘 和 硬 盘 控 制 器 整 合 到 一 起 , 这 种 接 口 便 称 为 集 成 设 备 电 路 ( I n t e g r a t e d D r i v e E l e c t r o n i c s , I D E ) 。 随 着 I D E 接 口 标 准 的 影 响 力 越 来 越 广 泛 , 全 球 标 准 化 协 议 将 此 接 口 使 用 的 技 术 规 范 归 纳 成 为 全 球 硬 盘 标 准 , 这 样 就 产 生 了 A T A ( A d v a n c e d T e c h n o l o g y A t t a c h m e n t ) 。 不 过 由 于 I D E 这 个 名 字 已 经 叫 开 了 , 所 以 大 家 依 然 习 惯 称 硬 盘 为 I D E 硬 盘 。 计 算 机 发 展 非 常 快 , 新 老 交 替 的 现 象 层 出 不 穷 , 前 几 年 刚 出 道 的 硬 盘 串 行 接 口 ( S e r i a l A T A , S A T A ) , 由 于 其 是 串 行 , 所 以 之 前 的 A T A 接 口 只 好 称 为 并 行 A T A , 即 ( P a r a l l e l A T A , P A T A ) 。 以 前 一 般 的 主 机 只 支 持 4 个 并 口 硬 盘 , 但 自 从 出 现 串 口 硬 盘 后 , 情 况 就 变 了 , 支 持 多 少 块 硬 盘 , 取 决 于 主 板 的 能 力 。 有 的 主 板 同 时 兼 容 这 两 种 接 口 , 如 图 所 示 。 ! 这 两 种 线 缆 完 全 不 同 , 左 边 P A T A 接 口 的 线 缆 也 称 为 I D E 线 , 一 个 I D E 线 上 可 以 挂 两 块 硬 盘 , 一 个 是 主 盘 ( M a s t e r ) , 一 个 是 从 盘 ( S l a v e ) 。 一 个 主 板 支 持 这 样 的 4 块 I D E ( P A T A ) 硬 盘 , 所 以 主 板 上 提 供 两 个 I D E 插 槽 。 这 两 个 接 口 也 是 以 0 为 起 始 编 号 的 , 一 个 称 为 I D E 0 , 另 一 个 称 为 I D E 1 。 不 过 按 A T A 的 说 法 , 这 两 个 插 槽 称 为 通 道 , I D E 0 叫 作 P r i m a r y 通 道 , I D E 1 叫 作 S e c o n d a r y 通 道 。 即 使 主 板 上 安 装 的 是 S A T A 硬 盘 , 它 也 兼 容 P A T A 的 编 程 接 口 , 向 上 兼 容 是 计 算 机 能 源 源 不 断 向 前 发 展 的 根 基 。 所 以 , 后 面 给 出 的 端 口 号 也 将 按 照 P A T A 这 两 个 通 道 来 分 组 给 出 。 这 里 所 说 的 主 盘 m a s t e r 、 从 盘 s l a v e 别 和 P r i m a r y 通 道 、 S e c o n d a r y 通 道 搞 混 了 , 通 道 是 c h a n n e l , 不 是 d i s k , 每 个 通 道 上 分 别 有 主 盘 和 从 盘 。 硬 盘 控 制 器 端 口 接 下 来 的 内 容 是 关 于 如 何 控 制 硬 盘 了 。 让 硬 盘 工 作 , 我 们 需 要 通 过 读 写 硬 盘 控 制 器 的 端 口 , 端 口 的 概 念 在 此 重 复 一 下 , 端 口 就 是 位 于 I O 控 制 器 上 的 寄 存 器 , 此 处 的 端 口 是 指 硬 盘 控 制 器 上 的 寄 存 器 。 下 面 图 标 中 列 出 了 部 分 端 口 , 对 于 我 们 今 后 的 应 用 , 这 几 个 端 口 足 够 了 。 端 口 可 以 被 分 为 两 组 , C o m m a n d B l o c k r e g i s t e r s 和 C o n t r o l B l o c k r e g i s t e r s 。 C o m m a n d B l o c k r e g i s t e r s 用 于 向 硬 盘 驱 动 器 写 入 命 令 字 或 者 从 硬 盘 控 制 器 获 得 硬 盘 状 态 , C o n t r o l B l o c k r e g i s t e r s 用 于 控 制 硬 盘 工 作 状 态 。 在 C o n t r o l B l o c k r e g i s t e r s 组 中 的 寄 存 器 已 经 精 减 了 , 重 点 介 绍 C o m m a n d B l o c k r e g i s t e r s 组 中 的 寄 存 器 。 端 口 是 按 照 通 道 给 出 的 , 不 要 误 以 为 端 口 是 直 接 针 对 某 块 硬 盘 的 , 不 是 这 样 的 , 一 个 通 道 上 的 主 、 从 两 块 硬 盘 都 用 这 些 端 口 号 。 要 想 操 作 某 通 道 上 的 某 块 硬 盘 , 需 要 单 独 指 定 。 上 面 的 表 格 中 就 又 一 个 叫 d e v i c e 的 寄 存 器 , 顾 名 思 义 , 指 的 就 是 驱 动 器 设 备 , 也 就 是 和 硬 盘 相 关 。 不 过 此 寄 存 器 是 8 位 的 , 一 个 通 道 上 就 两 块 硬 盘 , 指 定 哪 一 个 硬 盘 只 用 1 位 就 够 了 , 寄 存 器 资 源 宝 贵 不 能 浪 费 , 所 以 此 寄 存 器 是 个 杂 项 , 很 多 设 置 都 需 集 中 在 此 寄 存 器 中 了 , 其 中 的 第 4 位 , 便 是 指 定 通 道 上 的 主 或 从 硬 盘 , 0 为 主 盘 , 1 为 从 盘 。 端 口 用 途 在 读 硬 盘 和 写 硬 盘 时 还 是 有 点 区 别 的 , 比 如 拿 P r i m a r y 通 道 上 的 0 x 1 F 1 端 口 来 说 , 读 操 作 时 , 若 读 取 失 败 , 里 面 存 储 的 是 失 败 状 态 信 息 , 所 以 称 为 e r r o r 寄 存 器 , 并 且 0 x 1 F 2 端 口 中 存 储 未 读 的 扇 区 数 。 写 操 作 时 就 变 成 了 f e a u t u r e 寄 存 器 , 此 寄 存 器 用 于 写 命 令 的 参 数 。 这 么 做 的 目 的 还 是 因 为 节 省 寄 存 器 的 成 本 … 前 辈 们 为 了 节 省 资 源 真 的 是 用 尽 了 奇 技 淫 巧 。 寻 址 方 式 C H S 和 L B A 硬 盘 中 的 扇 区 在 物 理 上 是 用 “ 柱 面 磁 头 扇 区 ” 来 定 位 的 ( C y l i n d e r H e a d S e c t o r ) , 简 称 为 C H S 。 但 每 次 我 们 要 事 先 算 出 扇 区 是 在 哪 个 盘 面 , 哪 个 柱 面 上 , 这 太 麻 烦 了 , 这 对 于 磁 头 来 说 很 直 观 , 它 就 是 根 据 这 些 信 息 来 定 位 扇 区 的 。 可 是 咱 们 还 是 希 望 有 一 套 对 人 来 说 较 直 观 的 寻 址 方 法 , 我 们 希 望 磁 盘 中 扇 区 从 0 开 始 依 次 递 增 编 号 , 不 用 考 虑 扇 区 所 在 的 物 理 结 构 。 其 实 我 在 描 述 需 求 时 已 经 说 出 了 L B A 的 定 义 , 这 是 一 种 逻 辑 上 为 扇 区 址 的 方 法 , 全 称 为 逻 辑 块 地 址 ( L o g i c a l B l o c k A d d r e s s ) 。 L B A 有 两 种 模 式 : L B A 2 8 模 式 : L B A 2 8 , 用 2 8 位 比 特 来 描 述 一 个 扇 区 的 地 址 。 最 大 寻 址 范 围 是 2 的 2 8 次 方 等 于 2 6 8 4 3 5 4 5 6 个 扇 区 , 每 个 扇 区 是 5 1 2 字 节 , 最 大 支 持 1 2 8 G B 。 我 们 这 里 为 图 简 单 , 采 用 L B A 2 8 模 式 。 L B A 4 8 模 式 : 由 于 1 2 8 G B 已 经 不 能 满 足 日 益 增 长 的 存 储 需 求 , 硬 盘 越 来 越 大 了 , 得 有 相 匹 配 的 寻 址 方 法 与 之 配 套 , 于 是 要 介 绍 的 另 外 一 种 是 L B A 4 8 , 用 4 8 位 比 特 来 描 述 一 个 扇 区 的 地 址 , 最 大 可 寻 址 范 围 是 2 的 4 8 次 方 , 等 于 2 8 1 4 7 4 9 7 6 7 1 0 6 5 6 个 扇 区 , 乘 以 5 1 2 字 节 后 , 最 大 支 持 1 3 1 0 7 2 T B , 即 1 2 8 P B 。 硬 盘 中 各 寄 存 器 的 作 用 按 照 上 表 硬 盘 _ 硬 盘 控 制 器 主 要 端 口 寄 存 器 来 逐 一 介 绍 下 寄 存 器 的 作 用 。 d a t a 寄 存 器 在 名 字 上 我 们 就 知 道 它 是 负 责 管 理 数 据 的 , 它 相 当 于 数 据 的 门 , 数 据 能 进 , 也 能 出 , 所 以 其 作 用 是 读 取 或 写 入 数 据 。 数 据 的 读 写 还 是 越 快 越 好 , 所 以 此 寄 存 器 较 其 他 寄 存 器 宽 一 些 , 1 6 位 ( 已 经 很 不 错 了 , 表 中 其 他 寄 存 器 都 是 8 位 的 ) 。 在 读 硬 盘 时 , 硬 盘 准 备 好 的 数 据 后 , 硬 盘 控 制 器 将 其 放 在 内 部 的 缓 冲 区 中 , 不 断 读 此 寄 存 器 便 是 读 出 缓 冲 区 中 的 全 部 数 据 。 在 写 硬 盘 时 , 我 们 要 把 数 据 源 源 不 断 地 输 送 到 此 端 口 , 数 据 便 被 存 入 缓 冲 区 里 , 硬 盘 控 制 器 发 现 这 个 缓 冲 区 中 有 数 据 了 , 便 将 此 处 的 数 据 写 入 相 应 的 扇 区 中 。 读 硬 盘 时 , 端 口 0 x 1 7 1 或 0 x 1 F 1 的 寄 存 器 名 字 叫 E r r o r 寄 存 器 , 只 在 读 取 硬 盘 失 败 时 有 用 , 里 面 才 会 记 录 失 败 的 信 息 , 尚 未 读 取 的 扇 区 数 在 S e c t o r c o u n t 寄 存 器 中 。 在 写 硬 盘 时 , 此 寄 存 器 有 了 别 的 用 途 , 所 以 有 了 新 的 名 字 , 叫 F e a t u r e 寄 存 器 。 有 些 命 令 需 要 指 定 额 外 参 数 , 这 些 参 数 就 写 在 F e a t u r e 寄 存 器 中 。 强 调 一 下 , e r r o r 和 f e a t u r e 这 两 个 名 字 指 的 是 同 一 个 寄 存 器 , 只 是 因 为 不 同 环 境 下 有 不 同 的 用 途 , 为 了 区 别 这 两 种 用 途 , 所 以 在 相 应 环 境 下 有 不 同 的 名 字 。 这 两 个 寄 存 器 都 是 8 位 宽 度 。 S e c t o r c o u n t 寄 存 器 用 来 指 定 待 读 取 或 待 写 入 的 扇 区 数 。 硬 盘 每 完 成 一 个 扇 区 , 就 会 将 此 寄 存 器 的 值 减 1 , 所 以 如 果 中 间 失 败 了 , 此 寄 存 器 中 的 值 便 是 尚 未 完 成 的 扇 区 。 这 是 8 位 寄 存 器 , 最 大 值 为 2 5 5 , 若 指 定 为 0 , 则 表 示 要 操 作 2 5 6 个 扇 区 。 刚 刚 在 [ 寻 址 方 式 C H S 和 L B A ] ( # 寻 址 方 式 C H S 和 L B A ) 中 介 绍 完 了 L B A , 现 在 可 以 说 L B A 寄 存 器 了 , 这 里 有 L B A l o w 、 L B A m i d 、 L B A h i g h 三 个 , 它 们 三 个 都 是 8 位 宽 度 的 。 L B A l o w 寄 存 器 用 来 存 储 2 8 位 地 址 的 第 0 ~ 7 位 , L B A m i d 寄 存 器 用 来 存 储 第 8 ~ 1 5 位 , L B A h i g h 寄 存 器 存 储 第 1 6 ~ 2 3 位 。 哎 ? 三 个 8 位 的 加 起 来 才 2 4 位 , 连 L B A 2 8 都 不 够 , 咱 们 怎 么 用 呢 ? 有 问 题 就 有 解 决 方 案 , 这 就 引 出 了 下 一 个 寄 存 器 , d e v i c e 寄 存 器 。 d e v i c e 寄 存 器 是 个 杂 项 , 它 的 宽 度 是 8 位 。 在 此 寄 存 器 的 低 4 位 用 来 存 储 L B A 地 址 的 第 2 4 ~ 2 7 位 。 结 合 上 面 的 三 个 L B A 寄 存 器 。 第 4 位 用 来 指 定 通 道 上 的 主 盘 或 从 盘 , 0 代 表 主 盘 , 1 代 表 从 盘 。 第 6 位 用 来 设 置 是 否 启 用 L B A 方 式 , 1 代 表 启 用 L B A 模 式 , 0 代 表 启 用 C H S 模 式 。 另 外 的 两 位 : 第 5 位 和 第 7 位 是 固 定 为 1 的 , 称 为 M B S 位 , 大 家 不 用 关 注 啦 。 在 读 硬 盘 时 , 端 口 0 x 1 F 7 或 0 x 1 7 7 的 寄 存 器 名 称 是 S t a t u s , 它 是 8 位 宽 度 的 寄 存 器 , 用 来 给 出 硬 盘 的 状 态 信 息 。 第 0 位 是 E R R 位 , 如 果 此 位 为 1 , 表 示 命 令 出 错 了 , 具 体 原 因 可 见 e r r o r 寄 存 器 。 第 3 位 是 d a t a r e q u e s t 位 , 如 果 此 位 为 1 , 表 示 硬 盘 已 经 把 数 据 准 备 好 了 , 主 机 现 在 可 以 把 数 据 读 出 来 。 第 6 位 是 D R D Y , 表 示 硬 盘 就 绪 , 此 位 是 在 对 硬 盘 诊 断 时 用 的 , 表 示 硬 盘 检 测 正 常 , 可 以 继 续 执 行 一 些 命 令 。 第 7 位 是 B S Y 位 , 表 示 硬 盘 是 否 繁 忙 , 如 果 为 1 表 示 硬 盘 正 忙 着 , 此 寄 存 器 中 的 其 他 位 都 无 效 。 另 外 的 4 位 暂 不 关 注 。 在 写 硬 盘 时 , 端 口 0 x 1 F 7 或 0 x 1 7 7 的 寄 存 器 名 称 是 c o m m a n d , 和 上 面 说 过 的 e r r o r 和 f e a t u r e 寄 存 器 情 况 一 样 , 只 是 用 途 变 了 , 所 以 换 了 个 名 字 表 示 新 的 用 途 , 它 和 s t a t u s 寄 存 器 是 同 一 个 。 此 寄 存 器 用 来 存 储 让 硬 盘 执 行 的 命 令 , 只 要 把 命 令 写 进 此 寄 存 器 , 硬 盘 就 开 始 工 作 了 。 在 咱 们 的 系 统 中 , 主 要 使 用 了 三 个 命 令 : i d e n t i f y : 0 x E C , 即 硬 盘 识 别 。 r e a d s e c t o r : 0 x 2 0 , 即 读 扇 区 。 w r i t e s e c t o r : 0 x 3 0 , 即 写 扇 区 。 在 此 只 列 出 了 本 书 需 要 的 指 令 , 大 家 若 对 此 感 兴 趣 , 还 是 去 看 A T A 手 册 , 您 懂 的 , 里 面 内 容 丰 富 详 实 , 相 信 大 家 一 定 会 一 饱 眼 福 。 总 结 下 寄 存 器 e r r o r 、 f e a t u r e 和 s t a t u s 、 c o m m a n d , 大 家 可 以 这 样 来 助 记 : 这 两 组 都 是 同 一 寄 存 器 ( 也 就 是 同 一 端 口 ) 多 个 用 途 , 对 同 一 端 口 写 操 作 时 , 硬 盘 控 制 器 认 为 这 是 个 命 令 , 对 同 一 端 口 读 操 作 时 , 硬 盘 控 制 器 认 为 是 想 获 得 状 态 。 常 用 的 硬 盘 操 作 方 法 硬 盘 中 的 指 令 很 多 , 各 指 令 的 用 法 也 不 同 。 有 的 指 令 直 接 往 c o m m a n d 寄 存 器 中 写 就 行 了 , 有 的 还 要 在 f e a t u r e 寄 存 器 中 写 入 参 数 , 最 权 威 的 方 法 还 是 要 去 参 考 A T A 手 册 。 由 于 本 书 中 用 到 的 都 是 简 单 的 指 令 , 所 以 对 此 抽 象 出 一 些 公 共 的 步 骤 仅 供 参 考 之 用 。 不 管 是 读 硬 盘 , 还 是 写 硬 盘 , 都 不 是 一 个 指 令 就 完 事 的 。 相 关 寄 存 器 都 需 要 设 置 。 要 是 读 硬 盘 , 得 告 诉 读 哪 个 扇 区 , 读 几 个 扇 区 , 用 哪 种 模 式 对 扇 区 寻 址 , L B A ? C H S ? 写 硬 盘 也 一 样 , 写 哪 个 , 写 几 个 , 还 要 设 置 操 作 的 是 哪 个 通 道 的 哪 个 硬 盘 … … 讲 了 这 么 多 寄 存 器 , 心 想 , 我 到 底 先 设 置 哪 个 寄 存 器 呢 ? 有 没 有 个 一 般 硬 盘 操 作 的 基 本 顺 序 呢 ? 其 实 最 主 要 的 顺 序 就 是 c o m m a n d 寄 存 器 一 定 得 是 最 后 写 , 因 为 一 旦 c o m m a n d 寄 存 器 被 写 入 后 , 硬 盘 就 开 始 干 活 啦 , 它 才 不 管 其 他 寄 存 器 中 的 值 对 不 对 , 一 律 拿 来 就 用 , 有 问 题 的 话 报 错 就 好 啦 。 其 他 寄 存 器 顺 序 不 是 很 重 要 。 先 选 择 通 道 , 往 该 通 道 的 s e c t o r c o u n t 寄 存 器 中 写 入 待 操 作 的 扇 区 数 。 往 该 通 道 上 的 三 个 L B A 寄 存 器 写 入 扇 区 起 始 地 址 的 低 2 4 位 。 往 d e v i c e 寄 存 器 中 写 入 L B A 地 址 的 2 4 ~ 2 7 位 , 并 置 第 6 位 为 1 , 使 其 为 L B A 模 式 , 设 置 第 4 位 , 选 择 操 作 的 硬 盘 ( m a s t e r 硬 盘 或 s l a v e 硬 盘 ) 。 往 该 通 道 上 的 c o m m a n d 寄 存 器 写 入 操 作 命 令 。 读 取 该 通 道 上 的 s t a t u s 寄 存 器 , 判 断 硬 盘 工 作 是 否 完 成 。 如 果 以 上 步 骤 是 读 硬 盘 , 进 入 下 一 个 步 骤 。 否 则 , 完 工 。 将 硬 盘 数 据 读 出 。 硬 盘 工 作 完 成 后 , 它 已 经 准 备 好 了 数 据 , 咱 们 该 怎 么 获 取 呢 ? 一 般 常 用 的 数 据 传 送 方 式 如 下 。 无 条 件 传 送 方 式 。 查 询 传 送 方 式 。 中 断 传 送 方 式 直 接 存 储 器 存 取 方 式 ( D M A ) I / O 处 理 机 传 送 方 式 对 于 上 面 的 第 1 种 “ 无 条 件 传 送 方 式 ” , 应 用 此 方 式 的 数 据 源 设 备 一 定 是 随 时 准 备 好 了 数 据 , C P U 随 时 取 随 时 拿 都 没 问 题 , 如 寄 存 器 、 内 存 就 是 类 似 这 样 的 设 备 , C P U 取 数 据 时 不 用 提 前 打 招 呼 。 第 2 种 “ 查 询 传 送 方 式 ” , 也 称 为 程 序 I / O 、 P I O ( P r o g r a m m i n g I n p u t / O u t p u t M o d e l ) , 是 指 传 输 之 前 , 由 程 序 先 去 检 测 设 备 的 状 态 。 数 据 源 设 备 在 一 定 的 条 件 下 才 能 传 送 数 据 , 这 类 设 备 通 常 是 低 速 设 备 , 比 C P U 慢 很 多 。 C P U 需 要 数 据 时 , 先 检 查 该 设 备 的 状 态 , 如 果 状 态 为 “ 准 备 好 了 可 以 发 送 ” , C P U 再 去 获 取 数 据 。 硬 盘 有 s t a t u s 寄 存 器 , 里 面 保 存 了 工 作 状 态 , 所 以 对 硬 盘 可 以 用 此 方 式 来 获 取 数 据 。 第 3 种 “ 中 断 传 送 方 式 ” , 也 称 为 中 断 驱 动 I / O 。 上 面 提 到 的 “ 查 询 传 送 方 式 ” 有 这 样 的 缺 陷 , 由 于 C P U 需 要 不 断 查 询 设 备 状 态 , 所 以 意 味 着 只 有 最 后 一 刻 的 查 询 才 是 有 意 义 的 , 之 前 的 查 询 都 是 发 生 在 数 据 尚 未 准 备 好 的 时 间 段 里 , 所 以 说 效 率 不 高 , 仅 对 于 不 要 求 速 度 的 系 统 可 以 采 用 。 可 以 改 进 的 地 方 是 如 果 数 据 源 设 备 将 数 据 准 备 好 后 再 通 知 C P U 来 取 , 这 样 效 率 就 高 了 。 通 知 C P U 可 以 采 用 中 断 的 方 式 , 当 数 据 源 设 备 准 备 好 数 据 后 , 它 通 过 发 中 断 来 通 知 C P U 来 拿 数 据 , 这 样 避 免 了 C P U 花 在 查 询 上 的 时 间 , 效 率 较 高 。 第 4 种 “ 直 接 存 储 器 存 取 方 式 ( D M A ) ” 。 在 中 断 传 送 方 式 中 , 虽 然 极 大 地 提 高 了 C P U 的 利 用 率 , 但 通 过 中 断 方 式 来 通 知 C P U , C P U 就 要 通 过 压 栈 来 保 护 现 场 , 还 要 执 行 传 输 指 令 , 最 后 还 要 恢 复 现 场 。 似 乎 有 同 学 说 此 方 式 已 经 很 爽 了 , 你 还 想 怎 样 ? 哈 哈 , 其 实 更 爽 的 是 一 点 都 不 要 浪 费 C P U 资 源 , 不 让 C P U 参 与 传 输 , 完 全 由 数 据 源 设 备 和 内 存 直 接 传 输 。 C P U 直 接 到 内 存 中 拿 数 据 就 好 了 。 这 就 是 此 方 式 中 “ 直 接 ” 的 意 思 。 不 过 D M A 是 由 硬 件 实 现 的 , 不 是 软 件 概 念 , 所 以 需 要 D M A 控 制 器 才 行 。 第 5 种 “ I / O 处 理 机 传 送 方 式 ” 。 不 知 大 家 发 现 了 没 有 , 在 说 上 面 每 一 种 的 时 候 都 把 它 们 各 自 说 得 特 别 好 , 似 乎 完 美 不 可 替 代 了 , 但 该 公 司 一 出 新 产 品 , 就 开 始 自 曝 曾 经 无 与 伦 比 的 老 一 代 产 品 的 问 题 以 突 显 现 在 产 品 更 胜 一 筹 。 D M A 已 经 借 助 其 他 硬 件 了 , C P U 已 经 很 轻 松 了 , 难 道 还 有 更 爽 的 方 式 ? 是 啊 , D M A 方 式 中 C P U 还 嫌 爽 的 不 够 , 毕 竟 数 据 输 入 之 后 或 输 出 之 前 还 是 有 一 部 分 工 作 要 由 C P U 来 完 成 的 , 如 数 据 交 换 、 组 合 、 校 验 等 。 如 果 D M A 控 制 器 再 强 大 一 点 , 把 这 些 工 作 帮 C P U 做 了 就 好 了 。 也 是 哦 , 既 然 为 了 解 放 C P U , 都 已 经 引 用 一 个 硬 件 ( D M A ) 了 , 干 脆 一 不 做 二 不 休 , 再 引 入 一 个 硬 件 吧 。 于 是 , I / O 处 理 机 诞 生 啦 , 听 名 字 就 知 道 它 专 门 用 于 处 理 I O , 并 且 它 其 实 是 一 种 处 理 器 , 只 不 过 用 的 是 另 一 套 擅 长 I O 的 指 令 系 统 , 随 时 可 以 处 理 数 据 。 有 了 I / O 处 理 机 的 帮 忙 , C P U 甚 至 可 以 不 知 道 有 传 输 这 回 事 , 这 下 C P U 才 真 正 爽 到 家 啦 。 同 样 , 这 也 是 需 要 单 独 的 硬 件 来 支 持 。 综 上 所 述 , 硬 盘 不 符 合 第 1 种 方 法 , 因 为 它 需 要 在 某 种 条 件 下 才 能 传 输 。 第 4 种 和 第 5 种 需 要 单 独 的 硬 件 支 持 , 先 不 说 我 们 的 b o c h s 能 否 模 拟 这 两 种 硬 件 , 单 独 学 习 这 两 类 硬 件 的 操 作 方 法 就 很 头 疼 , 大 家 有 兴 趣 的 话 还 是 先 放 一 放 , 以 后 再 琢 磨 吧 。 所 以 在 我 们 的 系 统 中 , 我 们 用 了 第 2 、 3 这 两 种 ( 查 询 传 送 、 中 断 传 送 ) 软 件 传 输 方 式 。 让 M B R 使 用 硬 盘 我 们 的 M B R 从 B I O S 手 中 接 过 了 接 力 棒 , 但 是 M B R 只 有 5 1 2 字 节 , 这 么 小 的 空 间 着 实 干 不 了 大 事 情 。 从 M B R 接 棒 的 那 时 候 我 们 就 知 道 还 会 继 续 交 接 的 , 但 是 下 一 棒 要 交 给 谁 ? 接 下 来 在 之 前 的 M B R 基 础 上 , 做 一 些 改 进 , 让 它 能 够 读 写 硬 盘 ! 我 们 的 M B R 受 限 于 5 1 2 字 节 大 小 , 在 那 么 小 的 空 间 中 , 没 法 为 内 核 做 好 准 备 环 境 , 更 没 法 将 内 核 成 功 加 载 到 内 存 并 运 行 。 所 以 要 在 另 一 个 程 序 中 万 层 初 始 化 环 境 及 加 载 内 核 的 任 务 , 这 个 程 序 叫 l o a d e r , 即 加 载 器 。 问 题 来 了 , l o a d e r 在 哪 里 ? 如 果 跳 过 去 执 行 ? 这 就 是 新 改 版 M B R 的 使 命 , 简 而 言 之 就 是 负 责 把 l o a d e r 加 载 到 内 存 , 并 将 接 力 棒 交 给 它 。 由 于 M B R 占 据 了 硬 盘 的 第 0 扇 区 ( 以 L B A 逻 辑 寻 址 方 式 , 扇 区 从 0 开 始 编 号 , 若 以 物 理 C H S 方 式 , 扇 区 则 从 1 开 始 编 号 ) , 第 一 扇 区 是 空 闲 的 可 以 用 , 但 和 M B R 离 的 太 近 了 不 是 很 放 心 , 所 以 把 l o a d e r 放 在 第 2 扇 区 。 M B R 从 第 2 扇 区 中 给 它 读 出 来 。 读 出 来 放 到 哪 里 呢 ? 原 则 上 是 找 个 空 闲 地 方 就 行 了 , 在 表 [ [ 实 模 式 下 的 内 存 布 局 . p n g ] ] 中 查 看 下 , 只 要 在 “ 用 途 ” 列 中 注 明 “ 可 用 区 域 ” 的 地 方 都 可 以 用 。 0 x 5 0 0 ~ 0 x 7 B F F 和 0 x 7 E 0 0 ~ 9 F B F F 这 两 段 内 存 区 域 都 可 以 。 首 先 , l o a d e r 中 要 定 义 一 些 数 据 结 构 ( 如 [ [ G D T 全 局 描 述 符 表 ] ] , 不 懂 没 关 系 , 后 面 会 说 ) , 这 些 数 据 结 构 将 来 的 内 核 还 是 要 继 续 使 用 的 , 所 以 l o a d e r 加 载 到 内 存 后 不 能 被 覆 盖 。 其 次 , 随 着 咱 们 不 断 添 加 功 能 , 内 核 必 然 越 来 越 大 , 其 所 在 的 内 存 地 址 也 会 向 越 来 越 高 的 地 方 发 展 , 难 免 会 超 过 可 用 区 域 的 上 限 , 先 尽 量 把 l o a d e r 放 在 内 存 低 处 , 多 留 出 一 些 空 间 给 内 核 。 所 以 , 将 l o a d e r 的 加 载 地 址 选 为 0 x 9 0 0 。 为 什 么 不 是 0 x 5 0 0 , 这 个 多 省 空 间 ? 还 是 预 留 出 一 定 空 间 把 , 彼 此 隔 开 远 一 点 心 里 才 踏 实 , 不 差 这 点 空 间 了 ~ 这 完 全 是 个 人 偏 好 , 大 家 随 意 ! 按 照 上 面 所 说 的 规 划 , 接 下 来 的 代 码 就 是 改 头 换 面 的 新 款 M B R , 代 码 量 增 长 到 1 2 6 行 。 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 9 0 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 1 0 0 1 0 1 1 0 2 1 0 3 1 0 4 1 0 5 1 0 6 1 0 7 1 0 8 1 0 9 1 1 0 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 2 0 1 2 1 1 2 2 1 2 3 1 2 4 1 2 5 1 2 6 1 2 7 1 2 8 1 2 9 1 3 0 ; 主 引 导 程 序 ; % i n c l u d e b o o t . i n c S E C T I O N M B R v s t a r t = 0 x 7 c 0 0 m o v a x , c s m o v d s , a x m o v e s , a x m o v s s , a x m o v f s , a x m o v s p , 0 x 7 c 0 0 m o v a x , 0 x b 8 0 0 m o v g s , a x ; 清 屏 , 利 用 0 x 0 6 号 功 能 , 上 卷 全 部 行 , 即 可 清 屏 ; ; I N T 0 x 1 0 功 能 号 : 0 x 0 6 功 能 描 述 : 上 卷 窗 口 ; ; 输 入 : ; A H 功 能 号 = 0 x 0 6 ; A L = 上 卷 的 行 数 ( 如 果 为 0 , 表 示 全 部 ) ; B H = 上 卷 行 属 性 ; ( C L , C H ) = 窗 口 左 上 角 的 ( X , Y ) 位 置 ; ( D L , D H ) = 窗 口 右 下 角 的 ( X , Y ) 位 置 ; 无 返 回 值 m o v a x , 0 6 0 0 h m o v b x , 0 7 0 0 h m o v c x , 0 ; 左 上 角 ( 0 , 0 ) m o v d x , 1 8 4 f h ; 右 下 角 ( 8 0 , 2 5 ) ; 因 为 V G A 文 本 模 式 中 , 一 行 只 能 容 纳 8 0 个 字 符 , 共 2 5 行 。 ; 下 标 从 0 开 始 , 所 以 0 x 1 8 = 2 4 , 0 x 4 f = 7 9 i n t 1 0 h ; 触 发 中 断 ; 输 出 字 符 串 : M B R m o v b y t e [ g s : 0 x 0 0 ] , 1 m o v b y t e [ g s : 0 x 0 1 ] , 0 x A 4 ; A 表 示 绿 色 背 景 闪 烁 , 4 表 示 前 景 色 为 红 色 m o v b y t e [ g s : 0 x 0 0 ] , m o v b y t e [ g s : 0 x 0 1 ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 0 ] , M m o v b y t e [ g s : 0 x 0 1 ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 0 ] , B m o v b y t e [ g s : 0 x 0 1 ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 0 ] , R m o v b y t e [ g s : 0 x 0 1 ] , 0 x A 4 ; m o v e a x , L O A D E R _ S T A R T _ S E C T O R ; 起 始 扇 区 l b a 地 址 m o v b x , L O A D E R _ B A S E _ A D D R ; 写 入 的 地 址 m o v c x , 1 ; 读 入 的 扇 区 数 c a l l r d _ d i s k _ m _ 1 6 ; 以 下 读 取 程 序 的 起 始 部 分 ( 一 个 扇 区 ) j m p L O A D E R _ B A S E _ A D D R ; ; 功 能 : 读 取 硬 盘 n 个 扇 区 r d _ d i s k _ m _ 1 6 : ; ; e a x = L B A 扇 区 号 ; b x = 将 数 据 写 入 的 内 存 地 址 ; c x = 读 入 的 扇 区 数 m o v e s i , e a x ; 备 份 e a x m o v d i , c x ; 备 份 c x ; 读 写 硬 盘 : ; 第 1 步 : 设 置 要 读 取 的 扇 区 数 m o v d x , 0 x 1 f 2 ; 0 x 1 f 2 P r i m a r 通 道 扇 区 数 端 口 m o v a l , c l o u t d x , a l m o v e a x , e s i ; 恢 复 a x ; 第 2 步 : 将 L B A 地 址 存 入 0 x 1 f 3 0 x 1 f 6 ; L B A 地 址 7 ~ 0 位 写 入 端 口 0 x 1 f 3 m o v d x , 0 x 1 f 3 o u t d x , a l ; L B A 地 址 1 5 ~ 8 位 写 入 端 口 0 x 1 f 4 m o v c l , 8 s h r e a x , c l ; 右 移 c l 寄 存 器 中 的 位 数 m o v d x , 0 x 1 f 4 o u t d x , a l ; L B A 地 址 2 3 ~ 1 6 位 写 入 端 口 0 x 1 f 5 s h r e a x , c l ; 不 需 要 重 新 为 c l 赋 值 m o v d x , 0 x 1 f 5 o u t d x , a l s h r e a x , c l a n d a l , 0 x 0 f ; l b a 第 2 4 ~ 2 7 位 o r a l , 0 x e 0 ; 设 置 M B S 位 和 L B A 模 式 以 及 使 用 0 主 盘 m o v d x , 0 x 1 f 6 ; 设 置 d e v i c e 端 口 号 o u t d x , a l ; ; 第 3 步 : 向 0 x 1 f 7 端 口 写 入 读 指 令 , 0 x 2 0 m o v d x , 0 x 1 f 7 m o v a l , 0 x 2 0 ; 读 扇 区 o u t d x , a l ; 写 入 指 令 到 c o m m a n d 端 口 的 时 刻 , 硬 盘 根 据 上 面 的 参 数 开 始 读 扇 区 ; 第 4 步 : 检 查 硬 盘 状 态 . n o t _ r e a d y : ; 同 一 端 口 , 写 时 表 示 写 入 命 令 字 , 读 时 表 示 读 入 硬 盘 状 态 n o p ; n o p 指 令 表 示 空 操 作 , 仅 为 了 增 加 一 些 延 迟 , 相 当 于 小 s l e e p i n a l , d x a n d a l , 0 x 8 8 ; 只 关 注 第 4 位 和 第 8 位 ; 第 4 位 为 1 表 示 硬 盘 控 制 器 已 准 备 好 数 据 传 输 ; 第 7 位 为 1 表 示 硬 盘 忙 c m p a l , 0 x 0 8 j n z . n o t _ r e a d y ; 第 5 步 : 从 0 x 1 f 0 中 读 取 数 据 m o v a x , d i m o v d x , 2 5 6 ; 因 为 d a t a 寄 存 器 是 1 6 位 的 m u l d x ; 所 以 共 需 d i * 5 1 2 / 2 次 , 所 以 d i * 2 5 6 m o v c x , a x ; d i 为 要 读 取 的 扇 区 数 , 一 个 扇 区 有 5 1 2 字 节 , 每 次 读 入 一 个 字 节 m o v d x , 0 x 1 f 0 . g o _ o n _ r e a d : i n a x , d x m o v [ b x ] , a x a d d b x , 2 l o o p . g o _ o n _ r e a d r e t t i m e s 5 1 0 ( $ $ $ ) d b 0 d b 0 x 5 5 , 0 x a a 程 序 最 开 始 的 % i n c l u d e b o o t . i n c , 这 个 % i n c l u d e 是 n a s m 编 译 器 中 的 预 处 理 指 令 , 意 思 是 让 编 译 器 在 编 译 之 前 把 b o o t . i n c 文 件 包 含 进 来 。 任 何 编 译 器 都 应 该 有 i n c l u d e 之 类 的 能 够 包 含 其 他 文 件 的 预 处 理 指 令 , 不 要 认 为 底 层 的 汇 编 语 言 就 应 该 简 陋 到 一 穷 二 白 , 这 和 语 言 是 没 关 系 的 , 是 编 译 器 为 了 开 发 人 员 方 便 管 理 代 码 , 应 该 加 的 。 b o o t . i n c 的 内 容 很 简 单 , 目 前 就 两 句 话 , 文 件 内 容 如 下 。 1 2 3 ; l o a d e r 和 k e r n e l L O A D E R _ B A S E _ A D D R e q u 0 x 9 0 0 L O A D E R _ S T A R T _ S E C T O R e q u 0 x 2 b o o t . i n c 是 我 们 的 配 置 文 件 , 我 们 目 前 关 于 加 载 器 的 配 置 信 息 就 写 在 里 面 , 今 后 还 会 在 此 添 加 更 多 的 配 置 信 息 。 大 家 看 到 的 这 两 句 也 是 预 处 理 命 令 , 是 n a s m 提 供 的 宏 , 和 C 语 言 中 的 宏 是 一 回 事 。 只 不 过 n a s m 中 的 语 法 是 : 宏 名 e q u 值 , 而 C 语 言 中 的 宏 是 由 # d e f i n e 指 令 来 实 现 的 。 所 以 L O A D E R _ B A S E _ A D D R 和 L O A D E R _ S T A R T _ S E C T O R 是 两 个 宏 名 。 函 数 名 r d _ d i s k _ m _ 1 6 的 意 思 是 “ 在 1 6 位 模 式 下 读 硬 盘 ” , 此 函 数 是 咱 们 本 节 的 重 点 。 第 6 4 行 的 “ m o v e s i , e a x ” 是 把 e a x 中 的 值 先 备 份 到 e s i 中 。 因 为 a l 在 o u t 指 令 中 会 被 用 到 , 这 会 影 响 到 e a x 的 低 8 位 。 第 6 5 行 是 备 份 读 取 的 扇 区 数 到 d i 寄 存 器 , d i 寄 存 器 是 1 6 位 的 , 和 c x 大 小 一 致 。 c x 的 值 会 在 读 取 数 据 时 用 到 , 所 以 在 此 提 前 备 份 。 第 6 7 ~ 7 0 行 , 按 照 咱 们 操 作 硬 盘 的 约 定 , 先 选 定 一 个 通 道 , 再 往 s e c t o r c o u n t 寄 存 器 中 写 扇 区 数 。 往 端 口 中 写 入 数 据 用 o u t 指 令 , 注 意 o u t 指 令 中 d x 寄 存 器 是 用 来 存 储 端 口 号 的 。 先 查 看 咱 们 b o c h s 配 置 文 件 关 于 硬 盘 的 配 置 部 分 如 下 : 1 2 3 # 硬 盘 设 置 a t a 0 : e n a b l e d = 1 , i o a d d r 1 = 0 x 1 f 0 , i o a d d r 2 = 0 x 3 f 0 , i r q = 1 4 a t a 0 m a s t e r : t y p e = d i s k , p a t h = h d 6 0 M . i m g , m o d e = f l a t 咱 们 的 虚 拟 硬 盘 属 于 a t a 0 , 是 P r i m a r y 通 道 , 所 以 其 s e c t o r c o u n t 寄 存 器 是 由 0 x 1 f 2 端 口 来 访 问 的 。 顺 便 再 看 第 二 行 的 a t a 0 m a s t e r , p a t h = ” h d 6 0 M . i m g ” , 这 说 明 h d 6 0 M . i m g 是 主 盘 。 第 7 4 ~ 9 5 行 是 将 L B A 地 址 写 入 三 个 L B A 寄 存 器 和 d e v i c e 寄 存 器 的 低 4 位 。 端 口 0 x 1 f 3 是 寄 存 器 L B A l o w , 端 口 0 x 1 f 4 是 寄 存 器 L B A m i d , 端 口 0 x 1 f 5 是 寄 存 器 L B A h i g h 。 s h r 指 令 是 逻 辑 右 移 指 令 , 这 里 主 要 通 过 此 指 令 置 换 出 地 址 的 相 应 部 分 , 写 入 相 应 的 L B A 寄 存 器 。 第 9 3 行 的 “ o r a l , 0 x e 0 ” , 用 了 o r “ 或 ” 指 令 和 0 x e 0 做 或 运 算 , 拼 出 d e v i c e 寄 存 器 的 值 。 高 4 位 为 e , 即 高 4 位 的 二 进 制 表 示 为 1 1 1 0 , 其 第 5 位 和 第 7 位 固 定 为 1 , 第 6 位 为 1 表 示 启 用 L B A 。 大 家 可 以 参 考 注 释 。 第 9 7 ~ 1 0 0 行 便 是 写 入 命 令 啦 , 因 为 我 们 这 里 是 读 操 作 , 所 以 读 扇 区 的 命 令 是 0 x 2 0 。 通 过 o u t 指 令 写 入 c o m m a n d 端 口 0 x 1 f 7 后 , 硬 盘 就 开 始 工 作 了 。 第 1 0 2 ~ 1 0 9 行 检 测 s t a t u s 寄 存 器 的 B S Y 位 。 由 于 s t a t u s 寄 存 器 依 然 是 0 x 1 f 7 端 口 , 所 以 不 需 要 再 为 d x 重 新 赋 值 。 1 0 5 行 的 n o p 表 示 空 操 作 , 即 什 么 也 不 做 , 只 是 为 了 增 加 延 迟 , 相 当 于 s l e e p 了 一 小 下 , 目 的 是 减 少 打 扰 硬 盘 的 工 作 。 对 同 一 端 口 在 读 写 两 种 操 作 时 有 不 同 的 用 途 , 在 读 硬 盘 时 , 此 端 口 中 的 值 是 硬 盘 的 工 作 状 态 。 第 1 0 6 行 是 将 S t a t u s 寄 存 器 的 值 读 入 到 a l 寄 存 器 , 通 过 第 1 0 7 行 的 a n d “ 与 ” 操 作 , 保 留 第 4 位 和 第 7 位 , 第 4 位 若 为 1 , 表 示 数 据 已 经 准 备 好 , 可 以 传 输 了 。 若 第 7 位 为 1 , 表 示 硬 盘 现 在 正 忙 着 。 只 要 判 断 第 4 位 是 否 为 1 就 好 了 , 用 第 1 0 8 行 的 c m p 指 令 和 0 x 0 8 做 减 法 运 算 , 判 断 第 4 位 是 否 为 1 。 c m p 指 令 并 不 改 变 操 作 数 的 值 , 只 是 根 据 结 果 去 设 置 标 志 位 , 从 而 咱 们 根 据 标 志 位 反 着 去 判 断 结 果 。 c m p 指 令 会 影 响 的 标 志 位 有 Z F 、 C F 、 P F 等 , 这 里 咱 们 借 助 Z F 位 来 判 断 c m p 的 结 果 。 于 是 用 第 1 0 9 行 的 j n z . n o t _ r e a d y 来 判 断 结 果 是 否 不 等 于 0 , 即 若 等 于 0 , 则 s t a t u s 寄 存 器 的 第 4 位 为 1 , 这 表 示 可 以 读 数 据 了 。 若 不 等 于 0 , 说 明 s t a t u s 寄 存 器 的 第 4 位 为 0 , 表 示 硬 盘 正 忙 ( 此 时 s t a t u s 寄 存 器 第 7 位 肯 定 为 1 ) 。 . n o t _ r e a d y 是 个 标 号 , 于 是 跳 回 去 继 续 判 断 硬 盘 状 态 , 直 到 硬 盘 把 数 据 准 备 好 才 跳 出 这 个 循 环 。 第 1 1 1 ~ 1 2 2 行 是 从 硬 盘 取 数 据 的 过 程 。 由 于 d a t a 寄 存 器 是 1 6 位 , 即 每 次 i n 操 作 只 读 入 2 字 节 , 根 据 读 入 的 数 据 总 量 ( 扇 区 数 * 5 1 2 字 节 ) 来 求 得 执 行 i n 指 令 的 次 数 。 这 里 的 乘 法 用 m u l 指 令 , 在 实 模 式 下 , m u l 指 令 可 以 做 8 位 乘 法 和 1 6 位 乘 法 , 格 式 是 : m u l 操 作 数 。 操 作 数 可 以 是 寄 存 器 或 内 存 。 乘 法 运 算 至 少 要 有 两 个 数 参 与 才 行 , 这 里 的 操 作 数 只 是 一 个 乘 数 , 被 乘 数 隐 含 在 a l 或 a x 寄 存 器 中 ( m u l 指 令 被 设 计 成 这 样 的 , 由 于 历 史 原 因 产 生 很 多 奇 怪 的 用 法 , 习 惯 就 好 啦 ) 。 如 果 操 作 数 是 8 位 , 被 乘 数 就 是 a l 寄 存 器 的 值 , 乘 积 就 是 1 6 位 , 位 于 a x 寄 存 器 。 如 果 操 作 数 是 1 6 位 , 被 乘 数 就 是 a x 寄 存 器 的 值 , 乘 积 就 是 3 2 位 , 积 的 高 1 6 位 在 d x 寄 存 器 , 积 的 低 1 6 位 在 a x 寄 存 器 。 虽 然 我 们 进 行 的 是 1 6 位 的 乘 法 , 其 结 果 是 3 2 位 , 但 由 于 我 知 道 这 两 个 乘 数 a x 的 值 和 d x 的 值 都 不 大 , a x 的 实 际 的 值 其 实 是 1 , 乘 出 来 的 这 个 结 果 , 其 高 位 是 0 , 所 以 在 第 1 1 5 行 的 “ m o v c x , a x ” 我 们 只 将 这 个 结 果 的 低 1 6 位 移 入 c x 作 为 循 环 读 取 的 次 数 。 此 处 用 8 位 乘 法 不 合 适 , 因 为 2 5 6 超 过 了 8 位 寄 存 器 表 示 的 范 围 。 在 第 1 1 8 ~ 1 2 2 行 通 过 循 环 来 将 数 据 写 入 b x 寄 存 器 指 向 的 内 存 , 每 读 入 2 个 字 节 , b x 所 指 的 地 址 便 + 2 。 值 得 注 意 的 是 由 于 在 实 模 式 下 偏 移 地 址 为 1 6 位 , 所 以 用 b x 只 会 访 问 到 0 ~ F F F F h 的 偏 移 。 待 写 入 的 地 址 超 过 b x 的 范 围 时 , 从 硬 盘 上 读 出 的 数 据 会 把 0 x 0 0 0 0 ~ 0 x f f f f 的 覆 盖 , 所 以 此 处 加 载 的 程 序 不 能 超 过 6 4 K B , 即 2 的 1 6 次 方 等 于 6 5 5 3 6 。 由 于 本 m b r 是 用 来 加 载 l o a d e r 的 , 所 以 l o a d e r . b i n 要 小 于 6 4 K B 才 行 。 这 一 点 大 可 以 放 心 , 我 们 最 终 的 l o a d e r 不 超 过 2 K B , 将 来 的 内 核 也 不 会 超 过 7 0 K B 。 也 许 有 同 学 会 说 , 把 b x 改 为 e b x 行 吗 ? 也 不 行 , 在 实 模 式 下 , C P U 依 然 会 用 1 6 位 偏 移 地 址 。 这 是 实 模 式 下 访 问 内 存 的 规 定 与 缺 陷 , 还 记 得 那 个 “ 段 基 址 + 段 内 偏 移 地 址 ” 吗 ? 段 内 偏 移 地 址 正 因 为 是 1 6 位 , 只 能 访 问 6 4 K B 的 段 空 间 , 所 以 才 将 段 基 址 乘 以 1 6 来 突 破 这 6 4 K B , 从 而 实 现 访 问 低 调 1 M B 空 间 的 。 第 1 2 3 行 返 回 指 令 r e t , 它 用 来 从 函 数 中 返 回 。 如 果 我 们 没 有 定 义 函 数 , 就 不 需 要 它 了 。 函 数 和 一 般 代 码 相 比 , 就 是 在 被 调 用 时 , C P U 会 将 返 回 地 址 压 到 栈 中 , 所 以 在 函 数 体 中 , 要 用 r e t 指 令 将 栈 中 的 返 回 地 址 重 新 加 载 到 程 序 计 数 器 中 , 如 c s : i p , 这 样 程 序 便 恢 复 到 之 前 的 执 行 顺 序 了 。 执 行 完 第 1 2 3 行 后 , 程 序 便 回 到 了 第 5 5 行 , 这 是 个 跳 转 的 指 令 。 个 人 觉 得 , j m p 指 令 和 c a l l 指 令 是 必 不 可 少 的 , j m p 表 示 一 去 不 回 头 , c a l l 表 示 去 了 还 回 来 。 各 有 各 的 用 途 。 这 里 是 M B R 交 出 接 力 棒 的 一 刻 , 采 用 j m p 是 唯 一 合 适 的 选 择 。 J m p 的 操 作 数 是 L O A D E R _ B A S E _ A D D R , 即 0 x 9 0 0 , 这 是 要 跳 到 内 核 加 载 器 的 节 奏 。 M B R 到 此 结 束 了 使 命 , 顺 序 完 成 了 第 二 棒 的 拼 接 。 接 下 来 的 工 作 是 编 译 , 本 次 的 编 译 较 之 前 相 比 , 多 加 了 一 个 参 数 I 。 此 参 数 的 意 思 还 是 参 见 n a s m 帮 助 , n a s m – h 回 车 , 找 到 I 的 说 明 。 I a d d s a p a t h n a m e t o t h e i n c l u d e f i l e p a t h 大 概 意 思 是 添 加 一 个 包 含 文 件 的 路 径 , 其 实 就 是 添 加 个 库 目 录 。 为 了 目 录 整 洁 一 些 , 我 在 b o o t 目 录 下 建 立 了 一 个 子 目 录 i n c l u d e , 并 把 b o o t . i n c 放 到 了 i n c l u d e 目 录 下 。 n a s m 要 用 I 指 定 库 目 录 , 所 以 在 b o o t 目 录 下 输 入 : n a s m I i n c l u d e / o m b r . b i n m b r . S 回 车 。 接 下 来 用 d d 命 令 将 m b r . b i n 写 入 虚 拟 硬 盘 d d i f = . / m b r . b i n o f = . / h d 6 0 M . i m g b s = 5 1 2 c o u n t = 1 c o n v = n o t r u n c 实 现 内 核 加 载 器 这 一 节 的 内 容 并 不 长 , 因 为 在 进 入 [ [ 保 护 模 式 | 保 护 模 式 ] ] 之 前 , 我 们 能 做 的 不 多 , l o a d e r 是 要 经 过 实 模 式 到 保 护 模 式 的 过 渡 , 并 最 终 在 保 护 模 式 下 加 载 内 核 。 本 节 只 实 现 一 个 简 单 的 l o a d e r , 本 l o a d e r 只 在 实 模 式 下 工 作 , 等 学 习 了 保 护 模 式 后 , 我 们 再 来 个 真 格 的 。 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 % i n c l u d e b o o t . i n c s e c t i o n l o a d e r v s t a r t = L O A D E R _ B A S E _ A D D R ; l o a d e r 程 序 开 始 ; 输 出 背 景 色 绿 色 , 前 景 色 红 色 , 并 且 跳 动 的 字 符 串 1 M B R m o v b y t e [ g s : 0 x 0 0 ] , 2 m o v b y t e [ g s : 0 x 0 1 ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 2 ] , m o v b y t e [ g s : 0 x 0 3 ] , 0 x A 4 ; A 表 示 绿 色 背 景 闪 烁 , 4 表 示 前 景 色 为 红 色 m o v b y t e [ g s : 0 x 0 4 ] , L m o v b y t e [ g s : 0 x 0 5 ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 6 ] , O m o v b y t e [ g s : 0 x 0 7 ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 8 ] , A m o v b y t e [ g s : 0 x 0 9 ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 a ] , D m o v b y t e [ g s : 0 x 0 b ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 c ] , E m o v b y t e [ g s : 0 x 0 d ] , 0 x A 4 m o v b y t e [ g s : 0 x 0 e ] , R m o v b y t e [ g s : 0 x 0 f ] , 0 x A 4 j m p $ ; 死 循 环 使 程 序 停 留 在 这 里 本 l o a d e r 程 序 第 2 行 代 码 用 到 了 L O A D E R _ B A S E _ A D D R , 所 以 在 第 1 行 中 把 b o o t . i n c 包 含 进 来 了 , 其 值 是 0 x 9 0 0 。 编 译 后 , 将 l o a d e r . b i n 写 入 硬 盘 第 二 个 分 区 , 第 0 个 扇 区 是 M B R , 第 1 个 扇 区 是 空 的 未 使 用 , 原 因 如 前 所 述 , 纯 粹 个 人 喜 好 。 d d i f = . / l o a d e r . b i n o f = . / h d 6 0 M . i m g b s = 5 1 2 c o u n t = 1 s e e k = 2 c o n v = n o t r u n c 接 下 来 用 b o c h s 开 始 验 证 , 如 果 程 序 正 确 的 话 , M B R 会 跳 转 到 l o a d e r . b i n 去 运 行 , 屏 幕 上 会 显 示 ” 2 L O A D E R ” 并 且 闪 烁 ! 效 果 如 下 图 所 示 。 欢 迎 来 到 S i r i u s 丶 天 狼 的 游 乐 园 ! > 腾 讯 云 / 轻 量 云 安 装 A r c h L i n u x 的 个 人 记 录 发 表 于 2 0 2 1 0 9 0 6 更 新 于 2 0 2 2 0 5 0 3 分 类 于 L i n u x 技 术 , 运 维 技 术 本 文 字 数 : 3 k 阅 读 时 长 ≈ 3 分 钟 腾 讯 云 / 轻 量 云 安 装 A r c h L i n u x 的 个 人 记 录 本 文 仅 用 于 个 人 学 习 使 用 , 过 阵 子 再 以 教 程 的 形 式 重 新 发 布 出 来 。 如 果 你 现 在 完 全 按 这 篇 文 章 操 作 不 一 定 会 成 功 。 请 同 时 搭 配 记 录 我 的 联 想 M 7 2 0 Q A r c h S w a y 窗 口 管 理 器 的 安 装 和 配 置 过 程 食 用 。 准 备 工 作 下 载 镜 像 w g e t h t t p s : / / m i r r o r s . t u n a . t s i n g h u a . e d u . c n / a r c h l i n u x / i s o / 2 0 2 1 . 0 8 . 0 1 / a r c h l i n u x 2 0 2 1 . 0 8 . 0 1 x 8 6 _ 6 4 . i s o 编 辑 / b o o t / g r u b / g r u b . c f g 文 件 , 添 加 下 列 内 容 1 2 3 4 5 6 7 8 9 1 0 s e t t i m e o u t = 6 0 m e n u e n t r y A r c h I S O c l a s s i s o R e b o o t 选 择 A r c h I S O 引 导 项 安 装 替 换 文 件 m k d i r m n t m o u n t o r w / d e v / v d a 1 m n t m o u n t o r w , r e m o u n t m n t r m r f m n t / * p a c s t r a p . / m n t b a s e l i n u x l i n u x f i r m w a r e n e t w o r k m a n a g e r s u d o o p e n s s h g e n f s t a b U m n t > > m n t / e t c / f s t a b v i m m n t / e t c / f s t a b 将 r o 修 改 为 r w 可 读 写 切 换 到 A r c h a r c h c h r o o t m n t 安 装 一 些 可 能 接 下 来 会 用 到 的 包 p a c m a n S v i m b a s h c o m p l e t i o n 剩 下 还 有 一 些 步 骤 参 考 记 录 我 的 联 想 M 7 2 0 Q A r c h S w a y 窗 口 管 理 器 的 安 装 和 配 置 过 程 开 机 自 启 动 一 些 服 务 s y s t e m c t l e n a b l e N e t w o r k M a n a g e r s s h d 如 果 没 有 启 动 N e t w o r k M a n a g e r 和 s s h d 这 两 个 服 务 的 话 , 下 次 启 动 时 没 有 网 络 并 且 无 法 s s h 远 程 访 问 。 添 加 用 户 并 设 置 密 码 将 u s e r n a m e 替 换 为 你 要 创 建 的 用 户 名 。 u s e r a d d m u s e r n a m e p a s s w d u s e r n a m e 配 置 s u d o u s e r m o d a G w h e e l u s e r n a m e 编 辑 / e t c / s u d o e r s 文 件 允 许 w h e e l 组 中 用 户 使 用 s u d o 提 权 到 r o o t 级 别 权 限 。 一 定 要 将 公 钥 添 加 到 用 户 家 目 录 的 . s s h / a u t h o r i z e d _ k e y s 文 件 内 , 否 则 重 启 后 只 能 通 过 V N C 访 问 这 台 机 器 进 行 后 续 配 置 。 安 装 g r u b 引 导 p a c m a n S g r u b e f i b o o t m g r g r u b i n s t a l l – t a r g e t = i 3 8 6 p c / d e v / v d a 生 成 g r u b 2 配 置 文 件 g r u b m k c o n f i g o / b o o t / g r u b / g r u b . c f g r e b o o t 重 启 后 将 使 用 本 机 s s h 远 程 这 台 A r c h 轻 量 云 实 例 , 所 以 需 要 你 在 重 启 前 配 置 好 s s h d 服 务 并 且 将 本 机 公 钥 传 入 到 刚 刚 创 建 的 用 户 的 家 目 录 。 记 录 一 次 引 导 失 败 插 曲 : 忘 记 生 成 g r u b 2 配 置 文 件 , 好 在 腾 讯 轻 量 云 提 供 了 远 程 V N C 。 按 照 下 面 的 命 令 , 手 动 引 导 系 统 。 1 2 3 4 g r u b > s e t r o o t = ( h d 0 , m s d o s 1 ) g r u b > l i n u x / b o o t / v m l i u n z l i n u x r o o t = / d e v / v d a 1 g r u b > i n i t r d / b o o t / i n i t r a m f s l i n u x . i m g g r u b > b o o t 进 入 系 统 后 再 生 成 g r u b 2 配 置 文 件 g r u b m k c o n f i g o / b o o t / g r u b / g r u b . c f g 后 续 配 置 安 装 一 些 常 用 的 包 p a c m a n S v i m b a s h c o m p l e t i o n 设 置 时 区 时 间 t i m e d a t e c t l s e t t i m e z o n e A s i a / S h a n g h a i h w c l o c k s y s t o h c 设 置 使 用 的 区 域 编 辑 / e t c / l o c a l e . g e n 然 后 移 除 需 要 的 地 区 前 的 注 释 符 号 # 接 着 执 行 l o c a l e g e n 以 生 成 l o c a l e 信 息 编 辑 / e t c / l o c a t e . c o n f 配 置 文 件 , 没 有 则 新 建 : 文 本 内 输 入 : L A N G = e n _ U S . U T F 8 设 置 全 局 区 域 环 境 为 美 国 英 语 环 境 。 设 置 主 机 名 h o s t n a m e c t l s e t h o s t n a m e 主 机 名 开 启 B B R K e r n e l 4 . 9 及 以 后 已 经 合 并 了 B B R 的 代 码 , B B R 有 可 能 默 认 安 装 。 使 用 m o d i n f o t c p _ b b r 查 看 B B R 内 核 模 块 。 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 f i l e n a m e : / l i b / m o d u l e s / 5 . 1 3 . 7 a r c h 1 1 / k e r n e l / n e t / i p v 4 / t c p _ b b r . k o . z s t d e s c r i p t i o n : T C P B B R ( B o t t l e n e c k B a n d w i d t h a n d R T T ) l i c e n s e : D u a l B S D / G P L a u t h o r : S o h e i l H a s s a s Y e g a n e h a u t h o r : Y u c h u n g C h e n g a u t h o r : N e a l C a r d w e l l a u t h o r : V a n J a c o b s o n s r c v e r s i o n : 3 A D F 6 4 3 5 C 6 0 E 9 9 C 5 F 1 8 6 F 1 9 d e p e n d s : r e t p o l i n e : Y i n t r e e : Y n a m e : t c p _ b b r v e r m a g i c : 5 . 1 3 . 7 a r c h 1 1 S M P p r e e m p t m o d _ u n l o a d s i g _ i d : P K C S # 7 s i g n e r : B u i l d t i m e a u t o g e n e r a t e d k e r n e l k e y 查 看 是 否 开 启 B B R : s y s c t l n e t . i p v 4 . t c p _ c o n g e s t i o n _ c o n t r o l 开 启 B B R : s u d o s y s c t l n e t . i p v 4 . t c p _ c o n g e s t i o n _ c o n t r o l = b b r 1 2 3 4 5 6 7 8 $ s y s c t l n e t . i p v 4 . t c p _ c o n g e s t i o n _ c o n t r o l n e t . i p v 4 . t c p _ c o n g e s t i o n _ c o n t r o l = c u b i c $ s u d o m o d p r o b e t c p _ b b r $ l s m o d | g r e p t c p _ b b r t c p _ b b r 2 0 4 8 0 0 $ s u d o s y s c t l n e t . i p v 4 . t c p _ c o n g e s t i o n _ c o n t r o l = b b r n e t . i p v 4 . t c p _ c o n g e s t i o n _ c o n t r o l = b b r 开 启 后 效 果 可 以 立 即 看 到 , 如 果 想 在 重 启 后 依 然 使 用 B B R , 则 需 要 写 入 到 文 件 系 统 : e c h o t c p _ b b r > / e t c / m o d u l e s l o a d . d / 8 0 b b r . c o n f e c h o n e t . i p v 4 . t c p _ c o n g e s t i o n _ c o n t r o l = b b r > / e t c / s y s c t l . d / 8 0 b b r . c o n f 欢 迎 来 到 S i r i u s 丶 天 狼 的 游 乐 园 ! > 记 录 我 的 联 想 M 7 2 0 Q A r c h S w a y 窗 口 管 理 器 的 安 装 和 配 置 过 程 发 表 于 2 0 2 1 0 6 2 4 更 新 于 2 0 2 2 0 1 2 6 分 类 于 L i n u x 技 术 本 文 字 数 : 7 . 8 k 阅 读 时 长 ≈ 7 分 钟 记 录 我 的 联 想 M 7 2 0 Q A r c h S w a y 窗 口 管 理 器 的 安 装 和 配 置 过 程 安 装 A r c h L i n u x 基 本 过 程 纪 录 下 载 并 烧 录 镜 像 本 次 下 载 2 0 2 1 . 5 . 1 日 的 镜 像 , 写 这 篇 文 章 的 时 候 是 六 一 儿 童 节 , 但 是 并 没 有 看 到 这 个 月 的 镜 像 。 好 耶 , 都 去 过 六 一 了 ! 应 该 是 最 后 一 次 用 东 软 维 云 的 镜 像 站 咯 ! 下 载 A r c h 2 0 2 1 . 5 . 1 I S O 走 起 。 引 导 系 统 引 导 A r c h I S O 前 在 B I O S 中 关 闭 安 全 引 导 , 借 着 还 有 W i n d o w s 的 时 候 , 更 新 了 一 下 B I O S 到 2 0 2 1 年 三 月 份 的 版 本 。 链 接 到 互 联 网 在 A r c h I S O L i v e 中 安 装 了 i w d 来 管 理 无 线 网 络 , 因 为 本 次 安 装 过 程 只 有 无 线 网 络 , 那 么 用 i w c t l 工 具 来 配 置 本 次 安 装 过 程 中 使 用 的 无 线 网 络 。 进 入 i w c t l 交 互 模 式 : i w c t l 罗 列 设 备 : d e v i c e l i s t , 在 列 表 中 可 以 找 到 w l a n 0 无 线 设 备 , 记 下 来 他 的 名 字 , 接 下 来 会 使 用 到 这 个 名 称 。 扫 描 无 线 网 络 : s t a t i o n w l a n 0 s c a n 罗 列 已 发 现 的 网 络 s t a t i o n w l a n 0 g e t n e t w o r k s 连 接 到 无 线 网 络 s t a t i o n w l a n 0 c o n n e c t S S I D 删 除 多 余 的 引 导 使 用 e f i b o o t m g r 删 除 W i n d o w s 引 导 。 e f i b o o t m g r b 0 0 0 X B 更 新 系 统 时 间 使 用 t i m e d a t e c t l 更 新 时 间 , 开 启 n t p 。 确 保 系 统 时 间 是 准 确 的 : t i m e d a t e c t l s e t n t p t r u e 建 立 硬 盘 分 区 使 用 f d i s k 工 具 对 磁 盘 进 行 分 区 , 我 要 将 整 个 磁 盘 都 空 间 都 划 分 给 A r c h 使 用 。 f d i s k / d e v / n v m e 0 n 1 E S P 分 区 1 G S W A P 分 区 8 G 根 文 件 存 储 剩 余 空 间 格 式 化 磁 盘 文 件 系 统 将 E S P 被 格 式 化 成 , E S P 分 区 格 式 化 成 F A T 3 2 分 区 格 式 : m k f s . v f a t F 3 2 / d e v / n v m e 0 n 1 p 1 创 建 S W A P 文 件 系 统 : m k s w a p / d e v / n v m e 0 n 1 p 2 s w a p o n / d e v / n v m e 0 n 1 p 2 创 建 根 目 录 文 件 系 统 e x t 4 : m k f s . e x t 4 / d e v / n v m e 0 n 1 p 3 挂 载 分 区 挂 载 根 分 区 目 录 : m o u n t / d e v / n v m e 0 n 1 p 3 / m n t 创 建 E F I 目 录 并 进 行 挂 载 : m k d i r / m n t / e f i m o u n t / d e v / n v m e 0 n 1 p 1 / m n t / e f i 选 择 镜 像 源 文 件 / e t c / p a c m a n . d / m i r r o r l i s t 定 义 了 软 件 包 会 从 哪 个 镜 像 源 下 载 。 在 L i v e C D 启 动 的 系 统 上 , 在 连 接 到 因 特 网 后 , r e f l e c t o r 会 通 过 选 择 2 0 个 最 新 同 步 的 H T T P S 镜 像 并 按 下 载 速 率 对 其 进 行 排 序 来 更 新 镜 像 列 表 。 在 列 表 中 越 前 的 镜 像 在 下 载 软 件 包 时 有 越 高 的 优 先 权 。 您 或 许 想 检 查 一 下 文 件 , 看 看 是 否 满 意 。 如 果 不 满 意 , 可 以 相 应 的 修 改 / e t c / p a c m a n . d / m i r r o r l i s t 文 件 , 并 将 地 理 位 置 最 近 的 镜 像 源 挪 到 文 件 的 头 部 , 同 时 也 应 该 考 虑 一 些 其 他 标 准 。 这 个 文 件 接 下 来 还 会 被 p a c s t r a p 拷 贝 到 新 系 统 里 , 所 以 请 确 保 设 置 正 确 。 安 装 系 统 软 件 包 p a c s t r a p / m n t b a s e l i n u x l i n u x f i r m w a r e b a s e d e v e l n e t w o r k m a n a g e r 写 入 引 导 用 以 下 命 令 生 成 f s t a b 文 件 ( 用 U 或 L 选 项 设 置 U U I D 或 卷 标 ) : g e n f s t a b U / m n t > > / m n t / e t c / f s t a b 强 烈 建 议 在 执 行 完 以 上 命 令 后 , 后 检 查 一 下 生 成 的 / m n t / e t c / f s t a b 文 件 是 否 正 确 。 切 换 根 目 录 C h r o o t 更 当 前 进 程 及 其 子 进 程 的 可 见 根 路 径 。 变 更 后 , 程 序 无 法 访 问 可 见 根 目 录 外 文 件 和 命 令 。 a r c h c h r o o t / m n t 安 装 一 些 常 用 软 件 包 p a c m a n S v i m b a s h c o m p l e t i o n 设 置 时 区 时 间 t i m e d a t e c t l s e t t i m e z o n e A s i a / S h a n g h a i h w c l o c k s y s t o h c 设 置 使 用 的 区 域 编 辑 / e t c / l o c a l e . g e n 然 后 移 除 需 要 的 地 区 前 的 注 释 符 号 # 接 着 执 行 l o c a l e g e n 以 生 成 l o c a l e 信 息 编 辑 / e t c / l o c a t e . c o n f : L A N G = e n _ U S . U T F 8 设 置 全 局 区 域 环 境 为 美 国 英 语 环 境 。 稍 后 用 户 可 以 编 辑 自 己 的 ~ / . c o n f i g / l o c a l e . c o n f 文 件 来 设 置 使 用 的 语 言 和 特 定 的 区 域 格 式 。 如 : L A N G L A N G U A G E L C _ A D D R E S S L C _ C O L L A T E L C _ C T Y P E L C _ I D E N T I F I C A T I O N L C _ M E A S U R E M E N T L C _ M E S S A G E S L C _ M O N E T A R Y L C _ N A M E L C _ N U M E R I C L C _ P A P E R L C _ T E L E P H O N E L C _ T I M E L A N G : 默 认 的 区 域 设 置 这 个 变 量 的 值 会 覆 盖 掉 所 有 未 设 置 的 L C _ * 变 量 的 值 。 相 关 详 情 访 问 : A r c h W i k i L o c a t e ( 简 体 中 文 ) 设 置 主 机 名 h o s t n a m e c t l s e t h o s t n a m e A r c h x x x x x x 设 置 用 户 及 R O O T 密 码 设 置 r o o t 用 户 密 码 : p a s s w d 添 加 普 通 用 户 并 设 置 密 码 : u s e r a d d m u s e r n a m e p a s s w d u s e r n a m e 将 用 户 添 加 到 管 理 员 组 ( w h e e l ) : u s e r m o d a G w h e e l u s e r n a m e 编 辑 / e t c / s u d o e r s 文 件 允 许 w h e e l 组 中 用 户 使 用 s u d o 提 权 到 r o o t 级 别 权 限 。 安 装 引 导 程 序 安 装 引 导 是 安 装 的 最 后 一 步 , 使 用 G R U B 配 置 本 机 引 导 , 首 先 安 装 g r u b 和 e f i b o o t m g r 两 个 包 。 p a c m a n S g r u b e f i b o o t m g r 然 后 按 照 下 列 步 骤 安 装 G R U B : 挂 载 E F I 系 统 分 区 , 在 本 节 之 后 的 内 容 里 , 挂 载 点 为 / e f i 。 选 择 一 个 启 动 引 导 器 标 识 , 这 里 叫 做 G R U B 。 这 将 在 e s p / E F I / 中 创 建 一 个 与 标 识 同 名 的 目 录 来 储 存 E F I 二 进 制 文 件 , 而 且 这 个 名 字 还 会 在 U E F I 启 动 菜 单 中 表 示 G R U B 启 动 项 。 执 行 下 面 的 命 令 来 将 G R U B E F I 应 用 g r u b x 6 4 . e f i 安 装 到 e s p / E F I / G R U B / , 并 将 其 模 块 安 装 到 / b o o t / g r u b / x 8 6 _ 6 4 e f i / 。 g r u b i n s t a l l t a r g e t = x 8 6 _ 6 4 e f i e f i d i r e c t o r y = / e f i b o o t l o a d e r i d = G R U B 生 成 G R U B 配 置 文 件 : g r u b m k c o n f i g o / b o o t / g r u b / g r u b . c f g 安 装 后 的 一 些 系 统 服 务 配 置 使 用 N e t w o r k M a n a g e r 管 理 本 机 网 络 刚 才 在 安 装 过 程 中 使 用 p a c s t r a p 安 装 软 件 包 时 就 已 经 将 n e t w o r k m a n a g e r 软 件 包 安 装 好 了 , 接 下 来 开 启 N e t w o r k M a n a g e r 服 务 , 并 使 用 n m c l i 配 置 连 接 无 线 网 络 。 s y s t e m c t l e n a b l e n o w N e t w o r k M a n a g e r 罗 列 当 前 可 用 的 无 线 网 络 : n m c l i d e v i c e w i f i l i s t 连 接 到 S S I D _ N A M E 无 线 网 络 n m c l i d e v i c e w i f i c o n n e c t S S I D _ N A M E i f n a m e w l p 3 s 0 p a s s w o r d n a m e X X X X X 若 要 交 互 式 的 输 入 密 码 , 可 以 加 a a s k 参 数 , 避 免 在 终 端 内 输 入 密 码 留 下 痕 迹 。 n m c l i d e v i c e w i f i c o n n e c t S S I D _ N A M E i f n a m e w l p 3 s 0 n a m e X X X X X 此 时 缺 省 p a s s w o r d 参 数 , 会 在 终 端 内 进 行 交 互 式 输 入 密 码 。 P P P o E / D S L s u p p o r t 若 要 使 用 P P P o E 拨 号 , 需 要 r p p p p o e 软 件 包 后 , 才 可 以 用 n m c l i 连 接 。 p a c m a n S r p p p p o e n m c l i c o n n e c t i o n a d d t y p e p p p o e p p p o e . u s e r n a m e m y u s e r n a m e p p p o e . p a s s w o r d m y p a s s w o r d i f n a m e e n p 1 s 0 f 1 c o n n a m e N D R a u t o c o n n e c t y e s n m c l i c o n n e c t i o n u p N D R 配 置 E A P P E A P 认 证 无 线 网 络 校 内 的 无 线 网 络 使 用 E A P 认 证 , 通 过 查 阅 资 料 使 用 n m c l i 添 加 E A P 无 线 网 络 方 法 如 下 : n m c l i c o n n e c t i o n a d d t y p e w i f i c o n n a m e m y C U C C i f n a m e w l p 3 s 0 s s i d C U C C i p v 4 . m e t h o d a u t o 8 0 2 1 x . e a p p e a p 8 0 2 1 x . p h a s e 2 a u t h m s c h a p v 2 8 0 2 1 x . i d e n t i t y y o u r u s e r n a m e 8 0 2 1 x . p a s s w o r d y o u r p a s s w o r d w i f i s e c . k e y m g m t w p a e a p a u t o c o n n e c t y e s 桌 面 窗 口 服 务 使 用 W a y l a n d 图 形 显 示 服 务 , s w a y 平 铺 窗 口 管 理 器 。 常 见 的 环 境 配 置 文 件 所 在 地 址 对 于 特 定 用 户 , 还 可 以 在 / . b a s h r c 、 / . x i n i t r c 或 ~ / . x p r o f i l e 中 设 置 自 己 的 用 户 环 境 。 不 同 之 处 在 于 : . b a s h r c : 每 次 使 用 终 端 登 录 时 读 取 并 运 用 里 面 的 设 置 。 . x i n i t r c : 每 次 使 用 s t a r t x 或 S L i M 启 动 X 界 面 时 读 取 并 运 用 里 面 的 设 置 。 . x p r o f i l e : 每 次 使 用 G D M 等 显 示 管 理 器 登 录 时 读 取 并 运 用 里 面 的 设 置 。 安 装 w a y l a n d 和 S w a y 以 及 依 赖 的 一 些 包 p a c m a n S w a y l a n d s w a y p a c m a n S a l a c r i t t y s w a y i d l e 有 关 使 用 W a y l a n d 中 的 常 见 问 题 详 见 A r c h W i k i W a y l a n d s w a y i d l e 在 一 定 非 活 跃 时 间 后 执 行 操 作 s w a y i d l e 与 s w a y l o c k 配 置 延 时 锁 屏 s w a y l o c k e f f e c t s S w a y 锁 屏 工 具 配 置 S w a y 平 铺 窗 口 管 理 器 配 置 在 登 录 系 统 后 自 动 启 动 s w a y , 以 及 配 置 S w a y 的 程 序 启 动 器 , 任 务 栏 , 和 各 种 优 化 。 配 置 t t y 登 录 后 自 动 运 行 s w a y v i m ~ / . b a s h _ p r o f i l e 启 动 S w a y 时 , 设 置 环 境 变 量 , 其 中 包 含 让 f i r e f o x 使 用 w a y l a n d 的 标 记 变 量 以 及 Q T 环 境 等 变 量 信 息 。 v i m ~ / . l o c a l / b i n / s w a y 1 2 3 4 5 6 7 8 # ! b i n / s h s e t a [ f $ H O M E / . c o n f i g / s w a y / e n v ] t h e n e x e c s w a y f i 编 辑 环 境 变 量 文 件 : 1 2 M O Z _ E N A B L E _ W A Y L A N D = 1 Q T _ Q P A _ P L A T F O R M = w a y l a n d M O Z _ E N A B L E _ W A Y L A N D = 1 : 火 狐 浏 览 器 使 用 W a y l a n d 图 形 窗 口 服 务 标 记 Q T _ Q P A _ P L A T F O R M = w a y l a n d : 在 W a y l a n d 环 境 下 使 用 Q t 5 需 要 安 装 q t 5 w a y l a n d 包 , 并 设 置 Q T _ Q P A _ P L A T F O R M = w a y l a n d 环 境 变 量 。 使 用 w o f i 作 为 程 序 启 动 坞 安 装 w o f i : y a y S w o f i 修 改 S w a y 配 置 文 件 s e t $ m e n u d m e n u _ p a t h | w o f i s h o w d r u n i | x a r g s s w a y m s g e x e c r o f i e m o j i 使 用 d e x 自 动 启 动 程 序 F c i t x 5 ( 自 启 动 f c i t x 5 ) f c i t x 5 等 一 些 应 用 会 创 建 X D G A u t o s t a r t 启 动 配 置 , 通 常 以 . d e s k t o p 文 件 拓 展 名 结 尾 。 像 f c i t x 5 等 一 些 程 序 包 在 安 装 时 会 在 / e t c / x d g / 目 录 下 生 成 配 置 文 件 , 但 是 只 有 部 分 的 窗 口 管 理 器 支 持 x d g 启 动 。 在 S w a y 中 目 前 没 有 看 到 原 生 对 它 的 支 持 , 所 以 就 需 要 一 些 其 它 工 具 辅 助 执 行 。 那 么 若 要 在 进 入 桌 面 环 境 后 自 动 启 动 f c i t x 5 , 则 可 以 使 用 d e x 工 具 。 它 可 以 自 动 执 行 / e t c / x d g / a u t o s t a r t 目 录 下 的 . d e s k t o p 程 序 启 动 配 置 文 件 。 安 装 d e x : y a y S d e x 在 S w a y 配 置 文 件 中 配 置 自 启 动 d e x : 在 ~ / . c o n f i g / s w a y / c o n f i g 文 件 末 尾 处 添 加 : e x e c _ a l w a y s d e x a 之 后 在 S w a y 启 动 后 , 会 执 行 d e x 工 具 , d e x 工 具 又 回 去 执 行 哪 些 在 X D G 自 动 启 动 目 录 下 , 但 是 在 S w a y 中 不 会 自 动 执 行 的 程 序 启 动 配 置 文 件 . d e s k t o p , 此 时 f c i t x 5 已 经 可 以 自 动 启 动 了 。 安 装 中 文 字 体 推 荐 安 装 以 下 常 用 开 源 中 文 字 体 : w q y m i c r o h e i w q y m i c r o h e i l i t e w q y b i t m a p f o n t w q y z e n h e i n o t o f o n t s c j k y a y S w q y m i c r o h e i w q y m i c r o h e i l i t e w q y b i t m a p f o n t w q y z e n h e i n o t o f o n t s c j k 更 新 字 体 缓 存 : f c c a c h e f v 关 于 更 多 本 土 化 中 文 字 体 设 置 详 见 A r c h W i k i S i m p l i f i e d C h i n e s e 锁 屏 工 具 s w a y l o c k 我 使 用 的 是 s w a y l o c k e f f e c t s 创 建 锁 屏 执 行 脚 本 文 件 : s u d o v i m / u s r / b i n / l o c k s c r e e n 1 2 3 4 5 6 # ! / b i n / b a s h # s w a y l o c k s c r e e n s h o t s c l o c k i n d i c a t o r i n d i c a t o r r a d i u s 1 0 0 \ \ i n d i c a t o r t h i c k n e s s 7 e f f e c t b l u r 7 x 5 e f f e c t v i g n e t t e 0 . 5 : 0 . 5 \ \ r i n g c o l o r b b 0 0 c c k e y h l c o l o r 8 8 0 0 3 3 l i n e c o l o r 0 0 0 0 0 0 0 0 \ \ i n s i d e c o l o r 0 0 0 0 0 0 8 8 s e p a r a t o r c o l o r 0 0 0 0 0 0 0 0 g r a c e 2 f a d e i n 0 . 2 赋 予 全 体 用 户 执 行 权 限 : c h m o d u + x / u s r / b i n / l o c k s c r e e n 接 下 里 配 置 S w a y 配 置 文 件 : v i m . c o n f i g / s w a y / c o n f i g 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 # # # I d l e c o n f i g u r a t i o n # # E x a m p l e c o n f i g u r a t i o n : # e x e c s w a y i d l e w \ \ t i m e o u t 3 0 0 l o c k s c r e e n \ \ t i m e o u t 5 0 0 s w a y m s g o u t p u t * d p m s o f f \ \ r e s u m e s w a y m s g o u t p u t * d p m s o n \ \ b e f o r e s l e e p l o c k s c r e e n # T h i s w i l l l o c k y o u r s c r e e n a f t e r 3 0 0 s e c o n d s o f i n a c t i v i t y , t h e n t u r n o f f # y o u r d i s p l a y s a f t e r a n o t h e r 2 0 0 s e c o n d s , a n d t u r n y o u r s c r e e n s b a c k o n w h e n # r e s u m e d . I t w i l l a l s o l o c k y o u r s c r e e n b e f o r e y o u r c o m p u t e r g o e s t o s l e e p . 上 面 的 部 分 配 置 为 S w a y 默 认 配 置 , 简 单 修 改 为 上 面 的 配 置 即 可 , 修 改 好 配 置 文 件 好 需 要 重 启 S w a y 后 才 可 以 生 效 , 因 为 使 用 的 是 e x e c , 所 以 重 新 加 载 配 置 文 件 还 不 能 生 效 , 如 果 想 要 查 看 效 果 。 可 以 : k i l l a l l 9 s w a y , 之 后 重 新 登 录 系 统 等 待 查 看 效 果 。 延 时 工 具 s w a y i d l e 配 置 s w a y i d l e 我 用 来 和 s w a y l o c k e f f e c t s 搭 配 使 用 , 用 于 在 一 定 时 间 内 无 操 作 后 自 动 执 行 脚 本 或 程 序 , 所 以 可 以 用 来 解 决 一 定 时 间 哪 无 操 作 自 动 锁 屏 的 需 求 。 z s h 安 装 z s h : y a y S z s h 更 改 用 户 默 认 S h e l l : u s e r m o d s h e l l / u s r / b i n / z s h u s e r n a m e 要 注 意 b a s h _ p r o f i l e 等 文 件 是 否 有 内 容 , 如 果 有 的 话 需 要 迁 移 为 z s h 相 关 的 文 件 。 初 始 化 默 认 配 置 文 件 : 1 2 3 g i t c l o n e g i t : / / g i t h u b . c o m / r o b b y r u s s e l l / o h m y z s h . g i t ~ / . o h m y z s h c p ~ / . o h m y z s h / t e m p l a t e s / z s h r c . z s h t e m p l a t e ~ / . z s h r c s o u r c e . z s h r c 常 用 软 件 包 这 里 会 记 录 一 些 我 常 用 的 软 件 包 g i t v i m b a s h c o m p l e t i o n b a s h 自 动 补 全 r p p p p o e 对 P P P o E 的 支 持 o p e n s s h o p e n s s h 需 要 开 启 服 务 r c l o n e 挂 载 云 盘 y a y 使 用 y a y 管 理 A U R 源 p r o x y c h a i n s n g 终 端 代 理 , 可 配 置 代 理 链 v 2 r a y c o r e 请 珍 惜 眼 前 所 拥 有 的 一 切 n t f s 3 g 挂 载 n t f s 设 备 q t 5 w a y l a n d 在 W a y l a n d 下 支 持 Q t 5 , 需 要 配 置 环 境 变 量 开 启 a r c h l i n u x c n 源 我 使 用 清 华 大 学 a r c h l i n u x c n 源 使 用 方 法 : 在 / e t c / p a c m a n . c o n f 文 件 末 尾 添 加 以 下 两 行 , 并 安 装 a r c h l i n u x c n k e y r i n g 包 导 入 G P G k e y 。 1 2 [ a r c h l i n u x c n ] S e r v e r = h t t p s : / / m i r r o r s . t u n a . t s i n g h u a . e d u . c n / a r c h l i n u x c n / $ a r c h 安 装 f c i t x 5 r i m e 中 文 输 入 法 安 装 以 下 包 : y a y S f c i t x 5 f c i t x 5 q t f c i t x 5 g t k f c i t x 5 c o n f i g t o o l f c i t x 5 r i m e q t 5 w a y l a n d 若 在 W a y l a n d 环 境 下 使 用 Q t 5 需 要 安 装 q t 5 w a y l a n d 包 , 并 设 置 Q T _ Q P A _ P L A T F O R M = w a y l a n d 环 境 变 量 。 y a y 安 装 1 2 3 g i t c l o n e h t t p s : / / a u r . a r c h l i n u x . o r g / y a y . g i t c d y a y m a k e p k g s i 或 者 在 开 启 了 a r c h l i n u x c n 源 后 直 接 通 过 源 安 装 。 p a c m a n S y a y 让 y a y 通 过 p r o x y c h a i n s 使 用 代 理 g o 版 本 的 y a y 不 能 使 用 p r o x y c h a i n s 进 行 代 理 , 所 以 需 要 替 换 安 装 以 下 的 软 件 包 : 1 2 y a y S g c c g o ( 代 替 g o ) y a y S y a y ( o r y a y g i t ) 重 新 安 装 y a y 后 还 需 要 更 改 p r o x y c h a i n s 的 配 置 文 件 : 将 5 2 行 附 近 的 p r o x y _ d n s 前 使 用 # 注 释 # p r o x y _ d n s 。 E d g e 浏 览 器 从 A U R 源 中 安 装 微 软 E d g e 浏 览 器 : y a y S m i c r o s o f t e d g e d e v b i n 在 W a y l a n d 环 境 下 , 还 需 要 对 E d g e 浏 览 器 的 启 动 脚 本 做 些 手 脚 才 能 正 式 使 用 。 v i m / u s r / b i n / m i c r o s o f t e d g e d e v 在 e x e c 指 令 中 添 加 两 个 参 数 : e n a b l e f e a t u r e s = U s e O z o n e P l a t f o r m o z o n e p l a t f o r m = w a y l a n d 目 前 没 办 法 在 E D G E 浏 览 器 中 使 用 输 入 法 , 待 解 决 安 装 W i n e W i n e 目 前 原 生 不 支 持 w a y l a n d , 需 要 X w a y l a n d 支 持 。 不 过 经 过 搜 索 后 发 现 W i n e 的 G i t 仓 库 中 存 在 了 w a y l a n d 分 支 , 并 且 在 持 续 开 发 , 截 止 到 目 前 已 经 支 持 w a y l a n d 环 境 与 W i n e 运 行 的 应 用 共 享 剪 贴 板 。 接 下 来 尝 试 使 用 w a y l a n d 的 分 支 尝 试 编 译 运 行 。 e m m m m 失 败 了 , 错 误 提 示 找 不 到 显 示 驱 动 , 先 不 折 腾 它 , 接 下 来 试 试 X w a y l a n d 吧 。 安 装 X w a y l a n d y a y S x o r g x w a y l a n d 安 装 w i n e W i n e 可 通 过 开 启 M u l t i l i b 仓 库 来 安 装 w i n e 包 及 依 赖 。 v i m / e t c / p a c m a n . c o n f 1 2 [ m u l t i l i b ] I n c l u d e = / e t c / p a c m a n . d / m i r r o r l i s t y a y S y y a y S i n s a t l l w i n e 欢 迎 来 到 S i r i u s 丶 天 狼 的 游 乐 园 ! > J e n k i n s L i n u x 安 装 发 表 于 2 0 2 1 0 2 0 6 更 新 于 2 0 2 2 0 1 2 6 分 类 于 L i n u x 技 术 , 运 维 技 术 , 自 动 化 运 维 , 服 务 本 文 字 数 : 4 k 阅 读 时 长 ≈ 4 分 钟 J e n k i n s L i n u x 安 装 在 官 网 下 载 J e n k i n s 下 载 当 前 最 新 的 稳 定 版 J e n k i n s 保 存 到 指 定 目 录 。 安 装 包 下 载 w g e t O . / j e n k i n s . w a r h t t p : / / m i r r o r s . j e n k i n s . i o / w a r s t a b l e / l a t e s t / j e n k i n s . w a r 配 置 J e n k i n s 的 J A V A 运 行 环 境 K e n k i n s 需 要 J a v a 虚 拟 机 才 可 以 运 行 , 在 运 行 J e n k i n s 前 先 配 置 J A V A 虚 拟 机 环 境 。 下 载 J a v a J R E L i n u x X 6 4 J a v a J R E 安 装 包 下 载 w g e t O . / j r e 8 u 2 8 1 l i n u x x 6 4 . t a r h t t p s : / / j a v a d l . o r a c l e . c o m / w e b a p p s / d o w n l o a d / A u t o D L ? B u n d l e I d = 2 4 4 0 5 8 _ 8 9 d 6 7 8 f 2 b e 1 6 4 7 8 6 b 2 9 2 5 2 7 6 5 8 c a 1 6 0 5 安 装 J a v a J R E 将 下 载 好 的 J a v a J R E 安 装 包 移 动 你 要 安 装 的 目 录 里 , 我 想 要 安 装 在 / u s r / j a v a 目 录 下 。 ( R O O T ) 创 建 安 装 目 录 s u d o m k d i r p / u s r / j a v a ( R O O T ) 移 动 安 装 包 s u d o m v . / j r e 8 u 2 8 1 l i n u x x 6 4 . t a r / u s r / j a v a ( R O O T ) 解 压 s u d o t a r z x v f / u s r / j a v a / j r e 8 u 2 8 1 l i n u x x 6 4 . t a r 查 看 / u s r / j a v a 目 录 你 会 发 现 除 了 安 装 包 外 新 存 在 一 个 名 字 与 j r e 1 . 8 . 0 _ 2 8 1 差 不 多 相 同 的 目 录 ( 这 取 决 于 你 下 载 的 J a v a J R E 版 本 ) 那 么 现 在 你 的 J a v a J R E 安 装 在 了 / u s r / j a v a / j r e 1 . 8 . 0 _ 2 8 1 内 , 现 在 可 以 将 / u s r / j a v a / 目 录 下 的 J a v a J R E 安 装 包 删 除 掉 以 节 省 空 间 接 下 来 配 置 环 境 变 量 , 请 根 据 自 己 L i n u x 发 行 版 的 规 则 变 通 的 配 置 / e t c / p r o f i l e ! 在 / e t c / p r o f i l e 文 件 开 始 处 填 写 : 1 2 3 4 e x p o r t J A V A _ H O M E = / u s r / j a v a / j r e 1 . 8 . 0 _ 2 8 1 / e x p o r t J R E _ H O M E = / u s r / j a v a / j r e 1 . 8 . 0 _ 2 8 1 / e x p o r t C L A S S _ P A T H = . : $ J A V A _ H O M E / l i b / r t . j a r : $ J R E _ H O M E / l i b e x p o r t J A V A _ P A T H = $ J A V A _ H O M E / b i n : $ J R E _ H O M E / b i n 之 后 找 到 P A T H , 在 P A T H 末 尾 填 写 上 $ 。 请 根 据 自 己 的 实 际 情 况 填 写 , 否 则 可 能 会 覆 盖 之 前 的 环 境 变 量 哦 ! 我 的 环 境 变 量 配 置 如 下 : 1 2 3 4 5 6 7 8 9 1 0 1 1 e x p o r t J A V A _ H O M E = / u s r / j a v a / j r e 1 . 8 . 0 _ 2 8 1 / e x p o r t J R E _ H O M E = / u s r / j a v a / j r e 1 . 8 . 0 _ 2 8 1 / e x p o r t C L A S S _ P A T H = . : $ J A V A _ H O M E / l i b / r t . j a r : $ J R E _ H O M E / l i b e x p o r t J A V A _ P A T H = $ J A V A _ H O M E / b i n : $ J R E _ H O M E / b i n i f [ ` i d u ` e q 0 ] ; t h e n P A T H = / u s r / l o c a l / s b i n : / u s r / l o c a l / b i n : / u s r / s b i n : / u s r / b i n : / s b i n : / b i n : $ e l s e P A T H = / u s r / l o c a l / b i n : / u s r / b i n : / b i n : / u s r / l o c a l / g a m e s : / u s r / g a m e s : $ f i e x p o r t P A T H 激 活 环 境 变 量 s o u r c e / e t c / p r o f i l e 查 看 配 置 是 否 成 功 则 执 行 j a v a v e r s i o n , 出 现 版 本 信 息 则 配 置 成 功 : 1 2 3 j a v a v e r s i o n 1 . 8 . 0 _ 2 8 1 J a v a ( T M ) S E R u n t i m e E n v i r o n m e n t ( b u i l d 1 . 8 . 0 _ 2 8 1 b 0 9 ) J a v a H o t S p o t ( T M ) 6 4 B i t S e r v e r V M ( b u i l d 2 5 . 2 8 1 b 0 9 , m i x e d m o d e ) 初 始 化 J e n k i n s 准 备 工 作 已 经 结 束 , 接 下 来 开 始 进 行 初 始 化 J e n k i n s ! 回 到 下 载 J e n k i n s 的 目 录 , 执 行 j a v a j a r j e n k i n s . w a r h t t p P o r t = 8 0 8 0 命 令 。 这 里 的 8 0 8 0 是 W e b 界 面 的 端 口 号 , 你 可 以 修 改 成 自 己 需 要 的 端 口 号 , 注 意 防 火 墙 要 放 行 该 T C P 端 口 。 首 次 运 行 J e n k i n s , 首 次 运 行 J e n k i n s 时 会 在 当 前 用 户 家 目 录 下 生 成 一 些 配 置 文 件 ~ / . j e n k i n s 。 访 问 你 的 域 名 或 I P 地 址 加 上 端 口 号 后 , 你 可 以 看 到 这 样 的 界 面 。 此 时 J e n k i n s 会 下 载 一 些 资 源 , 需 要 等 待 5 分 钟 左 右 。 如 果 时 间 过 长 , 结 束 掉 现 在 运 行 的 J e n k i n s , 先 需 要 更 改 国 内 下 载 源 来 加 快 速 度 : 1 2 3 4 5 6 7 8 9 1 0 1 1 c d ~ / . j e n k i n s v i m h u d s o n . m o d e l . U p d a t e C e n t e r . x m l # 将 标 签 内 的 网 址 改 为 清 华 源 # 将 下 面 的 内 容 h t t p s : / / u p d a t e s . j e n k i n s . i o / u p d a t e c e n t e r . j s o n # 修 改 为 h t t p s : / / m i r r o r s . t u n a . t s i n g h u a . e d u . c n / j e n k i n s / u p d a t e s / u p d a t e c e n t e r . j s o n 之 后 回 到 J e n k i n s 软 件 包 的 目 录 下 重 新 执 行 j a v a j a r j e n k i n s . w a r h t t p P o r t = 8 0 8 0 稍 后 页 面 会 让 你 输 入 管 理 员 密 码 解 锁 安 装 J e n k i n s 。 管 理 员 密 码 可 以 在 运 行 J e n k i n s 的 终 端 上 找 到 , 也 可 以 根 据 页 面 提 示 的 文 件 中 找 到 。 输 入 密 码 后 下 一 步 会 安 装 基 本 常 用 插 件 , 选 择 左 侧 的 选 项 开 始 安 装 即 可 。 此 时 需 要 一 段 时 间 等 待 … … 如 果 出 现 插 件 安 装 失 败 , 不 用 担 心 , 很 可 能 是 J e n k i n s 版 本 不 支 持 当 前 下 载 的 最 新 插 件 , 稍 后 进 入 到 J e n k i n s 管 理 页 面 更 新 J e n k i n s 版 本 即 可 。 接 下 来 根 据 你 的 个 人 需 求 配 置 管 理 员 用 户 名 密 码 等 设 置 。 配 置 开 机 自 动 启 动 s y s t e m d 守 护 进 程 以 下 内 容 使 用 于 以 w a r 包 形 式 部 署 J e n k i n s 的 方 式 来 配 置 s y s t e m d 守 护 进 程 服 务 , 其 它 方 式 安 装 的 J e n k i n s 需 要 你 自 己 变 通 。 以 下 内 容 参 考 l i n u x ( c e n t o s 8 ) : 用 s y s t e m c t l 管 理 w a r 包 形 式 的 j e n k i n s ( j a v a 1 4 / j e n k i n s 2 . 2 5 7 ) 这 篇 文 章 。 创 建 管 理 脚 本 v i m j e n k i n s c o n t r o l . s h 创 建 新 文 本 文 件 , 将 以 下 内 容 写 入 到 文 件 中 。 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 # ! / b i n / b a s h # s o u r c e / e t c / p r o f i l e p i d = ` p s e f | g r e p j e n k i n s . w a r | g r e p v g r e p | a w k | w c l ` i f [ $ 1 = s t a r t ] ; t h e n i f [ $ p i d g t 0 ] ; t h e n e c h o j e n k i n s i s r u n n i n g . . . e l s e n o h u p $ J A V A _ H O M E / b i n / j a v a j a r / h o m e / h a c k i n s s s / J e n k i n s / j e n k i n s . w a r e n a b l e f u t u r e j a v a h t t p P o r t = 8 0 8 8 2 > t h e n e x e c p s e f | g r e p j e n k i n s | g r e p v g r e p | a w k | x a r g s k i l l 9 e c h o j e n k i n s i s s t o p . . e l s e e c h o P l e a s e i n p u t l i k e t h i s : . / j e n k i n s . s h s t a r t o r . / j e n k i n s s t o p f i 为 脚 本 文 件 赋 予 执 行 权 限 c h m o d u + x j e n k i n s c o n t r o l . s h 启 动 J e n k i n s . / j e n k i n s c o n t r o l . s h s t a r t 关 闭 J e n k i n s . / j e n k i n s c o n t r o l . s h s t o p 上 面 两 个 操 作 没 有 问 题 , 能 正 确 开 启 或 关 闭 J e n k i n s 的 话 则 脚 本 运 行 没 有 问 题 , 开 始 编 辑 s y s t e m d 服 务 文 件 。 创 建 s y s t e m d 服 务 文 件 s u d o v i m / e t c / s y s t e m d / s y s t e m / j e n k i n s . s e r v i c e 修 改 运 行 J e n k i n s 的 用 户 和 脚 本 路 径 地 址 为 你 自 己 的 。 不 推 荐 使 用 r o o t 权 限 运 行 J e n k i n s 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 [ U n i t ] D e s c r i p t i o n = J e n k i n s A f t e r = n e t w o r k . t a r g e t [ S e r v i c e ] T y p e = f o r k i n g U s e r = 使 用 该 用 户 运 行 J e n k i n s G r o u p = 使 用 该 用 户 组 运 行 J e n k i n s E x e c S t a r t = / h o m e / h a c k i n s s s / J e n k i n s / j e n k i n s c o n t r o l . s h s t a r t E x e c R e l o a d = E x e c S t o p = / h o m e / h a c k i n s s s / J e n k i n s / j e n k i n s c o n t r o l . s h s t o p P r i v a t e T m p = t r u e [ I n s t a l l ] W a n t e d B y = m u l t i u s e r . t a r g e t s u d o s y s t e m c t l d a e m o n r e l o a d 设 置 开 机 自 动 运 行 J e n k i n s s u d o s y s t e m c t l e n a b l e j e n k i n s 运 行 J e n k i n s s u d o s y s t e m c t l s t a r t j e n k i n s 停 止 运 行 J e n k i n s s u d o s y s t e m c t l s t a r t j e n k i n s 安 装 J e n k i n s 流 程 记 录 到 此 结 束 。 欢 迎 来 到 S i r i u s 丶 天 狼 的 游 乐 园 ! > 腾 讯 课 堂 、 钉 钉 在 线 网 课 视 频 直 播 回 放 下 载 离 线 播 放 发 表 于 2 0 2 0 1 2 2 8 更 新 于 2 0 2 2 0 1 2 6 分 类 于 P y t h o n 技 术 , 白 嫖 党 的 胜 利 ✌ ️ 本 文 字 数 : 6 . 5 k 阅 读 时 长 ≈ 6 分 钟 有 些 精 品 好 课 真 的 是 百 看 不 厌 、 教 师 精 心 准 备 、 学 习 氛 围 也 好 。 不 过 有 些 已 购 买 的 课 程 却 只 能 在 线 观 看 … 现 在 讲 究 的 是 一 个 环 保 、 节 能 。 如 果 能 将 已 购 买 的 课 程 离 线 下 载 好 , 那 么 会 为 各 大 平 台 节 省 多 少 带 宽 费 用 当 然 还 有 数 据 包 在 这 世 间 重 复 的 传 输 所 浪 费 的 电 力 资 源 。 本 着 环 保 、 节 能 、 减 排 的 目 的 , 开 始 了 尝 试 对 腾 讯 课 堂 网 页 版 中 自 己 购 买 了 课 程 的 视 频 回 放 进 行 下 载 。 然 后 顺 便 又 看 了 下 钉 钉 的 回 放 。 g i t h u b 直 达 项 目 : h t t p s : / / g i t h u b . c o m / y e e f i r e / c l o u d c l a s s r e p l a y 腾 讯 课 堂 由 于 没 有 使 用 客 户 端 , 在 网 页 上 观 看 。 使 用 浏 览 器 中 的 开 发 者 工 具 来 寻 找 请 求 。 可 以 看 到 请 求 了 很 多 视 频 片 段 , 文 件 拓 展 名 为 t s , G E T 请 求 。 于 是 直 接 复 制 求 请 求 连 接 然 后 丢 在 浏 览 器 地 址 栏 播 放 , 结 果 不 行 , 是 加 密 的 。 因 为 看 到 了 t s , 那 么 八 九 不 离 十 使 用 的 是 M 3 U 文 件 存 储 分 段 多 媒 体 信 息 。 t s 是 日 本 高 清 摄 像 机 拍 摄 下 进 行 的 封 装 格 式 文 件 , 全 称 为 M P E G 2 T S 。 M 3 U 8 是 U n i c o d e 版 本 的 M 3 U , 用 U T F 8 编 码 。 ” M 3 U ” 和 ” M 3 U 8 ” 文 件 都 是 苹 果 公 司 使 用 的 H T T P L i v e S t r e a m i n g 格 式 的 基 础 , 这 种 格 式 可 以 在 i P h o n e 和 M a c b o o k 等 设 备 播 放 。 寻 找 M 3 U 在 请 求 中 搜 索 m 3 u , 出 现 了 几 个 m 3 u 8 拓 展 文 件 , 选 择 资 源 文 件 最 大 的 那 个 m 3 u 8 文 件 , 获 取 c U R L 请 求 或 者 其 他 方 式 将 其 下 载 到 本 地 方 便 进 一 步 分 析 。 现 在 找 到 了 m 3 u 文 件 , 我 们 可 以 获 取 到 这 节 课 的 所 有 分 段 视 频 了 。 分 析 腾 讯 课 堂 M 3 U 文 件 已 经 下 载 好 了 m 3 u 8 拓 展 文 件 , 接 下 来 打 开 文 件 进 行 分 析 ! 可 以 看 到 腾 讯 课 堂 的 每 个 分 段 视 频 是 使 用 A E S 1 2 8 进 行 加 密 的 , 好 在 下 载 到 的 m 3 u 8 文 件 里 给 出 了 解 密 密 钥 的 地 址 以 及 偏 移 量 。 这 下 我 们 有 了 密 钥 和 偏 移 量 还 有 分 段 视 频 的 请 求 参 数 ( 还 不 知 道 H T T P 请 求 路 径 ) 整 理 总 结 现 在 可 以 尝 试 下 载 一 个 小 的 视 频 片 段 , 不 过 目 前 还 没 有 请 求 视 频 片 段 的 完 整 路 径 , 只 有 一 个 个 的 请 求 参 数 。 这 个 好 办 , 再 回 到 浏 览 器 中 播 放 回 放 视 频 , 观 察 浏 览 器 开 发 者 工 具 中 的 网 络 请 求 动 态 , 找 到 ’ v x x x x x x . t s ’ 请 求 , 并 查 看 获 取 该 视 频 片 段 的 完 整 H T T P 请 求 路 径 。 发 现 和 m 3 u 8 的 请 求 路 径 与 其 相 似 。 m 3 u : h t t p s : / / x x x x x x x x x x . v o d 2 . m y q c l o u d . c o m / x x x x x x x x x x x x x x / b 4 e 0 x x x x x x x x x x x x x x 7 / d r m / v o d d r m . x x x x x x x x x x x x x t s : h t t p s : / / x x x x x x x x x x . v o d 2 . m y q c l o u d . c o m / x x x x x x x x x x x x x x / b 4 e 0 x x x x x x x x x x x x x x 7 / d r m / v . f x x x x . t s ? s t a r t = 1 9 5 0 2 7 3 4 4 r b ) a s f : f = f . r e a d ( ) c o n t e n t _ v i d e o _ p a r t = A E S . n e w ( k e y , A E S . M O D E _ C B C , i v ) . d e c r y p t ( f ) w i t h a i o f i l e s . o p e n ( d e s t _ d e c r y p t _ f i l e , m o d e = w b ) a s f : f . w r i t e ( c o n t e n t _ v i d e o _ p a r t ) 可 以 正 常 播 放 , 没 有 问 题 。 接 下 来 下 载 全 部 的 分 段 视 频 并 解 密 , 最 后 重 新 整 合 为 一 个 m p 4 格 式 视 频 文 件 。 剩 下 的 交 给 脚 本 处 理 了 ! 腾 讯 课 堂 回 放 下 载 脚 本 脚 本 使 用 异 步 进 行 请 求 下 载 分 段 视 频 和 解 密 视 频 , 尽 可 能 的 以 最 快 的 速 度 下 载 好 全 部 的 分 段 视 频 。 如 果 下 载 期 间 遇 到 网 络 波 动 , 脚 本 可 以 自 动 重 试 下 载 。 若 脚 本 意 外 停 止 , 可 以 继 续 追 加 下 载 , 不 必 全 部 重 新 开 始 下 载 分 段 视 频 。 使 用 方 法 : 先 安 装 依 赖 模 块 p i p 3 i n s t a l l p y c r y p t o m 3 u 8 a i o f i l e s r e q u e s t s _ a s y n c 命 令 行 执 行 p y t h o n 3 t e n c e n t _ c l a s s _ m 3 u 8 . p y 这 节 课 的 名 称 这 节 课 的 M 3 U 文 件 请 求 地 址 ( 网 址 或 者 本 地 路 径 都 可 以 ) 例 如 : p y t h o n 3 t e n c e n t _ c l a s s _ m 3 u 8 . p y 【 P y t h o n 进 阶 】 P y t h o n 上 午 h t t p s : / / 1 d a d a 2 1 7 . v o d 2 . m y q c l o u d . c o m / f d a d a d a d a 3 k m d k f s x x x x x x x x x x x x x x x x x 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 8 2 8 3 8 4 8 5 8 6 8 7 8 8 8 9 9 0 9 1 9 2 9 3 9 4 f r o m C r y p t o . C i p h e r i m p o r t A E S i m p o r t r e q u e s t s _ a s y n c a s r e q u e s t s i m p o r t a i o f i l e s i m p o r t m 3 u 8 i m p o r t o s , s y s i m p o r t a s y n c i o c l a s s _ v i d e o _ n a m e = s y s . a r g v [ 1 ] m 3 u 8 _ f i l e _ u r i = s y s . a r g v [ 2 ] p r e f i x _ r e q u e s t _ u r l = f / a s y n c d e f d o w n l o a d _ m 3 u 8 _ v i d e o ( i n d e x : i n t , s u f f i x _ u r l : s t r ) : i f n o t o s . p a t h . e x i s t s ( f / d o w n l o a d s / . t s ) : i = 0 w h i l e i 3 : t r y : d o w n l o a d _ v i d e o _ t s = a w a i t r e q u e s t s . g e t ( u r l = p r e f i x _ r e q u e s t _ u r l + s u f f i x _ u r l , t i m e o u t = 3 0 ) w i t h o p e n ( f / d o w n l o a d s / . t s , w b ) a s t s : t s . w r i t e ( d o w n l o a d _ v i d e o _ t s . c o n t e n t ) p r i n t ( f [ ] — — 已 下 载 第 个 片 段 / 共 个 片 段 ) r e t u r n e x c e p t r e q u e s t s . e x c e p t i o n s . R e q u e s t E x c e p t i o n : p r i n t ( f [ ] — — 下 载 超 时 , 正 在 重 新 下 载 第 个 片 段 / 共 个 片 段 ) a w a i t a s y n c i o . s l e e p ( i ) i + = 1 a s y n c d e f d o w n l o a d _ m 3 u 8 _ a l l ( ) : i f n o t o s . p a t h . e x i s t s ( c l a s s _ v i d e o _ n a m e + / d o w n l o a d s ) : o s . m a k e d i r s ( c l a s s _ v i d e o _ n a m e + / d o w n l o a d s ) d o w n l o a d _ a s y n c _ l i s t = [ a s y n c i o . c r e a t e _ t a s k ( d o w n l o a d _ m 3 u 8 _ v i d e o ( i , v i d e o _ s u f f i x _ u r l ) ) f o r i , v i d e o _ s u f f i x _ u r l i n e n u m e r a t e ( p l a y l i s t . f i l e s , 1 ) ] a w a i t a s y n c i o . w a i t ( d o w n l o a d _ a s y n c _ l i s t ) d o w n l o a d _ e n c r y p t _ l i s t = [ u r i f o r u r i i n o s . l i s t d i r ( f / d o w n l o a d s ) i f u r i [ 0 ] ! = . ] i f l e n ( d o w n l o a d _ e n c r y p t _ l i s t ) = = l e n ( p l a y l i s t . f i l e s ) : # 判 断 是 否 有 漏 下 的 分 段 视 频 没 有 下 载 p r i n t ( f [ ] — — 视 频 全 部 下 载 完 成 ) r e t u r n d o w n l o a d _ e n c r y p t _ l i s t e l s e : # 有 部 分 视 频 在 三 次 重 试 后 依 旧 没 有 下 载 成 功 p r i n t ( f [ ] — — 下 载 过 程 中 出 现 问 题 , 正 在 重 试 . . . ) r e t u r n a w a i t d o w n l o a d _ m 3 u 8 _ a l l ( ) a s y n c d e f d e c r y p t _ m 3 u 8 _ v i d e o ( m 3 u 8 _ e n c r y p t _ f i l e _ u r i : s t r , k e y : b y t e s , i v : b y t e s ) : d e c r y p t _ n a m e = f d e s t _ d e c r y p t _ u r i = f / d e c r y p t i o n / . d e . t s i f n o t o s . p a t h . e x i s t s ( d e s t _ d e c r y p t _ u r i ) : a s y n c w i t h a i o f i l e s . o p e n ( m 3 u 8 _ e n c r y p t _ f i l e _ u r i , m o d e = r b ) a s f : f = a w a i t f . r e a d ( ) c o n t e n t _ v i d e o _ p a r t = A E S . n e w ( k e y , A E S . M O D E _ C B C , i v ) . d e c r y p t ( f ) a s y n c w i t h a i o f i l e s . o p e n ( d e s t _ d e c r y p t _ u r i , m o d e = w b ) a s f : a w a i t f . w r i t e ( c o n t e n t _ v i d e o _ p a r t ) p r i n t ( f [ ] — — 已 解 密 第 个 片 段 / 共 个 片 段 ) a s y n c d e f d e c r y p t _ m 3 u 8 _ a l l ( ) : i f n o t o s . p a t h . e x i s t s ( c l a s s _ v i d e o _ n a m e + / d e c r y p t i o n ) : o s . m a k e d i r s ( c l a s s _ v i d e o _ n a m e + / d e c r y p t i o n ) k e y = a w a i t r e q u e s t s . g e t ( p l a y l i s t . k e y s [ 0 ] . u r i ) k e y = k e y . c o n t e n t i v = b y t e s ( p l a y l i s t . k e y s [ 0 ] . i v , U T F 8 ) [ : 1 6 ] d e c r y p t _ m 3 u 8 _ l i s t = [ a s y n c i o . c r e a t e _ t a s k ( d e c r y p t _ m 3 u 8 _ v i d e o ( f / d o w n l o a d s / , k e y , i v ) ) f o r u r i i n o s . l i s t d i r ( f / d o w n l o a d s ) i f u r i [ 0 ] ! = . ] # 忽 略 隐 藏 文 件 a w a i t a s y n c i o . w a i t ( d e c r y p t _ m 3 u 8 _ l i s t ) p r i n t ( f [ ] — — 视 频 全 部 解 密 完 成 ) d e f m e r g e _ m 3 u 8 _ a l l ( ) : d o w n l o a d _ d e c r y p t _ l i s t = [ u r i f o r u r i i n o s . l i s t d i r ( f / d e c r y p t i o n ) i f u r i [ 0 ] ! = . ] d o w n l o a d _ e n c r y p t _ l i s t = [ u r i f o r u r i i n o s . l i s t d i r ( f / d o w n l o a d s ) i f u r i [ 0 ] ! = . ] i f l e n ( d o w n l o a d _ d e c r y p t _ l i s t ) ! = l e n ( d o w n l o a d _ e n c r y p t _ l i s t ) : # 判 断 是 否 有 漏 下 的 分 段 视 频 没 有 下 载 p r i n t ( 解 密 分 段 视 频 出 现 问 题 , 可 能 是 受 限 于 类 U n i x 系 统 文 件 句 柄 数 量 限 制 导 致 脚 本 不 能 获 取 足 够 的 文 件 句 柄 。 \ \ n 如 果 你 是 L i n u x 或 M a c o s 请 尝 试 在 运 行 本 脚 本 的 终 端 内 执 行 u l i m i t n 5 1 2 0 命 令 , 以 解 除 2 5 5 ( M a c o s ) / 1 0 2 4 ( L i n u x ) 数 量 限 制 ) r e t u r n w i t h o p e n ( f / . m p 4 , a b ) a s f i n a l _ f i l e : p r i n t ( f [ ] — — 开 始 拼 接 解 密 后 的 分 段 视 频 ) t e m p _ f i l e _ u r i _ l i s t = o s . l i s t d i r ( f / d e c r y p t i o n ) t e m p _ f i l e _ u r i _ l i s t . s o r t ( k e y = l a m b d a x : i n t ( x [ : 6 ] ) ) f o r u r i i n t e m p _ f i l e _ u r i _ l i s t : i f u r i [ 0 ] = = . : c o n t i n u e # 忽 略 隐 藏 文 件 w i t h o p e n ( f / d e c r y p t i o n / , r b ) a s t e m p _ f i l e : f i n a l _ f i l e . w r i t e ( t e m p _ f i l e . r e a d ( ) ) # 将 t s 格 式 分 段 视 频 追 加 到 完 整 视 频 文 件 中 p r i n t ( f [ ] — — 合 成 视 频 成 功 ) i f _ _ n a m e _ _ = = _ _ m a i n _ _ : p l a y l i s t = m 3 u 8 . l o a d ( m 3 u 8 _ f i l e _ u r i , v e r i f y _ s s l = F a l s e ) d e l p l a y l i s t . f i l e s [ 0 ] # 第 一 个 文 件 为 视 频 密 钥 , 忽 略 这 个 文 件 。 a s y n c i o . r u n ( d o w n l o a d _ m 3 u 8 _ a l l ( ) ) a s y n c i o . r u n ( d e c r y p t _ m 3 u 8 _ a l l ( ) ) m e r g e _ m 3 u 8 _ a l l ( ) p r i n t ( f [ ] — — 视 频 文 件 : / / . m p 4 ) 钉 钉 钉 钉 回 放 下 载 更 简 单 , 之 后 将 腾 讯 课 堂 回 放 的 脚 本 稍 作 删 减 就 可 以 用 于 钉 钉 回 放 下 载 。 欢 迎 来 到 S i r i u s 丶 天 狼 的 游 乐 园 ! > C e p h 块 设 备 对 R B D 块 设 备 操 作 L V M 创 建 P V 时 报 错 发 表 于 2 0 2 0 1 0 3 1 更 新 于 2 0 2 2 0 1 2 4 本 文 字 数 : 9 6 9 阅 读 时 长 ≈ 1 分 钟 C e p h 块 设 备 对 R B D 块 设 备 操 作 L V M 创 建 P V 时 报 错 当 映 射 好 了 R B D 映 像 中 后 , 要 在 其 上 创 建 L V M 逻 辑 卷 , 在 执 行 p v c r e a t e 时 出 错 。 报 错 如 下 : 1 2 3 [ r o o t @ c e p h m a s t e r c e p h ] # p v c r e a t e / d e v / r b d 0 / d e v / s d d : o p e n f a i l e d : N o m e d i u m f o u n d D e v i c e / d e v / r b d 0 e x c l u d e d b y a f i l t e r . 可 以 看 到 执 行 创 建 P V 时 被 过 滤 器 拦 截 掉 了 , 这 是 因 为 默 认 情 况 下 L V M 不 支 持 r b d 设 备 类 型 , 那 么 在 L V M 过 滤 器 配 置 中 手 动 添 加 R B D 类 型 即 可 。 调 试 模 式 查 看 详 细 信 息 : 1 2 3 4 5 # p v c r e a t e v v v v / d e v / r b d 0 要 注 释 的 代 码 行 C . / / 要 注 释 的 代 码 行 D . # 要 注 释 的 代 码 航 第 二 题 下 面 四 个 数 据 类 型 中 P y t h o n 3 不 支 持 的 是 ( ) A . l i s t B . c h a r C . b o o l D . i n t 第 三 题 关 于 P y t h o n 3 中 的 变 量 , 下 列 说 法 正 确 的 是 ( ) A . 定 义 变 量 时 必 须 要 先 将 变 量 赋 予 初 始 值 B . 定 义 变 量 时 无 需 制 定 数 据 类 型 C . 变 量 定 义 后 可 以 通 过 f r e e 来 释 放 不 再 使 用 的 变 量 D . 变 量 定 义 后 不 能 在 进 行 更 改 第 四 题 计 算 机 中 信 息 处 理 和 信 息 储 存 用 ( ) A . 十 六 进 制 代 码 B . A S C I I 代 码 C . 十 进 制 代 码 D . 二 进 制 代 码 第 五 题 P y t h o n 的 源 程 序 通 常 是 通 过 ( ) 方 式 运 行 A . 编 译 运 行 B . 边 编 译 边 运 行 C . 解 析 运 行 D . 直 接 执 行 第 六 题 下 面 关 于 P y t h o n 3 中 的 异 常 , 说 法 正 确 的 是 ( ) A . 程 序 在 运 行 中 如 果 抛 出 异 常 则 会 立 即 终 止 运 行 B . 可 以 使 用 r a i s e 来 捕 获 异 常 C . 可 以 使 用 r a i s e 来 自 动 解 决 异 常 D . 程 序 如 果 抛 出 异 常 , 不 一 定 会 终 止 程 序 第 七 题 下 列 哪 个 表 示 的 是 P y t h o n 字 典 ( ) A . t e m p = [ k e y , v a l u e ] B . t e m p = C . t e m p = ( k e y , v a l u e ) D . t e m p = [ ( k e y , v a l u e ) ] 第 八 题 下 列 哪 个 说 法 是 错 误 的 ( ) A . 空 字 符 串 的 布 尔 值 是 F a l s e B . 空 列 表 的 布 尔 值 是 F a l s e C . 值 为 0 的 任 何 数 字 对 象 的 布 尔 值 是 F a l s e D . 除 了 字 典 类 型 外 , 其 他 类 型 标 准 对 象 都 可 以 进 行 布 尔 值 测 试 第 九 题 以 下 代 码 运 行 的 每 行 结 果 依 次 是 什 么 ? ( ) 1 2 3 4 5 f o r i i n r a n g e ( 2 ) : p r i n t i i = 3 f o r i i n r a n g e ( 4 , 6 ) : p r i n t i A . 1 , 2 , 3 , 4 , 5 , 6 B . 0 , 1 , 2 , 3 , 4 , 5 , 6 C . 1 , 4 , 5 D . 0 , 1 , 4 , 5 E . 1 , 3 , 4 , 5 F . 0 , 1 , 3 , 4 , 5 第 十 题 如 果 l o v e = ” 4 2 T e a m 社 团 成 立 于 2 0 0 3 年 , 下 个 月 即 将 迎 来 小 组 1 7 岁 的 生 日 ” , 下 面 输 出 错 误 的 是 ( ) A . p r i n t ( l o v e [ : ] ) 输 出 : 4 2 T e a m 社 团 成 立 于 2 0 0 3 年 , 下 个 月 即 将 迎 来 小 组 1 7 岁 的 生 日 B . p r i n t ( l o v e [ 1 : 1 6 ] ) 输 出 : 4 2 T e a m 社 团 成 立 于 2 0 0 3 年 C . p r i n t ( l o v e [ 1 5 : ] ) 输 出 : 下 个 月 即 将 迎 来 小 组 1 7 岁 的 生 日 D . p r i n t ( l o v e [ : 1 6 ] ) 输 出 : 4 2 T e a m 社 团 成 立 于 2 0 0 3 年 简 答 题 第 十 一 题 如 何 判 断 一 个 变 量 是 否 为 字 符 串 ? 第 十 二 题 怎 样 实 现 i n t 类 型 和 字 符 串 类 型 的 互 相 转 换 ? 如 果 将 一 个 包 含 字 母 的 字 符 串 转 换 为 i n t 类 型 时 会 发 生 什 么 ? 第 十 三 题 如 何 定 义 一 个 函 数 , 请 你 描 述 以 下 定 义 函 数 的 过 程 或 者 直 接 使 用 代 码 来 定 义 一 个 函 数 。 实 践 题 第 十 四 题 用 一 行 代 码 实 现 从 1 加 到 1 0 0 之 和 , 并 打 印 到 控 制 台 。 第 十 五 题 有 下 列 一 个 列 表 , 现 在 需 要 将 这 个 列 表 中 的 负 数 , 将 其 变 为 这 个 负 数 的 绝 对 值 , 并 使 用 一 个 新 列 表 来 存 储 这 些 数 。 1 2 r a n d o m _ l i s t = [ 4 , 6 , 0 , 3 , 1 , 0 ] n e w _ l i s t = [ ] 第 十 六 题 现 在 有 下 面 一 个 字 典 , 要 求 遍 历 所 有 的 键 值 对 , 并 按 照 键 值 这 样 的 输 出 方 式 一 行 一 行 的 输 出 。 1 2 3 4 5 6 7 8 9 1 0 u s e r = 第 十 七 题 请 完 善 并 修 改 下 面 的 f l a s k 框 架 代 码 , 要 求 将 上 一 题 中 使 用 的 字 典 转 换 为 J S O N 格 式 并 返 回 到 前 端 页 面 上 。 ( 提 示 : 别 忘 记 了 要 安 装 模 块 ) 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 f r o m f l a s k i m p o r t F l a s k f r o m f l a s k i m p o r t j s o n i f y a p p = F l a s k ( _ _ n a m e _ _ ) u s e r = @ a p p . r o u t e ( / j s o n , m e t h o d s = [ G E T ] ) d e f h e l l o _ w o r l d ( ) : r e t u r n H o w t o r e t u r n J S O N ? i f _ _ n a m e _ _ = = _ _ m a i n _ _ : a p p . r u n ( ) 最 终 要 求 效 果 : 1 2 … 6 吉 I C P 备 2 0 2 2 0 0 0 6 7 7 号 © 2 0 2 2 S i r i u s 丶 天 狼 站 点 总 字 数 : 2 2 6 k 站 点 阅 读 时 长 ≈ 3 : 2 6

站点概括

关于www.yeefire.com说明:
www.yeefire.com由网友主动性提交被微量导航网整理收录的,微量导航网仅提供www.yeefire.com的基础信息并免费向大众网友展示,www.yeefire.com的是IP地址:- 地址:-,www.yeefire.com的百度权重为0、百度手机权重为0、百度收录为0条、360收录为0条、搜狗收录为0条、谷歌收录为0条、百度来访流量大约在-之间、百度手机端来访流量大约在-之间、www.yeefire.com的备案号是-、备案人叫-、被百度收录的关键词有0个、手机端关键词有0个、该站点迄今为止已经创建7年2月19日。

内容声明:

1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违规信息,如您发现违规内容,请联系我们进行清除处理!
4、本文地址:https://www.wl200.cn/links/b42c4629978d588d33eb.html,复制请保留版权链接!


温馨小提示:在您的网站做上本站友情链接,访问一次即可自动收录并自动排在本站第一位!
您可能还喜欢

佳林建设有限公司

佳林建设有限公司

全国动车时刻表查询_最新列车时刻表_高铁车票在线查询 - 查动车

查动车【www.chadongche.com】为您提提供我国33个省级行政区所属市、区、县、地区所属的火车站、火车运营线路的时刻表和高铁站点查询及乘车指南等,,为您的出行带来便利。

微网优联 - 全球智能安全连接服务提供商

微网优联科技(成都)有限公司是一家集产品设计、研发、生产、营销、服务于一体的全球智能安全连接服务提供商,聚焦于Wi-Fi技术深度开发应用,在F5G技术领域处于行业先进水平,始终致力于为全球B端客户(运营商和品牌客户)定制领先的网络通讯产品、技术解决方案和专业优质的服务。微网优联作为全球网络通讯设备供应商,经营开拓JDM业务模式,对接上游供应商300多家,服务国内外品牌客户近百家。目前已形成Wi-Fi类、安防类、全光类、交换机类和创新类五大产品线,产品涵盖Wi-Fi6无线路由、IPTV机顶盒、无源光纤网络终端、MiFi、AP+AC、FTTR全光路由、IPC智能摄像头、交换机、电子学生卡、云电脑等;构建遍布全国的销售、物流配送和售后服务网络,海外业务布局35个国家及地区。

吉林市诚信实业有限责任公司-

吉林市诚信实业有限责任公司座落在北国著名的雾凇之乡——吉林市,位于美丽富饶的松花江西岸,占地面积4万余平方米。是专门从事各类盘磨机、热磨机及其磨片研究、设计和制造的专业生产企业,产品广泛应用于中高密度板、纤维板、造纸、制药及食品加工等行业。销售网络遍及全国内地各个省、市、自治区,并通过外贸代理远销美国、蒙古、越南等国家和地区。

中央人民广播电台

该站暂未设置description...

成都物流公司_优质物流服务-世纪华泰物流

世纪华泰物流是提倡优质服务理念的专线物流公司,成都物流公司以航空货运、长途搬家、专线运输、冷链物流为核心,致力于为客户提供优质高效的物流与运输服务。

Landing Page For Alibaba

该站暂未设置description...

随机文章
Photoshop 2025 v26.2.0绿色精简版 PS

Photoshop 2025 v26.2.0绿色精简版 PS

Photoshop 2025 v26.2.0绿色精简版

软件工具 2024-12-21 16:16:50

RSR 售价7999元起 保时捷设计正式发布 荣耀Magic7

RSR 售价7999元起 保时捷设计正式发布 荣耀Magic7

站长之家,ChinaZ.com,12月23日消息,荣耀公司今天下午宣布了其旗舰手机——保时捷设计的正式发布,这款以其卓越的和独特的设计而备受市场关注,将于12月24日上市,其中16GB,512GB版本售价为7999元,而24GB,1TB版本售价为8999元,荣耀Magic7RSR保时捷设计被定位为荣耀品牌的版本,搭载了荣耀大王影像系统...。

最新资讯 2024-12-26 19:53:13

掌握电子商务:营销、运营和分析的深入探索

掌握电子商务:营销、运营和分析的深入探索

电子商务的定义和优势电子商务是指通过互联网进行的商品或服务的任何交易,它提供了许多优势,包括,更广泛的受众降低成本便利性个性化体验电子商务营销电子商务营销对于吸引客户并推动销售至关重要,一些有效的方法包括,搜索引擎优化,SEO,付费搜索广告社交媒体营销电子邮件营销内容营销电子商务运营电子商务运营涉及管理您在线商店的日常运作,关键方面包...。

电商知识 2024-12-26 20:38:26

比亚迪封神 11月各省汽车销冠品牌盘点 独占27省销冠

比亚迪封神 11月各省汽车销冠品牌盘点 独占27省销冠

快科技12月26日消息,根据数据,发布了11月品牌盘点,因为未获取到数据,榜中暂未展示中国台湾省、香港、澳门的销冠品牌,具体来看,作为中国车企销冠,在盘点图中几乎封神,成为国内27个省级行政区的销冠品牌,其中,广东人最爱比亚迪,单月销量高达38022辆,为购买比亚迪最多的省份;山东、河北、河南、江苏等省紧随其后,分列第二至第五名,比亚...。

最新资讯 2024-12-26 21:00:11

第二季开播 鱿鱼游戏

第二季开播 鱿鱼游戏

网飞今日不仅投放了苦等三年多的,第二季,还为体育观众提供了一场堪称丝滑,几乎体会不到缓冲之苦的其中包括碧昂斯的中场演出,PostMalone也被拉来客串了一曲,综艺,影评人对,鱿鱼游戏,第二季持肯定态度,指出该剧揭露了拜金文化与贪婪的人性,其中埋下的伏笔有助于该剧推进至第三季;,好莱坞报道,则对第二季持否定态度,批评新季缺乏奇思妙...。

最新资讯 2024-12-26 21:01:00

爆雷 中蓝电子严正声明 内容凭空臆想 报道与事实严重不符

爆雷 中蓝电子严正声明 内容凭空臆想 报道与事实严重不符

快科技12月26日消息,官方今天发布一份,严正声明,,其中提到,台湾,经济日报,发布了标题为,爆雷台厂迎转单,的新闻报道,其中包含大量关于辽宁中蓝电子科技有限公司运营情况的不实信息,此篇经众多网络平台转载后,对公司发展布局和品牌形象造成严重影响,目前已提请相关部门介入调查处理,并将依法追究撰写、发布、转载相关不实报道的网络平台及个人的...。

最新资讯 2024-12-26 21:01:45

今日开播 鱿鱼游戏2 爆火韩剧 主创悉数回归

今日开播 鱿鱼游戏2 爆火韩剧 主创悉数回归

快科技12月26日消息,三年前,韩剧,横空出世,迅速成为全球范围内的文化现象,其YouTube播放量甚至超越了热门剧集,权力的游戏,经过三年的翘首以盼,,鱿鱼游戏,今天终于在网飞平台回归,原班人马再度集结,续写这场的惊心动魄,本季中,第一季的核心创作团队全员到齐,演员阵容仍包括李炳宪、孔刘、魏嘏隽等韩国演员,而李政宰继续担纲男主角...。

最新资讯 2024-12-26 21:02:24

结果被撞还被同事起诉赔钱 好心让同事搭乘电动自行车便车

结果被撞还被同事起诉赔钱 好心让同事搭乘电动自行车便车

快科技12月26日消息,好心让他人搭乘便车,结果发生事故,提供便车的车主需要担责吗,据报道,近日,无锡市锡山区人民法院披露了一起典型案件,报道称,李某与顾某在同一公司工作,一天下班后,看到通勤车迟迟不来,顾某邀请李某搭乘自己的电动自行车回宿舍,李某同意了,但在行驶途中,顾某变道时和另一辆也在变道的轿车相撞,两人均在事故中受伤,交警认定...。

最新资讯 2024-12-26 21:02:39

2025年这7大风口最赚钱单身经济排第一 周鸿祎

2025年这7大风口最赚钱单身经济排第一 周鸿祎

快科技12月26日消息,近日,360集团创始人周鸿祎通过其个人社交账号发布了一条以2025年赚钱7大风口,为主题的视频,在视频中,他指出,2025年7大赚钱风口分别是、、绿色有机食品、出海业务、懒人经济、自媒体以及大模型为代表的技术红利,他在提及排名的单身经济时指出,目前中国单身人口已经超过了2.4亿,但是现在很多年轻人已经不把婚姻当...。

最新资讯 2024-12-26 21:02:59

跨境电商VAT服务商推荐

跨境电商VAT服务商推荐

首页>,传媒>,关键词>,跨境电商最新资讯>,跨境电商VAT服务商推荐——行业翘楚欧税通深度解析保障机构艾瑞咨询正式发布,2024年中国报告,以下简称,报告,,报告显示,拿下多个行业第一的成就——连续3年蝉联中国跨境合规行业市占率第一、跨境合规SaaS服务市占率第一、税务合规SaaS服务市占率第一、产品合规SaaS...。

电商知识 2024-12-27 12:58:57