Student`s Name

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

  • A scheduler

  • Process Manager

  • Device Manager

  • Memory Manager

  • I/O communication

  • File system drivers

  • Network Management

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.

Figure1

http://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/images/Chapter2/2_16_Mac_OSX_Structure.jpg

Componentsand features of a Kernel and Device Layer

Mach

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&nbspthreads and support for&nbspSMP.

  • Object-based APIs with channels for communication such as ports as object references.

  • A complete set of&nbspIPC&nbspprimitives, including,&nbspRPC, messaging,&nbspnotification and&nbspsynchronization.

  • A flexible scheduling structure, with real-time usage.

  • Support for massive&nbspvirtual 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.

BSD

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,&nbspFreeBSD,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&nbspTCP/IP networking that supports other standards such as&nbspPPP, SLIP,&nbspand&nbspNFS. OS X can work together easily with other systems to provide remote file access and email services, or&nbspInternet 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.

Networking

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

  • multiprocessor capabilities

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&nbspdriver&nbspis 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&nbspdriver, must communicatewith both the SCSI family (provider) and the PCI family (Client).

NubsA&nbspnub&nbspis 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.

FileSystem

HFS,&nbspHFS+,&nbspUFS,&nbspNFS,&nbspISO9660, 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&nbsp(Unicode) support

  • improved performance over previous Mac OS versions

WorkCited

Web.5 Mar. 2015.&lthttps://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/SystemTechnology.htm&gt.

&quotWhatIs Kernel? – Definition from WhatIs.com.&quot SearchEnterpriseLinux.Web. 5 Mar. 2015.&lthttp://searchenterpriselinux.techtarget.com/definition/kernel&gt.