Page 1 of 2

Stereolithic Kernel?

Posted: Thu Dec 13, 2007 5:39 pm
by stevenup7002
Well I have sort of made up a weird kernel design thats not quite monolithic, and not quite micro. I just called it a Stereolithic kernel (wordplay). I'll put a graphical overview of it before I say anything else:

Image

Ok, so basically, what you see here is two stereolithic systems communicating over a network (This can be over the internet or LAN). The first strange thing you may notice is the Mistake List. Basically, what I propose is this: when a stereolithic based system makes some stupid error or mistake, it will record it on a local mistake list. This will allow the system to see if there is an error recurring constantly, if the error is recurring many times, it will be sent to the Mistake list on the network's server (Again, internet or LAN). So it can then be identified on other systems. This system of Mistake listing can be useful in many other ways.

As you can see, the kernel loads in a series of user defined modules at startup. A feature that should be standard on stereolithic systems, is that modules don't have to be loaded at startup, and can be loaded at any time during runtime.

The two systems can directly communicate with eachother after a connection is initialized, the kernels can share ideas and mistakes, and the user on SystemA can log in to SystemB and do what they are allowed to do.

Please tell me what you think about my ideas, they're only small things, but it could potentially be a good system, please comment,

-Steven

Posted: Thu Dec 13, 2007 5:41 pm
by Pyrofan1
what happens if you're not connected to the internet?

Posted: Thu Dec 13, 2007 5:43 pm
by stevenup7002
It doesn't need to be, it has a local list of mistakes, and it will update that list with the network version. Besides, theres no need for a network connection on any computer, is there?

Posted: Thu Dec 13, 2007 5:46 pm
by piranha
Now see, thats the kind of thing I want to (eventually) implement into my kernel, it's like an AI thing.

But thats a good idea, are you patenting it? Can I use it? [-o< :mrgreen:

-JL

Posted: Thu Dec 13, 2007 5:48 pm
by Pyrofan1
Okay unless i'm confusing things this design is pretty much a Hybrid Kernel with a error reporting system.
It doesn't need to be, it has a local list of mistakes, and it will update that list with the network version
but how will it do that without being connected to the internet?

Posted: Thu Dec 13, 2007 5:56 pm
by Tyler
Pyrofan1 wrote:Okay unless i'm confusing things this design is pretty much a Hybrid Kernel with a error reporting system.
It doesn't need to be, it has a local list of mistakes, and it will update that list with the network version
but how will it do that without being connected to the internet?
And group error analysis, for finding problems that effect numerous computer's, which would be helpful in finding an external or common route cause. Of course, i wouldn't show this off as my Systems main function, could be useful though.

Posted: Thu Dec 13, 2007 5:57 pm
by piranha
I would guess that it could keep it's own list

Posted: Thu Dec 13, 2007 6:00 pm
by madeofstaples
Could you elaborate a little about your mistakes list idea? I'm not quite sure i understand the use...

Is it essentially a kernel log, except only erroneous entries? Or, perhaps a better question to ask: what types of errors might appear in a mistakes list?

Also, so what? what does the system do with a mistakes list containing a certain error? I'm imagining a system with a failing hard drive. Will repetitive failed read/writes to a faulty disk fill up the memory with a gigantic mistakes list of "hd error" entries? So then this gets sent to a server and the server asks the network "hey, anyone else's hard drive failing?"? What happens after the probably resounding "no." replies? Server just says "oh, 'aight"? What happens if another computer says "yeah, me"?

Of course, I may just be thinking about this all wrong

Posted: Thu Dec 13, 2007 6:10 pm
by piranha
So....if a certain module is loaded before another module that it needs to work right, then the kernel could modify a config file to load the required module first? Just a guess...

-JL

Posted: Thu Dec 13, 2007 6:39 pm
by madeofstaples
piranha wrote:So....if a certain module is loaded before another module that it needs to work right, then the kernel could modify a config file to load the required module first? Just a guess...

-JL
Upon realizing such a dependency, why doesn't the kernel just load the needed module? In fact, why didn't it check dependencies first?

Okay, so it realizes an error and fixes it. What use is appending this to a mistakes list? And furthermore sending it to a server?

Posted: Thu Dec 13, 2007 6:48 pm
by stevenup7002
piranha wrote:But thats a good idea, are you patenting it? Can I use it?
Of course you can use it, I'm not patenting anything..
but how will it do that without being connected to the internet?
IF its connected, it will download a mistake list, but if its not, it will just collect the errors that it finds.
Could you elaborate a little about your mistakes list idea? I'm not quite sure i understand the use...
It's hard to explain, as a human would debug code, they remember what silly mistakes they made as they were coding. Compare the kernel to the human, only with things other than code. It uploads it to a server so that other kernels dont have to waste time trying things if they dont work. It can also tell the kernel that other kernels on your LAN or maybe all kernels have been having the same problem. It would also help stomp out bugs..

Hope that answers your questions,
-Steve

Posted: Thu Dec 13, 2007 7:00 pm
by madeofstaples
stevenup7002 wrote:It's hard to explain, as a human would debug code, they remember what silly mistakes they made as they were coding. Compare the kernel to the human, only with things other than code. It uploads it to a server so that other kernels dont have to waste time trying things if they dont work. It can also tell the kernel that other kernels on your LAN or maybe all kernels have been having the same problem. It would also help stomp out bugs..
I guess I can't think of a problem where a kernel would have to simply "try" different things to fix the problem. Anything I think of that is fixable by software, the kernel should be able to immediately calculate the solution. Anything that isn't fixable by software (i.e, hard drive failure) seems irrelevant, because it requires the user's interaction to fix, anyway.

The idea certainly sparks interest from a higher level, but what does it mean at a lower level? Can you give me an example of a program flow where an error occurs on some such system on a network, and the mistakes list idea becomes beneficial for another computer on the network that experiences the same problem (later?)?

Posted: Fri Dec 14, 2007 12:12 am
by Crazed123
If you really want to put AI in your kernel, just go for GLaDOS.

</crotchety old-timer>

Posted: Fri Dec 14, 2007 8:33 am
by OrOS
I still don't understand what your trying to do, the most likely thing I can come up with is, for example,

* Boot Sabayon
* No APIC module found
* lowest level kernel log gets a message, stores it.
* restart

* Boot Sabayon
* Ignores APIC probe?

Posted: Fri Dec 14, 2007 10:16 am
by stevenup7002
The mistake doesn't have to be a hard disk failiure, I didn't intend it for such big errors like that, what I meant was warnings done through a warning() or error() function. Its basically error reporting for the kernel that has a use.

Basically, to learn from its mistakes and develop a strategy of running.