12.1 Common devices

These are devices exposed in Ironclad regardless of target system when present, with standardized interfaces.

12.1.1 console

/dev/console wraps architecture-specific debug output channels for use with file operations. For x86-based targets, this is COM1, for ARM-based and SPARC-based targets, this is UART.

If the target implements reading from the debug channels, read will be supported as well. If not implemented, the device will be read-only.

The kernel also uses the debug channels for output, so keep in mind the contentions that can cause. If you are doing a lot of spaced writes, do not be surprised if the kernel pops in the middle! In the other hand, the kernel does not read from the debug channels.

12.1.2 loopback

/dev/loopback is the network loopback device, explained on Loopback.

12.1.3 ramdev

The devices starting by ramdev are virtual devices representing the RAM driver passed by some boot protocols, an FS can be mounted to them, or be otherwise used like any other block device. These RAM devices are read/write, but they cannot grow in size, so changes are constrained to the area the RAM device already has allocated.

12.1.4 random

The device random is equivalent to the one featured in other unix-like kernels. Keep in mind that Ironclad has limited sources of entropy, so the quality of this random numbers is a bit limited. Writing to the source is not allowed, unlike other systems.

/dev/urandom does the same as /dev/random, and is only provided for compatibility.

getrandom is provided as well for avoiding the file interface, and that way avoid certain kinds of DoS attacks.

12.1.5 null/zero

null returns EOF whenever read, and all the write operations are discarded.

zero returns exclusively a stream of zeros when read, and all write operations are discarded.