Look at the design of the 8086 with its enforced segmentation, lacking a single address space. Was it designed for single-tasking one large program at a time, or multitasking many tiny programs? Obviously the latter! Yet, so many OS developers target the 8086 with single-tasking OSs. I'm slightly disappointed.
I had ideas of developing such an OS with a microkernel, a userspace of small programs perhaps similar to Unix, perhaps not, and even a GUI with a modular design of small, communicating programs. QNX has such a GUI which it describes as similar to a microkernel, as seen in a screenshot. (QNX however is a 32-bit OS.)
What about graphics? I thought I'd first code for VGA monochrome mode, 1bpp, which is typical of mid-80s computers. VGA color is designed to work with code designed for 1bpp monochrome with little adaptation. And VGA has a barrel shifter to improve the performance of drawing characters and other bitmaps at non-byte-aligned positions.
So why aren't I developing this; why have I chosen to develop a 32-bit OS instead? Well, several reasons. I know some techniques for working with limited memory, but they're not always easy. They take time and energy away from other design considerations. I don't want to spend any more time and effort than I have to, especially as I have to develop my whole userspace too. I've lost literal decades to brain damage and a lack of recovery support; I want to get on! For the same reason, I found a language I can get on with much better than others, and I don't want to re-target the compiler before I can even start. Besides this, VGA color is curiously fascinating and challenging, but it's a technological dead end. I want more colors! And finally, I want my OS to be portable to architectures which don't have segmentation. (Retargetting the compiler is something I'm open to later.) For all these reasons, I've had to put Intent86 on the shelf.
Intent86 -- a curious little OS I can't quite find time for
Intent86 -- a curious little OS I can't quite find time for
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
Re: Intent86 -- a curious little OS I can't quite find time
Our company used the V25 processor, which is a 8086 compatible clone. I wrote a multitasking "kernel" for it, and it is still running on many terminal installations. In fact, it was a back port from the multitasking implementation in my 386 OS (RDOS). We used a LCD screen, and I wrote a driver for it. It was not compatible with PC graphics.eekee wrote:Look at the design of the 8086 with its enforced segmentation, lacking a single address space. Was it designed for single-tasking one large program at a time, or multitasking many tiny programs? Obviously the latter! Yet, so many OS developers target the 8086 with single-tasking OSs. I'm slightly disappointed.
I had ideas of developing such an OS with a microkernel, a userspace of small programs perhaps similar to Unix, perhaps not, and even a GUI with a modular design of small, communicating programs. QNX has such a GUI which it describes as similar to a microkernel, as seen in a screenshot. (QNX however is a 32-bit OS.)
What about graphics? I thought I'd first code for VGA monochrome mode, 1bpp, which is typical of mid-80s computers. VGA color is designed to work with code designed for 1bpp monochrome with little adaptation. And VGA has a barrel shifter to improve the performance of drawing characters and other bitmaps at non-byte-aligned positions.
So why aren't I developing this; why have I chosen to develop a 32-bit OS instead? Well, several reasons. I know some techniques for working with limited memory, but they're not always easy. They take time and energy away from other design considerations. I don't want to spend any more time and effort than I have to, especially as I have to develop my whole userspace too. I've lost literal decades to brain damage and a lack of recovery support; I want to get on! For the same reason, I found a language I can get on with much better than others, and I don't want to re-target the compiler before I can even start. Besides this, VGA color is curiously fascinating and challenging, but it's a technological dead end. I want more colors! And finally, I want my OS to be portable to architectures which don't have segmentation. (Retargetting the compiler is something I'm open to later.) For all these reasons, I've had to put Intent86 on the shelf.
Re: Intent86 -- a curious little OS I can't quite find time
Interesting! Did the use of segmentation in RDOS map to the 8086 at all?rdos wrote:Our company used the V25 processor, which is a 8086 compatible clone. I wrote a multitasking "kernel" for it, and it is still running on many terminal installations. In fact, it was a back port from the multitasking implementation in my 386 OS (RDOS). We used a LCD screen, and I wrote a driver for it. It was not compatible with PC graphics.
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
Re: Intent86 -- a curious little OS I can't quite find time
Certainly, since 8086 is a segmented design too (real mode). The main difference was that 8086 only support 16-bit instructions, while RDOS is a 32-bit design, which meant the scheduler would save different registers, and the thread control block was different. I debugged the design in RDOS x86 emulator before trying it on real hardware.eekee wrote:Interesting! Did the use of segmentation in RDOS map to the 8086 at all?rdos wrote:Our company used the V25 processor, which is a 8086 compatible clone. I wrote a multitasking "kernel" for it, and it is still running on many terminal installations. In fact, it was a back port from the multitasking implementation in my 386 OS (RDOS). We used a LCD screen, and I wrote a driver for it. It was not compatible with PC graphics.