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.
Oh?
From the developer of FilGimp: "Film GIMP developer Caroline Dahllof, a programmer at Rhythm & Hues, "Photoshop handles more layers with big images better". Matte painting artists at Rhythm & Hues create large backgrounds with perhaps forty layers and use a lot of specialized plugins. Working on single large images is quite different from the typical Film GIMP tasks of retouching film frames to remove dust or wire rigs. To get rid of Photoshop completely would require investing a lot of developer resources."
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
This is one of the very best "OS Review" articles I've ever come across - especially the way that it brings in all aspects of history, influences, etc to address ignorance & common misconceptions.
Good Job!
-tor
And if you think it's just the UI that makes GIMP less powerful, you've clearly never seen a pro work on PhotoShop.
Because I was just at the website and the store says 799$ for the emac right now. Shipping included.
Airport may be expensive, but you don't have to get it. In my laptop it was cheaper than the PC equivalent.
The initial cost of 800 does cost more than a PC, but they also don't become obsolete AS quickly so it's a neat trade off.
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."
I started using OS X with the Public Beta - in September 1999. And, yes, it was on my production machine. Thus, OS X has been with us for 4 years and 4 months, not 3 years.
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
NTFS read support has been in there since Jaguar. IIRC. Jaguar and onward also has read/write support for FAT32.
Jesus was a compassionate social conservative who called individuals to sin no more.
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
It's the fact that apple only sells LCD monitors, starting at $699.
Yes, and nobody else makes displays that work on the Mac. I'm just imagining the two ViewSonic LCDs that are connected to my G4 right now.
It's the fact that airport (which is a fancy name for 802.11b/g) is much more expensive than what is available for PCs.
Yeah, and no other wireless hardware works with the Mac. Those pesky hallucinogens pumped through the air ducts at my office only make me THINK my iBook is connecting via the company's Compaq wireless access point.
It's also the fact that systems have high initial costs ($1299 for JUST A BOX!).
Well, it's not Apple's fault that people are cheap, short-sighted idiots. I've gotten significantly longer usage out of the Macs I've owned than the x86 hardware I've owned. I got six years out of the last Power Mac I bought new, but I've rebuilt my x86 box with newer hardware three times in that same time period. You might be able to get a PC for 1/3 the cost of a Mac, but chances are you'll have purchased two more before I'm ready to replace my Mac.
~Philly
Actually, the author didn't get OS X until April 2003. So, more like 9 Months.
The potato it is uninformed.
The Mach microkernel and the BSD kernel stuff actually live inside the same memory / process space. There is no task switching performance penalty (the performance issue from "standard" Mach implementations), as you don't task switch to get from the Unix kernel to the Mach microkernel.
What you do get from having Mach is a well debugged, small set of OS primitives that the rest of the kernel can call with the performance penalty of a function call rather than a task switch.
Effectively, XNU uses the "single server" model from a performance perspective, and the BSD on Mach model when you're talking about stability, extensibility and debuggability. In addition the Mach primitives are available when you don't want to use the *NIX ones.
So you DO get the best of both worlds.