hey, are you proposing an idea here or announcing something? There's the Storage project by Seth Nickell of GNOME fame and I too have a similar idea for my AudioLink project.
This sounds like Longhorn's WinFS, doesn't it? I for one have not yet comprehended how the overhead of such a db-style fs could be minimized to be usable at all. I'm sure it wouldn't have to implement SQL-92 or anything like that, but still ...
Such things like natural language access, network transparency, associative linking, give incredible control on data.
I think, it is very hard part of the kernel time, but it must be implemented in kernel-space to allow us full and fast transparent control. Do not forget that it's a interface between human-language and low-level-file-system (ex3fs,xfs ...). Sence, later we can build on such fundament more intellectual level, such like visual information processing and natural language recognition. They all are interface drivers and must be implemented in kernel-space.
All this is sux without realy microkernel architecture. Some fundamental properties of microkernel:
----------------
Only the most fundamental OS primitives (signals, timers, scheduling) are handled in the kernel itself. All other components — drivers, file systems, protocol stacks, user applications — run outside the kernel as separate, memory-protected processes. Fault tolerance is built right into the system.
All components communicate via a single virtual messaging bus that lets you plug in, or plug out any component on the fly. In addition, messages can flow transparently(!!!) from one computer to another, providing seamless access(!!!) to any resource from anywhere on the network.
---------------
With todays linux kernel it is absolutely impossible to build more or less productive, reliable and distributed real-time system with the deep internet integration. We need microkernel at least. Then we can go further.
Is it possible to transform existent kernel ? Have someone ideas ?
:-)
i would be glad if Linux was a microkernel, but(!):
Linux is not a microkernel, because:
1) a microkernel OS needs thorough designing *before* the kernel is written. Linux is *not* designed at all :-(
2) a whole rewrite would be necessary = painful
3) a microkernel is always *slower* than a monolithic kernel no matter how perfect it is due to IPC.
GNU Hurd/L4 (and Hurd/Mach) seemed to be promising microkernel alternatives to Linux, but they are dead. L4 is better than Mach beacuse of the lightweight IPC => faster, but *not as* fast as Linux
I only suggest it's possible. Like Microsoft's long way to build microkernel architecture. I can't find in internet any GPL compatible alternative :(
QNX is full commercial :((
Yeah, Linux is obsolette... but we have no other alternative system...
there are many microkernels. they are just not as mature as Linux is.
see freeos.com.
but i said: L4 and Mach are cool!
there is even Debian GNU/Hurd!!
Darwin is also a UN*X-like microkernel serverset, it runs on the Mach microkernel.
its the basis of MacOS X.
its open-source and runs on x86 and ppc as well.
Apple Darwin License is shit:
"...Modifications and/or Larger Works may require additional patent licenses from Apple which Apple may grant in its sole discretion."
GNU Darwin is not better:
"-What are the system requirements for GNU-Darwin?
Any computer that is officially supported by Mac OS X can run GNU-Darwin, as well as a very limited number of Intel configurations."
I'v found that GNU/Hurd is only right choise for alternative to linux !
I believe that the early NTs (around 3.0 IIRC) were closer followers of Dave Cutler's original microkernel design. He was later forced into putting it all into kernel-space to make it work at an acceptable speed.
your realtime wishes are applicable only to a system with sufficient resources on execution (enough processor time, as well as memory).
In system with limited resources (typical embedded one), drivers placed outside of kernel execution space will be faily to run due to time-outs in scheduler (external process outside of microkernel).
today in the world of micro-devices, all theoretical beauty of microkernel architecture disappear against reality needs (mostly due to drivers synchronous respond needs aka software simulation of hardware low-level protocols like SPI, I2C, AuxPar, etc.)
yes, you can build FPGA based scheduler, however, addressing of tasks, you'll have to hardcode too (which will redirect you to the table of vectors known in DOS).
then, you have to think on level of priority of interrupt of your FPGA scheduler against all other HW interrupts in your system, which couldn't be the highest one and for the same reason will be masked by other HW activities, which will cause loses of some time slices assigned to particular "unlucky" task, usually most critical one.
Of cource, due to your FPGA scheduler belive in success of it's own interrupt handled by the CPU, it will result in a failure of execution of this most critical task.
modern working approach on scheduling following into different direction, known as multicore systems architecture, where a few CPU's (not necessary with same level of performace) are executing time critical code in parallel.
idea or announcement?
hey, are you proposing an idea here or announcing something? There's the Storage project by Seth Nickell of GNOME fame and I too have a similar idea for my AudioLink project.
You can also give LISFS a loo
You can also give LISFS a look. See the USENIX 2003 presentation paper.
WinFS, no?
This sounds like Longhorn's WinFS, doesn't it? I for one have not yet comprehended how the overhead of such a db-style fs could be minimized to be usable at all. I'm sure it wouldn't have to implement SQL-92 or anything like that, but still ...
kernel space
Such things like natural language access, network transparency, associative linking, give incredible control on data.
I think, it is very hard part of the kernel time, but it must be implemented in kernel-space to allow us full and fast transparent control. Do not forget that it's a interface between human-language and low-level-file-system (ex3fs,xfs ...). Sence, later we can build on such fundament more intellectual level, such like visual information processing and natural language recognition. They all are interface drivers and must be implemented in kernel-space.
DB-based FS
no way!
see Hans Reiser's "Future Vision" at the ReiserFS page.
Maybe it is time to build microkernel ?
All this is sux without realy microkernel architecture. Some fundamental properties of microkernel:
----------------
Only the most fundamental OS primitives (signals, timers, scheduling) are handled in the kernel itself. All other components — drivers, file systems, protocol stacks, user applications — run outside the kernel as separate, memory-protected processes. Fault tolerance is built right into the system.
All components communicate via a single virtual messaging bus that lets you plug in, or plug out any component on the fly. In addition, messages can flow transparently(!!!) from one computer to another, providing seamless access(!!!) to any resource from anywhere on the network.
---------------
With todays linux kernel it is absolutely impossible to build more or less productive, reliable and distributed real-time system with the deep internet integration. We need microkernel at least. Then we can go further.
Is it possible to transform existent kernel ? Have someone ideas ?
Vadim Kataev
http://www.compuvisor.net
Linux --> microkernel??
:-)
i would be glad if Linux was a microkernel, but(!):
Linux is not a microkernel, because:
1) a microkernel OS needs thorough designing *before* the kernel is written. Linux is *not* designed at all :-(
2) a whole rewrite would be necessary = painful
3) a microkernel is always *slower* than a monolithic kernel no matter how perfect it is due to IPC.
GNU Hurd/L4 (and Hurd/Mach) seemed to be promising microkernel alternatives to Linux, but they are dead. L4 is better than Mach beacuse of the lightweight IPC => faster, but *not as* fast as Linux
Microsoft example Win32 -> NT
I only suggest it's possible. Like Microsoft's long way to build microkernel architecture. I can't find in internet any GPL compatible alternative :(
QNX is full commercial :((
Yeah, Linux is obsolette... but we have no other alternative system...
microkernels
there are many microkernels. they are just not as mature as Linux is.
see freeos.com.
but i said: L4 and Mach are cool!
there is even Debian GNU/Hurd!!
WinNT
Vadim Kataev: WinNT is microkernel sure. but it has cooperative multitasking rather than preemptive! so its still a joke!
HURD
I wonder,
Why HURD is not very popular ?
That's exellent alternative to linux kernel architecture!!!
Hurd
Hurd is only occasionally developed.
its nearly dead.
it doesnt support too much hardware.
so thats why end users dont use it.
i wonder why developers dont develop it tho!
Darwin is also a UN*X-like mi
Darwin is also a UN*X-like microkernel serverset, it runs on the Mach microkernel.
its the basis of MacOS X.
its open-source and runs on x86 and ppc as well.
Apple's Darwin: developer.apple.com/darwin/projects/darwin
GNU Darwin: gnu-darwin.sourceforge.net
GNU/Hurd
Apple Darwin License is shit:
"...Modifications and/or Larger Works may require additional patent licenses from Apple which Apple may grant in its sole discretion."
GNU Darwin is not better:
"-What are the system requirements for GNU-Darwin?
Any computer that is officially supported by Mac OS X can run GNU-Darwin, as well as a very limited number of Intel configurations."
I'v found that GNU/Hurd is only right choise for alternative to linux !
Darwin isn't a microkernel
It's a hybrid BSD/Mach monolithic kernel
http://www.kernelthread.com/mac/osx/arch_xnu.html
Good lord, you're a moron. W
Good lord, you're a moron. WinNT is NOT microkernel, but monolithic. And it CERTAINLY HAS preemptive multitasking.
In the past...
I believe that the early NTs (around 3.0 IIRC) were closer followers of Dave Cutler's original microkernel design. He was later forced into putting it all into kernel-space to make it work at an acceptable speed.
you can't build embedded system on microkernel
your realtime wishes are applicable only to a system with sufficient resources on execution (enough processor time, as well as memory).
In system with limited resources (typical embedded one), drivers placed outside of kernel execution space will be faily to run due to time-outs in scheduler (external process outside of microkernel).
today in the world of micro-devices, all theoretical beauty of microkernel architecture disappear against reality needs (mostly due to drivers synchronous respond needs aka software simulation of hardware low-level protocols like SPI, I2C, AuxPar, etc.)
.NET and Java bytecode support by kernel
Are there some ways to construct a kernel with on-FPGA-integrated schedular ?
you'll need integrated VHDL compiler for this
yes, you can build FPGA based scheduler, however, addressing of tasks, you'll have to hardcode too (which will redirect you to the table of vectors known in DOS).
then, you have to think on level of priority of interrupt of your FPGA scheduler against all other HW interrupts in your system, which couldn't be the highest one and for the same reason will be masked by other HW activities, which will cause loses of some time slices assigned to particular "unlucky" task, usually most critical one.
Of cource, due to your FPGA scheduler belive in success of it's own interrupt handled by the CPU, it will result in a failure of execution of this most critical task.
modern working approach on scheduling following into different direction, known as multicore systems architecture, where a few CPU's (not necessary with same level of performace) are executing time critical code in parallel.