First of all, we built an SDK to help people build KnightOS programs. It's really easy to use. Try it out on any Unix system (or cygwin):
- Code: Select all
curl http://www.knightos.org/install-sdk | bash # install SDK
mkdir example
cd example
knightos init example
make run
Here's a short video that shows off how neat the SDK is.
If you don't want to do that, though, you can try out try.knightos.org, which is an experimental version of the SDK that runs in a web browser via emscripten.
In other news, we've been working on a replacement for sass. Sass is the assembler I made a few years ago for KnightOS. It's always been "good enough" but never very good. The replacement is called "scas" and it's shaping up to be a very nice assembler. It has seperate assembly and linking steps and is capable of some pretty sophisticated stuff. We're aiming to have compatability with sass (of course), tasm, spasm, and ASxxxx. We've already finished support for ASxxxx, which leads to my next point...
We now have experimental support for writing userspace programs in C! Remember that KnightOS is not even slightly POSIX-compatible, though, so don't expect to be porting things just yet. For more information on C support, check out this page. We have forked SDCC and we call our version "kcc". We've taken out everything but z80 support and started cleaning things up. We also dropped the assembler and linker and polished up scas to add ASxxxx support instead. It should be possible for us to start improving z80 support in kcc overall, since we don't have to concern ourselves with other targets. I think it should also be feasible to get TIOS support if anyone is interested in helping us with that.
We've also developed a package format and matrefeytontias built kpack to support it. We have designed it with USB support in mind, so it should be very easy to send packages to your calculator when kernel 0.8.0 comes around. On top of that, we've built packages.knightos.org (aka PKO) to serve as an online package repository for KnightOS. Bonus: we also have a ticalc.org category for KOS now!
Continuing, the kernel is now coming close to the 0.7.0 release. We have implemented `flush`, which means that it's possible (with a lot of patience) to write files to the filesystem. We'll be finishing up the convenience functions on top of this, as well as doing some major refactoring of some internal kernel sytsems. We've also implemented some common concurrency patterns (like mutexes), built a new memory allocator, and fixed the Flash driver. There are, of course, many additional smaller bug fixes and refactorings that are less apparent to the user. The next kernel is 0.8.0, which will add connectivity support so you can finally send files to a KnightOS calculator!
In userspace news, I've ported Ahmed El-Helw's old periodic table app, and gave it a fresh coat of KnightOS paint. You can do science with KnightOS now Our text file viewer was improved thanks to some contributions from unlimitedbacon, and matrefeytontias built configlib, a library for manipulating Unix-style config files. matrefeytontias also ported Ben Ryve's old demoscene program "Pixel Madness".
Bonus: KnightOS was featured on GitHub explore!
I always say that it takes a village to raise an operating system, so big thanks to our little village of contributors. All of this stuff was made possible with the help of puckipedia, klange, Vijfhoek, dragontux, thirtythreeforty, and matrefeytontias, as well as the little community we have on Freenode of folks who supply us with feedback and suggestions. I'm particularly happy that we've made some big strides with things like scas, kcc, and z80e, which are valuable to the community as a whole rather than just for KnightOS. If anyone here is interested in helping us make a badass operating system, you're always welcome in #knightos on irc.freenode.net.