Commit Graph

316 Commits

Author SHA1 Message Date
Bananymous e7a170c89f Kernel: 64 bit MMU now properly identity maps kernel 2023-05-05 14:19:28 +03:00
Bananymous 55bb0084aa Kernel: namespace and function renames
MMU moved to namespace kernel
Kernel::Memory::Heap moved to just Kernel
MMU::map_{page,range} renamed to identity_map_{page,range}

Add MMU::get_page_flags
2023-04-28 14:48:38 +03:00
Bananymous dc0f8b383f Kernel: Usespace threads now have an interrupt stack 2023-04-25 14:49:18 +03:00
Bananymous f1a0625b61 Kernel: TSS stack can be set after initialization 2023-04-25 14:48:12 +03:00
Bananymous 02b961fd7e Kernel: Stack pointer out of bounds now panics with a message 2023-04-25 13:40:55 +03:00
Bananymous cd74b2167d LibC: Write mostly functioning stdio 2023-04-23 14:32:37 +03:00
Bananymous 792fad2a03 Kernel: d{print,warn,error}ln(...) now has a spinlock 2023-04-22 17:58:51 +03:00
Bananymous cc04990ce3 Kernel: Process now frees up its pages on destruction 2023-04-22 16:54:46 +03:00
Bananymous 7530482cc2 Kernel: Cleanup process creation for userspace 2023-04-22 16:51:50 +03:00
Bananymous fadce063a7 Kernel: Usespace programs are now ran through ELF files
only 64 bit elf files are supported for now.
2023-04-22 15:35:32 +03:00
Bananymous 9c506ef85b Kernel: Stack pointer is validated when updated
This allows us not to fail stack pointer when in syscall since
interrupts use their own stack
2023-04-21 10:40:24 +03:00
Bananymous b1c7af38d0 Kernel: Add barebones per process virtual addresses
We now assign every (userspace) process its own MMU which we load
in scheduler. This allows every process to have separate virtual
address space.

This is very hackish implementations but it works for now
2023-04-20 00:45:41 +03:00
Bananymous ea0c9b639f Kernel: Add some bareboness functionality to map virtual addresses 2023-04-19 23:51:36 +03:00
Bananymous 0030f035be Kernel: Rename MMU::{un,}allocate... to MMU::{un,}map
This is more appropriate name for the behaviour :D
2023-04-19 21:50:30 +03:00
Bananymous e8a0df54b1 Kernel: ATAController will fail to initialize in native mode 2023-04-19 17:29:36 +03:00
Bananymous 33393335c8 Kernel: PCI devices now report their prog_if 2023-04-19 16:43:05 +03:00
Bananymous a9a15ea2c0 Kernel: init2 is now launched as a process instead of thread
Also only process can now add threads to scheduler. Nobody should
have raw access to scheduler and everything should be through
Process::current() or irqs (reschedules)
2023-04-19 00:39:06 +03:00
Bananymous d63716db96 Kernel: Process is not reference counted any more
This was not necessary and it made things needlessly complicated
2023-04-19 00:34:18 +03:00
Bananymous 96ac072166 Kernel: Heap allows us to take free pages.
The API is kinda weird and will probably be reworked in near future
but this will work for now :)
2023-04-18 10:18:15 +03:00
Bananymous 295a27f16a Kernel: Panic wont print stacktrace if it has already paniced
This prevents stack trace dump to panic and loop
2023-04-18 10:18:15 +03:00
Bananymous 88f60b5e41 Kernel: Map all ACPI tables on initialization
This makes their usage much easier and less error prone

They won't mapped be processes when we get to there, so this won't be
a problem
2023-04-18 10:18:15 +03:00
Bananymous c5347e6707 Kernel: Reorder boot initialization
We now create the TTY as soon as possible so we can show console
output without serial port.
2023-04-18 10:18:15 +03:00
Bananymous bf0c7b9ae8 Kernel: Heap implementation can now give free pages from all of RAM 2023-04-18 10:18:15 +03:00
Bananymous 633929629c Kernel: Start working on heap 2023-04-18 10:18:15 +03:00
Bananymous fdb4eb6042 Kernel: Move kmalloc and MMU to Memory directory 2023-04-18 10:18:15 +03:00
Bananymous 8ee63f8264 Kernel: We can create basic userspace processes
These are still allocated on the kernel memory
2023-04-12 17:52:36 +03:00
Bananymous 34358b8471 Kernel: Scheduler can now terminate processes threads 2023-04-12 17:49:04 +03:00
Bananymous 3201c3654e Kernel: Threads now use only 4 KiB stack :) 2023-04-12 00:22:08 +03:00
Bananymous 5810a77cbf Kernel: Mark Scheduler::start() as noreturn as appropriate 2023-04-11 23:33:20 +03:00
Bananymous aa2aee684b Kernel: remove message from BAN::Error
We don't store the error message anymore in BAN::Error.
Instead we store a error code that can be mapped into a string.
This allows BAN::Error to only take 4 bytes instead of 128.

