git.cappig.dev / apheleiaOS.git master

2efdc3f366eade007b22889efea56bb9de71de35 master
cappig <[email protected]> ยท 4 months ago
Modularize drivers and overhaul terminal/account flows

* Add a staged kernel driver manager and migrate x86 + core drivers (ATA/AHCI/xHCI/USB MSC/framebuffer/serial/PS2) into explicit load/unload registrations with busy checks and dependency-safe teardown.

* Rework storage/devfs/USB plumbing for dynamic register/unregister paths (device/hcd/class detach handling, disk busy detection, late /dev publishing, and rootfs mount flow cleanup).

* Unify console/term rendering around shared ANSI/UTF-8/cell/cursor/glyph helpers, add PSF Unicode map support, and switch default fonts/cursor assets to ter-116n-based configuration.

* Add supplementary group support end-to-end (/proc/*/groups, scheduler creds, libc getgroups/setgroups) and wire it into login/su/id/groups plus updated passwd/group/shadow defaults.

* Add new less/su user commands and tighten shell/ls/runtime build tooling (pipeline/wait fixes, escape-key polling, metadata-aware rootfs image staging, stripped user bins, and richer QEMU USB/KVM presets).
166 files changed, 19016 insertions, 10798 deletions
kernel/arch/arch.h +7 -2
kernel/arch/context.h +3 -2
kernel/arch/mm.h +2 -5
kernel/arch/paging.h +3 -1
kernel/arch/syscall.h +1 -1
kernel/arch/x86/ahci.c removed
kernel/arch/x86/ahci.h removed
kernel/arch/x86/arch.c +60 -21
kernel/arch/x86/asm.h +0 -3
kernel/arch/x86/ata.c removed
kernel/arch/x86/ata.h removed
kernel/arch/x86/boot/bios/config.c +30 -0
kernel/arch/x86/boot/bios/disk.c +1 -1
kernel/arch/x86/boot/bios/main.c +4 -4
kernel/arch/x86/boot/bios/vesa.c +1 -1
kernel/arch/x86/boot/uefi/main.c +192 -2
kernel/arch/x86/build/build.mk +4 -0
kernel/arch/x86/drivers/ahci.c created
kernel/arch/x86/drivers/ahci.h created
kernel/arch/x86/drivers/ata.c created
kernel/arch/x86/drivers/ata.h created
kernel/arch/x86/drivers/ps2.c created
kernel/arch/x86/drivers/ps2.h created
kernel/arch/x86/drivers/registry.c created
kernel/arch/x86/drivers/serial.c created
kernel/arch/x86/drivers/serial.h created
kernel/arch/x86/drivers/usb_hcd_common.c created
kernel/arch/x86/drivers/usb_hcd_common.h created
kernel/arch/x86/drivers/usb_xhci.h created
kernel/arch/x86/drivers/usb_xhci_cmd.c created
kernel/arch/x86/drivers/usb_xhci_event.c created
kernel/arch/x86/drivers/usb_xhci_init.c created
kernel/arch/x86/drivers/usb_xhci_internal.h created
kernel/arch/x86/drivers/usb_xhci_port.c created
kernel/arch/x86/drivers/usb_xhci_xfer.c created
kernel/arch/x86/e820.c +2 -2
kernel/arch/x86/idt.c +8 -0
kernel/arch/x86/idt.h +1 -0
kernel/arch/x86/irq.c +54 -36
kernel/arch/x86/irq.h +1 -0
kernel/arch/x86/pic.c +1 -1
kernel/arch/x86/pit.h +1 -1
kernel/arch/x86/ps2.c removed
kernel/arch/x86/ps2.h removed
kernel/arch/x86/serial.h +1 -2
kernel/arch/x86/serial_dev.c removed
kernel/arch/x86/thread.c +2 -2
kernel/arch/x86/tsc.c +5 -5
kernel/arch/x86/usb_hcd_common.c removed
kernel/arch/x86/usb_hcd_common.h removed
kernel/arch/x86/usb_xhci.h removed
kernel/arch/x86/usb_xhci_cmd.c removed
kernel/arch/x86/usb_xhci_event.c removed
kernel/arch/x86/usb_xhci_init.c removed
kernel/arch/x86/usb_xhci_internal.h removed
kernel/arch/x86/usb_xhci_port.c removed
kernel/arch/x86/usb_xhci_xfer.c removed
kernel/build_hybrid_disk_image.py +1 -1
kernel/build_hybrid_iso_image.py +2 -2
kernel/build_image_common.py +92 -43
kernel/drivers/build.mk created
kernel/drivers/framebuffer.c created
kernel/drivers/framebuffer.h created
kernel/drivers/manager.c created
kernel/drivers/manager.h created
kernel/drivers/registry.h created
kernel/drivers/usb_msc.c created
kernel/drivers/usb_msc.h created
kernel/fs/ext2fs.c +7 -29
kernel/lib/boot.h +2 -0
kernel/main.c +11 -32
kernel/sched/scheduler.c +249 -16
kernel/sched/scheduler.h +16 -5
kernel/sys/console.c +479 -458
kernel/sys/cpu.c +1 -1
kernel/sys/cpu.h +2 -1
kernel/sys/devfs.c +123 -35
kernel/sys/devfs.h +5 -0
kernel/sys/disk.c +154 -33
kernel/sys/disk.h +6 -4
kernel/sys/exec.c +20 -0
kernel/sys/framebuffer.h +0 -1
kernel/sys/framebuffer_dev.c removed
kernel/sys/keyboard.c +51 -36
kernel/sys/keyboard.h +0 -24
kernel/sys/mouse.c +42 -29
kernel/sys/mouse.h +2 -14
kernel/sys/pci.c +10 -5
kernel/sys/procfs.c +189 -5
kernel/sys/psf.c +49 -91
kernel/sys/psf.h +1 -0
kernel/sys/pty.c +20 -82
kernel/sys/syscall.c +8 -45
kernel/sys/tty.c +45 -2
kernel/sys/usb.h +5 -0
kernel/sys/usb_core.c +348 -11
kernel/sys/usb_msc.c removed
kernel/sys/usb_msc.h removed
kernel/sys/vfs.c +19 -18
kernel/sys/vfs.h +3 -2
kernel/sys/ws.c +57 -6
libs/base/attributes.h +1 -0
libs/base/macros.h +1 -1
libs/data/bitmap.c +44 -3
libs/data/bitmap.h +5 -0
libs/data/ring.c +132 -11
libs/data/ring.h +17 -0
libs/data/tree.c +34 -7
libs/data/vector.c +52 -6
libs/data/vector.h +2 -0
libs/gui/draw.c +420 -12
libs/gui/draw.h +7 -1
libs/gui/ui.c +53 -22
libs/gui/ui.h +1 -0
libs/libc/sys/ioctl.h +1 -0
libs/libc/sys/proc.h +2 -2
libs/libc_usr/unistd.c +100 -0
libs/libc_usr/unistd.h +2 -0
libs/parse/psf.c +90 -0
libs/parse/psf.h +11 -0
libs/term/ansi.c +385 -0
libs/term/ansi.h +35 -0
libs/term/cells.c created
libs/term/cells.h created
libs/term/cursor.c created
libs/term/cursor.h created
libs/term/glyph.c created
libs/term/glyph.h created
libs/term/utf8.c created
libs/term/utf8.h created
makefile +1 -1
root/boot/loader.conf +5 -1
root/etc/cursors/move.ppm created
root/etc/cursors/pointer_interact.ppm created
root/etc/font.psf removed
root/etc/group +6 -1
root/etc/passwd +1 -0
root/etc/shadow +1 -0
root/etc/ter-116n.psf created
root/etc/wm.conf +1 -0
root/home/john/circles.txt created
user/build.mk +6 -0
user/clock/main.c +283 -15
user/groups/main.c +196 -4
user/id/main.c +228 -2
user/less/less_doc.c created
user/less/less_doc.h created
user/less/less_tty.c created
user/less/less_tty.h created
user/less/main.c created
user/login/main.c +184 -1
user/ls/main.c +79 -51
user/mbrot/main.c +707 -154
user/sh/input.c +43 -3
user/sh/main.c +296 -56
user/su/main.c created
user/term/main.c +366 -100
user/term/term_pty.c +23 -2
user/term/term_screen.c +599 -256
user/term/term_screen.h +0 -1
user/wm/main.c +111 -34
user/wm/wm_cursor.c +10 -11
user/wm/wm_cursor.h +3 -3
user/wm/wm_loop.c +111 -48
user/wm/wm_state.c +122 -119
utils/qemu.mk +47 -3