☰
SerenityOS 手册系统导航:man.serenityos.org 的 8 大章节与线上手册索引解读
2026/9/28 8:25:35 网站建设 项目流程

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"小节,用户可以通过三种途径访问手册页:

  1. 图形界面(GUI):使用Help应用程序(man/1/Applications/Help),以图形化窗口浏览手册,适合交互式查阅。
  2. 终端(Terminal):使用标准 POSIX 工具man(Base/usr/share/man/man1/man.md),在命令行中查找并显示手册页。
  3. 直接阅读源文件:手动打开/usr/share/man下的 Markdown 源文件(本文所引用的仓库路径即对应这些源文件)。

章节体系:man1 到 man8

man.serenityos.org/index.md 的本质是一个章节索引页,它将整个 SerenityOS 手册划分为 8 个主要章节(sections),每个章节对应一个独立子目录与在线子页面。仓库中的真实目录结构(Base/usr/share/man)与之完全对应:

章节子目录内容定位典型页面(仓库内实例)
Section 1man1/用户程序(applets、应用、工具等)ls、echo、cat、man
Section 2man2/系统调用(getuid、mount、pledge、sendfd 等)pledge、unveil、mount、pipe
Section 3man3/库函数(basename、isatty、POSIX 函数等)C 库函数手册
Section 4man4/特殊文件(audio、mem 等)虚拟文件系统伪文件
Section 5man5/文件格式(getopt 约定、Shell、SystemServer 等)GML、Shell、SystemServer、ini
Section 6man6/游戏(2048、Chess、FlappyBug 等)2048
Section 7man7/杂项(mitigations、sys 文件系统、SystemServer 等)man、Mitigations
Section 8man8/系统管理工具(dmesg、pls、sysctl、useradd 等)sysctl、dmesg、useradd、mount

man(7)中对各章节的官方定义如下:

  1. User Programs—— 普通用户应用程序与工具的手册;
  2. System Calls—— SerenityOS 系统调用接口文档;
  3. Library Functions—— SerenityOS C 库函数文档;
  4. Special Files—— SerenityOS 虚拟文件系统中伪文件(pseudo-files)的文档;
  5. File Formats—— SerenityOS 特有文件格式的文档;
  6. Games—— SerenityOS 游戏的手册;
  7. Miscellanea—— 无法归入其他类别的各种文档;
  8. 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的章节划分保持完全一致。

快速导航速查

你想查什么章节命令示例在线入口
某个命令怎么用1man 1 lsman1/index.html
某个系统调用签名2man 2 pledgeman2/index.html
某个 C 库函数3man 3 basenameman3/index.html
特殊文件/伪文件4man 4 memman4/index.html
文件格式与配置文件5man 5 GMLman5/index.html
系统游戏玩法6man 6 2048man6/index.html
杂项主题(缓解措施等)7man 7 Mitigationsman7/index.html
系统管理工具8man 8 sysctlman8/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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询