We should also make some kernel initialization just panic instead
of returning errors since they are required for succesfull boot
anyway.
2023-04-11 23:25:21 +03:00
Bananymous cfa025acae BAN: Move RefPtr to its own file and create New.h
New.h contains definitions for placement new operators and
BAN::allocator and BAN::dealloctor
2023-04-10 21:07:25 +03:00
Bananymous f924ac9265 Kernel: Threads can now be terminated mid execution 2023-04-10 21:07:25 +03:00
Bananymous f281543255 Kernel: Add tty to process and make termios modifiable 2023-04-05 02:53:28 +03:00
Bananymous 4f522d337a Kernel: Add partial support for shell
We don't handle arrow keys, and the tty does not know how to clear
the screeen :D
2023-04-05 01:30:58 +03:00
Bananymous af0979ec32 Kernel: Process can now initialize stdio
This allows the use of the fds STD{IN,OUT,ERR}_FILENO
2023-04-05 01:10:25 +03:00
Bananymous 7f95444bb5 Kernel: Start work on making tty a file
TTY is now a file that you can read from/write to. I still have
to port shell to use this new interface
2023-04-05 00:56:09 +03:00
Bananymous 783842bac2 Kernel: add virtual write function to inode 2023-04-03 20:29:07 +03:00
Bananymous ee1f3623ce Kernel: Fix typo 2023-04-03 19:56:55 +03:00
Bananymous b87dae7e7c Kernel: Device dev and rdev number is done more properly
Also hd* partitions are now 1 indexed instead of 0
2023-04-03 11:43:16 +03:00
Bananymous c936aac777 Kernel: Optimize scheduler idling
Now after each interrupt we will ask the scheduler to reschedule
if the current thread is the idle thread. This allows semaphore
unblocking to be practically instant when there is only one thread
executing.

Now disk reading is back to ~3 MB/s for single threaded process
2023-04-03 01:51:05 +03:00
Bananymous 46d65471d9 Kernel: ATA now uses irqs instead of polling
Reading is now much slower at ~500 kB/s it was around 3 MB/s.
This is probably mostly due semaphore blocking taking atleast
until next reschedule (1 ms itervals). This will be a problem
as long as we are using only single processor.

I could try to use {READ/WRITE}_MULTIPLE commands, but since
most of the disk reads are 2 sectors (inode block size) this
will at most double the speed.

