Gujin is a boot loader for personal computers. It is free software distributed under the GNU General Public License that is written in the C programming language, and is designed to be compiled with the GNU C Compiler and GNU Binary Utilities.
Gujin locates Linux kernel files by scanning all disc volumes and searching for the usual filenames in the root directory and the "/boot" subdirectory of the volume. When searching volumes for files, Gujin only understands the FAT12, FAT16, FAT32, ext2, ext3, and ISO 9660 filesystem formats. Gujin is capable of reading both the standard Linux file format and GNU zip compressed ELF images (filename extension kgz).
Gujin presents a graphical user interface to the user for selecting which disc volume or operating system kernel to bootstrap. It automatically selects the graphics mode to use. When bootstrapping a Linux kernel, it enables the user to select the video mode before invoking the Linux kernel. It also passes information about the keyboard and mouse to the Linux kernel on its command line.
Like most boot managers, Gujin is designed to be able to bootstrap discs and disc volumes that the machine's BIOS is, by itself, not capable of booting. Gujin can bootstrap ATAPI CD-ROMs and DVDs, for example.
Gujin can only access devices that are supported by the machine's firmware. It is not capable of using USB devices such as keyboards, mice, discs, CD-ROMs, or DVDs unless the BIOS provides access to them.
Gujin can load operating system kernels at different physical addresses to the defaults (with specially compiled kernels and modules) in order to leave ISA DMA-able memory free for other uses by the operating system itself, or to forbid kernel code modification by the legacy DMA.
Each flavour of Gujin comes in two sizes: