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.
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.
Shell.
Interactive demo. Replicates read_line() from shell.cpp: raw mode input, 250ms cursor blink, command history.
Tap/click to focus · help · dewfetch · ps · banner · clear · ls
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
Install guide.
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 list → diskutil unmountDisk /dev/diskN → dd.
Download Rufus. Drive → ISO → Partition: MBR → Start.
balenaEtcher — Flash from file → ISO → USB → Flash.
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.
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.
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
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.