Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-10-22 | Add a sys$exit and make init_stage2 call it when finished. | Andreas Kling | |
2018-10-22 | A lot of hacking: | Andreas Kling | |
- More work on funneling console output through Console. - init() now breaks off into a separate task ASAP. - ..this leaves the "colonel" task as a simple hlt idle loop. - Mask all IRQs on startup (except IRQ2 for slave passthru) - Fix underallocation bug in Task::allocateRegion(). - Remember how many times each Task has been scheduled. The panel and scheduling banner are disabled until I get things working nicely in the (brave) new Console world. | |||
2018-10-22 | printf format fixups in ELFLoader. | Andreas Kling | |
2018-10-21 | Make Console::m_rows/m_columns const for now. | Andreas Kling | |
2018-10-21 | Add an InlineLinkedList::containsSlow(T*) helper. | Andreas Kling | |
2018-10-21 | printf -> kprintf | Andreas Kling | |
2018-10-21 | Have Console::write() directly call vga_putch. | Andreas Kling | |
2018-10-21 | Add a Console device and start refactoring screen output. | Andreas Kling | |
2018-10-21 | Protect the first 4 KB of memory. | Andreas Kling | |
This makes null pointers crashy, tremendously useful :^) | |||
2018-10-21 | Fix null deref in contextSwitch(). | Andreas Kling | |
2018-10-21 | Move post-boot kernel stack pointer to 0x4000. | Andreas Kling | |
2018-10-19 | Turn the syscall interrupt into a trap (by switching the gate type.) | Andreas Kling | |
This leaves interrupts enabled while we're in the kernel, which is precisely what we want. This uncovered a horrendous problem with kernel tasks silently overflowing their stacks. For now I've simply increased the stack size but I need a more MMU-y solution for this eventually. | |||
2018-10-19 | Add a way to initialize VFS globals. | Andreas Kling | |
This is needed since the kernel loader doesn't even zero out bss, much less call any static constructors. | |||
2018-10-18 | ELFLoader works inside the kernel! | Andreas Kling | |
We load /_hello.o which just prints out a simple message. It executes inside the kernel itself, so no fancy userspace process or anything, but this is still so cool! | |||
2018-10-18 | ksprintf() should null-terminate strings. | Andreas Kling | |
2018-10-18 | Build ELFLoader into Kernel. | Andreas Kling | |
2018-10-18 | Add Regions concept to Task. | Andreas Kling | |
2018-10-18 | Add a simple ELF binary called _test.o to the test fs. | Andreas Kling | |
2018-10-18 | More paging stuff. | Andreas Kling | |
The test userspace process now runs at linear address 0x300000 which is mapped to a dynamically allocated page from the MemoryManager. Cool! | |||
2018-10-18 | Use FileHandle from VFS. | Andreas Kling | |
2018-10-18 | Add an fd field to FileHandle in Kernel builds. | Andreas Kling | |
2018-10-18 | Actually destroy tasks after they crash. | Andreas Kling | |
2018-10-18 | Hang if we GPF in ring 0. | Andreas Kling | |
2018-10-17 | A userspace process can now GPF and the OS goes on! | Andreas Kling | |
This is really rickety, but it kinda sorta works for my test GPF! | |||
2018-10-17 | Add basic paging. Only identity maps the bottom 4MB as a start. | Andreas Kling | |
2018-10-17 | Allow running in QEMU with "./run q" | Andreas Kling | |
The kernel doesn't run in QEMU right now and I don't know why. | |||
2018-10-17 | Fix a dumb in buffer_putch. | Andreas Kling | |
2018-10-17 | Add a PIC::getISR() helper. | Andreas Kling | |
2018-10-17 | Add -fno-pic -fno-pie to build flags. | Andreas Kling | |
2018-10-17 | Fix some minor build warnings. | Andreas Kling | |
2018-10-17 | Add size_t and ssize_t to kernel builds. | Andreas Kling | |
2018-10-17 | Make VFS host build work again. | Andreas Kling | |
2018-10-17 | Print the contents of motd.txt on boot. | Andreas Kling | |
2018-10-17 | List the root directory after mounting /. | Andreas Kling | |
So cool that it works! It's spewing out a bunch of terminal escape sequences that the OS console obviously doesn't support, but we'll get there too. | |||
2018-10-17 | VFS mounts an ext2fs root! :^) | Andreas Kling | |
2018-10-17 | VirtualFileSystem class builds inside Kernel. | Andreas Kling | |
2018-10-17 | Integrate ext2 from VFS into Kernel. | Andreas Kling | |
2018-10-16 | Add the basic character devices to kernel. | Andreas Kling | |
2018-10-16 | Add a simple IDEDiskDevice class that implements DiskDevice from VFS. | Andreas Kling | |
2018-10-16 | Rework DiskDevice's read() and write() to be non-virtual wrappers. | Andreas Kling | |
This way subclasses only have to implement readBlock() and writeBlock(). read() and write() require that the offset and length are both divisible by the blockSize(). | |||
2018-10-16 | Fixup small.fs again. | Andreas Kling | |
2018-10-16 | Start fixing up AK to work inside the kernel. | Andreas Kling | |
2018-10-16 | Merge some features from gerbert into OwnPtr and RetainPtr. | Andreas Kling | |
2018-10-16 | Reduce dependence on STL. | Andreas Kling | |
2018-10-16 | Add String::substring(). | Andreas Kling | |
2018-10-16 | BlockDevice -> DiskDevice. | Andreas Kling | |
BlockDevice was the wrong name for this abstraction, since a block device is a type of file in a unix system, and we should use that name for that concept in the fs implementation. | |||
2018-10-16 | These changes were lying around uncommitted in the old repo. | Andreas Kling | |
I'm just gonna commit them without too much thinking and then take it from there. | |||
2018-10-16 | If an interrupt comes from the slave PIC, both PICs need an EOI. | Andreas Kling | |
2018-10-16 | Import the "gerbert" kernel I worked on earlier this year. | Andreas Kling | |
It's a lot crappier than I remembered it. It's gonna need a lot of work. | |||
2018-10-16 | Implement creating a new directory. | Andreas Kling | |