Blog

  • Why Focus On IPv4?

    Complexity & Security

    IPv4 is generally the first exposure people get to networking, when you see addresses like 192.168.0.1 and 127.0.0.1 these are IPv4 which is what we were using decades ago when Internet rolled out to many areas. This system worked, but is a little limited particularly in number of addresses. IPv6 theoretically replaces IPv4 with a more practical Internet architecture, key word being theoretically.

    IPv6 has some slight security improvements, such as apparently making it easier to create internet connections through secure channels, but these improvements don’t seem to result in any meaningful difference for common configurations (and can probably be done with IPv4 or only small extensions anyway).

    The showstopping problem with IPv6, however, is that you still need IPv4 to do anything in practice anyway. So with IPv4 you have a simple but limited internet style architecture, with IPv6 you have a new Internet but still effectively piggybacking off the old one.

    If you’re just looking at features, this doesn’t really matter. IPv4+IPv6 gives you full featured internet architecture. But if you’re looking at security, maintenance costs, training costs … IPv4 is the clear winner, because IPv6 can’t compete with it without being twice as complicated in practice (still needing IPv4 configuration too).

    Addressing

    As for IPv4’s address space problem, this isn’t really an actual problem. 4 billion addresses is a lot! Certainly enough to coordinate more complex international communications and connect a bunch of smaller networks together. The problem is that the Americans basically saturated their IPv4 address space and the rest of the world kept using the same one, when we obviously should’ve done our own addressing prioritising our own servers!

    So the problem with IPv4 didn’t really exist in practice for most of us, we were just limited by the American network not by the network protocol it used. Overall, IPv4 is basically fine and the solution to the biggest problem people said it has is just to deploy your own networks instead of relying on America’s!

    It also seems extremely dubious to claim that IPv6’s addressing system actually solves this problem, as the addressing system is confusing enough for developers & administrators for everyone to know typical users won’t want to care about it.

    Does IPv6 Solve Any Problems?

    It obviously adds problems, but it doesn’t seem to really enable anything we couldn’t do before. It doesn’t seem to resolve the issue of IP addresses not really making sense on modern (mobile heavy) networks, it doesn’t allow me to connect to many devices that IPv4 won’t. So the tradeoff is not very tempting.

    Is The IPv6 Internet Worth Accessing?

    What has improved on the Internet since the introduction of IPv6? It may be designed to streamline access to social media sites with billions of users, but who likes these? Is it responsible to encourage this kind of usage of the internet? Shouldn’t different countries be running our own smaller sites anyway, and linking these, instead of relying on such a massive scale of connectivity for everyday communications?

    Who Owns The Internet? Who Is The Police?

    The standards authorities? The governments? The cloud providers?

    Do those people represent my interests, my client’s interests, my community’s interests? Have those authorities really explained their own interests to the public in full?

    No, I think this is our internet, and I am the Internet police. I think if we (average tech users, small businesses) don’t assert more dominance it will be taken away. So I control the Internet as far as it applies to my own business products, not them.

    Summary

    Obviously I’m biased, I’ve already ported an IPv4 stack to my OS and am too lazy to implement IPv6, but I think a lot of people are starting to have similar thoughts about whether IPv6 was maybe just pushed to distract us from making our own infrastructure instead of solving any real problems. After all the idea of every person on the planet being able to connect freely (the excuse for needing so many IP addresses) will never be viable on an internet controlled by Western governments.

  • Very Excited To See Progress On ReactOS & Haiku

    I’ve been following these projects for years, ReactOS was just gaining steam when I was learning about computers and I remember giving my mum and the PC guy some headaches when I tried to install it on our home PC as a kid. BeOS was a particular favourite back in the day although none of us got time to really use it properly before they went under, so Haiku is also very interesting.

    Awesome to see these projects still going, I hope to integrate some of my own tech with various open source operating systems in the future.

  • C Compiler May Be Demoted

    Originally a large part of my business was going to be developing & maintaining a legacy C stack, that will be balanced against whether better options for lightweight C compilers become available.

    This could mean that upcoming releases (1.1) may not include the custom “compilec” builds, which will make actually producing releases easier in the short term. This won’t change anything longer term, the compiler code is still there and can be reused later.

    The kernel & networking code have mostly been tuned for use with small compilers which could be a useful feature in some environments, but the compiler code remains buggy and in need of more maintenance so this is simply a cost cutting or prioritisation move.

  • The Logo Is Vibe Coded Though

    I did also try to get some OS design tips out of the AIs a year or so back, but from what I’ve heard they should be more advanced now.

    I don’t think it’s the direction I’d want to take with kernel code at least for a main product but I am very interested in what kind of OS designs people will come up with vibe coding! Congrats to the person who claimed the name VibeOS first.

  • It Shouldn’t Feel Personal

    When the AIs replace your job. It’s happened to me before and frankly I don’t really miss working at a checkout anyway.

    But people in fields they perceive as more intellectual might take it a bit more personally.

    It wasn’t that your performance wasn’t good enough. You were Plato, this is Aristotle.

  • Quick Statement On AI

    This is not an overly pro- or anti-AI business. (And I’m mostly referring to LLMs as “AI” here, since that’s basically classic AI materialising.)

    I certainly consider myself an enthusiast and have been researching this topic for a long time. I’m aware that over the last few months there have been reports of incredible progress, including people now publishing vibe coded operating systems, while I’ve still been operating mostly the old fashioned way.

    My expectation is that AI will be really good at delivering customised apps, but there are huuuuuge questions about security and economic implications. For my own part I’m concerned it might be too controlled by big players & governments. So I’m very bullish on AI, but cautious.

    So in summary, yes I will probably eventually publish some AI stuff, but I’m not going all in and I’m still looking at quantum computing or similar material technologies as the next big thing, AI is just a large factor now!

  • Trademark Registered!

    SecureLang® is now a registered trademark of my business according to Australian law!

    This process takes many months and can be a real test of patience checking for updates over that time but as of today or yesterday that process initiated in the middle of last year is finally complete.

    Hopefully this will mark a turnaround in my problems with government red tape & the legal system.

  • Compiler Status

    C

    This has not received many updates as I’ve focused on finishing the OS code, and remains an amalgam of legacy code with many extensions & patches by myself to make it practical (but very imperfect) for some typical modern use cases.

    So as this probably won’t be “finished” as a full C compiler but is marginally enough to build the kernel, some examples and now some of the networking code, so it will probably just become a free compiler for an extended subset of C. This may be useful for porting to other small operating systems as well.

    Other Languages

    I have some more-reusable compiler code for higher-level C-like languages, that will be used in some parts of the OS and maybe even for kernel modules in the future.

  • 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.