Multi-Kernel Self Deciding OS
Re: Multi-Kernel Self Deciding OS
I don't understand why you think the the 'voting' system will give a best answer to any particular question. It seems you are assigning equal weight to the opinion of each entity.
Before you do that won't you first need to prove that the chance of an entity choosing a correct answer is exactly the same as the chance of each of the other 2 entities choosing the correct answer.
How do you propose to do that ?
My feeling is that if it is found during testing that one of the entities provides the 'correct' answer more often than the others you should use its answers exclusively.
Before you do that won't you first need to prove that the chance of an entity choosing a correct answer is exactly the same as the chance of each of the other 2 entities choosing the correct answer.
How do you propose to do that ?
My feeling is that if it is found during testing that one of the entities provides the 'correct' answer more often than the others you should use its answers exclusively.
If a trainstation is where trains stop, what is a workstation ?
- Lionel
- Member
- Posts: 117
- Joined: Fri Jul 16, 2010 2:16 pm
- Libera.chat IRC: ryanel
- Location: California
Re: Multi-Kernel Self Deciding OS
gerryg400:
Think of it this way, there are 3 students in a classroom, and a teacher
Lets say the teacher asks questions, and a always answers first, and b and c answers are not so good. If the teacher were to ask a specific student a question, which one would be asked? The answer is B or C, because the teacher wants them to develop to a's level.
In reality, the teacher is the kernel, and a, b and c are personalities.
Combuster: Yes
rdos: It's both. Complex logic algorithms and neural networks make up the personality of the personality (hensforth shall be known as entities), and the logic is just logic: bare C/ASM.
Brendan: Not that I know of. But mine will contain a real neural network. The problem is that I need:
a)Fast CPU for logic
b)Two TERABYTES of ram per personality (assuming the size of the average human brain)
c)Some way to organize it all.
Or: Someones brain.
Bear in mind (that I <3 bears, and) that the Computers in Evangelion had 278,632,293 TB of RAM. So I guess this one won't be as smart as I want it untill the technology catches up (6.5 TB of Ram?). And remember, mine will be a hybrid, so I guess it will inherit the pros from both sides and maybe the cons would be less?
Anyway, once I finish the design booklet, the directory structure, etc, I shall get started and get The source pushed to Github.
Thanks,
Lionel
P.S: I typed it on my phone, possible typos.
Think of it this way, there are 3 students in a classroom, and a teacher
Lets say the teacher asks questions, and a always answers first, and b and c answers are not so good. If the teacher were to ask a specific student a question, which one would be asked? The answer is B or C, because the teacher wants them to develop to a's level.
In reality, the teacher is the kernel, and a, b and c are personalities.
Combuster: Yes
rdos: It's both. Complex logic algorithms and neural networks make up the personality of the personality (hensforth shall be known as entities), and the logic is just logic: bare C/ASM.
Brendan: Not that I know of. But mine will contain a real neural network. The problem is that I need:
a)Fast CPU for logic
b)Two TERABYTES of ram per personality (assuming the size of the average human brain)
c)Some way to organize it all.
Or: Someones brain.
Bear in mind (that I <3 bears, and) that the Computers in Evangelion had 278,632,293 TB of RAM. So I guess this one won't be as smart as I want it untill the technology catches up (6.5 TB of Ram?). And remember, mine will be a hybrid, so I guess it will inherit the pros from both sides and maybe the cons would be less?
Anyway, once I finish the design booklet, the directory structure, etc, I shall get started and get The source pushed to Github.
Thanks,
Lionel
P.S: I typed it on my phone, possible typos.
Re: Multi-Kernel Self Deciding OS
Hi,
For something like attempting to predict when a file will be used next a neural network would only need a tiny amount of RAM (maybe 10 bytes). For deciding if a page should be sent to swap, or if the current thread should be preempted, or for any actual decision that has a purpose, you only need a tiny amount of RAM. This means that using a neural network for these things is possible (even though it's also inferior).
However, the time taken by "training" (the incredibly unintelligent brute force formula finding) depends on the number of "neurons" and the number of settings per neuron. If a neuron can have one of 256 different settings; then the total number of permutations would be "256 to the power of (number of neurons)". 1 neuron = 256 possible formulas to check, 2 neurons = 65536 possible formulas to check, 3 neurons = 16 million possible formulas to check, ... 10 neurons = 1208925819614629174706176 possible formulas to check, etc. With various optimisations, a modern 80x86 might be able to handle the training for as many as 20 neurons (if you're willing to wait a full day for training).
You think you want billions of neurons for no specific purpose at all? Fine. Start by building a super computer that is a few million times faster than the current fastest super computer. Once you've built it (and programmed it) let it run for 60 years. After all that the only end result is that you might finally realise that the idea was a massive failure from the beginning.
A much simpler alternative would be to write fictional stories. You don't need to worry about practicality in that case.
Cheers,
Brendan
A "neural network" is just something that uses brute force to create a function. Where possible, it's always better to find out what that function should be and hard-code it, because this eliminates error (wrong function created by neural network) and avoids a massive (and pointless) performance problem.Lionel wrote:Brendan: Not that I know of. But mine will contain a real neural network.
You need focus. You don't know what this neural network will be used for, so you're throwing everything at it in case you might find some way to justify the sheer stupidity of bothering with it in the first place.Lionel wrote:The problem is that I need:
a)Fast CPU for logic
b)Two TERABYTES of ram per personality (assuming the size of the average human brain)
c)Some way to organize it all.
Or: Someones brain.
For something like attempting to predict when a file will be used next a neural network would only need a tiny amount of RAM (maybe 10 bytes). For deciding if a page should be sent to swap, or if the current thread should be preempted, or for any actual decision that has a purpose, you only need a tiny amount of RAM. This means that using a neural network for these things is possible (even though it's also inferior).
However, the time taken by "training" (the incredibly unintelligent brute force formula finding) depends on the number of "neurons" and the number of settings per neuron. If a neuron can have one of 256 different settings; then the total number of permutations would be "256 to the power of (number of neurons)". 1 neuron = 256 possible formulas to check, 2 neurons = 65536 possible formulas to check, 3 neurons = 16 million possible formulas to check, ... 10 neurons = 1208925819614629174706176 possible formulas to check, etc. With various optimisations, a modern 80x86 might be able to handle the training for as many as 20 neurons (if you're willing to wait a full day for training).
You think you want billions of neurons for no specific purpose at all? Fine. Start by building a super computer that is a few million times faster than the current fastest super computer. Once you've built it (and programmed it) let it run for 60 years. After all that the only end result is that you might finally realise that the idea was a massive failure from the beginning.
A much simpler alternative would be to write fictional stories. You don't need to worry about practicality in that case.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re: Multi-Kernel Self Deciding OS
Long time since I last visited this forum...
Anyway, I remember reading about this one "ardusat project" which used a voting system. The logic behind it was that in space radiation zaps the chips too often for a single chip to accurately compute anything, so instead this group of engineers decided to wire up many arduinos and put it into space.
Although this is different to an artificial intelligence based OS, I can see the idea of a voting system being useful in parallel computing. If you want to make an answer engine, my suggestion would be get yourself acquainted with python, pick up NLTK, pattern and some other web framework. There are loads of AI and natural language toolkits for it.
There is a reason why we humans make mistakes: Its our Neural Network.
Anyway, I remember reading about this one "ardusat project" which used a voting system. The logic behind it was that in space radiation zaps the chips too often for a single chip to accurately compute anything, so instead this group of engineers decided to wire up many arduinos and put it into space.
Although this is different to an artificial intelligence based OS, I can see the idea of a voting system being useful in parallel computing. If you want to make an answer engine, my suggestion would be get yourself acquainted with python, pick up NLTK, pattern and some other web framework. There are loads of AI and natural language toolkits for it.
There is a reason why we humans make mistakes: Its our Neural Network.
Get back to work!
Github
Github
- Lionel
- Member
- Posts: 117
- Joined: Fri Jul 16, 2010 2:16 pm
- Libera.chat IRC: ryanel
- Location: California
Re: Multi-Kernel Self Deciding OS
ACCurrent:
Welcome Back!
I'll look into Ardusat for any ideas.
I will of course start small scale with the answer engine, though I hate python. Love ruby though.
Yes, we makes lots of mistakes. But why? Because, we are "imperfect". Each one is different. That's what the voting system is supposed to fix.
Brendan:
Hello!
Well, yes I know that it will be inefficient, but: I have two solutions.
A:Real neural network AKA: Use someones brain, or a physical neural network.
B:Hardcode lots of common function, as much as I can, then leave the neural network (alot smaller) as a cushion.
I know I need focus, I need it bad.
I need the 2TB because that is how much data the brain stores. That would be data. The neural network would actually be alot less. But: This computer does small and BIG decisions. I imagine either you need a brain or a medium sized neural network to debate over something such as what happens in the interior of a black hole (though it would probably never do such ludicrous calculations). Though I do admit I am scrambling to wrap my head on how to implement it.
Wow, that's a long time.
I do, but I'll never link the account here. But, see here: I am trying the best I can to bring a work of fiction to reality.
Welcome Back!
I'll look into Ardusat for any ideas.
I will of course start small scale with the answer engine, though I hate python. Love ruby though.
Yes, we makes lots of mistakes. But why? Because, we are "imperfect". Each one is different. That's what the voting system is supposed to fix.
Brendan:
Hello!
Well, yes I know that it will be inefficient, but: I have two solutions.
A:Real neural network AKA: Use someones brain, or a physical neural network.
B:Hardcode lots of common function, as much as I can, then leave the neural network (alot smaller) as a cushion.
I know I need focus, I need it bad.
I need the 2TB because that is how much data the brain stores. That would be data. The neural network would actually be alot less. But: This computer does small and BIG decisions. I imagine either you need a brain or a medium sized neural network to debate over something such as what happens in the interior of a black hole (though it would probably never do such ludicrous calculations). Though I do admit I am scrambling to wrap my head on how to implement it.
Wow, that's a long time.
I do, but I'll never link the account here. But, see here: I am trying the best I can to bring a work of fiction to reality.
Re: Multi-Kernel Self Deciding OS
Hi,
Next arrange your neurons in a grid (e.g. "myNeuron myBrain[x][y]"), and just assume that a neuron's first input comes form the neuron on it's right, and the neuron's second input comes from the neuron below it. This would mean that the output of the top left neuron is the output of the network; and the input to the bottom right neuron is the network's input.
Once you've got that sorted out you'd just loop through the neurons; performing each neuron's current operation.
The final step is "training". Here you just change the current operation of each neuron until you get a the right output for each input.
Of course this is just a very basic neural network. Once you've got it working you'd start playing with it. Maybe try adding support for other operations, using the current output as a third input, having some sort of "bias" value, finding a "more smarterer" way of doing training, etc.
In any case; you can probably get something capable of learning (and then correctly guessing subsequent values) for simple things with about 4 neurons and 20 lines of C code. For example (Fibonacci) you could tell it "1, 1, 2, 3, 5, 8, 13, 21" to train it, and then the neural network might start guessing "34, 55, 89, etc".
Cheers,
Brendan
I think you need a special permit before you can hardwire someone's brain into a PCI slot...Lionel wrote:Well, yes I know that it will be inefficient, but: I have two solutions.
A:Real neural network AKA: Use someones brain, or a physical neural network.
Maybe start by experimenting with one small neural network (e.g. maybe 10 neurons) as a normal application. For example, it could read a sequence of values from a file and then try to guess then next value. Then you could refine it (optimise it, make it smarter, increase the number of neurons, give it more challenging problems to solve, etc) until you've perfected it. You don't need an OS for this; and could worry about the OS part of it once you know what your neural networks are capable of.Lionel wrote:B:Hardcode lots of common function, as much as I can, then leave the neural network (alot smaller) as a cushion.
Just give it an internet connection to wikipedia (and some RAM for caches).Lionel wrote:I need the 2TB because that is how much data the brain stores. That would be data.
It's incredibly simple. First determine what a "neuron" is - I'd have 2 inputs, some sort of operation, and one output. Then define a structure or something to contain the current operation and the current output (you can get the inputs from other neuron's structures when you need them); and work out what operations a neuron supports (I'd just have "sum" and "product"; and maybe some flags to invert an input).Lionel wrote:Though I do admit I am scrambling to wrap my head on how to implement it.
Next arrange your neurons in a grid (e.g. "myNeuron myBrain[x][y]"), and just assume that a neuron's first input comes form the neuron on it's right, and the neuron's second input comes from the neuron below it. This would mean that the output of the top left neuron is the output of the network; and the input to the bottom right neuron is the network's input.
Once you've got that sorted out you'd just loop through the neurons; performing each neuron's current operation.
The final step is "training". Here you just change the current operation of each neuron until you get a the right output for each input.
Of course this is just a very basic neural network. Once you've got it working you'd start playing with it. Maybe try adding support for other operations, using the current output as a third input, having some sort of "bias" value, finding a "more smarterer" way of doing training, etc.
In any case; you can probably get something capable of learning (and then correctly guessing subsequent values) for simple things with about 4 neurons and 20 lines of C code. For example (Fibonacci) you could tell it "1, 1, 2, 3, 5, 8, 13, 21" to train it, and then the neural network might start guessing "34, 55, 89, etc".
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re: Multi-Kernel Self Deciding OS
I would use the traditional AI approach: take neutron network as example, it can be implemented with finate state machine (note, you can have more than 2 outputs per node for "smarter" AI), plus feedback loop to dynamic adjust the weight of each output pin. This is good enough for chess game, and probably good enough to adopt user preference and perhaps able to predict user (rountinely) behaviour.
Once you have one neutron network, you may create another network with slightly different rule for the feedback loop / weight distribution / or even totally different graph for the state's flow, and let them fight to each other - the good news is they can think in parallel so it's doable for future CPU with millions of core.
Once you have one neutron network, you may create another network with slightly different rule for the feedback loop / weight distribution / or even totally different graph for the state's flow, and let them fight to each other - the good news is they can think in parallel so it's doable for future CPU with millions of core.
Re: Multi-Kernel Self Deciding OS
Is neuron model according to wikipedia. There can be a few different ways to implement it, but that's the general idea - sum weighted inputs from synapses, apply activation function, return result as output on the axon.
where yj is the output of the j th neuron, xi is the i th input neuron signal, wij is the synaptic weight between the neurons i and j, and φ is the activation function.
Learn to read.
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: Multi-Kernel Self Deciding OS
4-bit fibonacci numbers, hmm...for simple things with about 4 neurons (...) fibbonaci
Re: Multi-Kernel Self Deciding OS
Hi,
For Fibbonaci you only need to store 2 values and do one addition, so...
Cheers,
Brendan
4 neurons, where each neuron might store a 64-bit floating point number.Combuster wrote:4-bit fibonacci numbers, hmm...for simple things with about 4 neurons (...) fibbonaci
For Fibbonaci you only need to store 2 values and do one addition, so...
That is likely to be a more realistic model of a biological neuron. Sadly, biological neurons aren't very good. For an example, using only your biological neurons, calculate 1234*9876 and see how long it takes (and how many times you get it wrong). Now imagine a better neuron that can get basic maths right (and do it *fast*).dozniak wrote:Is neuron model according to wikipedia. There can be a few different ways to implement it, but that's the general idea - sum weighted inputs from synapses, apply activation function, return result as output on the axon.
where yj is the output of the j th neuron, xi is the i th input neuron signal, wij is the synaptic weight between the neurons i and j, and φ is the activation function.
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re: Multi-Kernel Self Deciding OS
imagine this as an example:bluemoon wrote:It's difficult to work with a person with 3 personalities, so what made a computer with 3 personalities good for?
linux build 1: test server (loaded when booting from the server-geared OS)
linux build 2: userspace (loaded when booting desktop OS)
FreeDOS build 1: ms-compatible (loaded when booting from windows-like OS)
FreeDOS build 2: POSIX-compatible (for OS geared toward running most portable and IA-32 apps)
FreeDOS build 3: no-hardware (slimmed API-only kernel for virtualizing daemons)
wouldn't be too hard to mod syslinux to let the user set a config file of which os matches which kernel
[edit: i meant in an OS where a compiler is available, of course - maybe also build a few into the app?)
then write a generic portable app to quickly compile new profiles from any OS where the host matches the target:
e.g. boot to dos and make or change a DOS kernel or macrokernel profile
or boot to linux to to make or change a unix kernel, etc
after all, if they need a kernel, i assume they know how to boot into the target OS somehow.
if im wrong anywhere, i'd love to be corrected cause I've been planning to implement something similar in my os
finishing high school & preparing a few IT ventures
@Cadav3r on: ScoriaGames / Darksunlight Productions / http://cadav3r.tk – soon
@cadav3r221 on Myspace @kingofpasco on facebook
@Cadav3r on: ScoriaGames / Darksunlight Productions / http://cadav3r.tk – soon
@cadav3r221 on Myspace @kingofpasco on facebook
- gravaera
- Member
- Posts: 737
- Joined: Tue Jun 02, 2009 4:35 pm
- Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.
Re: Multi-Kernel Self Deciding OS
Yo:
I think this thread is similar to another one that was created a while ago where the OP was suggesting a kernel design that modeled the kernel as a goalkeeper, and the processes in userspace as being the players in a sport. He conjectured that the goalkeeper would monitor and control the processes and ensure that they don't violate a set of "rules", which would be kept by the goalie (kernel). Essentially, setting up a sort of policing policy in kernelspace which would control aspects of userspace that it really had no business trying to control.
This is because a kernel's purpose is very simple: to provide uniform, abstracted access to the hardware on the machine to the applications running on the machine in a safe manner. Your primary goal is not to deny access, but rather to allow access. The only time checks for safety come in is when an application is trying to compromise the kernel, and optionally when an application is trying to compromise another application.
The kernel's service expectation is that it will keep the machine in a sane running state which is adequate for applications to run correctly. The only reason you bother to police anything in kernel space is to ensure that the kernel itself is not compromised; or else it will not longer be able to provide organized access to hardware features to applications.
If you wish to provide extensive support for allowing userspace to police other userspace applications, you can easily provide a "Security Hook API" and let a userspace application set up policies and rules for managing other userspace applications and police them as directed by the user. However, the kernel's primary concern is keeping itself reliably running so that it can fulfil its key requirement: providing access to the hardware features exposed by the machine. From the time you stray from this, you begin adding useless features and trying to add silly things, like policing to the kernel, and you start doing nonsensical things like approaching with a "deny first" approach, instead of an "allow first" approach.
--Peace out,
gravaera
I think this thread is similar to another one that was created a while ago where the OP was suggesting a kernel design that modeled the kernel as a goalkeeper, and the processes in userspace as being the players in a sport. He conjectured that the goalkeeper would monitor and control the processes and ensure that they don't violate a set of "rules", which would be kept by the goalie (kernel). Essentially, setting up a sort of policing policy in kernelspace which would control aspects of userspace that it really had no business trying to control.
This is because a kernel's purpose is very simple: to provide uniform, abstracted access to the hardware on the machine to the applications running on the machine in a safe manner. Your primary goal is not to deny access, but rather to allow access. The only time checks for safety come in is when an application is trying to compromise the kernel, and optionally when an application is trying to compromise another application.
The kernel's service expectation is that it will keep the machine in a sane running state which is adequate for applications to run correctly. The only reason you bother to police anything in kernel space is to ensure that the kernel itself is not compromised; or else it will not longer be able to provide organized access to hardware features to applications.
If you wish to provide extensive support for allowing userspace to police other userspace applications, you can easily provide a "Security Hook API" and let a userspace application set up policies and rules for managing other userspace applications and police them as directed by the user. However, the kernel's primary concern is keeping itself reliably running so that it can fulfil its key requirement: providing access to the hardware features exposed by the machine. From the time you stray from this, you begin adding useless features and trying to add silly things, like policing to the kernel, and you start doing nonsensical things like approaching with a "deny first" approach, instead of an "allow first" approach.
--Peace out,
gravaera
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
Re: Multi-Kernel Self Deciding OS
This is easy, I can do it in about 30 seconds, I have a friend who can do it in less than ten. http://math-magic.com/Brendan wrote:1234*9876 and see how long it takes
Still, that's far longer than it would take a computer...
BTW, it would be
Code: Select all
9876000 +
2* 987600 +
3* 98760 +
4* 9876
-------------
9876000
1975200
296280 <--- I don't seem to want to align right
39504
-------------
12186984
Programming is 80% Math, 20% Grammar, and 10% Creativity <--- Do not make fun of my joke!
If you're new, check this out.
If you're new, check this out.
Re: Multi-Kernel Self Deciding OS
Hi,
Simply imagine that the first digit is 5 and all the other digits are zero ("1234*9876" becomes "5000*0000") then delete the multiplication sign in the middle ("5000*0000" becomes "50000000"). This gives an estimate that is always within an order of magnitude of the right answer, and (with a little practice) can be done very quickly (maybe only 1 billion times slower than a CPU).
Cheers,
Brendan
My method is faster.m12 wrote:This is easy, I can do it in about 30 seconds, I have a friend who can do it in less than ten. http://math-magic.com/Brendan wrote:1234*9876 and see how long it takes
Still, that's far longer than it would take a computer...
BTW, it would beAnd there's easier ways to do it...Code: Select all
9876000 + 2* 987600 + 3* 98760 + 4* 9876 ------------- 9876000 1975200 296280 <--- I don't seem to want to align right 39504 ------------- 12186984
Simply imagine that the first digit is 5 and all the other digits are zero ("1234*9876" becomes "5000*0000") then delete the multiplication sign in the middle ("5000*0000" becomes "50000000"). This gives an estimate that is always within an order of magnitude of the right answer, and (with a little practice) can be done very quickly (maybe only 1 billion times slower than a CPU).
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re: Multi-Kernel Self Deciding OS
Brendan wrote:Hi,
My method is faster.m12 wrote:This is easy, I can do it in about 30 seconds, I have a friend who can do it in less than ten. http://math-magic.com/Brendan wrote:1234*9876 and see how long it takes
Still, that's far longer than it would take a computer...
BTW, it would beAnd there's easier ways to do it...Code: Select all
9876000 + 2* 987600 + 3* 98760 + 4* 9876 ------------- 9876000 1975200 296280 <--- I don't seem to want to align right 39504 ------------- 12186984
Simply imagine that the first digit is 5 and all the other digits are zero ("1234*9876" becomes "5000*0000") then delete the multiplication sign in the middle ("5000*0000" becomes "50000000"). This gives an estimate that is always within an order of magnitude of the right answer, and (with a little practice) can be done very quickly (maybe only 1 billion times slower than a CPU).
Cheers,
Brendan
me wrote: And there's easier ways to do it...
Programming is 80% Math, 20% Grammar, and 10% Creativity <--- Do not make fun of my joke!
If you're new, check this out.
If you're new, check this out.