This repository combines the Lambda kernel, userspace library, and a small set of userspace utilities to act as a "reference implementation" of sorts for the Lambda kernel.
To be able to build Lambda OS, you need the following tools:
gccorclang(Use cross-compiler if necessary)make(orgmakeon BSD systems)cpioeu-readelf(elfutils)- For X86 target
- For floppy image:
mkdosfsmmd+mcopyfrommtools
- For ISO image:
xorrisogrub-mkrescue- GRUB
stage2_eltoritoshould be placed inbuild/CD/boot/grub- This can be found online, or from an installation of GRUB legacy
- For floppy image:
Alternatively, the included build-wrapper.sh script can be used instead
- Target platform (the GCC/binutils target) is set via the
LAMBDA_TARGETenvironment variable- Defaults to
i686-elf - Available options are those with tag
latest-<taget>at https://git.pfarley.dev/lambda-os/-/packages/container/builder/
- Defaults to
- For example:
build-wrapper.sh make floppybuild-wrapper.shwill automatically set theCROSS_COMPILEvariable for the chosen target- Clang not currently supported via this route
To build Lambda OS:
- If first time
- Clone the
lambda-osrepository. - Update submodules:
git submodule update --recursive --init
- Clone the
- If not first time
git pullgit submodule update
- Make:
make- To speed up compilation, add
-j<threads>argument to themakecommand - Defaults to floppy
- For clang:
- Requires special kernel config
make menuconfig- Assumes menuconfig tool is installed
- Not fully supported at this time
- Requires special kernel config
- 1.44MiB floppy target:
make floppy - ISO target:
make cdrom
- For clang:
- For ARMv7:
make ARCH=armv7 CROSS_COMPILE=<gcc prefix>- NOTE: ARMv7 target currently still creates x86 ISO, no image format has yet been selected for this architecture.
- To speed up compilation, add