It was fun! Well, fun modulo writing and debugging all the code in three months.
As for drivers, the OS really only interfaces with 8250 UARTs; both the VT100 terminal and the Marklin digital interface for the trains were connected via RS-232 serial ports. There is also, embedded in the kernel, a micro VGA driver for displaying debug messages.
I don't exactly have a specific open source license in mind. Right now I suppose you could say it's public domain. I'd be happy for it to stay that way, unless somebody would like to convince me otherwise?
If you want it to be public domain, you could use the Creative Commons Public Domain Deed to clarify that. Right now, if I were to download your code, decide not to use it, write something similar, make a successful commercial open-source product from it, and then you got hit by a bus and your sister inherited your copyright, she could sue me on the theory that you didn't really know what it meant when you said, "I suppose you could say it's public domain."
It's a little depressing to hear you say it took you three months working really hard, because it means it would probably take me about the same time. (I have no reason to think I'm any smarter than you are.) Maybe I should stick to AVRs for real-time stuff...
Aha, well I'm an only child! Either way, I added some text saying everything is licensed under a Creative Commons Attribution 2.5 Canada License; thanks for the advice.
I'll plead ignorance with your second sentence. AVRs? And why should it depress you that it took me three months? (Keeping in mind that I was taking other classes at the time, and that there was a ton of competition for lab space.)
Ah, thanks for clarifying things. Now I have the code licensed under an MIT license. Out of curiosity, what are the implications of changing the license on software you've already released?
Great! That's awesome! (Although it's true that CC-BY isn't really intended for software, it's open-source and IIRC GPL-compatible, so it's plenty good enough for me. The 4-clause BSD license recommended by the other poster is not GPL-compatible.)
AVRs are these fun little cheap microcontrollers; the Arduinos and Chalkroaches, among other things, use them. Writing enough code to drive a couple of on-board UARTs and switch between some real-time processes on an ATMega AVR would be a thing to do in an evening or a week, not three months. So three months to do the same thing due to the unnecessary complexities of PC hardware is kind of depressing! It's a little less depressing if you were only working on it, like, 8 hours a week or something.
be a thing to do in an evening or a week, not three months.
As someone who wrote an AVR RTOS kernel for a class in Realtime systems I agree, but you're comparing apples to oranges. I can write, and have written, a real-time control system (RTCS) for a set of peripherals in an evening or a few days, but that's not the same thing as an RTOS. The RTCS is a specific case, the RTOS is the general one and as a result it's much more complex because it has a more open-ended specification. My RTOS took me about 4 weeks or so before it was usable.
You're right, targeting the x86 architecture added a lot of complexity without any tangible benefit. Poring over the subpar Intel documentation consumed an inordinate amount of time.
That said, it only took a little over a month to build the OS itself, while the other two months I spent working on the train control program. All the equipment is notoriously flaky so coping with real-world brokenness was probably the biggest time sink.
As for drivers, the OS really only interfaces with 8250 UARTs; both the VT100 terminal and the Marklin digital interface for the trains were connected via RS-232 serial ports. There is also, embedded in the kernel, a micro VGA driver for displaying debug messages.
I don't exactly have a specific open source license in mind. Right now I suppose you could say it's public domain. I'd be happy for it to stay that way, unless somebody would like to convince me otherwise?