Stereolithic Kernel?

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
User avatar
stevenup7002
Member
Member
Posts: 60
Joined: Tue Sep 20, 2005 11:00 pm
Location: Ireland
Contact:

Stereolithic Kernel?

Post 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
Pyrofan1
Member
Member
Posts: 234
Joined: Sun Apr 29, 2007 1:13 am

Post by Pyrofan1 »

what happens if you're not connected to the internet?
User avatar
stevenup7002
Member
Member
Posts: 60
Joined: Tue Sep 20, 2005 11:00 pm
Location: Ireland
Contact:

Post 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?
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Post 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
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
Pyrofan1
Member
Member
Posts: 234
Joined: Sun Apr 29, 2007 1:13 am

Post 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?
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Post 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.
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Post by piranha »

I would guess that it could keep it's own list
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
madeofstaples
Member
Member
Posts: 204
Joined: Thu Apr 12, 2007 8:15 am
Location: Michigan

Post 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
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Post 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
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
madeofstaples
Member
Member
Posts: 204
Joined: Thu Apr 12, 2007 8:15 am
Location: Michigan

Post 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?
User avatar
stevenup7002
Member
Member
Posts: 60
Joined: Tue Sep 20, 2005 11:00 pm
Location: Ireland
Contact:

Post 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
madeofstaples
Member
Member
Posts: 204
Joined: Thu Apr 12, 2007 8:15 am
Location: Michigan

Post 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?)?
Crazed123
Member
Member
Posts: 248
Joined: Thu Oct 21, 2004 11:00 pm

Post by Crazed123 »

If you really want to put AI in your kernel, just go for GLaDOS.

</crotchety old-timer>
OrOS
Member
Member
Posts: 143
Joined: Sat Sep 08, 2007 11:26 pm
Location: Canada

Post 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?
User avatar
stevenup7002
Member
Member
Posts: 60
Joined: Tue Sep 20, 2005 11:00 pm
Location: Ireland
Contact:

Post 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.
Post Reply