Daemons
Daemons, or system services, are a group of ARES programs that provide essential functions. Daemons are located in ring 2 (also known variously as the system services partition, daemon memory, etc.) and, unlike other programs, have fixed process identification (PID) numbers.
Daemons are an example of sleepless programs that are allowed to continue running at all times, unlike typical application programs. Programs are typically implemented in the sleepless style if they need a high-performance event handler, such as a timer, a sensor, a dataserver event handler, or an external listener. The main purpose of a daemon is to provide these facilities to other, non-sleepless scripts; since daemons have a fixed PID and reside in a separated memory partition, user programs can dispatch requests to them in a single chat message, without having to go through the kernel.
The list of currently installed daemons can be obtained with the @proc daemons command, which returns information in a format similar to @proc detail (better known as the @ps alias).
†This channel number is only valid when calling from the kernel or from user memory, and is derived from the ring number (0x2000) and the PID. In general the ARES internal API provides macros to do this automatically. If control via external devices is possible at all, facilities for doing so are described in the individual daemons' documentation.
Daemons are an example of sleepless programs that are allowed to continue running at all times, unlike typical application programs. Programs are typically implemented in the sleepless style if they need a high-performance event handler, such as a timer, a sensor, a dataserver event handler, or an external listener. The main purpose of a daemon is to provide these facilities to other, non-sleepless scripts; since daemons have a fixed PID and reside in a separated memory partition, user programs can dispatch requests to them in a single chat message, without having to go through the kernel.
The list of currently installed daemons can be obtained with the @proc daemons command, which returns information in a format similar to @proc detail (better known as the @ps alias).
Service | PID | Internal Channel†| Function | Product |
---|---|---|---|---|
baseband | 2 | C_BASEBAND (0x7a002002) | miscellaneous network services, local and remote commands, ACS protocol, parsing Stargate telemetry | ARES |
effector | 7 | C_EFFECTOR (0x7a002007) | extended RLVa restriction enforcement and integration, interference, cortex bypass commands | ARES |
hardware | 4 | C_HARDWARE (0x7a002004) | light bus protocol | ARES |
interface | 5 | C_INTERFACE (0x7a002005) | compass, altitude, speedometer, crosshair, general HUD layout, target/destination tracking, UI refresh dispatch | ARES |
io | 3 | C_IO (0x7a002003) | text streams, chat channel listeners, chat channel transmission | ARES |
repair | 8 | C_REPAIR (0x7a002008) | overall integrity, repair, shield, ammo counter | ARES |
sexuality | 10 | C_SEXUALITY (0x7a00200a) | sexual arousal, cryolubricant management | Sexuality (TESI) |
status | 1 | C_STATUS (0x7a002001) | battery level, heat management, gauge display | ARES |
variatype | 6 | C_VARIATYPE (0x7a002006) | display of VariaType text, local menus, alerts | ARES |
warrior | 9 | C_WARRIOR (0x7a002009) | area damage, paper doll OSD, weapon switcher, hardware malfunctions | WARRIOR |
†This channel number is only valid when calling from the kernel or from user memory, and is derived from the ring number (0x2000) and the PID. In general the ARES internal API provides macros to do this automatically. If control via external devices is possible at all, facilities for doing so are described in the individual daemons' documentation.