KnightOS - For Texas Instruments calculators
Posted: Thu Mar 06, 2014 7:06 pm
Hi! Lurked here for a while, and decided to post about my own project today. It's not nearly as cool as some of the neat x86 OSes I see here, but it's mine and I love it.
KnightOS
http://www.knightos.org/
Remember that old TI calculator in your closet? The one you bought as a high school freshman and forgot about after you left school. I never forgot about mine, and I've spent the past three and a half years building an operating system for the little buggers. These calculators have a z80 inside. Specs vary by device, but the most common is clocked at 15 MHz, with 48K of RAM, and 2MB of Flash ROM. KnightOS is a single-user OS for these calculators, with preemptive multitasking, dynamic memory management, a tree-based filesystem based on the FHS, IPC, and loads of other goodies. It is written entirely in z80 assembly. Here's a video I recently made about the brand-new TI-84+ Color Silver Edition and KnightOS:
How do I try it?
Source code: kernel, userspace
If you want to run it on real hardware, there are instructions in the README. Build depends on Mono, and the emulator depends on Wine (I'm working on a replacement emulator).
Technical Details
I built most of the toolchain for this OS from scratch. The tools already available were very dated (the z80 came out in 1976, after all), so I wrote some more modern ones. The source code for all of these tools is here. I've also spent a lot of time documenting everything. I also built my own filesystem for the things, whose spec is here. These calculators have NAND Flash, which means there's a lot of special things to consider when designing a filesystem, and most common filesystems aren't really up to the task in such a limited enviornment.
How do I get involved?
I would love some extra help. There are a few extra contributors helping out, but this is such a big project that it'd really help if there was more. Feel free to join the IRC channel, #knightos on Freenode, to get involved or just to chat. I accept pull requests and would be happy to help you familiarize yourself with the code. That's all I have to say! I hope you like this project, it's my pride and joy. Let me know if you have any questions.
KnightOS
http://www.knightos.org/
Remember that old TI calculator in your closet? The one you bought as a high school freshman and forgot about after you left school. I never forgot about mine, and I've spent the past three and a half years building an operating system for the little buggers. These calculators have a z80 inside. Specs vary by device, but the most common is clocked at 15 MHz, with 48K of RAM, and 2MB of Flash ROM. KnightOS is a single-user OS for these calculators, with preemptive multitasking, dynamic memory management, a tree-based filesystem based on the FHS, IPC, and loads of other goodies. It is written entirely in z80 assembly. Here's a video I recently made about the brand-new TI-84+ Color Silver Edition and KnightOS:
How do I try it?
Source code: kernel, userspace
Code: Select all
$ git clone --recursive git://github.com/KnightOS/KnightOS.git
$ cd KnightOS
$ make run # Run it in an emulator
Technical Details
I built most of the toolchain for this OS from scratch. The tools already available were very dated (the z80 came out in 1976, after all), so I wrote some more modern ones. The source code for all of these tools is here. I've also spent a lot of time documenting everything. I also built my own filesystem for the things, whose spec is here. These calculators have NAND Flash, which means there's a lot of special things to consider when designing a filesystem, and most common filesystems aren't really up to the task in such a limited enviornment.
How do I get involved?
I would love some extra help. There are a few extra contributors helping out, but this is such a big project that it'd really help if there was more. Feel free to join the IRC channel, #knightos on Freenode, to get involved or just to chat. I accept pull requests and would be happy to help you familiarize yourself with the code. That's all I have to say! I hope you like this project, it's my pride and joy. Let me know if you have any questions.