I was on the phone with a friend of mine and we were talking about the OS X and then he asked me a question as to what was the difference between a MAC & a PC, didn’t know much about it so decided to find out and here again is another post in which I will try to explain 2 concepts in lay man’s terms.

The article is divided into 3 parts:

  1. The Mac:- Hardware & Software.
  2. The PC:- Hardware & Software.
  3. Boot Camp.

Note: Sincere efforts have been made to not to make this a history lesson.

The difference between a Mac and PC can be summed in one sentence: “Macs and PC’s operated and worked differently.” (Until Apple decided to switch to Intel)

Please remember this comparison before reading further ’cause this forms the heart of the PC and the Mac.

RISC:- Reduced Instruction Set Computers.
CISC:- Complex Instruction Set Computers.

The Mac – RISC
The PC – CISC

… and there in lies the reason as to why the Apple has been so rigid ’cause it uses a RISC processor, why is RISC a rigid processor, well here is why:

RISC

  • It reduces the flexibility but increases the simplicity of the processor.
  • Instruction size is fixed.
  • Complexity in processor design.
  • Limited no. of instructions.
  • More degree of pipelining.
  • Uses hard wired control unit which is is implemented using hardware so is rigid also debugging such a circuit is difficult, however since there is no software it is faster.

CISC

  • Memory Based instructions.
  • Advanced addressing modes.
  • Lesser degree of pipelining.
  • Large number of instructions.
  • Micro-programmed control unit which is more flexible as compared to the hardwired control unit as changes do not require hardware to be changed and it is more software based.

Here is how the 2 differ:

Part 1: The Mac:-

The beauty, I will admit that I was awestruck when I first saw a Mac years ago at a showroom and decided that I am gonna buy it 1 day (that dream still lives on) and the only thing against it was it needed me to buy the Mac which means it wouldn’t work on traditional hardware and also until Boot Camp & Intel on a Mac came along was that it used only Mac OS, that is indigenously developed and marketed by Apple. So what’s the technical reason as to why the Apple Mac wont natively support the most commonly used OS – Windows.

Mac is short for Macintosh and refers to any computer produced by Apple Inc. Macs are traditionally classified separately from PCs because they are based on the PowerPC architecture from Apple/IBM/Motorola.

1. Power PC Architecture:

PowerPC is a RISC microprocessor architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM alliance, for Apple, IBM, Motorola). Originally intended for personal computers. Now being a RISC Processor it inherits almost all draw backs of a RISC processor. (Please note that daily advancement in technology has found ways to counter the problems)

2. The OS

The second main difference between the PC and the Mac is the Operating System used on them, no guesses MAC uses MAC OS* and if you ask any Mac user he will consider you nothing less than a loser for using Windows (they automatically become Apple Salesman the moment they buy their Macs).

Coming to the MAC OS:

The Leopard which is going to be its latest release is said to be 10 times ahead of Vista, might be the case, only time will tell, however:

The Mac OS can be divided into two families of operating systems:

  • “Classic” Mac OS, the system which shipped with the first Macintosh in 1984 and its descendants, culminating with Mac OS 9.
  • The newer Mac OS X (the “X” refers to the Roman numeral, ten). Mac OS X incorporates elements of OpenStep (thus also BSD Unix and Mach) and Mac OS 9. Its low-level BSD-based foundation, Darwin, is free software/open source software.

BSD (Berkeley Software Distribution):

BSD is one of several branches of Unix operating systems. BSD was widely identified with the versions of Unix available for workstation-class systems.

