0 Members and 1 Guest are viewing this topic.
The boot pages aren't included in the ROMs I distribute. They are just FF over and over. KnightOS uses custom flash writing routines. And RAM corruption is not avoidable, but crashes are potentially recoverable, and infinite loops can be stopped.
Well, crash recovery is when it realizes it crashed at boot time, and offers to try and recover. It only tries once, though, so you won't get trapped. It may not work very well, but I guess we will see.
Quote from: SirCmpwn on November 30, 2010, 05:46:26 pmWell, crash recovery is when it realizes it crashed at boot time, and offers to try and recover. It only tries once, though, so you won't get trapped. It may not work very well, but I guess we will see.I think that a less-crashable-OS-than-Texas's would be a perfect advertisement for KnightOS and it could get famous JUST because of that
Plus, since all your files are already in the archive, it should already be much more safe for your files, right? The RAM is reserved for running programs.
UpdateHardware locking is now been implemented for the LCD port, and I am adding locks on the I/O, USB, and Keyboard hardware as well. Of course I can't entirely stop programs from accessing the ports, but I can ask them to play nice, and all of the official routines are compliant with hardware locks. The screenshot below is a demonstration of this technique, based on the same program from the previous update. There are two threads, both waiting for keypresses. Thread 01 is waiting on 1, and thread 02 is waiting for 2, and when those keys are pressed, they display their message. Thread 01 is also watching for S, however, and when it sees it, it releases the LCD and gives control to thread 02. In the screenshot, I alternate pressing 1 and 2, then press S every so often to switch LCD control. Both threads try to write to the LCD, but only one is successful, and I can change which one that is.The KnightKernel is progressing extremely well, and all I have left is to add hardware locking to other ports, add one flash control routine, and implement the filesystem. Then it's just basic programs until the developer release.
This basically prevents two threads from both accessing the same hardware. There could be problems if two threads were trying to access the screen at the same time, for example.