Collocation (operating Systems)
   HOME

TheInfoList



OR:

Collocation is a technique used in
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
design to improve the performance of
microkernel In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
-based systems. It moves code that would normally be running as an application into the kernel's
address space In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity. For software programs to save and retrieve ...
to reduce the delays in
context switch In computing, a context switch is the process of storing the state of a process or thread, so that it can be restored and resume execution at a later point, and then restoring a different, previously saved, state. This allows multiple processes ...
es and
message passing In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting ...
between different parts of the system. Such systems have more in common with classic "monolithic" kernels, like
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
, in that the kernel runs as a single program, but internally they are still organized as a set of intercommunicating tasks. Collocation was widely explored in the 1990s as a way to improve the performance of systems based on the
Mach The Mach number (M or Ma), often only Mach, (; ) is a dimensionless quantity in fluid dynamics representing the ratio of flow velocity past a Boundary (thermodynamic), boundary to the local speed of sound. It is named after the Austrian physi ...
kernel, with
MkLinux MkLinux (for Microkernel Linux) was an open-source software computer operating system begun by the Open Software Foundation Research Institute and Apple Computer in February 1996, to port Linux to the PowerPC platform, and Macintosh computers. Th ...
being one example of an operating system using this approach. While it was successful in terms of improving the performance of the Mach system, in overall terms it was still far less performant than a traditional system, like
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, running on the same platform. During this same period, the ever-growing amount of
main memory Computer data storage or digital data storage is a technology consisting of computer components and recording media that are used to retain digital data. It is a core function and fundamental component of computers. The central processin ...
and great increases in
hard drive A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating hard disk drive platter, pla ...
performance greatly lowered the development complexity of large monolithic kernels. Collocation is much less common today, with some formerly collocation-based systems moving to traditional monolithic systems, one example being
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
'
XNU XNU ("X is Not Unix") is the computer operating system (OS) kernel developed at Apple Inc. since December 1996 for use in the Mac OS X (now macOS) operating system and released as free and open-source software as part of the Darwin OS, which, ...
. Another new approach to solving the communications overhead is the
unikernel A unikernel is a type of computer program that is static linking, statically linked with the operating system code on which it depends. Unikernels are built with a specialized compiler that identifies the operating system services that a program ...
.


References


Citations


Bibliography

* * * Operating system technology Microkernels {{operating-system-stub