when was this os used and where it's used ? I heard that this is the origin of win NT. I've ever heard also that win NT 's origin is VMS, which one is correct ? Old timers must be very well informed about this than me :grin:. btw, is mach os ever made into or even big money maker in the IT industry long time ago ?
Mach was developed at Carnegie Mellon University in the mid-80s.
It was based on 4.2BSD (later 4.3BSD).
Mach was the first microkernel OS, and it focused on multiprocessing, and used virtual machines (subsystems) to implement the actual OS functionality (the kernel could be used for any kind of OS, just write the virtual machine for it).
Windows NT also uses a microkernel with subsystems (Win64, Win32, Win16, DOS, POSIX), so its design is in some ways similar to Mach.
Windows NT's relation to VMS is that Microsoft hired many important and wellknown VMS/*nix system developers for their Windows NT team.
I don't think the Mach OS itself ever was very popular, but its technology is adapted by many other OSes.
It was based on 4.2BSD (later 4.3BSD).
Mach was the first microkernel OS, and it focused on multiprocessing, and used virtual machines (subsystems) to implement the actual OS functionality (the kernel could be used for any kind of OS, just write the virtual machine for it).
Windows NT also uses a microkernel with subsystems (Win64, Win32, Win16, DOS, POSIX), so its design is in some ways similar to Mach.
Windows NT's relation to VMS is that Microsoft hired many important and wellknown VMS/*nix system developers for their Windows NT team.
I don't think the Mach OS itself ever was very popular, but its technology is adapted by many other OSes.
Mach is a kernel (microkernel to be accurate), not an OS. The Last version I saw was 3.0. Darwin, the Mac OS X core, is based on Mach 3.
Windows NT et al. are definitly not microkernels in the proper sense, since most things actually run inside the kernel (for example, the scheduler, graphics subsystem, Win32 subsystem, etc.). You could argue that since the NT kernel is layered (kernel proper, executive, etc.) it is a microkernel, but as I said, it's not in the true meaning of being a microkernel.
Windows NT et al. are definitly not microkernels in the proper sense, since most things actually run inside the kernel (for example, the scheduler, graphics subsystem, Win32 subsystem, etc.). You could argue that since the NT kernel is layered (kernel proper, executive, etc.) it is a microkernel, but as I said, it's not in the true meaning of being a microkernel.
Mach is an entire OS (or at least, that was the goal), here is its homepage: http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html
Only the kernel is wellknown, since that's the only technology that got widely adopted.
What do you mean by "running inside the kernel"? They are kernel modules, are they not? Therefore they are not IN the kernel, but attached to it.
Only the kernel is wellknown, since that's the only technology that got widely adopted.
What do you mean by "running inside the kernel"? They are kernel modules, are they not? Therefore they are not IN the kernel, but attached to it.
the first versions of mach had some performance problems because of the *very* strict kernel/user mode separation, didn't it? It's been a while since I read it though, so I could be wrong. The idea that I got, though. was that their initial "runs as much in user mode as possible" strategy backfired, and they made way too many supervisor<>user mode switches.... but that they fixed this later.
And the mach debug disassembler was a lot cleaner to look at than a lot of other code.
And the mach debug disassembler was a lot cleaner to look at than a lot of other code.
Mach is an entire OS (or at least, that was the goal), here is its homepage: http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html
Only the kernel is wellknown, since that's the only technology that got widely adopted.
What do you mean by "running inside the kernel"? They are kernel modules, are they not? Therefore they are not IN the kernel, but attached to it.
Sorry, I didn't know about the OS.
And about NT, "running inside the kernel" means that they run in the supervisor mode of the processor (whether IN the kernel or attached to it doesn't matter), wich is not the idea of a microkernel.
I am not too sure about that.
Microkernel to me means that the kernel itself is a minimum-size program doing only the bare essentials of task-switching, memory allocation and such.
The rest is handled by modules (usually hot-pluggable).
Windows works like this, so does Mach.
The difference is that Mach tried to run as much as possible in user-mode, while most practical OSes have a slightly more lenient policy, to keep the number of kernel/usermode switches down, since they degrade performance considerably.
But I don't consider this an aspect of a microkernel in general, only of the Mach microkernel (and some others, such as the Minix one).
Also, 'running inside the kernel' and 'running in kernelmode' is not the same to me.
http://en.wikipedia.org/wiki/Microkernel
They do not specify that it is a requirement of a microkernel to run as much as possible in user-mode.
They consider Windows a 'modified microkernel', probably because the kernel does some stuff that is not considered to be the 'bare essentials'. But still a microkernel, not a 'monolith which can load modules', as they point out.
Microkernel to me means that the kernel itself is a minimum-size program doing only the bare essentials of task-switching, memory allocation and such.
The rest is handled by modules (usually hot-pluggable).
Windows works like this, so does Mach.
The difference is that Mach tried to run as much as possible in user-mode, while most practical OSes have a slightly more lenient policy, to keep the number of kernel/usermode switches down, since they degrade performance considerably.
But I don't consider this an aspect of a microkernel in general, only of the Mach microkernel (and some others, such as the Minix one).
Also, 'running inside the kernel' and 'running in kernelmode' is not the same to me.
http://en.wikipedia.org/wiki/Microkernel
They do not specify that it is a requirement of a microkernel to run as much as possible in user-mode.
They consider Windows a 'modified microkernel', probably because the kernel does some stuff that is not considered to be the 'bare essentials'. But still a microkernel, not a 'monolith which can load modules', as they point out.