TheWorld’s Most Advanced Operating System (Kernel and Device Drivers)
Thisresearch paper looks at the importance as well as specific featuresof Kernel and Device Drivers layer, their definition, the purpose,capabilities as well as the components that make up this layer(Kernel and Device Drivers). This paper will paper will discuss moreabout the Mac Operating System X (OS X) as an example of an operatingsystem.
Akernel is a small nucleus of software that provides only the minimalfacilities necessary for implementing additional operating-systemservices. This is the core that provides basic services for all otherparts of the operating system. In any Operating system, a kernelincludes the following essential parts
An interrupt handler
File system drivers
Devicedrivers are a unique type of a kernel extension that enables anOperating System to communicate with hardware devices, including,keyboards, mice, and FireWire drives. Device drivers communicatehardware status to the system and facilitate the transfer ofdevice-specific data to and from the hardware. Operating Systemsprovides default drivers for basic devices like keyboards and mice,but might not serve for other peripheral devices such as Printers andFax machine.
OSX is an operating system that runs on the Mac platform. OS X has alayered structure with the technology in each layer. TheKernel and Device Drivers is the lowest layer that consists of theMach kernel environment, device drivers, BSD library functions, andother low-level components. The layer includes support for filesystems, device drivers, networking, security, programming languages,inter-process communication, and extensions to the kernel.OSX extends this layer with several core infrastructure technologiesmaking it easier for software development. The structure of the MacOS X is shown below.
Componentsand features of a Kernel and Device Layer
Machmanages the processors such as memory, CPU usage, handles scheduling,provides a messaging-centered infrastructure to the other operatingsystem layers and provides memory protection. Mach also provides
An extremely parallel execution, including preemptively scheduled threads and support for SMP.
Object-based APIs with channels for communication such as ports as object references.
A complete set of IPC primitives, including, RPC, messaging, notification and synchronization.
A flexible scheduling structure, with real-time usage.
Support for massive virtual address spaces, memory objects shared memory regions, backed by a persistent store.
Resource and security management as an important principle of design.
Portability and extensibility i.e. across distributed environments and in instruction set architectures.
BSDis a portion of this layer and lies above the Mach layer as shown inFigure1.The BSD layer is primarily based on the BSD kernel, FreeBSD,a version that offers advanced security networking,performance, and compatibility features. BSD provides advancedfeatures, including:
Multiuser access. Multiple persons can use the computer for a variety of tasks.
Anticipatory multitasking with dynamic priority modification. Easy and smooth computer sharing between users and application is ensured, even under heavy loads.
Memory protection. Applications are protected from interfering with each other hence avoiding crashing.
Dynamic memory and virtual memory allocation. Large application that uses large memories while running is catered for while still maintaining interactive response to the users.
Strong TCP/IP networking that supports other standards such as PPP, SLIP, and NFS. OS X can work together easily with other systems to provide remote file access and email services, or Internet services such as FTP, HTTP, routing, and firewall (security) services.
SMP support. It can also support computers with many CPUs.
Source code. Developers can manipulate the system by programming since the source code is provided.
Thispart of the Kernel and Device Drivers layer provides ways to extendand adjust the networking infrastructure of OS X with dynamism,without recompiling or rejoining the kernel.
Networkingkernel can be used to
Modify the network traffic.
Monitor the network traffic.
Receive notification of events from the driver layer. (Such events are received by the network layers and data link. Examples of these events include interface status changes and power management events.)
I/O KitTheI/O Kit provides a framework for easy development of drivers. It alsosupports many devices categories. The I/O Kit comprises of anobject-oriented I/O architecture applied to a restricted subset ofC++. The I/O Kit framework is both extensible and modular. The I/OKit component provides the following
true plug and play
dynamic management of devices
dynamic loading of drivers
power management for systems
Thereare three major elements of the I/O Kit
Family– This is a collection of high-levelabstractions universal to all devices of a certain category thattakes the form of C++ classes and C code. Families may includelibraries, headers, test harnesses, sample code, and documentation.They provide the generic support code, the API, and one exampledriver.
Familiesoffer services for many different categories of devices. For example,there are protocol families, network families, storage families, andhuman interface devices. Software supporting features that are sharedby common devices are most likely found in a family.
Drivers-A driver is an I/O Kit item that manages aparticular device or bus, providing a more abstract view of thatdevice to other system parts. After loading a driver, its familiesare also loaded to provide common, necessary functionality. Driversare loaded after all requirements are met. Many drivers are in aclient-provider relationship, this means the driver should know thefamily to which it connects and the family from which it inherits.For example, A SCSI controller driver, must communicatewith both the SCSI family (provider) and the PCI family (Client).
Nubs–A nub is an I/O Kit object thatrepresents a point where drivers connect. This may be an entity suchas a disk or a bus. Each nub provides access to the device or serviceand offers services such as arbitration, matching, and powermanagement. It’s also possible for a driver that controls a singleservice or device to act as its own nub.
HFS, HFS+, UFS, NFS, ISO9660, these are types of filesystems that are supported by OS X. The default type of file-systemis HFS+ OS X boots from HFS+, ISO, UFS, UDF, and NFS. Advancedfeatures of file systems include an enhanced Virtual File System(VFS)design. The file system component provides
UTF-8 (Unicode) support
improved performance over previous Mac OS versions
Web.5 Mar. 2015.<https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/SystemTechnology.htm>.
"WhatIs Kernel? – Definition from WhatIs.com." SearchEnterpriseLinux.Web. 5 Mar. 2015.<http://searchenterpriselinux.techtarget.com/definition/kernel>.