Most efficient speed up would of course be caching disk access
data and inodes overall.
2023-04-03 00:03:38 +03:00
Bananymous dcc174b62e Kernel: Move ATADevice to its own file from ATAController
The API is kinda weird since device reads/writes go from
ATADevice -> ATAController -> ATADevice
but this is for now atleast necessary since ATAController has(?)
to keep all devices from using the disks at the same time
2023-04-02 18:26:19 +03:00
Bananymous cbb0f6be9a Kernel: cleanup includes
I went quickly went through all files since I found some weird
includes :D
2023-04-01 02:14:49 +03:00
Bananymous a60f8098ee Kernel: Fix traversing back from mount points 2023-04-01 01:54:35 +03:00
Bananymous 8b5d8d9f8a Kernel: Process gets absolute paths for mount 2023-04-01 00:30:11 +03:00
Bananymous db65cfeb8a Kernel: Cleanup ATA device initialization 2023-03-31 00:58:57 +03:00
Bananymous a3ba6da6f3 Kernel: Move DeviceManager to its own file 2023-03-30 22:39:45 +03:00
Bananymous b048630e5b Kernel: Improve locking in Process, VFS and ATAController
We used to block on all process access. This meant that shell
reading the keyboard input would block all VFS access making disk
accesses practically impossible. We now block only when it is
necessary :)
2023-03-30 22:02:16 +03:00
Bananymous dcee92a6bc Kernel: Thread is no longer RefCounted
This makes developement with Scheduler much easier against compiler
optimizations. I could now remove the pragma GCC optimize stuff.
2023-03-30 19:16:51 +03:00
Bananymous c2e3b422cc Kernel: Add Semaphore to block threads 2023-03-30 18:46:33 +03:00
Bananymous d4c03d3939 Kernel: root partition is now passed from the commandline 2023-03-30 18:46:19 +03:00
Bananymous 8e68d2e3ea Kernel: Shell can now mount partitions 2023-03-30 15:06:41 +03:00
Bananymous 30c33b55e3 Kernel: Inode::Mode is now a struct so we can have functions in it 2023-03-30 14:41:15 +03:00
Bananymous e2791e5260 Kernel: StorageDevices and Controllers are now devices 2023-03-30 14:22:15 +03:00
Bananymous 88a8bd659d Kernel: Add IFBLK, IFLNK, IFSOCK to Inode::Mode 2023-03-30 13:15:46 +03:00
Bananymous f9cc114907 Kernel: All devices have atime, mtime, ctime at their creation 2023-03-30 13:15:46 +03:00
Bananymous 9a4d603a62 Kernel: Remove the mount test from VFS 2023-03-30 11:43:24 +03:00
Bananymous 78ea4b2207 Kernel: fix stat command and device numbers 2023-03-30 10:43:08 +03:00
Bananymous ab3cdea548 Kernel: Rewrite mounting code 2023-03-29 21:34:48 +03:00
Bananymous dd84a2175f Kernel: Move Partition out of StorageDevice and rename functions 2023-03-29 13:23:01 +03:00
Bananymous 62fb233eb1 Kernel: DeviceManager is now a 'FileSystem' so it can expose devices
Shell reads keyboard through /dev/input :)
2023-03-29 11:50:46 +03:00
Bananymous 16d9d29971 Kernel: Remove obsolete KeyboardLayout/
This was used by the old input system. Currently keyboard layout is
hardcoded to finnish. But it will be reworked as something read from
the filesystem
2023-03-29 03:09:14 +03:00
Bananymous fa8e921ee8 Kernel: Rework the whole input system
We now use Device abstraction that will allow us to provide devices
to userspace through /dev. Currently Shell reads from first and only
device (it being PS/2 Keyboard).
2023-03-29 03:05:16 +03:00
Bananymous c7286396d8 Kernel: Move ACPI to its own file 2023-03-27 17:30:45 +03:00
Bananymous 666051fd34 Kernel/BAN: move unix time conversion to BAN and add stat to Shell 2023-03-27 00:49:58 +03:00
Bananymous e55860eb6b Kernel: Rework processes and VFS so we don't expose inodes
Everything is now done through a file descriptor.
2023-03-26 04:30:57 +03:00
Bananymous 1fade1aa9e Kernel: Process::working_directory() is now thread safe
I realized you cannot return a stirng view and it to be thread safe
2023-03-24 01:46:25 +02:00
Bananymous 814f0b215d Kernel: Create RecursiveSpinLock and add it to Process
We now lock every function within Proccess, just to be sure.
Recursive lock allows us to use lock from the same thread even if
we already have the spinlock locked
2023-03-24 01:32:35 +02:00
Bananymous 5fd26b4ea8 Kernel: Lock process functions instead of the ata controller
Process has to use locks at least on some functions so multithreaded
disk io is safe. This seemed to fix corrupted reads from disk
2023-03-24 01:17:39 +02:00
Bananymous e5eab8bae4 Kernel: Ext2FS now does allocations better
We only have to allocate at the beginning of the all functions and
can properly exit before any disk reads if we run out of memory.

This makes development little bit 'harder' since the {read,write}_block
user must allocate a buffer of atleast block_size bytes.