XNU: The Kernel.

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

  • Mach:
    Mach is part of the underlying technology of Mac OS X. It is a UNIX technology developed at Carnegie-Mellon University in the late 1980’s and 1990’s. It is a robust, “open source” operating system, which is used to provide memory and task implementation services. Darwin uses Mach 3.0. Mach provides memory management, memory protection, process scheduling and inter-process communication services.

  • FreeBSD:
    XNU’s BSD component uses FreeBSD as the primary reference code-base (although some code might be traced to other BSDs). Darwin 7.x (Mac OS X 10.3.x) uses FreeBSD 5.x. As mentioned before, BSD runs not as an external (or user-level) server, but is part of the kernel itself. Some aspects that BSD is responsible for include:
    • 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:
    I/O Kit, the object-oriented device driver framework of the XNU kernel is radically different from that on traditional systems. I/O Kit 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.

  • Platform Expert:
    The Platform Expert is an object (one can think of it as a driver) that knows the type of platform that the system is running on. I/O Kit registers a nub for the Platform Expert. 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. Thus, the Platform Expert is 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:
    As described earlier, the I/O Kit uses a restricted subset of C++. This system, implemented by libkern, provides features such as:
    • Dynamic object allocation, construction, destruction (including data structures such as Arrays, Booleans, Dictionaries).
    • Certain atomic operations, miscellaneous functions (bcmp(), memcmp(), strlen()).
    • Provisions for tracking the number of current instances for each class.
    • Ways to avoid the “Fragile Base Class Problem”.

libsa provides functions for miscellaneous purposes: binary searching, symbol remangling (used for GCC 2.95 to 3.3, for example), digraphs, catalogs, kernel extension management, sorting, patching vtables, etc.

For more info: Click Here

——— End Of Part 1 ———

Part 2: The PC:-

We all know the humble PC, first developed by IBM and now by many, the PC is generally based on the CISC processor which mean it is more software oriented and more flexible and that is why so many different hardware designers come up with so many different types of hardware.

The OS:

Well the PC can run both Windows and Linux without hiccups (the choice is yours).

Most commonly used OS is windows for it was able to come out with a GUI for the normal consumer before its competitors Apple and OS/2 and hence is owns almost the entire PC market, though some sections of the computer fraternity question its security, but what the hell, its Numero Uno.

Inside the Windows Vista Kernel:

At a Glance:

Thread priority and scheduling.

File-based symbolic links:

The Windows Vista I/O-related changes include file-based symbolic links, more efficient I/O completion processing, comprehensive support for I/O cancellation, and prioritized I/O.

A file system feature many have considered missing from NTFS, the symbolic file link (or as it’s called in UNIX, the soft link) finally arrives in Windows Vista. The Windows 2000 version of NTFS introduced symbolic directory links, called directory junctions, which allow you to create a directory that points at a different directory, but until the Windows Vista version, NTFS has only supported hard links for files.

Canceling I/O operations:

While Windows has always supported prioritization of CPU usage, it hasn’t included the concept of I/O priority. Without I/O priority, background activities like search indexing, virus scanning, and disk de-fragmenting can severely impact the responsiveness of foreground operations. A user launching an app or opening a document while another process is performing disk I/O, for example, experiences delays as the foreground task waits for disk access. The same interference also affects the streaming playback of multimedia content like songs from a hard disk.

A host of other features which if I typed would be called as promoting Vista so wont do that.

——— End Of Part 2 ———

Part 3: Boot Camp:-

Well this is a little app from Apple which enables you to run Windows OS on a MAC, but the catch is you can only run it on an Intel Mac (remember RISC & CISC). Apple decided to switch to Intel for its Macs and for good reason, it means that you can dual boot into MAC OS X and Vista or XP on a beautiful Mac.

——— End Of Part 3 ———

Here’s another piece of info: Wondered why Virtual PC like applications work on Windows and not on non-Intel Macs is because PCs are CISC based which use micro-programmed control unit in which 1 processor can be made to execute programs of another processor by simply loading its emulator in the control memory.

——————————————————————————–
Compiled & Edited by: Manan
Source: www

Towards the end I got a little lethargic and just abruptly finished it I shall edit it later when I get time.

Thank you for reading, I hope you enjoyed a look at the 2 technologies that shaped our today.