SerenityOS 手册系统导航:man.serenityos.org 的 8 大章节与线上手册索引解读
【免费下载链接】serenityThe Serenity Operating System 🐞项目地址: https://gitcode.com/GitHub_Trending/se/serenity
本文以仓库内 Meta/Websites/man.serenityos.org/index.md 这份线上手册索引为骨架,系统梳理 SerenityOS 手册(man pages)的章节划分、命名规范与三种阅读方式,并结合仓库内真实的手册源文件(如man(1)、man(7)、pledge(2)、sysctl(8)等)逐章展开说明。读完本文,你将掌握 SerenityOS 手册的组织逻辑,能够在终端、图形界面与在线站点中快速定位任意一份手册页。
手册系统的定位:SerenityOS 文档体系的两大支柱
SerenityOS 的文档体系由两部分构成,这一点在手册man(7)(Base/usr/share/man/man7/man.md)中有明确说明:
- 手册页(man pages):以 Markdown 文件形式组织,存放于系统的
/usr/share/man目录下,面向用户与开发者,覆盖命令、系统调用、库函数、文件格式等主题。 - 开发者文档:位于仓库根目录的 Documentation 文件夹,侧重安装、构建流程与贡献开发。
两者互为补充:手册页面向"这台系统怎么用、接口长什么样",开发者文档面向"如何搭建 SerenityOS 开发环境并参与开发"。
值得一提的设计原则是:手册内容既涵盖标准化主题(如 POSIX 标准 C 库函数),也涵盖 SerenityOS 特有扩展(如自定义文件格式)。SerenityOS 致力于与行业标准规范保持兼容,当某个主题偏离特定规范时,会在对应章节中明确标注。
三种阅读手册的方式
根据 Base/usr/share/man/man7/man.md 的"Programs"小节,用户可以通过三种途径访问手册页:
- 图形界面(GUI):使用
Help应用程序(man/1/Applications/Help),以图形化窗口浏览手册,适合交互式查阅。 - 终端(Terminal):使用标准 POSIX 工具
man(Base/usr/share/man/man1/man.md),在命令行中查找并显示手册页。 - 直接阅读源文件:手动打开
/usr/share/man下的 Markdown 源文件(本文所引用的仓库路径即对应这些源文件)。
章节体系:man1 到 man8
man.serenityos.org/index.md 的本质是一个章节索引页,它将整个 SerenityOS 手册划分为 8 个主要章节(sections),每个章节对应一个独立子目录与在线子页面。仓库中的真实目录结构(Base/usr/share/man)与之完全对应:
| 章节 | 子目录 | 内容定位 | 典型页面(仓库内实例) |
|---|---|---|---|
| Section 1 | man1/ | 用户程序(applets、应用、工具等) | ls、echo、cat、man |
| Section 2 | man2/ | 系统调用(getuid、mount、pledge、sendfd 等) | pledge、unveil、mount、pipe |
| Section 3 | man3/ | 库函数(basename、isatty、POSIX 函数等) | C 库函数手册 |
| Section 4 | man4/ | 特殊文件(audio、mem 等) | 虚拟文件系统伪文件 |
| Section 5 | man5/ | 文件格式(getopt 约定、Shell、SystemServer 等) | GML、Shell、SystemServer、ini |
| Section 6 | man6/ | 游戏(2048、Chess、FlappyBug 等) | 2048 |
| Section 7 | man7/ | 杂项(mitigations、sys 文件系统、SystemServer 等) | man、Mitigations |
| Section 8 | man8/ | 系统管理工具(dmesg、pls、sysctl、useradd 等) | sysctl、dmesg、useradd、mount |
man(7)中对各章节的官方定义如下:
- User Programs—— 普通用户应用程序与工具的手册;
- System Calls—— SerenityOS 系统调用接口文档;
- Library Functions—— SerenityOS C 库函数文档;
- Special Files—— SerenityOS 虚拟文件系统中伪文件(pseudo-files)的文档;
- File Formats—— SerenityOS 特有文件格式的文档;
- Games—— SerenityOS 游戏的手册;
- Miscellanea—— 无法归入其他类别的各种文档;
- Sysadmin Tools—— 面向系统管理的服务与工具手册。
官方同时注明:章节划分未来可能调整("Sections are subject to change in the future"),因此以仓库当前状态为准。
章节内容实例解读
Section 1:用户程序(man1)
man1是仓库中页面最多的目录,包含Applications/子目录(图形应用手册)以及大量命令行工具手册,如ls、cat、echo、grep、find、man等。
以ls(Base/usr/share/man/man1/ls.md)为例,其开头结构为:
## Name ls - list directory contents ## Synopsis $ ls [options...] [path...]每份手册页均遵循统一的 Markdown 模板:Name(名称与一句话说明)、Synopsis(语法)、Description(描述)、Options(选项)、Examples(示例)、Files(相关文件)、See Also(参见)。
Section 2:系统调用(man2)
man2收录 SerenityOS 系统调用接口,仓库中可见pledge、unveil、mount、pipe、sendfd、recvfd、getuid、setuid、futex、accept等页面。
以安全性相关的pledge(Base/usr/share/man/man2/pledge.md)为例:
## Name pledge - reduce process capabilities ## Synopsis #include <unistd.h> int pledge(const char* promises, const char* execpromises);系统调用页的Synopsis使用 C/C++ 原型,并给出所需头文件,方便开发者直接参照调用。
Section 3:库函数(man3)
man3收录 C 库函数文档,涵盖 POSIX 标准函数(如basename、isatty)以及 SerenityOS 扩展函数,是应用程序开发者的日常参考章节。
Section 4:特殊文件(man4)
man4描述虚拟文件系统中具有特殊语义的伪文件,例如音频设备、内存映射等,通常位于/dev或/proc等特殊路径之下。
Section 5:文件格式(man5)
man5是 SerenityOS 特有格式的集中地。仓库中可见GML(图形标记语言)、Shell(Shell 脚本语法)、SystemServer(系统服务配置文件)、ini(INI 配置文件格式)、Network、af(Audio 文件格式)、font、clipboard、drag-and-drop、getopt等页面。
其中GML(Base/usr/share/man/man5/GML.md)这类页面不仅定义格式本身,还常包含详细的元素/属性表格与示例,是开发 SerenityOS 图形界面时的重要参考资料。
Section 6:游戏(man6)
man6收录系统自带游戏的手册。以2048(Base/usr/share/man/man6/2048.md)为例,其页面还会内嵌应用图标与"Open"启动链接,通过launch://协议直接启动对应游戏程序,Synopsis 形如$ 2048。
Section 7:杂项(man7)
man7收纳跨领域文档,仓库中包含man(手册系统本身的说明)、Mitigations(安全缓解措施)、sys(sys 文件系统)等页面。上文多处引用的 Base/usr/share/man/man7/man.md 正是该章节的代表作。
Section 8:系统管理工具(man8)
man8收录需要 root 权限或面向系统管理场景的工具。仓库中可见sysctl、dmesg、pls、mount、umount、useradd、userdel、usermod、groupadd、ping、lsblk、lspci以及EchoServer、TelnetServer、WebServer等服务程序。
以sysctl(Base/usr/share/man/man8/sysctl.md)为例,其文档明示了运行前提与风险:
# sysctl [-a] [-w] [variable[=value]...] sysctl is a utility for managing kernel configuration parameters at runtime. This requires root privileges, and can crash your system. Available parameters are listed under /sys/kernel/conf/.其中-a显示全部内核参数及取值,-w设置参数值,可用参数位于/sys/kernel/conf/下。
子章节(Subsections):分类与命名
除 8 个主章节外,SerenityOS 手册还支持**子章节(subsections)**机制,用于组织主章节内的大型主题集合。其特点如下:
- 子章节拥有自己的页面(通常为目录页或总览页),因此它同时兼具"分类"与"页面"两种身份;
- 子章节可以任意嵌套;
- 由于子章节变动频繁,
man(7)明确不在文档中固定列举当前存在的子章节,而是以仓库实际内容为准。
仓库中的典型子章节示例包括:
man1/Applications/:图形应用程序手册集合(如Help位于 Base/usr/share/man/man1/Applications/Help.md);man5下的GML(Base/usr/share/man/man5/GML.md),其内部子页面采用GML/Widget/Button(5)这样的带斜杠完整命名。
命名约定:POSIX 风格与斜杠路径
SerenityOS 手册遵循标准 POSIX 命名约定:页面名称后用方括号标注章节号。例如:
man(1)—— 名为man的程序;man(7)—— 关于手册系统本身的说明页;Mitigations(7)—— 安全缓解措施说明页。
对于子章节内的页面,则使用带斜杠的目录式记法,例如GML/Widget/Button(5),其完整名称即"子章节GML(5)中的Widget/Button页面"。
在命令行打开页面时,章节号与页面名分开传入,例如:
$ man 7 man # 打开 man(7),即手册系统说明 $ man 1 man # 打开 man(1),即 man 程序本身 $ man 7 Mitigations终端阅读:man 程序的使用
Base/usr/share/man/man1/man.md 给出了终端阅读的完整用法:
$ man page $ man section page常用操作示例:
$ man echo # 打开 echo 命令的文档(自动匹配章节) $ man 1 mkdir # 打开 mkdir 命令(Section 1)的文档 $ man 2 mkdir # 打开 mkdir() 系统调用(Section 2)的文档关键选项:
-P pager/--pager pager:指定将手册页内容管道送达的分页器(pager)。
man程序会从/usr/share/man目录查找手册页,例如man(1)自身的源文件位于/usr/share/man/man1/man.md(对应仓库路径 Base/usr/share/man/man1/man.md)。默认情况下,终端中的分页器是less(参见 Base/usr/share/man/man1/less.md)。
在线手册站点与仓库的关系
man.serenityos.org 是 SerenityOS 手册的在线发布站点。仓库中的 Meta/Websites/man.serenityos.org 目录包含该站点的构建资源:
index.md:本站索引页,即本文解析的核心文档,仅由 8 条章节链接构成;banner-preamble.inc与banner.png:站点页头的横幅模板与横幅图片;add-anchors.lua:用于为生成的 HTML 页面添加锚点的构建脚本;cant-run-application.md:站点上的辅助说明页面。
该站点的构建管线会将 Base/usr/share/man 下的 Markdown 手册源文件渲染为按章节组织的 HTML 页面(man1/index.html至man8/index.html)。因此,仓库中Base/usr/share/man目录才是手册内容的唯一事实来源,而 Meta/Websites/man.serenityos.org/index.md 扮演的是"章节门户"角色——它通过 8 条链接将访客引导到对应章节,与终端里man的章节划分保持完全一致。
快速导航速查
| 你想查什么 | 章节 | 命令示例 | 在线入口 |
|---|---|---|---|
| 某个命令怎么用 | 1 | man 1 ls | man1/index.html |
| 某个系统调用签名 | 2 | man 2 pledge | man2/index.html |
| 某个 C 库函数 | 3 | man 3 basename | man3/index.html |
| 特殊文件/伪文件 | 4 | man 4 mem | man4/index.html |
| 文件格式与配置文件 | 5 | man 5 GML | man5/index.html |
| 系统游戏玩法 | 6 | man 6 2048 | man6/index.html |
| 杂项主题(缓解措施等) | 7 | man 7 Mitigations | man7/index.html |
| 系统管理工具 | 8 | man 8 sysctl | man8/index.html |
需要指出的是,索引页 Meta/Websites/man.serenityos.org/index.md 本身仅提供导航骨架(8 个章节链接),而每一章节内的实质内容(命令选项、调用原型、格式定义、示例与风险提示)均沉淀于Base/usr/share/man下的各章节手册源文件中。查阅时,既可在终端直接man,也可打开Help应用,或浏览在线站点与仓库源文件——三条路径指向同一套内容,任选其一即可。
【免费下载链接】serenityThe Serenity Operating System 🐞项目地址: https://gitcode.com/GitHub_Trending/se/serenity
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考