Skip to content

FrenchPythonLover/IZOS-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

neofetch footage

IZOS: Linux Edition

Lightweight • Modular • Built From Scratch

This is IZOS — the real one, not the Python simulator. IZOS is a Linux distribution built from scratch. It is not based on an existing distro; the entire system, including the Linux kernel, userspace, init system, and tools, is compiled specifically for IZOS.

Features

  • Custom init system
  • Initramfs-based edition
  • Modular extmount system
  • BusyBox userspace
  • Custom sudo implementation
  • Built entirely from source

Contents

What's IZOS

IZOS (pronounced i zede ow ess) is a linux distro I built myself, with the only help being the linux kernel docs.
It can run on systems with RAM as low as 450MB !
I made this because i was bored, but also because i wanted to create a real version of IZOS-Python, a complete OS simulator with a package manager, init and more...
What makes IZOS unique is its modular design.

The modularity of IZOS

IZOS is unique: you can run it off RAM (initramfs edition), but also run a different environment on the same USB, using the homemade extmount system.
Here's what's planned:
On the initramfs edition, there will only be small utilities and minigames to keep the system small.
On the extmount edition, there will be a GUI (X.org), more apps...

Why IZOS?

IZOS started as a Python project. It was one of my first attempts at writing a larger multi-file codebase when I was 9 years old. It's still available and will be maintained here,
but as stated above i started getting bored and wanted a little more challenge, so i thought that making a version that can really be executed on a real hardware without any dependencies would be fun, so here I am !

File structure

Here's the project structure:

root/
├─ apps/ -- initramfs apps source & compiled
├─ apps_ext/ -- extmount apps source & compiled
├─ fs/ -- initramfs filesystem uncompressed
├─ fs_ext/ -- extmount filesystem unimged
├─ linux/ -- Linux kernel source & images
│  ├─ src/ -- Kernel source
|  ├─ compile.sh -- IZOS full compilation script (omitting apps)
|  ├─ bzImage -- IZOS kernel image
|  ├─ initramfs.cpio.gz -- initramfs edition file
├─ createextfs.sh -- extmount fs creation tool 
├─ makeinitramfs.sh -- initramfs gz creation tool
├─ test -- Run initramfs IZOS on qemu
├─ test_ext -- Run extmount IZOS on qemu
├─ (eventually) fs_ext.img -- The extmount filesystem in its IMGed form

What's included

IZOS comes with a bit of programs:

  • Terminal Space Program
  • asciipat
  • htop
  • neofetch
  • nyancat
  • cmatrix
  • busybox & all of its tools
  • nano
  • sudo (home-made)
  • wpa_supplicant (WiFi W.I.P, see Network on IZOS) every one of the above has been tested and runs great on my OS, and fits in a ~80MB compressed file !

How do I run this?

First, let's clone the repository, by either running git clone https://github.com/FrenchPythonLover/IZOS_linux_repo or downloading the repo's ZIP file. Next, you'll need to modify the system root to your preferred language: Open ./fs/etc/init.d/rcS, scroll all the way to the bottom and follow the instructions.
Then, you need to get the initramfs for IZOS, for this you can either get the initramfs from here, then copy it over to linux/,
Or, compile the initramfs for IZOS: Run the command ./makeinitramfs.sh (more on building IZOS below), then grab yourself a coffee and wait, because it's going to take a bit of time.
Let's boot IZOS ! For the moment, you can only run this using QEMU, on Linux.
First of all, install qemu-system-x86_64 on your distro.
Then, to launch ramdisk IZOS, run ./test, a new window will appear: it's the TTY, on the terminal that launched the command however, its the serial output where you can debug IZOS.
Here are the credentials:

Username Password Usage
root none Root user
izos none Normal user

If you want to launch the ext izos, generate the ext file using ./createextfs.sh, then run ./test_ext

Networking

Actually, networking on IZOS might be supported on ethernet but hasn't been tested on ethernet-equipped real hardware.
WiFi is actually in development.

Building IZOS

To build IZOS, just run those commands:

# CD to building directory
cd ./linux
# Clean everything (Recommended)
./clean.sh
# Run build script
./compile.sh

## -- OR only build initramfs (if linux/bzImage is already present)
./makeinitramfs.sh

Boot flow

bootflow image

Roadmap

  • Custom init system
  • BusyBox integration
  • Initramfs edition
  • Extmount support
  • Networking
  • Package manager
  • GUI
  • Installer for real hardware

Contribute

To contribute, please take a look here.

Stats


Made with ❤️ by FrenchPythonLover

About

A small linux distro built with speed and liteness in mind. (W.I.P)

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors