Anagha Gupte
CS 550 Report
Max OS vs. Windows 2000
Design Goals
Windows 2000
Overview:
The Windows 2000 design team objective was to design a robust, portable, maintainable, extensible, and secure operating system (OS).
Design Goals:
-
Robustness: protect itself from internal malfunction, software and hardware errors
-
Extensibility and Maintainability
-
Portability: function on a number of platforms with minimal re-coding
-
Performance
-
POSIX compliance and government certifiable C2 security
Advantage:
-
Maintainability and Extensibility: extensive code documentation and modularity
-
Security: executive provides the only entry point into the system
-
-
Robustness
Disadvantages:
MAC OS X
Overview:
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.
Design Goals: 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:
-
Integrated system
-
Robust
-
Enhanced Performance and Stability
-
Backward Compatibility
Disadvantages:
-
Security: Darwin is distributed under Open Source license, security threat
-
Extensibility
-
Software compatibility shortcomings and support
-
Classic applications run and load slowly
-
Marketing weakness and media coverage
Architecture
Windows 2000
The Windows 2000 OS can be divided into two sections, kernel or privileged mode and the user or non-privileged mode.
The user mode is the processing mode in which all applications run.
The kernel mode includes executive, kernel, hardware abstraction layer (HAL), and device drivers. Applications communicate with subsystems by passing messages via LPC mechanism.
Conclusion:
Windows 2000 is designed to be a reliable operating system that could be easily maintained and extended to take advantage of new technologies. It supports multiprocessing and has portability.
Windows 2000 merges the best attributes of a layered OS with those of a client/server or microkernel OS. It makes 2000 robust and stable.
It is a good choice for business, and for highly distributed systems.
MAC OS X
Mac OS X has layered architecture divided into four distinct layers (Figure 2):
-
Application Environments: encompasses the five application (or execution) environments: Carbon, Cocoa, Java, Classic, and BSD Commands environment.
-
Application Services
-
Core Services
-
Kernel environment
Figure 2: Mac OS X as layers of system software
Mac OS X encompasses many different technologies (Figure 3):
Darwin, Quartz, OpenGL, QuickTime, Application Services and Aqua.
Figure 3: Mac OS X components
Conclusion:
Mac OS X is more stable, beautiful, Aqua look, and graphics. It has layered architecture. It is a robust, modern, faster and reliable OS. Mac OS X is the best of both worlds.
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.
My Personal Opinion and Evaluation:
Mac OS X has the same goals that are presented for Windows 2000. The one considerable difference is POSIX compliance. OS X is POSIX compliant for the most part, that is Apple says they expect to be 99.9% POSIX compliant (it is UNIX after all). Apple has no intentions of going after POSIX certification though. The 'rules' for POSIX are written up in multiple volumes. The certification process is very difficult also. Because of this, OSX will probably never be officially POSIX compliant, even if it is in reality.
Apple will, of course add ease of use to the core design goals. I'm not sure if they have realized this yet or not?
I would prefer Windows 2000 from business point of view because it is highly secure, extensible, maintainable, robust and portable OS.
Mac OS X is better choice for educational environment.
Programming Interface
Windows 2000
Overview:
Programming Interface 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.
It supports and permits future extensibility with new APIs.
The user mode is the processing mode in which all applications run. The environment subsystems expose native OS services to user applications. User applications, which can be one of five types: Win32, Windows 3.1, MS-DOS, POSIX, or OS/2.
User applications go through subsystem DLLs. They translate a documented function into appropriate undocumented 2000 system service calls.
Advantage:
-
API: availability of tested APIs
-
Multi-processor
-
End-user applications
-
Micro-kernel: protects kernel since applications runs in user-mode
-
Security
-
Vendor tools
Disadvantages:
-
Backward compatibility to 16-bit architecture
-
Integrated system
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.
User Interface
Mac OS X
Overview:
User Interface has new aqua like interface called Aqua.
The top layer represents Application environments which encompasses the five application (or execution) environments:
Carbon, Cocoa, and Java are the three principal application development environments.
Carbon adapts Mac OS 9 APIs and libraries. Cocoa provides advanced OO APIs for developing applications written in Java and Objective-C.
Java environment is for development of pure Java applications and applets and in compliance with an industry standard Java Development Kit (JDK) including the Java virtual machine (VM).
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. It includes Quartz (graphics and windowing environment), QuickDraw, and OpenGL (for rendering two- and three-dimensional images).
QuickTime is an interactive multimedia environment. Core Services incorporate those system services that have no effect on the GUI. It includes Core Foundation, Open Transport, and certain core portions of Carbon.
Kernel environment is foundation layer of Mac OS X. It is a high-performance and highly modular kernel and its primary components are Mach and BSD.
It includes networking protocol stacks and services, file systems, and device drivers.
Mac OS X is based on Darwin (open source core, UNIX) kernel and it provides great stability for any development environment. It provides industrial strength, superior stability and performance. It incorporates the time-tested BSD networking stack.
Advantage:
-
Power and Stability: kernel based on UNIX (Darwin)
-
Advanced and new development features
-
Backward compatibility
-
Integrated Java, Internet application development environment
-
Graphics
-
Interoperability: due to its core UNIX kernel, Mac OS X supports interoperability for UNIX apps.
Disadvantages:
Conclusion:
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.
My Opinion:
I imagine that, one-day, all Mac applications will either be native “Cocoa apps”, or carbonized "classic" Mac OS apps. In this sense, most of Mac applications will be Mac OS X apps in short time.
For graphics, Internet and Java development Mac OS X is better choice.
I would prefer Windows 2000 from business point of view because of availability of better support, APIs, vendor tools and end-user applications.
I'm sure the Mac OS X interface will continue to evolve under customer feedback and experience.
Apple has claimed that their goal was to make the first truly user-friendly UNIX box, or as they put it, a machine that “even your grandmother can use”.
I would choose a particular user-interface-schema on the basis of how productive I can typically be using a particular interface.
I imagine advanced users will prefer Mac OS X, because it has advanced and new features for development environment as compared to 2000.
UNIX users will prefer Mac OS X because it provides shell prompt that is Mac Usage with UNIX-style Command-Line.
Inter Process Communication
Windows 2000
Overview:
Processes needs to communicate in some way with each other. A process may need to transfer some data perhaps, or it may need to let other processes know that something has happened to it.
Windows 2000 supports the following 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.
Advantage:
-
System efficiently
-
More elaborate, reliable and stable IPC mechanisms
-
-
Supported IPC mechanisms
-
Disadvantages:
-
Hard to work in distributed computing environment
-
Slower IPC mechanisms due to inefficient memory management
Conclusion:
Windows 2000 has a more elaborate, complex but reliable and stable IPC mechanisms.
Mac OS X
Overview:
Mac OS’s have an inter-application communication (IAC) architecture, which provides a standard and extensible mechanism for communication among Macintosh applications.
High-level events that conform to Apple Event Inter-process Messaging Protocol (AEIMP) are called Apple events. Apple events are the primary methods for inter-application communication on Mac OS X.
Advantage:
-
Simple to use and implement
-
Faster communication
Disadvantages:
-
Event Mechanism requires many procedure calls.
-
One-way communication (BSD Pipes)
-
Apple Event objects creation time: not suitable for performance-critical situations.
Conclusion:
Mac OS IPC mechanisms are simple to use and implement. It has a fast and more responsive system.
My Opinion:
I would prefer Windows 2000 IPC’s in such environments, where security is the highest concern. The Mac OS is suitable for environments where speed is highest concern.
Conclusion
Mac OS X is a better choice for an 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 user-friendly 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.
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.
Share with your friends: |