Skip to content

vvnikitin/sdcboot

 
 

Repository files navigation

This repository contains the following:

- FreeDOS 1.1 with all source and tools
- GNU Textutils compiled for FreeDOS, with all source and tools
- A submodule containing the syslinux repository, for memdisk
- A submodule containing a program for retrieving arguments to memdisk
- A submodule for iPXE, for non-DOS network booting
- A replacement for the BIOS int 0x14 service that actually works
- Glue for building the FreeDOS-related portions of the SDC boot system

This repository serves three main purposes: first, it contains the
original sources for all DOS-related binaries.  Since we don't have any
ability to build them, they aren't really useful, but we still need them
due to licensing requirements.  Second, this repository assembles a
FreeDOS boot environment usable on a USB key for Firmware Diagnostics
and Upgrade Mode.  This is not (currently) used by the SmartOS
distribution.  Finally, it builds an iPXE binary for use when netbooting
compute nodes.

Note that there are a number of places where we use binaries checked in
rather than building them ourselves.  These are:

- memdisk (could be built from the syslinux repo)
- getargs.com (could be built from the memdisk_getargs repo)
- most of FreeDOS (could be built from the sources)
- the boot sector (could be built from FreeDOS sources, with effort)
- the GNU utilities for DOS (could be built from their sources)

In most cases, we do this because building these would require tools we
do not have or that would be difficult or time-consuming to port,
notably OpenWatcom.  In the case of syslinux, we avoid building because
the single tool we want is tied up within a giant hairball that has
deeply embedded assumptions that it is building on GNU/Linux.  We avoid
building small assembly programs like the boot block because most DOS
assembly programs tend to be written for NASM rather than the AT&T or
GNU assemblers that are available to us.  Each and every one of these
could be fixed simply by doing work, but it's unlikely that most or any
of these will need to be modified, and so it seems not worth the effort.
If we do later need to change any of these before we finally rid
ourselves of the need for them, we can revisit then.  In any case, for
those who so desire, all of the source is included here or in
submodules.  Changes to build from source would generally be welcome.

About

SDC FDUM environment

Resources

Stars

Watchers

Forks

Packages

No packages published