Programming Interface
Download
Report
Transcript Programming Interface
Windows 2000 Vs. Mac OS X
Comparing Windows 2000 and Mac OS X on the following grounds:
1)
Architecture
2)
Design Goals
3)
Programming Interface/ User Interface
4)
IPC
Architecture (Windows 2000):
The Windows 2000 OS is
divided into two sections:
kernel mode and user mode.
Executes on a variety of
hardware platforms.
Separates applicationoriented software from
operating system software
-OS software includes the
Executive, the microkernel,
device drivers, and the hardware
abstraction layer.
-runs in kernel mode. (access to
system data and hardware)
-Application software runs in user
mode and has limited access to
user data.
Architecture of the Mac OS X
Layered architecture divided into four distinct layers:
- Application Environment
- Application Services
- Core Services
- Kernel environment
Architecture of the Mac OS X
Mac OS X encompasses many different technologies:
-Darwin
-Quartz
-OpenGL
-QuickTime
-Application Services
-Aqua
Design Goals
Windows 2000
Win2K design team objective was to design a robust, portable,
maintainable, extensible, and secure operating system (OS).
Key features:
Robustness: protect itself from internal malfunction, software
and hardware errors
Extensibility and Maintainability
Portability: function on a number of platforms with minimal recoding
Performance
POSIX compliance and government certifiable C2 security
Design goals
Mac OS X
The core of Mac OS X is UNIX and is based on the open source
Darwin kernel. It has a graphical desktop environment and
power, stability of UNIX. Mac OS X provides power, ease of use,
and a pretty new look. It offers a command-line environment,
and powerful networking.
Key features:
Integrated System: integrate a diverse collection of technologies
and base this unified set of technologies on advanced kernel
environment.
Extensibility: support new software, hardware, features and
network technologies
Modularity: future enhancements
System Responsiveness: faster speed and operations
Enhanced Performance and Stability
Advanced User Experience and Productivity
Advantages
Windows 2000
Maintainable and Extensible
Security: executive provides
the only entry point into the
system
Portability: across hardware
architectures and platforms
Robustness
MAC OS X
Integrated system
Robust
Enhanced Performance and
Stability
Backward Compatibility
Disadvantages
Windows 2000
No Backward compatibility
Lesser Speed
Less Reliable
MAC OS X
Security: Darwin is
distributed under Open
Source license, security
threat
Not extensible like Win2K
Software compatibility
shortcomings and support
Classic applications run and
load slowly
Marketing weakness and
media coverage
Conclusion:
Win2K is designed to be reliable and it can be maintained and
extended to take advantage of new technologies. It supports
multiprocessing and has portability.
The Win2K merges the best attributes of a layered OS with
those of a client/server or microkernel OS.
It is a choice for business, and for highly distributed systems.
Mac OS X is more stable, beautiful, Aqua look, and graphics.
It has layered architecture.
Only a few native OS X applications available, so best features
of OS are untapped.
Multilingual support built in; better memory management and
protected memory;
PM: Mac OS X is highly reliable, and supports the preemptive
multitasking and protected memory.
Programming Interface
Windows 2000
The Programming Interface is composed of a set of user-mode
applications (called sub-systems) that perform operating
system tasks.
It provides modularity.
Multiple application programming interfaces (API), while
keeping the base OS code simple and maintainable.
User Interface
Mac OS X
New aqua like interface called Aqua
The top layer represents Application environments which
encompass five application environments:Carbon, Cocoa,
Java, Classic environment and BSD commands.
-Classic environment provides compatibility to run
their Mac OS 8/9 applications
-BSD Commands environment provides a shell to
execute BSD programs on the command line.
Application services provide system services to all
application environments.
-includes Quartz, Quick Draw, OpenGL, QuickTime &
Core Services.
User Interface
Kernel environment is the foundation layer of Mac OS X. It is a
high-performance and highly modular kernel and its primary
components are Mach and BSD.
Mac OS X is based on Darwin (open source core, UNIX) kernel
and it provides great stability for any development environment.
Advantages
Mac OS X
Windows 2000
API: availability of tested
APIs
Multi-processor
End-user applications
Micro-kernel: protects kernel
since applications runs in
user-mode
Ensures Security
Vendor tools
Power and Stability: kernel
based on UNIX (Darwin)
Advanced and new
development features
Backward compatibility
Integrated Java, Internet
application development
environment
Graphics
Interoperability:supports
interoperability for UNIX
apps.
Disadvantages
Mac OS X
Windows 2000
Backward compatibility to 16bit architecture
Integrated system
Doesn’t ensure Security
Doesn’t provide End-user
applications
No Support and training
Conclusion
Windows 2000 has availability of well-defined and tested APIs,
and vendor tools enhance development. It provides good
support, training and end-user applications.
Mac OS X is built on open BSD UNIX, Java2, XML, PDF, and
OpenGL standards so that third-party developers can add
applications more easily. It offers advanced development options
and new features for advanced users, especially UNIX gurus.
IPC(Inter Process Communication)
Processes needs to communicate in some way with one another, to
transfer some data or to let other processes know what's going
on with one another.
Windows 2000
Win2K supports seven primary IPC mechanisms: Named Pipes,
Mailslots, NetBIOS, Winsock, NetDDE, RPCs, Local Procedure Call
Facility
With COM, the client can communicate directly with the
process. With DCOM, the client can communicate directly with
other processes on different computers on a LAN, WAN or the
Internet.
IPC(Inter Process Communication)
MAC OS X
Mac OS has an inter-application communication (IAC)
architecture, which provides a standard and extensible
mechanism for communication among Macintosh applications.
Apple events are the primary methods for inter-application
communication on Mac OS X.
Advantages
Windows 2000
system efficiently
more elaborate, reliable and
stable IPC mechanisms
supported IPC mechanisms
MAC OS X
simple to use and implement
faster communication
Disadvantages
Windows 2000
Hard to work in distributed
computing environment
Slower IPC mechanisms due
to inefficient memory
management
MAC OS X
Event Mechanism requires
many procedure calls.
one-way communication
(BSD Pipes)
Apple Event objects creation
time not suitable for
performance-critical
situations.
Conclusion
Windows NT has more elaborate & complex, but reliable
and stable IPC mechanisms.
Mac OS IPC mechanisms are simple to use and
implement. It has a fast and more responsive system.
Windows 2000 Vs. Mac OS X
Mac OS X is a better choice for educational environment.
Mac OS X is better choice for graphics, Internet and Java
development.
Apple will, of course add ease of use to the core design goals.
I'm sure the Mac OS X interface will continue to evolve under
customer feedback and experience.
Apple has claimed that their goal is to make the first truly userfriendly UNIX box, or as they put it, a machine that “even your
grandmother can use”.
I imagine advanced users will prefer Mac OS X, because it has
advanced and new features for development environment as
compared to W2K.
UNIX users will prefer Mac OS X because it provides shell prompt
that is Mac Usage with UNIX-style Command-Line.
Windows 2000 Vs. Mac OS X
I would prefer Windows 2000 from a business point of view
because it is a highly secure, extensible, maintainable, robust
and portable OS.
It offers better support, APIs, vendor tools and end-user
applications.
References
Operating Systems (Fourth Edition) by William Stallings
Inside Microsoft Windows 2000 by David A Solomon & Mark E
Russinovich
The Apple - Mac OS X Website:
(www.apple.com/macosx)
MacOS X News at The Macintosh News Network
(osx.macnn.com/)