Slashdot Mirror


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."

23 of 664 comments (clear)

  1. Re:The core is already... by scrod · · Score: 4, Informative

    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.

  2. interesting article... by Anonymous Coward · · Score: 5, Informative

    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. :-)

    1. Re:interesting article... by cosmo7 · · Score: 3, Informative

      I've worked for Apple and I can tell you just about all the new core stuff is being done or being converted to C or C++.

      If you've worked for Apple you'd know that all the CoreFoundation classes have always been written in C/C++ and are (mostly) "toll-bridged" with their corresponding Objective-C Foundation classes.

      If you are writing in Objective-C and discover a performance hit from the dynamic binding there is nothing to prevent you from using the CF classes (other than having to write C/C++) and including it in your Objective-C code.

  3. GIMP by Saeed+al-Sahaf · · Score: 3, Informative
    These features Photoshop has that Gimp does not have just hasn't given anyone a sufficient itch yet.

    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
  4. Excellent read! by Tor · · Score: 3, Informative

    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

  5. Re:OS X 10? by DreamerFi · · Score: 3, Informative

    And if you think it's just the UI that makes GIMP less powerful, you've clearly never seen a pro work on PhotoShop.

  6. That's funny by subtillus · · Score: 3, Informative

    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.

  7. Re:Carbon's roots are older by frankie · · Score: 5, Informative
    The article is conflating two different things - either an accidental mis-edit or an intentional oversimplification.

    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.

  8. Minor things to update (Nits) by WillAdams · · Score: 4, Informative

    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.

    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 .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_)

    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.
  9. On the Subject of Games by Spencerian · · Score: 4, Informative

    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.
  10. Dirty post-stealing whore! by teamhasnoi · · Score: 4, Informative
    I posted that! Get your own sense of humor, you dirty, dirty whore!

    You might also want to steal comments from someone who doesn't have 1765 comments, and does have a life...

  11. Re:Carbon's roots are older by gwernol · · Score: 5, Informative

    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
  12. Re:OS X 10? by NanoGator · · Score: 4, Informative

    "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."
  13. Re:Potential Linux Switchers: Read Up by gamgee5273 · · Score: 3, Informative

    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.

  14. try OS X on a cheap iBook by SideshowBob · · Score: 4, Informative

    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)

  15. I'm so sick of this: Cocoa IS PORTABLE! by Art+Tatum · · Score: 4, Informative
    It's called GNUstep. And yes, there are applications that build cleanly on both platforms. GNUMail.app, for example. There's also a project called Renaissance that allows you to craft your interface with XML, avoiding even issues with Apple's proprietary .NIB files.

    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.

    1. Re:I'm so sick of this: Cocoa IS PORTABLE! by Art+Tatum · · Score: 3, Informative
      A couple times per year I check in on the GNUstep stuff. I'm always suprised to see there are still people working on it... doing stuff... but I can never figure out what the purpose of it all is.

      Well, there are several purposes it seems (everybody has different goals and desires). Many are old NeXT programmers who didn't want to lose the beauty of the Objective-C language and API. Others are OS X programmers who also like Linux or other UNIX systems and like to have the same tools, API, and language to work with. Still others are completely new to the paradigm and just think it's nice technology. There are also quite a few people who are professional software developers and want to release their software or libraries on more than just OS X. (One guy ported his special software to OS X and is also going to release it on Linux and Windows XP).

      I mean, you never hear anything about GNUstep. There are no distros that I know of that use it on the desktop.

      Yes, there are several reasons for that. One of them is that distro integrators have never heard of it or don't think it's really being maintained. The other is that the number of end-user applications has only recently started to grow. But there are some Gentoo ebuilds, I understand. Might be some packages for other distros as well. I don't really know much about that since I always build from CVS, since there are so many changes and commits. :-)

      Hell, to this day I'm not 100% sure what exactly GNUstep is or what it does. I mean, is it a X11 replacement? Something like KDE/GNOME? Some widgets? Just some API's?

      The GNUstep core is just a set of object oriented APIs. It's an implementation of Cocoa. But there are also other packages, like dev-apps, that includes clones of the Apple/NeXT development tools, as well as some other frameworks for development. There are lots of 3rd party frameworks and applications too, like the MusicKit.

      I mean, what the hell is it for? Are there any applications that let me "do stuff" which make me more productive?

      There are some. At this point, it's mostly just your typical desktop stuff (a media player, a mail client, dev tools, a GPS app, a few games, some other stuff). Somebody is doing a port of Apple's WebKit and working on an HTML view class that will make it pretty easy to write a web browser.

      They really need to do some marketing legwork here because right now the whole project is off in some dark corner (as it has been for many years). Maybe collaborate with some other well-known projects or something.

      Yeah, that's a problem. I'm trying to do some of that myself by posting here. The GNOME and KDE projects have such prominence that it's difficult to get the general population interested. Personally, I think the attempts to create an integrated desktop system could be superior to what GNOME and KDE are doing. Both of those projects tend to be over complicated. It seems like they just want to throw in everything including the kitchen sink. It ends up just being a big mess.

  16. Re:OS X 10? by 0x0d0a · · Score: 4, Informative

    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.

  17. Re:NTFS Read support(!!) by aristotle-dude · · Score: 3, Informative

    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.
  18. Re:Carbon's roots are older by gwernol · · Score: 4, Informative

    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
  19. Re:It isn't MacOS X that turns people off of Macs. by phillymjs · · Score: 3, Informative

    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

  20. Re:Potential Linux Switchers: Read Up by calyphus · · Score: 3, Informative

    Actually, the author didn't get OS X until April 2003. So, more like 9 Months.

    --


    The potato it is uninformed.
  21. Re:Why Mach? by rmlane · · Score: 3, Informative
    Why combine the loss of performance and added complexity of Mach with the lack of flexibility of a single (BSD) server?
    Your premise is incorrect. I worked at Apple as an Enterprise SE, and asked the same question of the kernel engineers which they answered as follows: (errors all mine, accurate info all theirs)

    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.