I also made disk access to cause kernel panic on error since the error
handling during file write is something I don't want to think now.
The filesystem can easily corrupt so, I feel like when disk io starts
to fail I'll come back to this.
2023-03-23 23:22:31 +02:00
Bananymous 75c4f35e85 Kernel: Add possibiliity to create empty files on Ext2
Big rewrite for Ext2 for more easy and optimized code
2023-03-23 22:26:06 +02:00
Bananymous 633414bd20 Kernel: Remove block group descriptor cache from ext2fs
This will make improving the fs easier since we need to only update
the values on the disk
2023-03-23 18:52:58 +02:00
Bananymous 7ca6cd61be Kernel: Move get_unix_time to RTC namespace 2023-03-23 18:14:51 +02:00
Bananymous 3ef72e8a7b BAN: Modify Span constructors to keep constness correctly 2023-03-23 14:26:03 +02:00
Bananymous 9b56801c3d Kernel: StorageDevice and Ext2 "support" writing 2023-03-23 13:04:13 +02:00
Bananymous 74949401bd Kernel: Cleanup GPT parsing code 2023-03-23 11:13:14 +02:00
Bananymous 072954480d Kernel: Remove obsolete Ext2FS::ext2_root_inode()
This was not used by anyone and the cast was wrong anyway
2023-03-21 18:19:48 +02:00
Bananymous 3652d11059 Kernel: Remove for_each_block from Ext2 2023-03-21 18:14:02 +02:00
Bananymous f9ae1f0023 Kernel: Fix PC Screen font parsing
I had misread the format and the parsing code was incorrect. I also
changed fonts to store unicode codepoints as 32 bit integers, so
every character can be represented
2023-03-20 14:52:42 +02:00
Bananymous 896b4c280c Kernel: Font parsing uses Spans now 2023-03-20 13:35:54 +02:00
Bananymous e4bcd98904 Kernel: Add basic mounting to VFS. 2023-03-19 05:51:25 +02:00
Bananymous 3570764448 Kernel: Add comparison operator for inodes 2023-03-19 03:34:23 +02:00
Bananymous 8236598f9d Kernel: Optimize Ext2 disk reads
We used to read whole file until we reached the asked offset.
Now we can calculate the appropriate block and read just the asked data.
2023-03-18 03:47:59 +02:00
Bananymous 1a26a318a4 Kernel: Rework filesystem reading
We now read from a filesystem to user provided buffer.

Read sizes are determined by read call.

You should now get file descriptors and do reading through Process::current()
2023-03-17 21:18:41 +02:00
Bananymous 1f2ceeb329 Kernel: VFS caches currently open inodes 2023-03-16 15:31:33 +02:00
Bananymous 1b7625581d Kernel: Add basic concept of Processes
We now create Shell as a process that has its own threads
2023-03-16 12:17:04 +02:00
Bananymous 8b8e3cbbf0 Kernel/Userspace: Start initial work on userspace and syscalls 2023-03-13 15:32:46 +02:00
Bananymous af854ec9e1 Kernel: Thread creation now takes void(*)() as entry and void* as data
This simplifies threading for the future and gets rid of (undefined?)
cast of member function pointer to address
2023-03-09 15:33:42 +02:00
Bananymous 8940ff8002 Kernel: You don't have to check whether VFS is initialized or not
VFS now returns Error when attempting to traverse inodes if it did
not find root partition
2023-03-09 02:31:24 +02:00
Bananymous 371dfe8ef3 BAN: Formatter now uses perfect forwarding on its arguments 2023-03-08 21:31:26 +02:00
Bananymous 7458f68c38 BAN: Error can now be constructed from c_string or format string
If the resulting string would overflow, we just truncate it to fit
the error message buffer (128) bytes
2023-03-08 17:05:37 +02:00
Bananymous d90aba0963 Kernel: Create CriticalScope and fix kmalloc
This disables interrupts for the current scope and restores them
after the scope. This is used in kmalloc, since scheduler might
call into kmalloc/kfree, but deadlock if some thread is currently
trying to allocate. This allows us to use kmalloc in Scheduler.
2023-03-08 13:55:53 +02:00
Bananymous a068d828fe Kernel: ATA reads go through the ata controller and not only device 2023-03-08 03:26:25 +02:00
Bananymous 1dabe7a222 Kernel: More rework on Scheduler 2023-03-08 03:26:25 +02:00
Bananymous e7a577f54a Kernel: fix includes 2023-03-08 03:26:25 +02:00
Bananymous 23b3028e15 Kernel: Rename RefCounted -> RefPtr and implement RefCounted 2023-03-08 03:26:25 +02:00
Bananymous f7ebda3bf1 Kernel: Move interrupt related functions to InterruptController 2023-03-08 03:16:51 +02:00
Bananymous b8ee77eb78 Kernel: Initial work on new scheduler with queues
Sleeping is definately broken
2023-03-08 02:41:44 +02:00
Bananymous a9acf1f6dc Kernel: PCIDevice is now class with getters and constructor 2023-03-08 02:41:44 +02:00
Bananymous 1dd61e93b6 Kernel: Threads cannot take arguments anymore 2023-03-02 01:56:09 +02:00
Bananymous 7fcbb869e1 Kernel: Initialize GDT in kernel code
We dont use the boot GDT only while booting
2023-03-01 21:21:56 +02:00
Bananymous ba8c4dbc7f Kernel: panic now disables interrupts as the first thing 2023-03-01 21:21:56 +02:00
Bananymous 9756de02ef Kernel: MMU now takes flags when allocating pages 2023-03-01 21:21:56 +02:00
Bananymous 7d84f290a1 Kernel: Add lock to Disk reads before I forget 2023-02-26 03:48:11 +02:00
Bananymous ee5d02aa70 Kernel: Rewrite basically all current disk io stuff
This is a big commit that was kinda hard to split to smaller ones.

