Skip to content

AtlasLinux/atlas

Repository files navigation

AtlasLinux

AtlasLinux init log

AtlasLinux is a from-scratch Linux distro, where we use as few external libraries as possible. The long-term goal is to only rely on the Linux kernel, with a custom libc, bootloader, etc.

The username is 'root' with password 'root'
If you solely want the .iso, you can get it from the auto-built release.

Developing

Makefile usage

To get started, run

make kernel

to build the kernel using our config (beware, this can take upwards of 1 hour and uses all available cores by default).

Once the kernel is built, the rest of the targets become available.

all: the main target. Builds everything under src/ and installs into atlas.img for quick testing.

modules: installs the specified kernel modules into build/. Pass in a space-seperated list of MODULES to install. If not, installs a default set.

build: builds everything under src/ without installing

install: installs everything under src/ into build/

img: creates atlas.img from the contents of build/

iso: creates an initramfs.cpio.gz from the contents of build/, configures grub and creates atlaslinux-x86_64.iso

run: runs atlas.img

run-iso: runs atlaslinux-x86_64.iso

crun: wrapper for clean and run

crun-iso: wrapper for clean and run-iso

clean: removes build artifacts from build/, iso/ and src/**/build/

For ease of use, run.sh exists to compile, build and install modules/files and run automatically.

Creating an application for AtlasLinux

Atlas' top-level Makefile utilises a clever build system, where is automagically builds all Makefiles within the src/ dir. To get started, create a diractory where the eventual application will be located:

src/
└── bin/
    └── app/

Populate this directory with the following:

app/
├── Makefile
└── src/
    └── main.c      # entrypoint

The Makefile only has to follow a few rules:

  1. Any outputted executables/libraries must be placed in build/
  2. It must have a clean target that removes build/

About

An independently-developed Linux distro, where each component is made by us. No GNU!

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published