early dev x86_64 · LFS-based · C++ init · custom shell

DewOS

Experimental Linux distribution. Custom C++ PID 1, framebuffer boot splash, built-in shell, TUI installer, GRUB boot menu. Not production-ready — a learning project and slow build of something real.

§ 001what works
001

What's working.

Custom C++ /init

Mounts /proc /sys /dev. Detects rootfs via /etc/dewos-installed. Draws framebuffer PPM logo + circular loader (or text spinner). Forks installer or login loop.

Built-in shell

Raw mode, cursor blink via select() at 250ms, history ↑↓, inline editing. Commands: ls cd cat dewfetch ps kilo sh netup wifi-scan and more.

dewfetch

Custom ASCII logo in ANSI LIGHT_BLUE/BLUE. Shows kernel, uptime from /proc/uptime, memory from /proc/meminfo, pkg count, color palette.

Network stack

DHCP via udhcpc, Wi-Fi scan via iw, wpa_supplicant debug connect, interface detection, IPv4/route/DNS/ping/HTTP tests.

TUI installer + GRUB

dew-install partitions disk, extracts rootfs to ext4, installs GRUB. ISO menu: cyan/black theme, gfxterm 1024×768×32, three entries.

ps table

Reads /proc/[pid]/comm /stat /statm. Renders cyan box-drawing table: PID, command, RAM, state (Run/Slp/Zmb with colors).

Package manager

drop in design phase. CLI-first, C++. Not shipping yet.

Graphical UI

No X11 or Wayland. Framebuffer terminal only. Future milestone.

§ 002shell demo
002

Shell.

Interactive demo. Replicates read_line() from shell.cpp: raw mode input, 250ms cursor blink, command history.

DewOS shell — demo

          
[dewos@root /root]# |

Tap/click to focus · help · dewfetch · ps · banner · clear · ls

§ 003structure
003

Structure.

DewOS/
├── app/
│   ├── init/
│   │   ├── init.cpp      # PID 1, fb splash
│   │   ├── shell.cpp     # shell_loop, raw
│   │   ├── system.cpp    # login, mounts
│   │   └── network.cpp   # wifi, dhcp, test
│   ├── installer/
│   │   └── dew-install
│   └── include/
│       └── colors.hpp    # CYN GNR BLUE...
├── assets/boot-logo.ppm  # fb splash
├── config/grub.cfg
└── scripts/
    ├── build-iso.sh
    ├── build-initramfs.sh
    └── run.sh
# init.cpp main() sequence:
setup_console();
raw_write("[DewOS] console ready\n");
mount_basic_fs();
raw_write("[DewOS] basic filesystems mounted\n");
rootfs_ready = detect_rootfs();
show_boot_splash();
// fb: PPM logo + 80-frame circular loader
// text: | / - \ * 32 @ 45ms
cmd_clear(); print_banner(); login_loop();
# Prompt (system.cpp make_prompt):
"[dewos@" + user + " " + cwd + "]# "

# Cursor blink (shell.cpp read_line):
timeout.tv_usec = 250000; // 250ms
cursor_visible = !cursor_visible;

# grub.cfg:
color_normal=cyan/black
color_highlight=black/cyan
§ 004download
004

Download.

ISOdewos-latest.iso

Bootable live installer. x86_64, BIOS + UEFI via GRUB 2. Custom C++ /init. Tested in QEMU. Real hardware — early dev, no guarantees.

arch: x86_64boot: GRUB 2init: C++fs: ext4status: early dev
Download
!

ISO may 404 if the kernel hasn't compiled yet. Check GitHub. Drop the file at dewos/dewos-latest.iso in the repo when ready.

§ 005install guide
005

Install guide.

01

Write ISO to USB

USB ≥ 512 MB. This erases it.

# find your USB
lsblk

# replace /dev/sdX — DOUBLE CHECK
sudo dd if=dewos-latest.iso \
        of=/dev/sdX bs=4M \
        status=progress oflag=sync

sudo eject /dev/sdX

macOS: diskutil listdiskutil unmountDisk /dev/diskN → dd.

Download Rufus. Drive → ISO → Partition: MBR → Start.

balenaEtcher — Flash from file → ISO → USB → Flash.

02

Boot from USB

ASUS:     F2/Del    Gigabyte: Del/F12
MSI:      Del       Lenovo:   F1/F2
HP:       Esc/F9    Dell:     F2/F12

Select USB. GRUB shows DewOS menu (cyan/black):

  DewOS Live Installer    # dew.mode=installer
  DewOS Live
  DewOS Live (Debug)

Secure Boot: disable in UEFI — bootloader is unsigned.

03

Boot sequence + installer

[DewOS] console ready
[DewOS] basic filesystems mounted
# framebuffer: PPM logo + circular blue loader
# text fallback: | / - \ × 32 @ 45ms

██████╗ ███████╗██╗    ██╗ ██████╗ ███████╗
██╔══██╗██╔════╝██║    ██║██╔═══██╗██╔════╝
██║  ██║█████╗  ██║ █╗ ██║██║   ██║███████╗
██║  ██║██╔══╝  ██║███╗██║██║   ██║╚════██║
██████╔╝███████╗╚███╔███╔╝╚██████╔╝███████║
╚═════╝ ╚══════╝ ╚══╝╚══╝  ╚═════╝ ╚══════╝

[dewos@root /root]# install
!

Installer wipes the target disk. Run lsblk first.

04

First boot

login: root
password: (set during install)
Welcome to DewOS, root

[dewos@root /root]# help

  dewfetch / ps / ls / cd / cat
  network — detect/scan/dhcp/test
  wifi-scan / sh / kilo
  reboot / poweroff
§ 006QEMU
006

Test in QEMU.

git clone https://github.com/ArtemyStudio/DewOS && cd DewOS

./scripts/check-all.sh        # deps + kernel build
./scripts/fetch-src.sh all
./scripts/build-initramfs.sh
./scripts/build-iso.sh        # → out/dewos.iso

./scripts/run.sh reset-disk
./scripts/run.sh iso          # boot installer
./scripts/run.sh disk         # boot installed
./scripts/run.sh direct       # fast kernel-direct
!

Requires: gcc g++ make grub-mkrescue xorriso qemu-system-x86_64. Kernel compile: 20–60 min.

§ EOFlinks