Essentially we now look at all the mass storage devices from PCI
and initialize (P)ATA devices. This doesn't provide any more functionality
but better abstractions and everything doesn't have to be on its old
default port that might be different for modern computers.
2023-02-26 03:00:29 +02:00
Bananymous 04bb08d27f Kernel: Add basic PCI enumeration 2023-02-26 02:56:53 +02:00
Bananymous 34f9912a1d Kernel: Add IO functions inl, outl, and ins{b,w,l} to read into buffer 2023-02-24 12:39:38 +02:00
Bananymous 390a747768 Kernel: Add prefs font for terminal output before file system 2023-02-23 01:22:50 +02:00
Bananymous a4980acc88 Kernel: Fonts can now be parsed from the filesystem and set to terminal
We currently dont have a fallback font if we cannot get to filesystem
initialization, but that will come later. I can't test on real hardware
for this reason.
2023-02-22 22:29:31 +02:00
Bananymous 0e668738dc Kernel: Make some basic bitmap font parsing code 2023-02-22 22:28:12 +02:00
Bananymous d9c05b7378 Kernel: rewrite the whole kmalloc (again)
Performance of the old kmalloc implementation was terrible.
We now use fixed-width linked list allocations for sizes <= 60 bytes.
This is much faster than variable size allocation.

We don't use bitmap scanning anymore since it was probably the slow
part. Instead we use headers that tell allocations size and aligment.

I removed the kmalloc_eternal, even though it was very fast, there is
not really any need for it, since the only place it was used in was IDT.

These changes allowed my psf (font) parsing to go from ~500 ms to ~20 ms.
(coming soon :D)
2023-02-22 16:32:50 +02:00
Bananymous 5d31e89574 Kernel: Update ErrorOr API and add path find to VFS
These two are done on the same commit since Changes to Shell were
annoying to make work with only one change
2023-02-22 01:23:11 +02:00
Bananymous 038379274e Kernel: Inode can now return full mode value
Kernel::Inode::Mode is an union of bitmasked fields for every
possible bit
2023-02-20 21:39:24 +02:00
Bananymous efaca469ee Kernel: Ext2Inode now supports indirect blocks through for_each_block() 2023-02-20 10:25:15 +02:00
Bananymous 80006ea137 Kernel: Initial work on filesystem
We support now ext2 directory listing. File reading is not yet supported.
2023-02-20 01:46:00 +02:00
Bananymous 247f03c79e BAN: Make ErrorOr<> have attribute [[nodiscard]]
We don't have to specify it everytime we make function return ErrorOr
2023-02-19 20:10:30 +02:00
Bananymous feaeee11e5 Kernel: fix ARCH() macro and add helper macros for push/pop 2023-02-19 18:52:25 +02:00
Bananymous 1bd8b0fe5c Kernel: Sleep now actually sleeps and allows idling 2023-02-19 18:52:25 +02:00
Bananymous 8f1b6da2af Kernel: Use Vector instead of raw poiters in Disk stuff
We now don't have to manually free allocated data
2023-02-16 20:48:41 +02:00
Bananymous 460fc3a29f Kernel: Start working on filesystem
We have a basic PATA driver (for reading) and gpt parser.
2023-02-16 20:00:31 +02:00
Bananymous 94cbacc998 Kernel: PIT now has very barebones sleep 2023-02-16 17:53:25 +02:00
Bananymous 6a133782ed All: Move to c++20 2023-02-09 23:05:26 +02:00
Bananymous fb7fe73d49 Kernel: Add inw and outw to IO 2023-02-04 23:37:34 +02:00
Bananymous 5b5e620d8a Kernel: Improve multithreading support
We can now use arbitary BAN::function<void(...)> as the Thread.
I also implemented multithreading for i386 since it was not done
on the initial multithreading commit.
2023-02-02 23:24:12 +02:00
Bananymous 777ede328e Kernel: Add helper functions for reading current rsp and rbp 2023-02-02 23:19:44 +02:00
Bananymous 117d1de038 Kernel: panic does not need to include <kernel/kprint.h>
This allows us to not have kprint available literally everywhere
2023-02-02 15:51:15 +02:00
Bananymous f6b05212e0 Kernel: Add is_locked() to spinlock
I think this is atomic read
2023-02-02 15:49:30 +02:00
Bananymous 9b8de5025a All: rename every function from UpperCamelCase to snake_case
This was a mess since I didn't know which to use but now I decided
to go with snake_case :)
2023-02-01 21:05:44 +02:00
Bananymous 6a9d60a8fb Kernel: Implement somewhat functioning multithread support
This still uses only a single cpu, but we can now have 'parallelization'

