- OS-9 had the potential to displace MS-DOS.
- We'd like to create an open version for modern processors. I plan on detailing this at some point in the OS Design forum. (Note - A modern version called Enhanced OS-9 is available from Radisys but not typically to the general public - and it's expensive).
- It should if at all possible run on the Intel 8086 CPU.
- GCC-8086 (links below). I haven't had a chance to look at this too much yet. Unfortunately it seems to be incomplete, is not actively being developed anymore and would likely require an older version of GCC. If anyone has information on the status of this project I would definitely like to know.
http://www.opensubscriber.com/message/l ... 42861.html
http://git.etherboot.org/people/hpa/i86 ... onfig/ia16 - Dev86/BCC (Bruce's C Compiler). The entire Dev86 package is a good contender, at least for initial development. The tools included (BCC in particular) have been used in the past for other operating systems (ELKS) and is small enough to be adapted to new projects. Unfortunately it's still living in the days of K&R and lacks simple modifiers such as 'const'. The biggest downside is that even with peephole optimization BCC produces horrendously bad code.
- LCC. I've used LCC for other projects and am quite fond of it's small footprint. Although it currently doesn't have a backend code generator for the 8086 I'm familiar with it's BURG implementation and could write one. It generates fairly decent code and is easily modified. Creating a code generator for it wouldn't be difficult but would be somewhat time consuming. The amount of time could potentially be reduced by basing it on the existing 32bit x86 code generator however.
- Open Watcom. So far this is my top pick although I must admit I'm still getting familiar with their entire tool chain. The biggest plus to me is that it seems to produce very optimized 16 bit code. It also supports far calls which may come in handy in reducing the amount of glue code required to perform certain tasks. This will help keep the code base clean and provide a bit more flexibility at the kernel level. Having a C++ compiler in the toolset is also a bonus but applies more to user space, at least for now. It also seems to be well supported by Code::Blocks providing a nice cross-platform IDE for development.
The downside is that it's part of a must larger project, most of which isn't required or even usable for OS development.
(And yes, I'm documenting the results of my evaluations for inclusion in the Wiki.)