This project has been scrapped, as I realized that my architecture for it is rather silly. The new kernel I'm working on is still in Scratch, but runs atop an actual (emulated) hardware platform, and built with C-like native Scratch language extensions. This is a nonfunctional beta of the kernel to demonstrate the current state of the project - not useful unless you plan to poke about in it and read the documentation ======== One of the main differences with this prebeta is the focus on documentation, so go check out the "Docs" sprite :3 ======== This is a hacking-friendly project; if you see something missing, feel free to ~fork~ remix it and make a ~pull request~ comment; if it's consistent with the rest of the system, I might merge it ======== Update 1: fixed the magic memory from nowhere use in syscalls Update 2: added stack traces and memory watchdog
Currently working on: - Variables - Optimizing the memory system - Disk - Filesystems - Better IPC ======== Notable differences: - Switched to a documentation-focused approach, where I write the docs and then implement them - Stopped using magical memory from nowhere to make API calls - Implemented inter-process communications (untested) - Started work on a PID list that allows for proper multitasking - Modified the PTE to allow for modifications of the previous line and inline colour changes (note: I've written a spec for more advanced features, I just haven't implemented it yet) - Made tests output whether or not they got the intended result instead of just outputting the raw value - Switched from binary to integer value storage in memory, marginally improving performance (note: this does result in another "magical memory from nowhere" situation where each byte can have a value greater than 256 - I don't know what the problem is and I frankly don't care to fix it yet)