Documente Academic
Documente Profesional
Documente Cultură
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:
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
PLATFORM EXPERT.