Blog

  • Network Stack Progress

    The network stack has been tested successfully but I don’t have good demo apps ported yet.

    Current task is getting the network code compiling on my own C to RISC-V backend (which is lagging a bit behind the OS codebase). This will be the first step towards a “hardened” codebase, as the compiler can be used for fully audited systems or for extended features adding safety checks etc.

    Kqueue support will come after a bit more testing, that should hopefully work easily as long as everything else is working.

  • Networking Progress & Plans

    Version 1.1 – “kinet”

    Thanks to code borrowed from the microps project the system is now able to run simple network demos like a HTTP server, but without extended features like IPv6 or kqueue-enabled sockets.

    Although this network stack is quite limited, it works, and I like it the code is very compact I know where things are. So I’m happy with this borrowed codebase but still want to improve it.

    Version 1.2 onwards – Hv4

    Later 1.x versions of the operating system will come with a “hardened” and more integrated version of the current stack. This should include performance/stability fixes as well as general streamlining and auditing of the code, but probably won’t involve rapid redesigns at least until I’m more familiar with the codebase.

    Testing the kqueue/kevent system will be an initial priority, as well as getting features like DHCP working (this will probably involve some extended system call API unless I’m mistaken). Server applications should run well on these versions aside from lack of more modern protocols.

    New drivers and a lot of documentation should be introduced in this stage as well.

    Version 2 – maybe a secondary stack?

    Other options will be investigated for integrating a full featured network stack, while keeping the streamlined simple stack for use cases not needing advanced features.

    This could involve porting functionality from the BSD operating systems or from another source, or could just be a more full featured fork of the streamlined stack. It’s also very likely that new improvements will be ported over from new versions of microps or related projects.

  • Networking Mostly Works!

    The porting of a simple network stack to the operating system is now complete enough for simple HTTP demonstrations, and with a few differences to xv6-riscv-net:

    • The system call layer has been implemented anew, but not the driver layer (the old network driver is used for now)
    • Internal event processing is driven by a system call in a user-mode program instead of by software interrupts, this mechanism works for now but could be revised
    • UDP is not hooked up yet
    • The send/recv system calls accept larger buffer sizes (they break it into smaller buffered pieces internally)
    • The read/write system calls can also be used on sockets, except not with large buffers yet (that will mimic the new send/recv code)

    There will be some more updates soon, together with downloadables and plans for future improvements.

  • Project Status

    Kernel

    Mostly finished, still needs some cleanups but less than most kernels. A few features missing or not quite finished, but mostly working well.

    The kernel core is lean and focused, most functions have descriptive names.

    Networking

    Ahead of schedule, reasonable support for networking is expected as long as there are no huuuuuge bugs but full support like the latest protocol versions will come later.

    Drivers

    Behind schedule. Still relying on legacy drivers for emulators when doing most testing.

    GUI

    Ahead of schedule but awaiting a proper plan I hope to come up with imminently while looking into driver improvements.

    Compilers

    Usable but behind schedule, delayed while coming up with better OS demos.

    Other System Utilities

    Coming but a little behind schedule.

  • I’m Looking For Ways To Accelerate Access To Technology In Rural Areas

    This will probably be the focus of my work this year, although I expect quite a bit of pushback from the Australian authorities as they have thus far been absolutely fucking toxic to me trying to innovate here.

  • GoDaddy Wants $850 For My Domain Back

    I originally registered SecureLang.com but missed a renewal while I was getting thrown out of my rental in Narooma, now they want $850+ to get it back but I think I have other ideas.

    The American internet doesn’t really work for businesses in rural Australia because it barely allows us to run our own servers here, they just sell us consumer connections so we can buy from American sites but just getting an IP address can be a pain in the arse. The artificial housing scarcity here (which is just drugfucked landlords controlling the law and being dicks to everybody) makes it hard to get any stable internet connection at all.

    So I think I’m gonna keep working on network technologies and come up with a local alternative, hopefully as compatible as possible but making it easier to run sites locally (my current site is hosted in USA). That will probably piss some people off though, as there has been a lot of pushback against developing technologies locally, especially from people embedded in this government who serve foreign nations.

  • I Want To Raise Awareness Of The Crimes Of The Australian Government

    Many people both foreign and Aboriginal are kept hostage by this government against our will. They refuse to acknowledge their fuckups or deport me to Egypt.

    I am not an Australian, I am foreign to those people, they didn’t want me in their schools and their army treats me as an enemy race, they told me they would never hire me. I need to be returned to an African nation where I am allowed to join the army, and this land needs to be returned to Aboriginals for their own nations.

    The “whites” here are mostly backwards Jews who hate technology and despise children, I don’t know how to coexist with that race of people as they don’t have any intentions of coexisting with anyone else. Their laws are idiotic and they need to deport me, they can’t spend their whole lives trying to keep me out of industry it’s sorta pathetic.

  • Exceptional Progress Overnight

    Networking Finished

    After success porting the protocol stack itself I’ve ported the driver and ifconfig program from the xv6-riscv-net demo of microps to my new kernel and it looks like it all works.

    This makes the network system basically complete, although a few patches will be needed to enable real workloads as only basic versions of the networking system calls are implemented for now (e.g. the kqueue system hasn’t been linked to the new socket code yet).

    Nano-X Port In Progress

    The build of Nano-X to go with the system now includes a few changes leaning towards getting it to build & run in unusual circumstances.

    Aside from the new simplified build system, this involves changes to the server initialisation code to make it easier to configure it to use AF_INET sockets instead of local domain sockets (normally this is platform-dependent instead of being a separate option).

    Source code for these/other changes to Nano-X will be included when it is included in a release.

    Convenient Date For A Filesystem Epoch

    The filesystem code was mostly written a year or so ago but I didn’t add support for “real time” clock (date & time support) until right at the end of the year, so maybe the midnight just passed will be a good epoch point when adding this support to the filesystem.

    This idea is mostly just cosmetic engineering but could help distinguish the operating system as something focused on new developments.

  • Current Progress With Network Stack

    Some system calls have now been integrated with the network stack, and the system appears to initialise correctly (but without drivers).

    This means the port of microps network protocol stack is almost complete, aside from finishing some more system calls and writing or porting some drivers.

    Simple Networking Soon

    This networking implementation is mainly aimed at being simple, rather than importing a larger “full” network stack. So hopefully this network stack will continue to be easy to work with as I look at bringing up more drivers & legacy software, but it won’t fully replace the features of Linux or BSD network stacks.

    Fast Networking Later

    Improvements such as optimisations, extended protocol support or added security checks can be added to this codebase later, or could be implemented as alternative network implementations.