Posted
by
kdawson
on Saturday January 13, 2007 @03:24PM
from the but-but-steve-said-it-was dept.

rochlin writes "We know that Steve Jobs has said the iPhone won't accept third-party apps. The iPhone looks to be running on a Samsung provided ARM core processor. That means it's not running on an Intel (or PPC) core. That means it's not running OS X in any meaningful sense (Apple can brand toilet paper as running OS X if they like). Darwin, the BSD based operating system that underlies what Apple has previously been calling OS X, does not run on ARM processors. The Darwin / Apple Public Source licensing agreement says the source would have to be made available if it is modified and sold (paraphrased; read it yourself). A Cingular rep has said the iPhone version of the OS source will not be made available. It will be closed, like the iPod OS and not like Darwin. So if it ain't Darwin, it ain't OS X (in any meaningful way). An InfoWorld article on an FBR Research report breaks down iPhone component providers and lists Samsung as the chip maker for the main application / video cpu. So, that leaves the question... What OS is this phone really running? Not Linux or the source would need to be open."

it's a microkernel, why not just drop aqua onto whatever kernel they feel like? If it's not a gpl or other open licensed kernel, there's no requirement to publish code, and Apple still retains the right to call it OSX. Unless I am missing something, It's always been called OSX running on BSD, I'm assuming this means the look and feel of the GUI, the window manager, the kernel, and several other things are what make up an operating system. In the case of a kernel swap it might not be UNIX or BSD any longer, but won't it still be OSX?

That was a truly awful summary, filled with obviously (and painfully) biased statements backed with a bitter sentiment. I don't read slashdot summaries to find out the inner hatreds of the poster, I read it as an introduction to the story (so I don't have to read it, of course). Just shocking that this was let through by the editors.

First, if it was really OSX, why would they need Google's help to implement Google Maps?

It's possible that the "Google helped with maps" line is more of a marketing move than any real technical requirement. It benefits Apple to say that Google backs their phone. It benefits Google to say that Apple chose them over any other map supplier. A good win/win even if it turns out to be a little white lie.

The Google map portion of the iPhone demo showed off the double-tap and "pinch zoom" if I recall correctly. These scaling methods may have required some tweaks on Google's end. One thing that was clear from the demo is that Google Maps had it's own button on the home screen so there could also be some handshaking/connection code specific to the iPhone.

I'm friends with some of the people on the iPhone team. Before I knew about the iPhone, i constantly heard about radical ways to strip down OS X to make it run meaner and leaner and make sure it runs on "limited hardware". I assumed they were working on some sort of PVR or something, but clearly I was wrong. I'm fairly sure that lots of the code written is in CoreFoundation and they ARE using Mac OS X frameworks (stripped down to have only the functionality they need) - but the kernel may something completely new.

At it's lowest level, the Mac OS X kernel (XNU) is based on Mach 3.0 with a BSD "personality" to provide (mostly) POSIX kernel APIs and helpful functionality such as a network stack. The OS X userland is mostly ported from FreeBSD and NetBSD. On top of that is Cocoa, Carbon, Java and all of the other APIs normally used for application development.

As an interesting note is how Jobs described the OS the phone uses. He said "OS X." Normally Apple refers to their desktop operating system as "Mac OS X." That tells us a few things about what's really going on inside the phone.

My educated would be: the phone does run the Mach part of XNU, likely runs at least parts of the BSD subsystem and the I/O Kit device driver interface. Apple has also said that the iPhone supports PDF. This leads me to guess that parts of WindowServer and CoreGraphics are there. The references to Widgets support this as well. Widgets also tell us something else: WebKit is available. Calling the browser Safari supports this.

So, it's not the Mac OS X that runs on this laptop, but it would appear that enough of the existing OS X technology is there to call it OS X. Though, all of this is total speculation the product isn't on sale so it really can't be analyzed.

Finely, I'm still not entirely sure the no third-party apps bit is a forever thing. We don't know anything but what they've said, but I'll wait until Apple's World Wide Developer Conference (which interestingly is usually just about the time the iPhone ships) before I'll pass judgement on that.

