9 OS & Hardware Abstraction: Overview
This tour shows the core system
, video
, sound
, and network abstraction layers
and their key function prototypes.
This section examines the system interface layer in DOOM.
The i_system.h
header and i_system.c
implementation provide platform-agnostic operations for initialization, timing, memory management, and error handling.
9.0.1 π File: i_system.h
Core system interface layer: platform-agnostic operations like initialization, timing, memory, input, quitting, and error handling.
9.0.2 π File: i_system.h
(lines 34β89)
Defines system function prototypes without implementation details.
9.0.3 π File: i_system.c
Implementation of core system functions for Linux.
The video abstraction layer provides platform-specific graphics operations via i_video.h
and i_video.c
, managing video initialization, screen updates, and palette handling.
9.0.4 π File: i_video.h
Graphics layer for: - Video init - Palette management - Frame updates - VBL sync - Screen reads
9.0.5 π File: i_video.h
(lines 37β55)
Defines graphics-related function prototypes.
9.0.6 π File: i_video.c
Video operations implementation for Unix/X11 environments.
Next weβll look at the sound abstraction layer in i_sound.h
and i_sound.c
, which provides audio device control, sound effects, and music playback.
9.0.7 π File: i_sound.h
Sound abstraction layer: - Sound and music system interface - Lifecycle and runtime control
9.0.8 π File: i_sound.h
(lines 40β69)
Function prototypes for audio init, updates, SFX, and music playback.
9.0.9 π File: i_sound.c
Unix/Linux sound implementation using OSS and /dev/dsp
.
The network abstraction layer in i_net.h
and i_net.c
provides multiplayer networking capabilities using I_InitNetwork
and I_NetCmd
.
9.0.10 π File: i_net.h
Network abstraction layer: - Initializes networking - Handles network commands
9.0.11 π File: i_net.h
(lines 36β38)
Function prototypes for network init and packet handling.
9.0.12 π File: i_net.c
UDP-based networking implementation for multiplayer gameplay.
Youβve seen the header definitions and corresponding Unix-specific implementations for the system
, video
, sound
, and networking
layersβforming DOOMβs OS & hardware abstraction.