Stereolithic Kernel?
- stevenup7002
- Member
- Posts: 60
- Joined: Tue Sep 20, 2005 11:00 pm
- Location: Ireland
- Contact:
Stereolithic Kernel?
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:
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
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
- stevenup7002
- Member
- Posts: 60
- Joined: Tue Sep 20, 2005 11:00 pm
- Location: Ireland
- Contact:
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
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?
-JL
But thats a good idea, are you patenting it? Can I use it?
-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
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.Pyrofan1 wrote:Okay unless i'm confusing things this design is pretty much a Hybrid Kernel with a error reporting system.but how will it do that without being connected to the internet?It doesn't need to be, it has a local list of mistakes, and it will update that list with the network version
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
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
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
-
- Member
- Posts: 204
- Joined: Thu Apr 12, 2007 8:15 am
- Location: Michigan
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
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
- piranha
- Member
- Posts: 1391
- Joined: Thu Dec 21, 2006 7:42 pm
- Location: Unknown. Momentum is pretty certain, however.
- Contact:
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
-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
-
- Member
- Posts: 204
- Joined: Thu Apr 12, 2007 8:15 am
- Location: Michigan
Upon realizing such a dependency, why doesn't the kernel just load the needed module? In fact, why didn't it check dependencies first?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
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?
- stevenup7002
- Member
- Posts: 60
- Joined: Tue Sep 20, 2005 11:00 pm
- Location: Ireland
- Contact:
Of course you can use it, I'm not patenting anything..piranha wrote:But thats a good idea, are you patenting it? Can I use it?
IF its connected, it will download a mistake list, but if its not, it will just collect the errors that it finds.but how will it do that without being connected to the internet?
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..Could you elaborate a little about your mistakes list idea? I'm not quite sure i understand the use...
Hope that answers your questions,
-Steve
-
- Member
- Posts: 204
- Joined: Thu Apr 12, 2007 8:15 am
- Location: Michigan
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.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..
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?)?
- stevenup7002
- Member
- Posts: 60
- Joined: Tue Sep 20, 2005 11:00 pm
- Location: Ireland
- Contact:
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.
Basically, to learn from its mistakes and develop a strategy of running.