OSX is a very large OS. While it is modular, a small embedded OS highly optimized for ARM would be a much smarter choice. This is consumer electronics not computers. The standards are MUCH higher. They need zero latency execution, absolute stability, and above all low cost. Every cent saved adds up to millions over a manufacturing run of 100,000 units. I would hazard to guess Apple did the smart thing and bought an off the shelf OS, and wrote a few apps for it with a set of prebuilt development tools just like every other phone and embedded device maker out there. Asking what OS the iPhone is running is like asking what OS is my microwave is running (yes I know my microwave doesn't have an OS). For consumers it doesn't matter and for developers there is a development kit available. This article us not news.

rochlin seems to not have read the license in any meaningful sense. His argument seems to be based on (2.2c) of the APSL

2.2 Modified Code. You may modify Covered Code and use, reproduce, display, perform, internally distribute within Your organization, and Externally Deploy Your Modifications and Covered Code, for commercial or non-commercial purposes, provided that in each instance You also meet all of these conditions:

(a) You must satisfy all the conditions of Section 2.1 with respect to the Source Code of the Covered Code;

(b) You must duplicate, to the extent it does not already exist, the notice in Exhibit A in each file of the Source Code of all Your Modifications, and cause the modified files to carry prominent notices stating that You changed the files and the date of any change; and

(c) If You Externally Deploy Your Modifications, You must make Source Code of all Your Externally Deployed Modifications either available to those to whom You have Externally Deployed Your Modifications, or publicly available. Source Code of Your Externally Deployed Modifications must be released under the terms set forth in this License, including the license grants set forth in Section 3 below, for as long as you Externally Deploy the Covered Code or twelve (12) months from the date of initial External Deployment, whichever is longer. You should preferably distribute the Source Code of Your Externally Deployed Modifications electronically (e.g. download from a web site).

Where the hell does it say anybody (including Apple) has to release source code before "External Deployment"?

Some of the above is very "duh", but having Cocoa, and Core Animation are two things that I would consider to be part of OS X... so even if the thing doesn't run the Darwin kernel, if it's compatible at the application layer I'd consider it OS X enough.;)

1. OSX is a derivative of NeXTstep, originally written for the Motorola 68000 line of processors. It was ported to the PowerPC architecture and the x86 architectures. Why's it so hard to believe they couldn't port it to ARM? Yeah, binaries from "real" OSX won't work, but since the plan is to only have Apple binaries running on the thing, they can just recompile for the new platform. Porting userland is trivial.

2. OSX is an operating system built on a microkernal derivative of UNIX. Unix--especially unix running on a uKernal--is pretty much the most modular thing out there. All they have to do is drop the stuff they don't need for a phone.

3. Again, maybe the full-on desktop version of OSX is power and graphics hungry, but there's nothing that says they can't scale that down.

I'm guessing that the iPhone OSX is very similar, especially in terms of high-level APIs (given that Steve mentioned a lot of OSX APIs by name during the keynote), to quote-unquote-real OSX.

Nope. Darwin, as an open source project, has code committed from outside Apple. The authors of this code still own it. Unless Apple negotiated with *every single* Darwin/xnu contributor whose code was going into the iPhone OS, they'd have to open-source it or at least portions of it.

Someone correct me if I'm wrong, but isn't all that stuff BSD licensed? Which basically means that Apple (or anyone) can include it in their proprietary software without being open source, since the BSD license isn't viral like the GPL?

Check the Apple license agreement to Darwin, the APSL [wikipedia.org]. I'm pretty sure that for any code to be checked back in to Apple's Darwin repository, copyright must be assigned to Apple.

Note that the FSF does the same thing with its various official GNU projects. If you want to contribute code to, say, GCC, you must give up your copyright to the FSF, together with a signed sheet of paper that says you do in fact own the copyright of the stuff you are contributing. This is non-negociable and meant to avoid SCO-like lawsuits associated to GNU projects. So far it has worked rather well from that point of view.