An Answer To "What is Mac OS X?"
XCube writes: "'What is Mac OS X?' is a fascinating article over at KernelThread.com. According to Amit Singh it's a hacker-over-friendly answer to that question and a low-level taste of Apple's OS. The extensive article covers many details on Mac OS X: history, Mac firmware & boot loader, system architecture, kernel, startup, file systems, app environments, programming facilities, available software, and more. A great read if you are interested in Mac OS X, though some stuff is too technical methinks. On second thought, this may be a better read if you're *not* interested in Mac OS X! The author says he wrote it to introduce Mac OS X to the Linux User's Group at his work."
Really? The GPL you say? Sorry, but no. Parts of Darwin are GPL'd, but Apple's own code is released under the Apple Public Source License.
It's good to explain more of the underpinnings OS X. You see, NeXTSTEP was almost the perfect operating system and development environment.
:-)
The NS environment (living on in Aqua today) is just so cool. Well-designed interfaces abound. Design patterns everywhere, created when the term "Design Pattern" had barely been explored in the computer world. For instance: most objects use delegation to extend their behavior. Not subclassing! Just compare building a GUI in Swing to Cocoa, it's like salt and sugar.
Objective-C is a wonderful semi-dynamic language, much nicer than C++.
Programming the mac is a true joy, even if all this dynamic dispatch is a little slow and hardly anybody uses macs.
Carbon is based on the classic Mac APIs which go way back to 1984, while the Carbon API actually exists (and is available for calls) in MacOS 8.1 and higher via the CarbonLib classic extension.
Misses the ``sturm und drang'' over Adobe's promising a free, then low-cost, then no-way-what's-your-market-cap license for Display PostScript (originally co-developed by NeXT and Apple), as well as the free ``Yellow Box'' run-time which went away at that time, as well as the moving target of the up-dated APIs when Apple ceased to think of Mac OS X as an OpenStep implementation.
.pdf out of pretty much any app. If one needs access to other features, well, there's always pdfTeX....(which provides access to things which the Adobe Acrobat GUI _doesn't_)
:(
Apple's support for PDF/X gainsays the claim the pdf support isn't a replacement for Adobe Acrobat to a certain extant. By tweaking a few settings one can get a press-ready
And the author misses Gerben Wierda's spiffy iInstaller.app which is a neat way to install iInstaller packages (which includes TeX, xfig, imagemagick, Ghostscript &c.). This was developed to work around (then limitations) of Apple's Installer.app and to make updating packages more efficient---way cool stuff.
osx.hyperjeff.net is a way-cool app tracker....
Also misses Macromedia FreeHand MX and the irony of NeXTstep's premier drawing / page-layout application having come to Mac OS X as a Carbon app
But a nice, informative article naetheless.
William
Sphinx of black quartz, judge my vow.
The largest flaw of the article involves the availability of games for Mac OS X. The writer admittedly didn't know of many, so I'll list a few, past, present, and near future. Games that cannot play with their PC or Linux counterparts in a multiplayer mode will be marked with the number sign (#)
-Return to Castle Wolfenstein (original; the Enemy Territory MP expansion is not yet available) (Multiplayer DOTH ROCK.)
- Diablo 2 (including all expansions)
- WarCraft 3 (including all expansions)
- Neverwinter Nights (original; expansions not yet available, but can be hacked to work)
- Baldurs Gate II
- Icewind Dale
- Star Wars: Jedi Knight II
- Star Wars: Jedi Academy
- Lara Croft: Angel of Darkness
- No One Lives Forever 1 and 2
- Halo
- Soldier of Fortune 2
- Dungeon Siege (#) (Legends of Arranna expansion not yet available. This game is made in part by Microsoft and uses proprietary software to make MP work for PCs)
- SimCity 4
- The Sims (including all expansions, excluding Online)
- Splinter Cell (coming soon)
- Command & Conquer: Generals
- Star Wars: Battlegrounds
- Call of Duty (coming soon)
- Medal of Honor: Allied Assault and Spearhead expansion (new editions not yet available)
- Unreal
- Unreal Tournament 2003 and 2004
- Quake 3 (duh--its the engine for most of the games listed)
About the only big game that never hit the Macintosh in recent years was Half-Life. I built a PC just to try that baby out, and I wasn't disappointed.
Usually, you have to wait 2-6 months for a successful PC game to be ported by companies such as Aspyr, but the wait is usually worth it because the game has been patched and runs much smoother than when it was first introduced on the PC.
I jokingly consider PC players as my beta testers, since a PC game that sucks ("Bloodrayne" notwithstanding--that turd got through the quality control somehow) is never ported to Mac OS X.
So, if you gotta play everything, the Mac isn't for you. If you want to enjoy the best of the games in a year, it's a sure bet it'll be ported soon.
Some companies, like Blizzard, ship boxes that contain both the Mac and PC versions of the game, such as WarCraft 3.
Vos teneo officium eram periculosus ut vos recipero is.
You might also want to steal comments from someone who doesn't have 1765 comments, and does have a life...
Carbon is based on the classic Mac APIs which go way back to 1984, while the Carbon API actually exists (and is available for calls) in MacOS 8.1 and higher via the CarbonLib classic extension.
Actually (if you care about all the historical details of Mac OS X's evolution) Carbon was originally based on the QuickTime library, which in turn was based on the classic Mac APIs. I was an engineer on the QuickTime team during the early Rhapsody days up through Mac OS X beta.
When Rhapsody (basically the NextStep OS) was being developed it quickly became obvious we needed to support classic Macintosh applications. QuickTime had already been ported to an early Rhapsody version, and it just so happened QuickTime already carried around an API that contained about 70% of the Mac OS functionality. This is how QuickTime runs on Windows and why porting Carbon/classic Mac apps to Windows is (relatively) painless if you know to call the QTW libraries. So Apple effectively had the start of Carbon on NextStep as a result of the QuickTime port. Rhapsody became Mac OS X, the QuickTime library support was spun out to its own team and became Carbon.
None of which really disagrees with your post, just a little more detail on the exact process.
Sailing over the event horizon
"only a dipshit thinks that photoshop is better than gimp. "
Either a dipshit or somebody who sits down, uses Gimp, and finds out it's missing a LOT of what Photoshop has.
There are a few things that Gimp does just fine. However, those of us that make a living by knowing every nook and cranny of Photoshop find Gimp to be virtually unusuable in many areas of image creation and adjustment. There's a reason why Photoshop is the de-facto leader in that market, think about it.
"Derp de derp."
If you're interested in trying OS X, Apple's online store has new iBook G3s for $799 (look in the Special Deals section). I bought one for my wife and 'borrow' it liberally ;-) OK so it isn't a PowerBook G4 but it has to be one of the best values in laptops. Its fast enough to do reasonably sized software development, and its more than enough for couch-born web surfing and email. Unix + great GUI + lightweight portable = bliss.
Not trying to sound like an advertisement, just giving a heads up to people that want the cheapest way possible to run OS X. (well, on new gear, on the same page you can get factory refurbs for even cheaper)
There are also clones of NeXT/Apple's InterfaceBuilder and ProjectBuilder and a host of end user applications. GNUstep builds on Linux and other UNIX systems. The Foundation classes work fine on Windows and there's serious work to perfect the GUI classes on Windows as well.
The major things I've seen that Photoshop has that GIMP doesn't are:
* No neat duotone tool. I like duotones.
* No non indexed/RGB color model support. Very, very bad if you're doing output for professional printing.
* Not sure, but I suspect Photoshop has better color matching support.
* Photoshop has a nicer warping interface.
* There are more plugins available for Photoshop. They're often quite pricy, but if you're a professional designer (the sort of person that would care about four color work and hence want to use Photoshop instead of GIMP), you're probably going to make back the cost pretty quickly.
There are only a few things that I know of that GIMP can do that Photoshop can't. Among these are:
* Better support for many languages to write plugins in.
* Some researchy plugins that go well beyond what Photoshop can do; Resynthesizer is one.
May we never see th
So if most of the Classic Mac's functionality is based on Carbon, which is based on QuickTime, and QuickTime has been ported to Windows...
aaaannnd, most of the NextStep functionality was available to x86 early on, with the YellowBox environment as well as seen in Rhapsody and WebObjects...
aaaaannnd Darwin, the OSX xnu kernel and personalities on Mach run on x86...
We have pretty complete coverage of the state of the Mac on x86. Interesting. I suspect with QuickTime installed, the hardest thing about iTunes on Windows was getting the GUI right. Which really is hard.
Yes, this is indeed the case. However...
First you're missing some important components, for example the Quartz rendering layer and the Aqua UI components. Neither of these are at all trivial.
Second, even ignorning Quartz and Aqua, you now have a set of about 70% of the components you need to build a Mac OS X-like operating system on Intel. As they say, the first 70% of the work takes 90% of the time, the other 30% of the work takes the other 90% of the time. It gives you a head-start, sure but you still have an immense effort ahead of you.
Apple spent (very, very approximately) a team of 1,000 engineers for 3 years to get to Mac OS X 10.0, from about the starting point you describe. That's 3,000 engineer-years of effort to find. Panther is another 3,000 engineer-years beyond that. It could be done, but its not trivial.
That said, when I was at Apple we did builds of Mac OS X (the entire stack) for PowerPC and Intel. From colleagues still at Infinite Loop I understand they still do every build for both platforms. I don't believe that it is technical barriers that are stopping Mac OS X for Intel...
Sailing over the event horizon