From e0aa63bebf68b564bcff508464da2ce3e238d97d Mon Sep 17 00:00:00 2001 From: able Date: Mon, 11 Sep 2023 01:36:13 -0500 Subject: [PATCH] DOC: Improved driver dependencies and such --- DriverDepGraph.dot | 79 ++++++ DriverDepGraph.svg | 677 ++++++++++++++++++++++++++++++++++++++++++++ README.md | 3 + kernel/src/kmain.rs | 1 + 4 files changed, 760 insertions(+) create mode 100644 DriverDepGraph.dot create mode 100644 DriverDepGraph.svg diff --git a/DriverDepGraph.dot b/DriverDepGraph.dot new file mode 100644 index 0000000..ecbeca5 --- /dev/null +++ b/DriverDepGraph.dot @@ -0,0 +1,79 @@ +digraph Drivers { + InitSystem -> VFS; + InitSystem -> Logger; + + TCP -> NetworkingStack; + UDP -> NetworkingStack; + + NetworkingStack -> PhysLayer; + PhysLayer -> Ethernet; + + Ethernet -> Threec90x; + Ethernet -> Intel8254x; + Ethernet -> Ne2000; + Ethernet -> RTL8139; + Ethernet -> RTL8169; + Ethernet -> IntelEtherneti217; + Ethernet -> AMDPCnet; + + PhysLayer -> Wifi; + Wifi -> Eight02Dot11; + + + + + Audio -> PCSpeaker; + Audio -> SoundBlaster16; + + RNG -> CpuRNG; + RNG -> NetworkingStack; + RNG -> GraphicsLibrary; + RNG -> Input; + + Slint -> GraphicsLibrary; + GraphicsLibrary -> ShaderCompiler; + ShaderCompiler -> GraphicsDriver; + GraphicsLibrary -> GraphicsDriver; + // Todo: dreak out the GPU into specific drivers + GraphicsDriver -> GPU; + + Logger -> Serial; + Logger -> VFS; + + Input -> Keyboard; + Input -> GraphicsTablet; + Input -> Mouse; + Input -> Serial; + Input -> Controllers; + + Controllers -> Playstation; + Playstation -> DualShock; + Playstation -> DualSense; + DualShock -> DualShock1; + DualShock -> DualShock2; + DualShock -> DualShock3; + DualShock -> DualShock4; + + + Mouse -> PS2Mouse; + Mouse -> USBMouse; + USBMouse -> GenericUSBMouse; + Mouse -> MouseTrackPad; + Mouse -> MouseTrackPoint; + + VFS -> Fat32; + VFS -> TarFS; + VFS -> Ext2; + + Ext2 -> VirtualDisk; + TarFS -> VirtualDisk; + Fat32 -> VirtualDisk; + + VirtualDisk -> IDEDiskDriver; + VirtualDisk -> ATADiskDriver; + VirtualDisk -> FloppyController; + VirtualDisk -> CDROM; + VirtualDisk -> NVME; + + BlueToothStack; +} \ No newline at end of file diff --git a/DriverDepGraph.svg b/DriverDepGraph.svg new file mode 100644 index 0000000..5dd773f --- /dev/null +++ b/DriverDepGraph.svg @@ -0,0 +1,677 @@ + + + + + + +Drivers + + + +InitSystem + +InitSystem + + + +VFS + +VFS + + + +InitSystem->VFS + + + + + +Logger + +Logger + + + +InitSystem->Logger + + + + + +Fat32 + +Fat32 + + + +VFS->Fat32 + + + + + +TarFS + +TarFS + + + +VFS->TarFS + + + + + +Ext2 + +Ext2 + + + +VFS->Ext2 + + + + + +Logger->VFS + + + + + +Serial + +Serial + + + +Logger->Serial + + + + + +TCP + +TCP + + + +NetworkingStack + +NetworkingStack + + + +TCP->NetworkingStack + + + + + +PhysLayer + +PhysLayer + + + +NetworkingStack->PhysLayer + + + + + +UDP + +UDP + + + +UDP->NetworkingStack + + + + + +Ethernet + +Ethernet + + + +PhysLayer->Ethernet + + + + + +Wifi + +Wifi + + + +PhysLayer->Wifi + + + + + +Threec90x + +Threec90x + + + +Ethernet->Threec90x + + + + + +Intel8254x + +Intel8254x + + + +Ethernet->Intel8254x + + + + + +Ne2000 + +Ne2000 + + + +Ethernet->Ne2000 + + + + + +RTL8139 + +RTL8139 + + + +Ethernet->RTL8139 + + + + + +RTL8169 + +RTL8169 + + + +Ethernet->RTL8169 + + + + + +IntelEtherneti217 + +IntelEtherneti217 + + + +Ethernet->IntelEtherneti217 + + + + + +AMDPCnet + +AMDPCnet + + + +Ethernet->AMDPCnet + + + + + +Eight02Dot11 + +Eight02Dot11 + + + +Wifi->Eight02Dot11 + + + + + +Audio + +Audio + + + +PCSpeaker + +PCSpeaker + + + +Audio->PCSpeaker + + + + + +SoundBlaster16 + +SoundBlaster16 + + + +Audio->SoundBlaster16 + + + + + +RNG + +RNG + + + +RNG->NetworkingStack + + + + + +CpuRNG + +CpuRNG + + + +RNG->CpuRNG + + + + + +GraphicsLibrary + +GraphicsLibrary + + + +RNG->GraphicsLibrary + + + + + +Input + +Input + + + +RNG->Input + + + + + +ShaderCompiler + +ShaderCompiler + + + +GraphicsLibrary->ShaderCompiler + + + + + +GraphicsDriver + +GraphicsDriver + + + +GraphicsLibrary->GraphicsDriver + + + + + +Input->Serial + + + + + +Keyboard + +Keyboard + + + +Input->Keyboard + + + + + +GraphicsTablet + +GraphicsTablet + + + +Input->GraphicsTablet + + + + + +Mouse + +Mouse + + + +Input->Mouse + + + + + +Controllers + +Controllers + + + +Input->Controllers + + + + + +Slint + +Slint + + + +Slint->GraphicsLibrary + + + + + +ShaderCompiler->GraphicsDriver + + + + + +GPU + +GPU + + + +GraphicsDriver->GPU + + + + + +PS2Mouse + +PS2Mouse + + + +Mouse->PS2Mouse + + + + + +USBMouse + +USBMouse + + + +Mouse->USBMouse + + + + + +MouseTrackPad + +MouseTrackPad + + + +Mouse->MouseTrackPad + + + + + +MouseTrackPoint + +MouseTrackPoint + + + +Mouse->MouseTrackPoint + + + + + +Playstation + +Playstation + + + +Controllers->Playstation + + + + + +DualShock + +DualShock + + + +Playstation->DualShock + + + + + +DualSense + +DualSense + + + +Playstation->DualSense + + + + + +DualShock1 + +DualShock1 + + + +DualShock->DualShock1 + + + + + +DualShock2 + +DualShock2 + + + +DualShock->DualShock2 + + + + + +DualShock3 + +DualShock3 + + + +DualShock->DualShock3 + + + + + +DualShock4 + +DualShock4 + + + +DualShock->DualShock4 + + + + + +GenericUSBMouse + +GenericUSBMouse + + + +USBMouse->GenericUSBMouse + + + + + +VirtualDisk + +VirtualDisk + + + +Fat32->VirtualDisk + + + + + +TarFS->VirtualDisk + + + + + +Ext2->VirtualDisk + + + + + +IDEDiskDriver + +IDEDiskDriver + + + +VirtualDisk->IDEDiskDriver + + + + + +ATADiskDriver + +ATADiskDriver + + + +VirtualDisk->ATADiskDriver + + + + + +FloppyController + +FloppyController + + + +VirtualDisk->FloppyController + + + + + +CDROM + +CDROM + + + +VirtualDisk->CDROM + + + + + +NVME + +NVME + + + +VirtualDisk->NVME + + + + + +BlueToothStack + +BlueToothStack + + + \ No newline at end of file diff --git a/README.md b/README.md index a51ad6c..935103a 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,9 @@ TODO - VFS Being (written)[https://git.ablecorp.us/bee/ableos-vfs] by Bee - Disk driver + - IDE Driver + - ATA Driver + - Floppy Driver - A ton more - Port (Slint)[https://slint.dev] - Depends on diff --git a/kernel/src/kmain.rs b/kernel/src/kmain.rs index b3e63e9..550fab2 100644 --- a/kernel/src/kmain.rs +++ b/kernel/src/kmain.rs @@ -38,6 +38,7 @@ pub fn kmain(cmdline: &str, boot_modules: BootModules) -> ! { // TODO: schedule the disk driver from the initramfs // TODO: schedule the filesystem driver from the initramfs + // TODO: Schedule the VFS from initramfs // TODO: schedule the init system from the initramfs let mut executor = crate::task::Executor::default();