Mike Chambers
Veteran Member
- Joined
- Sep 2, 2006
- Messages
- 2,621
some might remember that OS i was working on late last year. i had gotten caught up on the FAT driver, and put the project aside. i decided to give it another go from scratch again about a week ago, and this time things are working out. the code is much more structed and well organized now that i have a better idea what i'm doing. i've got a working FAT12/16 driver that can load a rudimentary shell executable from disk, and any other program i want to make for it.
here's a quick overview of the kernel itself:
-true pre-emptive multitasking, process forking, parent processes can be made to pause and not eat CPU until the child returns, etc
-support for multiple virtual and pseudo terminals (like *NIX -- ctrl-alt-F# keys switch between terminals)
-interprocess signalling and communication
-FAT file system support (no write support yet, though... soon enough)
i plan to integrate the TCP/IP stack i wrote as part of the kernel so that it's accessible to user programs via the kernel API, and i'll be making it use normal DOS packet drivers so just about any network card will do the job. i'm going to make a telnet daemon for it too that attaches to pttys, so it can be operated remotely.
the shell only supports "exec" to load a binary and fork a new process, and "ps" to list active processes so far but i am trying to work it into something better.
obligatory screenshots
booted into the shell on vtty #1, and listing running processes:
and, you see plasma.bin up there running on vtty #4, which looks like this (but of course animated) when you switch to that terminal:
i've tried it several real machines too, from 8088 to 486. no stability problems so far. if anybody wants to get involved in the project let me know, i really think this could turn into something cool for our vintage systems... anybody who wants to write programs for it once the API expands a bit is welcome to, i'll provide all the info needed. i'm open to anybody who wants to get involved with the kernel itself too.
i'm aiming to make it somewhat like MINIX 2.x, but not POSIX and much lighter. it of course it isn't going to have all the features MINIX offered, but that's kind of a good thing. ever used MINIX 2 on an 8088? slow!
here's a quick overview of the kernel itself:
-true pre-emptive multitasking, process forking, parent processes can be made to pause and not eat CPU until the child returns, etc
-support for multiple virtual and pseudo terminals (like *NIX -- ctrl-alt-F# keys switch between terminals)
-interprocess signalling and communication
-FAT file system support (no write support yet, though... soon enough)
i plan to integrate the TCP/IP stack i wrote as part of the kernel so that it's accessible to user programs via the kernel API, and i'll be making it use normal DOS packet drivers so just about any network card will do the job. i'm going to make a telnet daemon for it too that attaches to pttys, so it can be operated remotely.
the shell only supports "exec" to load a binary and fork a new process, and "ps" to list active processes so far but i am trying to work it into something better.
obligatory screenshots
booted into the shell on vtty #1, and listing running processes:
and, you see plasma.bin up there running on vtty #4, which looks like this (but of course animated) when you switch to that terminal:
i've tried it several real machines too, from 8088 to 486. no stability problems so far. if anybody wants to get involved in the project let me know, i really think this could turn into something cool for our vintage systems... anybody who wants to write programs for it once the API expands a bit is welcome to, i'll provide all the info needed. i'm open to anybody who wants to get involved with the kernel itself too.
i'm aiming to make it somewhat like MINIX 2.x, but not POSIX and much lighter. it of course it isn't going to have all the features MINIX offered, but that's kind of a good thing. ever used MINIX 2 on an 8088? slow!
Last edited: