Sunteți pe pagina 1din 16

MAC OS X

DESIGN PRINCIPLES
INNER DESIGN FEATURES
 Pre-emptive multitasking and memory protection.
 Designed to be portable.
 Includes its own software development tools, most prominently an
integrated development environment called Xcode. Xcode provides interfaces
to compilers that support several programming languages including C, C++,
Objective-C, and Java.
 To permit a smooth transition from Mac OS 9 to Mac OS X, the Carbon
Application Programming Interface (API) was created. Applications written
with Carbon can be executed natively on both systems.
 Support the Java Platform as a "preferred software package"—in practice
this means that applications written in Java fit as neatly into the operating
system as possible while still being cross-platform compatible.
 Many software packages written for the BSDs or Linux can be recompiled to
run on it.
GUI FEATURES
 Aqua GUI – A fluid graphical user interface with
water-like elements.
 Anti-aliasing of widgets, text, graphics and window elements.
 ColorSync color matching built into the core drawing engine, for print and
multimedia professionals.
 Drop shadows around window and isolated text elements to provide a sense of
depth.
 Full-color, scalable icons up to 512x512 pixels
 Human interface guidelines followed by almost all applications, giving them
consistent user interface and keyboard shortcuts.
 New interface elements including sheets (document modal dialog boxes attached
to specific windows) and drawers.
 OpenGL composites windows onto the screen to allow hardware-accelerated
drawing. This technology (introduced in version 10.2) is called Quartz Extreme.
APPLICATION FEATURES
 Quartz's internal imaging model correlates well with the Portable Document Format (PDF)
imaging model, making it easy to output PDF to multiple devices. PDF viewing is built in.
 Automator – an application designed to create an automatic workflow for different tasks.
 Dashboard – A full-screen group of small applications called desktop widgets that can be called
up and dismissed in one keystroke.
 Exposé – A feature which includes three functions to help accessibility between windows and
desktop. Its functions are to instantly display all open windows as thumbnails for easy navigation
to different tasks, display all open windows as thumbnails from the current application, and hide all
windows to access the desktop.
 FileVault – Optional encryption of the user's files with Advanced Encryption Standard (AES).
 Front Row – A media viewer interface accessed by the Apple Remote.
 Global application services – spell and grammar checker, special characters palette, color
picker, font chooser and dictionary.
 Integrated Sync Services – A system which allows applications to access a centralized
extensible database for various elements of user data, including calendar and contact items. The
operating system manages conflicting edits and data consistency.
 Spaces – Desktop organization tool which can create and manage multiple virtual desktops and
display them in an Exposé-like interface.
APPLICATION FEATURES cont…
 Cover Flow – is a three-dimensional graphical user interface included with iTunes,
the Finder, and other Apple Inc. products for visually skimming through files and
digital media libraries via cover artwork.
 Time Machine – Automatic backup technology that allows users to view and restore
previous versions of files and application data.
 Screen Sharing – Mac OS X v10.5 has inbuilt screen sharing property which is very
useful in networking.
 Finder - is a file browser allowing quick access to all areas of the computer, which
has been modified throughout subsequent releases of Mac OS X.
 Quick Look - is part of Mac OS X Leopard's Finder. It allows for dynamic previews of
files, including videos and multi-page documents, without opening their parent
applications.
 Spotlight search technology - is integrated into the Finder since Mac OS X Tiger,
allows rapid real-time searches of: data files; mail messages; photos; and other
information based on item properties (Meta data) and/or content.
 The Dock - holds file and folder shortcuts as well as minimized windows.
MAC OS X

Kernel modules
THE LOGICAL LAYERS…
The Mac OS X kernel is called XNU which is monolithic. It can be viewed as consisting of the following
components:

XNU: The Kernel


The Mac OS X kernel is called XNU which is monolithic. It can be
viewed as consisting of the following components:

 MACH.
 Berkeley Software Distribution(BSD).
 I/O KIT.
 Driver Peripherals.
MACH
XNU's Mach component is based on Mach 3.0, although it's
not used as a microkernel. XNU's Mach is responsible
for various low-level aspects of the system, such as:
 Preemptive multitasking, including kernel threads (POSIX threads on
Mac OS X are implemented using kernel threads)
 Protected memory
 Virtual memory management
 Inter-process communication
 Interrupt management
 Real-time support
 Kernel debugging support (the built-in low-level kernel debugger, ddb, is
part of XNU's Mach component, and so is kdp, a remote kernel
debugging protocol implementation)
 Console I/O
BSD
 Responsible for:
 process model.
 User ids, permissions, basic security policies .
 POSIX API, BSD style system calls .
 TCP/IP stack, BSD sockets, firewall .
 VFS and file systems .
 System V IPC .
 Crypto framework.
 Various synchronization mechanisms .
I/O KIT
 The object-oriented device driver framework of the XNU kernel.
 Uses a restricted subset of C++ (based on Embedded C++) as its
programming language. This system is implemented by the libkern
library. Features of C++ that are not allowed in this subset include:
 Exceptions
 Multiple inheritance
 Templates
 RTTI (run-time type information), although I/O Kit has its own run-time
typing system .
 I/O Kit's implementation consists of three C++ libraries that are
present in the kernel and available to loadable drivers:
IOKit.framework, Kernel/libkern and Kernel/IOKit.
 The I/O Kit includes a modular, layered run-time architecture that
presents an abstraction of the underlying hardware by capturing the
dynamic relationships between the various hardware/software
components.
I/O KIT FEATURES
 Numerous device families (ATA/ATAPI, FireWire, Graphics, HID,
Network, PCI, USB, HID, ...)
 Object oriented abstractions of devices that can be shared
 Plug-and-play and hot-plugging
 Power management
 Preemptive multitasking, threading, symmetric multiprocessing, memory
protection and data management
 Dynamic matching and loading of drivers (multiple bus types)
 A database for tracking and maintaining detailed information on
instantiated objects (the I/O Registry)
 A database of all I/O Kit classes available on a system (the I/O Catalog)
 An extensive API
 Mechanisms/interfaces for applications and user-space drivers to
communicate with the I/O Kit
 Driver stacking
Driver Peripherals

Kernel Extensions (KENTs).

PLATFORM EXPERT.

LIBKERN AND LIBSA.


KENTs
 I/O-Kit drivers are dynamically linked at runtime, as
so-called “KEXTs”.
 KEXT can not only link against the I/O-Kit
component, but also against other parts of the
kernel. This way, filesystem and networking
KEXTs (NKEs) are possible.
 Every KEXT, which typically resides in
/System/Library/Extensions, is a bundle, i.e. a
subdirectory which contains the actual binary and
an XML description of dependencies and the parts
of the kernel it links against.
PLATFORM EXPERT
 The Platform Expert is an object that knows the type of platform that the
system is running on.
 This nub then loads the correct platform specific driver, which further
discovers the buses present on the system, registering a nub for each bus
found. The I/O Kit loads a matching driver for each bus nub, which
discovers the devices connected to the bus, and so on.
”nub“ - an object that defines an access point and communication channel
for a device (a bus, a disk drive or partition, a graphics card, ...) or logical
service (arbitration, driver matching, power management, ...).
 Responsible for actions such as:
 Building the device tree.
 Parse certain boot arguments.
 Identify the machine (including processor and bus clock speeds).
 Initialize a "user interface" to be used in case of kernel panics.
LIBKERN AND LIBSA
LIBKERN LIBSA
 Provides features such as:
 Dynamic object allocation,
 Provides fuctions for
construction, destruction miscellaneous purposes:
(including data structures such  binary searching.
as Arrays, Booleans,
Dictionaries, ...).  symbol remangling,
 Certain atomic operations,  Dgraphs.
miscellaneous functions (bcmp(),  Catalogs
memcmp(), strlen(), ...).  kernel extension management
 Provisions for tracking the
number of current instances for
 Sorting.
each class  Patching vtables
 Ways to avoid the "Fragile Base  etc.
Class Problem".

S-ar putea să vă placă și