Skip to content

DOSFeatures

Michal Schulz edited this page Oct 31, 2018 · 3 revisions

DOS Features

Under the hood

Although ARIX provides most IO operations using the underlying linux kernel, it provides some features known from AmigaOS operating system, such as Volumes, Devices or Assigns. Their implementation is discussed in subsequent sections.

Base directory layout

Once ARIX is booted it creates a tmp filesystem under the /temp/.arix mount point. This mount point does not propagate across fork/execve calls and remains fully private for the lifetime of ARIX process. Within this directory subdirectories named .assigns, .volumes and .devices are created. They will be populated by assigns of any kind, mounted volumes and available devices.

Assigns

An Assign of name X is a directory within the afore mentoned tmp filesystem, e.g. /tmp/.arix/.assigns/X. The contents of this directory depends solely on the type of assign:

  • Regular assign - contains objects named by ordinal numbers starting from 0, each of them being a symbolic link to assigned target.

  • Late binding assign - contains single symbolic link named defer. The first time the assign is accessed, the target will of the link will be read, evaluated and symlinked under the 0 name. The assign will be thus converted to regular one.

  • Path assign - contains single file named path. The file itself is a symbolic link whereas the target of the link is resolved every time the assign is accessed.

Example directory layout

Below an example directory layout for several assigns is shown. Here, SYS is a regular assign pointing to the System volume. The UNIX assign is pointing to the root directory of linux. The assign LIBS is pointing to two locations: directory Libs on volume System (primary target) and directory Classes on the same volume (the first secondary target). Finally, IMAGES is a DEFER assign type, i.e. late binding assign. During first access the SYS:System/Images path will be resolved and the assign will be converted to a regular one, probably pointing to the directory System/Images of the System volume. The last one, the TEST is a path assign and its associated target, i.e. USB0:data will be resolved every time the assign is accessed.

/tmp/
  .arix/
    .assigns/
      SYS/
        0 -> /tmp/.arix/.volumes/System
      UNIX/
        0 -> /
      LIBS/
        0 -> /tmp/.arix/.volumes/System/Libs
        1 -> /tmp/.arix/.volumes/System/Classes
      IMAGES/
        defer -> SYS:System/Images
      TEST/
        path -> USB0:data

Devices

Volumes

Clone this wiki locally