- KnightOS
- 14 Jun 2010 02:33:51 pm
- Last edited by SirCmpwn on 14 Jun 2010 04:01:11 pm; edited 4 times in total
Hi there. Let me explain a bit about KnightOS.
You may have heard of it, but this is the first time I'm really showing a lot of detail about it.
KnightOS is based on the KnightKernel. I have spent most of my time thus far working on the KnightKernel. KnightOS is based off of the KFS, or Knight Filesystem, where the OS resides. KFS is a directory based filesystem that resides in ROM. The OS lives inside this filesystem, and the kernel will run /OS/boot.kxe on startup. At the moment, the KFS driver is only partially implemented.
The KnightKernel will use a multitasking based system to run programs. It uses the system interrupt to manage this. This has yet to be fully implemented, but programs must be location independent. A combination of RSTs and macros are provided to help facilitate this with little to no impact on the developer. The current plans are to implement real-time interpretation, but pre-interpretation is being considered. The tasker is partially implemented.
The last thing the KnightKernel does is manage the basic drivers. It manages a LCD driver, RAM driver, I/O driver, USB driver (as well as several basic drivers for usb devices), keyboard driver, a KFS driver, and a FAT driver. Already done is the LCD driver, RAM driver, keyboard driver, and KFS driver (the KFS driver is only partially complete).
The RAM driver manages memory allocation and garbage collection. The other drivers should be relatively self-explanatory.
The rest is done by the OS itself. The OS has not been started yet, excepting a simple boot program. What it will do is outlined below:
*Boot up, load what it needs to login
*Show the login screen (optional)
*Upon a successful login, it will show the "Castle" (name pending review), which is similar to a start menu
*From the Castle, users can run the programs they use most, or expand to all installed programs and run them from there
*Once a program is run, it is given a new GUIArea
*Only one GUIArea is shown at a time
*Similar to DCS, GUIAreas are not usually controlled by the program, but by the OS. The program defines their GUIArea (or uses a command line, alternitavely), and the OS handles drawing and updating it.
*Multitasking would normally be slow on most calculators. However, most programs will be waiting for input from the GUIArea, and KnightOS can cut down the multitasking if the program's GUIArea is not being shown
*Pressing the Graph button will open a list of the current GUIAreas
*Pressing Y= will open the Castle
*Programs can provide QuickIcons, similar to taskbar icons in Windows, that will be displayed at the bottom of each GUIArea
*GUIAreas do not take up the entire screen, but leave a small amount at the bottom for OS stuff
*The user can press any of the three remaining function keys to select the QuickIcons, and browse to the one they wish to interface with
*Programs that do not wish to use the GUIArea interface can request to use the entire screen instead. This requires user input.
*Programs wishing to use the entire memory can request it, and all other processes will be shut down at the user's approval.
Installing KnightOS will actually install an installer program, which will help set initial preferences and install the OS. These preferences include user name, calculator name, password, and more. It will also be able to load your TIOS variables into the KFS before formatting the filesystem so you don't loose your files. The user preferences will also have an uninstaller, which will reformat the filesystem to be compatible with TIOS.
KnightOS will take several forms, customized to what the user wants to do with it. Here are the current forms planned:
*General: For the average user. It will come with some simple programs and the full math suite
*Developer: Will not include the full math suite, but only basic tools. Will also include Mosaic and several developer tools.
*Gamer: Optimized for gaming, it will come pre-loaded with popular games
*Ultimate: All programs and features
Edit: Changed tenses to be appropriate. The ones that are in present tense are correct, so stop being a nazi, Kerm.
NOTE: Bolded text in this document is to draw attention to an edit.
You may have heard of it, but this is the first time I'm really showing a lot of detail about it.
KnightOS is based on the KnightKernel. I have spent most of my time thus far working on the KnightKernel. KnightOS is based off of the KFS, or Knight Filesystem, where the OS resides. KFS is a directory based filesystem that resides in ROM. The OS lives inside this filesystem, and the kernel will run /OS/boot.kxe on startup. At the moment, the KFS driver is only partially implemented.
The KnightKernel will use a multitasking based system to run programs. It uses the system interrupt to manage this. This has yet to be fully implemented, but programs must be location independent. A combination of RSTs and macros are provided to help facilitate this with little to no impact on the developer. The current plans are to implement real-time interpretation, but pre-interpretation is being considered. The tasker is partially implemented.
The last thing the KnightKernel does is manage the basic drivers. It manages a LCD driver, RAM driver, I/O driver, USB driver (as well as several basic drivers for usb devices), keyboard driver, a KFS driver, and a FAT driver. Already done is the LCD driver, RAM driver, keyboard driver, and KFS driver (the KFS driver is only partially complete).
The RAM driver manages memory allocation and garbage collection. The other drivers should be relatively self-explanatory.
The rest is done by the OS itself. The OS has not been started yet, excepting a simple boot program. What it will do is outlined below:
*Boot up, load what it needs to login
*Show the login screen (optional)
*Upon a successful login, it will show the "Castle" (name pending review), which is similar to a start menu
*From the Castle, users can run the programs they use most, or expand to all installed programs and run them from there
*Once a program is run, it is given a new GUIArea
*Only one GUIArea is shown at a time
*Similar to DCS, GUIAreas are not usually controlled by the program, but by the OS. The program defines their GUIArea (or uses a command line, alternitavely), and the OS handles drawing and updating it.
*Multitasking would normally be slow on most calculators. However, most programs will be waiting for input from the GUIArea, and KnightOS can cut down the multitasking if the program's GUIArea is not being shown
*Pressing the Graph button will open a list of the current GUIAreas
*Pressing Y= will open the Castle
*Programs can provide QuickIcons, similar to taskbar icons in Windows, that will be displayed at the bottom of each GUIArea
*GUIAreas do not take up the entire screen, but leave a small amount at the bottom for OS stuff
*The user can press any of the three remaining function keys to select the QuickIcons, and browse to the one they wish to interface with
*Programs that do not wish to use the GUIArea interface can request to use the entire screen instead. This requires user input.
*Programs wishing to use the entire memory can request it, and all other processes will be shut down at the user's approval.
Installing KnightOS will actually install an installer program, which will help set initial preferences and install the OS. These preferences include user name, calculator name, password, and more. It will also be able to load your TIOS variables into the KFS before formatting the filesystem so you don't loose your files. The user preferences will also have an uninstaller, which will reformat the filesystem to be compatible with TIOS.
KnightOS will take several forms, customized to what the user wants to do with it. Here are the current forms planned:
*General: For the average user. It will come with some simple programs and the full math suite
*Developer: Will not include the full math suite, but only basic tools. Will also include Mosaic and several developer tools.
*Gamer: Optimized for gaming, it will come pre-loaded with popular games
*Ultimate: All programs and features
Edit: Changed tenses to be appropriate. The ones that are in present tense are correct, so stop being a nazi, Kerm.
NOTE: Bolded text in this document is to draw attention to an edit.