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."
Darwin has been released under the GPL. It's only the higher layers (like Aqua) that are closed.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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
Maybe if they offered some sort of lite x86 version
e s/darwin-701.iso.gz 7 01.iso.gz
You can get Darwin (the OS X kernel) for x86 at http://developer.apple.com/darwin/
This is a single Installer CD that will boot and install Darwin on Macintosh computers supported by Mac OS X 10.3, as well as certain x86-based personal computers. The version of Darwin installed by this CD corresponds to the open source core of Mac OS X 10.3 and is available at the following URLs:
http://www.opensource.apple.com/darwinsource/imag
http://www.opendarwin.org/downloads/7.0.1/darwin-
MD5 (darwin-701.iso.gz) = 57e9cb37e9595436596b2fa5975d5569
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...
How the hell is this "insightful??" Macs can use any LCD or CRT monitor and standard 802.11b/g equipment.
Actually you can use any 802.11b or g wireless router with a Mac (so it's not just available for PCs as you probably already know). The Airport base station has a slightly different set of features that I don't need so I just use a cheap-o wireless router. However, to be fair, there are probably some users who can make use of the Airport features. You're not just buying a more expensive version of the exact same thing when you buy an Airport base station.
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 Quartz was so "good", why would Apple need to make it's own (non-free for that matter) version of X11 available as well?
Because people wanted to run the GIMP and X-Chat.
Seriously; that's just about it.
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)
No, it's compatibility FUD (I actually had an online banking support rep say to me "remember Betamax?") and a complete lack of understanding of ROI and the lifecycle of hardware. Not to mention lemming behaviour...
And I've heard more people than I can stomach who just need to use the internet and type some letters say that there isn't any software for the Mac, a salesperson told them so. (10K native apps plus VirtualPC and all those OS 9 apps, and counting.)
$1299 for just a box (WTF? which one? izzat $CDN?) that you'll use for 4 years as-is (after a third-party RAM upgrade) and can run semi-pro creative applications without geekery, viruses, or downtime--not bad at all, especially if you use it to make money.
Damn those pesky terrorists
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.
I'd consider the "Digital Audio" G4s to be the best price/performance place for people looking for a cheap way to play around with OS X. Most of them came with Quickdraw Extreme-capable video cards and they all have at least a CD burner.
Just make sure you stock up on RAM [at least 512 IMO] and you'll have a smooth while not exactly rocket-powered OS X experience. The 466s seem to run around $500 on eBay.
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
Instead of buying a Cube (Cubes are notoriously over-priced still, even though they were discontinued years ago) you should've picked up a G4 tower. Or, since you were going the upgrade route anyway, you could've picked up a Blue & White G3 tower, and upgraded it, though I don't think the G3s had AGP support.
Regardless, a 500MHz G4 tower would've cost you ~$400-500 on eBay, instead of $800. And, you'd have a machine infinitely more expandable than the Cube. Hell, for the $1300 you spent, you probably could've picked up a 867 MHz G4 (With a Superdrive).
A little more research would've gone a long way...
Actually, Display PostSript wasn't that much of a chokepoint on NeXTstep---it _is_ a multi-threaded system after all (the problem was DPS granularity was 1 PostScript operator and sometimes 1 OS op. is ``Display this multi-megabyte bitmap graphic''. The NeXTDimension board off-loaded this from the main CPU though, greatly assisting performance.
Turbo NeXTs were 68040 at 33MHz (the standard was an '040 at 25MHz and the original Cube was an '030 at 25MHz). There were a few pre-production ``Nitro'' accelerator cards (estimates range from 6 to a couple of dozen) which ran at 40MHz in Turbo hardware, and there was a ``Pyro'' CPU upgrade which allowed one to run a clock-doubled 50MHz CPU in _non_ Turbo hardware.
Agree, having X11.app is nice 'cause one doesn't have to wait for things to be ported (just recompile), though QT support for things like LyX for Aqua is _way_ cool.
William
Sphinx of black quartz, judge my vow.
I agree that hinting too little has been a problem with past versions of OS X, but whatever they added between Jaguar and Panther (I guess Apple prefers to call it "micro-pixel positioning") has done a lot to clean up the color problems that existed before. I noticed the difference the first time Panther booted, and the appearance of small fonts in particular is much more readable now.
Well. I am a Mac user. Actually, I am a NeXTSTEP user but it beomes Mac OS X after NeXT acquired Apple. So, for me, Mac OS X GUI is the UI my Unix box always has! ;)
Unix never really accept CDE or Motif. They were just, well, there. Three big Unix vendors: IBM, Sun and HP have all in one time or another trying to adapt NeXTSTEP/OPENSTEP on their machines but as fragemented as the Unix was during the early 90s', the adaption never went anywhere.
If you are on Linux, you want to take a look at GnuSTEP which is an open source implementation of OPENSTEP which is the fundation of Mac OS X.
There is this very useful feature in every mac since system 7 called "control clicking." You might want to try it some time. As long as you have your hand on the computer to use the trackpad, you can hit the control key quite easily. Maybe your to lazy. Unfortunatly their isnt a key to fix that.
Its kind of like that emulate 3 button mouse thing in linux.
This is suprisingly not TOTALLY true. My last box was a dell, they also charge about 160CDN for shipping on their lower ended models. Apple didn't charge me at all for shipping.
So, The price difference is only about 100-200. I found it to be seriously worth it to go from a P4, 2.8 desktop to the new G4 ibook.
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.
MDI is kinda obnoxious, save in very controlled scenarios. Generalizing it outside of these scenarios is a recipe for disaster.
Its a whole Objective-C development environment, complete with FoundationKit, which is a bunch of stuff for core data structures, system interfaces, and whatnot. Basic stuff. Then there is the AppKit, which builds off the FoundationKit to give you one of the coolest application development suites around.It's possible to write a full-featured text editor with about 10 lines of code. 10 readable lines of code, I might add.
I try not to write GUIs at all. I try to use visual feedback tools to develop them, then let the tool generate an intermediate form I can use. I grew fond of this approach using Apple's dev stuff.It's kind of a pain to use KDE's tools for this. They aren't very good, it doesn't tie together very well. All in all, it feels like a very slipshod affair. Ultimately, the framework is a C++ system, and shows the rigidity and lack of cool dynamic features that make developer's life easier in other frameworks.
KDE is a fine piece of work, and it's competitive. I just don't think it's an incredibly hot piece of software. I use it in preference to GNOME, when I use Linux environments (and I do frequently), but I haven't found all this "power" particularly compelling.
I try not to fall into the trap mentioned in the article above. Endless cycles of tweaks, configurations, and generally boring drugework to get my windowing environment "just so" when it was 90% of what I wanted to begin with. I'd rather have good development tools and a nice base language. That's my standpoint as a developer.
As an average user, KDE's options are hidden, bewildering, and seldom used. This is Microsoft all over again. Windows can do a ton of things, but it's all buried in cluttered UI, unknown and arcane dialog boxes, and odd control panel property lists.
For people who want to futz, tweak, and generally waste time... well that's great. More power to ya. If you think spending 2 days tweaking your window manager instead of just adapting to it is really that beneficial, that's cool. I've kept mostly with the stock KDE, and I haven't been wont for anything really.
I just get a lot more bang for my buck with the stock OS X config. Expose, especially, really breaks the bank. :)
Slashdot. It's Not For Common Sense
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.
OPENSTEP spec is jointly developed by NeXT and Sun. OPENSTEP/SPARC has been released.
As for NeWS, it's a terrible system. It tried to use Postscript as the communication language but it's very slow. Sun tried to define new Unix GUI standard with AT&T and jointly developed CDE. The other group IBM/HP/DEC decided to go with Motif.
NeXTSTEP adaption came after the CDE/Motif fight which basically fragemented the Unix GUI market.
A few more details are available here.
Mach IPC is more flexible and efficient than Unix/POSIX/BSD IPC mechanisms, even if it is only used between applications and not for providing system services.
Additionally, the Mach part of the kernel is already fine-grainedly multithreaded, and it has been since the beginning.
There are also plenty of APIs in Mach that provide far more fine-grained control over the system than POSIX APIs.
The only way in which the solution is the "worst of both worlds" is the fact that the kernel is slightly bigger than it needs to be...but considering the memory consumption of MacOS X in general, that isn't significant.
There is no "loss of performance"; Mach doesn't reduce performance, using Mach IPC rather than direct system calls for system services would (especially without modifying them to be more suitable for implementing a multi-server system with POSIX semantics; which is why many things under the Hurd are so slow).
Of course it is true that XNU doesn't seem to be as fast as *BSD or Linux for basic POSIX services, but that's probably just because Apple's priorities have been in making the userland parts efficient; system call performance isn't a bottleneck in many OS X apps.