mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:27:45 +00:00
Help+Base: Add help://man URLs for links between man pages
The URLs of the form `help://man/<section>/<page>` link to another help page inside the help application. All previous relative page links are replaced by this new form. This doesn't change any behavior but it looks much nicer :^) Note that man doesn't handle these new links, but the previous relative links didn't work either.
This commit is contained in:
parent
becf74097e
commit
98c0c5e9e6
73 changed files with 177 additions and 165 deletions
|
@ -1,6 +1,6 @@
|
|||
## Name
|
||||
|
||||
Overview of the SerenityOS audio subsystem, including a brief description of [`/dev/audio`](../man4/audio.md), the AudioServer and their interfaces.
|
||||
Overview of the SerenityOS audio subsystem, including a brief description of [`/dev/audio`](help://man/4/audio), the AudioServer and their interfaces.
|
||||
|
||||
## Description
|
||||
|
||||
|
@ -12,7 +12,7 @@ SerenityOS structures audio into three groups of responsibilities: Audio drivers
|
|||
|
||||
AudioServer is responsible for handling userland audio clients and talking to the hardware. For this reason, no userland application should ever need to write to `/dev/audio` directly, except for special cases in which AudioServer is not present.
|
||||
|
||||
As with all system servers, AudioServer provides an IPC interface on `/tmp/portal/audio`. For specifics on how to talk to AudioServer, the IPC interface specifications are the best source of information. Audio clients send audio buffers with the standard audio format (see [audio](../man4/audio.md)) to the server. They can then query the state of these buffers, pause buffer playback or clear the playing buffers. For controlling mixer functionality, clients have the ability to obtain and change their own volume, or the main volume and mute state.
|
||||
As with all system servers, AudioServer provides an IPC interface on `/tmp/portal/audio`. For specifics on how to talk to AudioServer, the IPC interface specifications are the best source of information. Audio clients send audio buffers with the standard audio format (see [audio](help://man/4/audio)) to the server. They can then query the state of these buffers, pause buffer playback or clear the playing buffers. For controlling mixer functionality, clients have the ability to obtain and change their own volume, or the main volume and mute state.
|
||||
|
||||
In reverse, AudioServer has "event" calls that the client receives. These are: A client buffer finished playing (useful for queuing the next buffer), various mixer states changed (main volume, main mute, client volume).
|
||||
|
||||
|
@ -37,7 +37,7 @@ This is a non-exhaustive list of applications that use audio. Most of these foll
|
|||
* **Piano** is a sequencer/tracker and synthesizer.
|
||||
* **aplay** is a command line audio file playback utility.
|
||||
* **SoundPlayer** is a UI audio file player with extra features such as playlist support and audio visualizations.
|
||||
* [**asctl**](../man1/asctl.md) is a command line audio server control utility.
|
||||
* [**asctl**](help://man/1/asctl) is a command line audio server control utility.
|
||||
* **Applets/Audio** (AudioApplet) is a taskbar applet for setting audio parameters through a UI.
|
||||
|
||||
### Volume
|
||||
|
@ -56,11 +56,11 @@ Although the sample rate can change at any time, it is considered a rarely-chang
|
|||
|
||||
## Files
|
||||
|
||||
* [/dev/audio](../man4/audio.md)
|
||||
* [/dev/audio](help://man/4/audio)
|
||||
* AudioApplet and AudioServer have settings which are managed by ConfigServer.
|
||||
* `/tmp/portal/audio`: AudioServer's IPC socket
|
||||
|
||||
## See also
|
||||
|
||||
* [asctl](../man1/asctl.md)
|
||||
* [aplay](../man1/aplay.md)
|
||||
* [asctl](help://man/1/asctl)
|
||||
* [aplay](help://man/1/aplay)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## Welcome to the SerenityOS on-line help system!
|
||||
|
||||
This is **Help**, the built-in documentation viewer for the SerenityOS desktop environment. If you prefer a command-line interface, the [man](../man1/man.md) command offers a text-only view of the same library.
|
||||
This is **Help**, the built-in documentation viewer for the SerenityOS desktop environment. If you prefer a command-line interface, the [man](help://man/1/man) command offers a text-only view of the same library.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
@ -312,5 +312,5 @@ Build: Pass "-z separate-code" to linker
|
|||
|
||||
## See also
|
||||
|
||||
* [`unveil`(2)](../man2/unveil.md)
|
||||
* [`pledge`(2)](../man2/pledge.md)
|
||||
* [`unveil`(2)](help://man/2/unveil)
|
||||
* [`pledge`(2)](help://man/2/pledge)
|
||||
|
|
|
@ -26,7 +26,7 @@ The value of this variable is used to determine which entries are kept in the Sh
|
|||
- `ignoreboth`: The behavior of `ignorespace` and `ignoredups` is combined
|
||||
- If the variable is unset (this is the default) or has any other value than the above, no entries will be excluded from history.
|
||||
|
||||
Note: This variable is respected by every program using `Line::Editor`, e.g. [`js`(1)](../man1/js.md).
|
||||
Note: This variable is respected by every program using `Line::Editor`, e.g. [`js`(1)](help://man/1/js).
|
||||
|
||||
`HISTFILE` (environment)
|
||||
|
||||
|
|
|
@ -23,11 +23,11 @@ between socket creation and the client trying to connect to those sockets.
|
|||
When a service is spawned, SystemServer passes it an open file descriptor to the
|
||||
configured socket as fd 3, and sets `SOCKET_TAKEOVER=1` in the environment to
|
||||
inform the service that socket takeover is happening. SystemServer calls
|
||||
[`listen`(2)](../man2/listen.md) on the file descriptor, so the service doesn't
|
||||
[`listen`(2)](help://man/2/listen) on the file descriptor, so the service doesn't
|
||||
need to do it again. The file descriptor does not have the `FD_CLOEXEC` flag set
|
||||
on it.
|
||||
|
||||
The service is advised to set this flag using [`fcntl`(2)](../man2/fcntl.md) and
|
||||
The service is advised to set this flag using [`fcntl`(2)](help://man/2/fcntl) and
|
||||
unset `SOCKET_TAKEOVER` from the environment in order not to confuse its
|
||||
children.
|
||||
|
||||
|
@ -48,4 +48,4 @@ the accepted socket to the service process.
|
|||
|
||||
## See also
|
||||
|
||||
* [`SystemServer`(5)](../man5/SystemServer.md)
|
||||
* [`SystemServer`(5)](help://man/5/SystemServer)
|
||||
|
|
|
@ -49,7 +49,7 @@ List of options:
|
|||
be configured in a periodic mode. **`nonperiodic`** - The High Precision Event Timer should eb configure din non-periodic mode.
|
||||
|
||||
* **`init`** - This parameter expects the fully qualified path to the init program the Kernel should launch after boot.
|
||||
This defaults to [`SystemServer`(7)](../man7/SystemServer.md).
|
||||
This defaults to [`SystemServer`(7)](help://man/7/SystemServer).
|
||||
|
||||
* **`init_args`** - This parameter expects a set of arguments to pass to the **`init`** program.
|
||||
The value should be a set of strings separated by `,` characters.
|
||||
|
@ -80,4 +80,4 @@ List of options:
|
|||
|
||||
## See also
|
||||
|
||||
* [`SystemServer`(7)](../man7/SystemServer.md).
|
||||
* [`SystemServer`(7)](help://man/7/SystemServer).
|
||||
|
|
|
@ -67,7 +67,7 @@ reset the the offset to 0.
|
|||
|
||||
## See also
|
||||
|
||||
* [`mount`(2))](../man2/mount.md).
|
||||
* [`boot_parameters`(7))](boot_parameters.md).
|
||||
* [`pledge`(2))](../man2/pledge.md).
|
||||
* [`unveil`(2))](../man2/unveil.md).
|
||||
* [`mount`(2))](help://man/2/mount).
|
||||
* [`boot_parameters`(7))](help://man/7/boot_parameters).
|
||||
* [`pledge`(2))](help://man/2/pledge).
|
||||
* [`unveil`(2))](help://man/2/unveil).
|
||||
|
|
|
@ -24,7 +24,7 @@ In some instances, it is useful for a SUID binary to either temporarily or perma
|
|||
|
||||
To make this possible, each process has *three* user (and group) IDs: The (real) user ID, the *effective* user ID, and the *saved* user ID. When a process executes a normal binary, all three IDs are set to the parent process's user ID. However, when a process executes a SUID binary, the process runs with the parent process's ID as its real ID, but it takes its effective ID and saved ID from the binary. (Analogously for the group ID for SGID binaries.)
|
||||
|
||||
The function [`setresuid`(2)](../man2/getresuid.md) can change the real, effective, and saved user ID of a process -- but for non-root processes it is only valid to set each new ID to the current value of real, effective, or saved user ID. Since SUID binaries start with the binary's owner as effective and saved user ID and with the current user's ID as real user ID, this allows switching the effective user ID between the SUID owner's ID and the current user's ID.
|
||||
The function [`setresuid`(2)](help://man/2/getresuid) can change the real, effective, and saved user ID of a process -- but for non-root processes it is only valid to set each new ID to the current value of real, effective, or saved user ID. Since SUID binaries start with the binary's owner as effective and saved user ID and with the current user's ID as real user ID, this allows switching the effective user ID between the SUID owner's ID and the current user's ID.
|
||||
|
||||
Hence, to temporarily drop SUID privileges, set the effective ID to a less privileged user ID, and store the current effective user ID in the saved user ID so that it can be restored in a later call:
|
||||
|
||||
|
@ -63,9 +63,9 @@ For historical reasons, there are many functions for setting and getting these I
|
|||
## See also
|
||||
|
||||
* "Setuid Demystified", Proceedings of the 11th USENIX Security Symposium, August 2002, Pages 171–190
|
||||
* [`getresuid`(2) / `getresgid`(2)](../man2/getresuid.md)
|
||||
* [`geteuid`(2) / `getegid`(2)](../man2/geteuid.md)
|
||||
* [`getuid`(2) / `getgid`(2)](../man2/getuid.md)
|
||||
* [`seteuid`(2) / `setegid`(2)](../man2/seteuid.md)
|
||||
* [`setuid`(2) / `setgid`(2)](../man2/setuid.md)
|
||||
* [`setresuid`(2) / `setresgid`(2)](../man2/setresuid.md)
|
||||
* [`getresuid`(2) / `getresgid`(2)](help://man/2/getresuid)
|
||||
* [`geteuid`(2) / `getegid`(2)](help://man/2/geteuid)
|
||||
* [`getuid`(2) / `getgid`(2)](help://man/2/getuid)
|
||||
* [`seteuid`(2) / `setegid`(2)](help://man/2/seteuid)
|
||||
* [`setuid`(2) / `setgid`(2)](help://man/2/setuid)
|
||||
* [`setresuid`(2) / `setresgid`(2)](help://man/2/setresuid)
|
||||
|
|
|
@ -49,4 +49,4 @@ reset the the offset to 0.
|
|||
|
||||
## See also
|
||||
|
||||
* [`mount`(2))](../man2/mount.md).
|
||||
* [`mount`(2))](help://man/2/mount).
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue