System Layer

Purpose

The system layer provides platform-independent I/O abstraction.

Components

  • IOSystem: Handle factory

  • FileHandle: File system I/O

  • MemoryHandle: In-memory buffers

Design

IOSystem
   ├── open(filename, mode) → Handle
   └── close(handle)

Handle (interface)
   ├── read(size) → data
   ├── write(data) → bytes_written
   ├── seek(offset, whence) → position
   ├── tell() → position
   ├── eof?() → boolean
   ├── size() → total_size
   └── close()