This seems to work fine in qemu and bochs, but my own computer did not
like this when I last tried.

I have absolutely no idea how multithreading should actually be
implmemented and I just thought and implemented the most simple one I
could think of. This might not be in any way correct :D
2023-02-01 01:53:35 +02:00
Bananymous 7d8aafa0b5 Kernel: Add macros for current archutecture 2023-02-01 01:52:52 +02:00
Bananymous 337569b0ca Kernel: Implement basic SpinLock 2023-02-01 01:52:52 +02:00
Bananymous 1687028ed5 Kernel: Add constructor and destructor to MMU 2023-01-30 18:54:04 +02:00
Bananymous 6dc22b7251 Kernel: Add actual register values to x86_64 kernel panic
Very hackish implementation, but we now get actual registers at the
time of the interrupt happening
2023-01-30 18:52:38 +02:00
Bananymous aa0757e135 Kernel: Move dump_stacktrace from panic -> debug 2023-01-26 02:57:14 +02:00
Bananymous e87026f01d Kernel: I have no idea what this commit does
I had committed a change in IDT but reverted it now.

This propably only adds a spurious interrupt detection to common cpp
interrupt handler?
2023-01-26 02:55:37 +02:00
Bananymous c0bc002ac6 Kernel: Move debug printing to its own file
It didn't make sense that dprint was defined in Serial.h.
We also now dump dprint to tty if there is no serial and tty is initialized
2023-01-25 22:51:42 +02:00
Bananymous ba53582f23 Kernel: Rewrite APIC and PIC more OOP friendly
x86_64 port is slowly coming together
2023-01-23 20:13:57 +02:00
Bananymous b50bb03ed4 Kernel: Panic now halts machine even if we get spurious irqs 2023-01-23 18:25:48 +02:00
Bananymous 1b9f7aa815 Kernel: Rewrite the whole VESA driver
We dont support vga text mode currently. I might add it later if needed.

I also removed mouse 'support' from Shell since it didn't do anything
and I didn't implement arbitary bitmap rendering to framebuffer
2023-01-23 13:21:53 +02:00
Bananymous cdd27ae3db Kernel: rename MMU::m_page_directory_pointer_table -> m_highest_paging_stuct
This might not always be pdpt. In x86_64 it is pml4/pml5
2023-01-22 03:03:58 +02:00
Bananymous 491610db2c Kernel: move GDT initialization to boot.S 2023-01-22 00:48:12 +02:00
Bananymous bb051604a1 Kernel: Move dump_stacktrace() to arch folder
It uses mov instruction which has different register on x86/x86-64
2023-01-21 22:16:31 +02:00
Bananymous b9a4530e54 Kernel: Kernel::Panic now dumps stacktrace to com1 2023-01-16 21:50:50 +02:00
Bananymous 7540fa0385 Kernel: Shell now 'properly' parses commandline 2023-01-16 20:09:22 +02:00
Bananymous e307db47eb Kernel: Kernel::Panic() will now always print to serial output 2023-01-16 15:44:27 +02:00
Bananymous 46e5b3f3d6 Kernel: Move GDT to its own namespace and cleanup 2023-01-16 15:24:10 +02:00
Bananymous 8881c1e117 Kernel: Shell is no longer singleton 2023-01-16 15:16:39 +02:00
Bananymous 1545850be3 Kernel: Input callbacks use the new BAN::Function 2023-01-16 15:15:02 +02:00
Bananymous d5e162b1ea Kernel: fix kmalloc header 2023-01-16 12:10:50 +02:00
Bananymous f547a788f2 Kernel: Add support for arrow keys in Shell 2023-01-13 15:07:24 +02:00