Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Magenta - "It is fully binary compatible with iPhone OS 5.0" (crna.cc)
326 points by mparlane on June 9, 2012 | hide | past | favorite | 124 comments


This is the sort of person that I want to be engaged with:

* highly opinionated

* driven by personal interest

* not afraid to go down the worm hole and come up with little public recognition and enormous personal gain

This is the sort of project that makes me grin:

* highly engrossing project page

* mysterious motivations

* unknown implications

* legally ambiguous

I love this shit. Keep it up, Christina.


I love you.


HN needs more conversations like this.

Edit: Ooh, controversy. I'm quite sincere about this-- love to chat with whoever disagrees.


Ha! Well played, Christina. Well played.


I think he ment engaged on a mental level? not like.. you know engaged.


I'm surprised that people are confused. Is there a regional difference in the way this would be phrased? In my (US) experience, "engaged with" unambiguously means working together, while "engaged to" unambiguously means getting married.


Indeed, at least from my American Midwest perspective, I agree it's all in the conjunction, with no ambiguity at all.


I didn't notice any ambiguity until I read the replies


I immediately thought engaged -> married. I didn't even pay attention to the with/to conjunction. Anything "engaged" means marriage to me unless presented as something that is not a person. I get it now, and it makes sense, but I have a feeling there are a lot of people who would think, programmer finds female programmer that is excellent at what she does and wants to "engage" her.


Phrases like "I tried to call, but they were engaged." must really confuse you then.

There are a lot of things in the world that are engaging, many would say far more engaging, than just the prospect of marriage.


The same here, in the UK.


I understood what he meant, but it still made me double-take.


I see that philosophy and math aren't the only fields where someone's work is more praiseworthy for being less practical!


less immediately practical

How much "non practical" mathematics from the last couple of hundred years has turned out to be useful in physics problems and other areas (or just inspired other bits of maths that have had uses) over the last few decades?

If you are doing something new then there is no such thing as science purely for science's sake.


Is it just me that reads this and is reminded of Linus/Linux ?


This is really weird. When there is a submission about some guy's project, do we evaluate his potential as a mate? Does that become the top comment? What in the world is going on here?


I think you're misinterpreting 'engaged with' there…


Oh, I guess I am! But it still seems weirdly personal, though more subtly.


It seems even more creepily weirdly personal if "engaged" was a freudian slip rather than the intentionally self deprecating humor of trying to sound like a horny cyber stalker. I assumed because of the rest of the gushing it was meant to be a humorous parody of a horny cyber stalker.


Is there a chance you guys are not native english speakers? I'm Canadian and didn't find anything odd about the sentence. I think the context made it clear that he was talking about contributing.


Is there a chance you guys are not native english speakers?

Yes, it's commonplace for someone to "want to be engaged with brilliant people" without bringing marriage into the picture. I've seen that on cover letters a number of times.


Indeed. "Engaged with" doesn't ever describe a marriage proposal in any case, so it's hard to imagine a native speaker being confused. (The idiom is "engaged to".)


(Upvoting this post so others can see the context -- don't let your disagreement rob others of being able to follow the conversation, HN!)


This conversation is really boring. I'm downvoting it because I don't want to follow conversations like this.


Are you kidding me? If posts can't be downvoted because they contain "crucial" context, then why have a downvote button at all?


I love it: hacking for the sake of hacking, just to have fun.

Christina's announcement reminds me a little bit of Linus Torvalds's 'this won't amount to anything' post to comp.os.minix on August 25, 1991.[1]

I'm by no means suggesting or implying that Magenta will be as successful as Linux or anything like that, just that the announcements posted by Christina and Linus strike me as very similar in tone and attitude :-)

[1] https://groups.google.com/group/comp.os.minix/msg/b813d52cbc...


By the way, the sources are up on http://crna.cc/ now.


Would it be super hard (and, illegal) to port upper iOS layers as binaries?


The legal route would to be to provide an installer that downloads e iOS frameworks from Apple, so you aren't redistributing anything. However, it would still be quite a bit of work: iOS has a not-insignificant layer of drivers in the not-yet-recreated IOKit kernel framework (although some are open source), and likely many other low-level layers that would need to be recreated.

However, it's certainly possible, but as 'mparlane says, it would be a lot of (difficult) work.


IMO if it's not illegal at the moment, apple will add another clause to their next EULA to make it so if project gains any traction. (Similar to the way they prohibit use of OS X on non-apple hardware.)


It's a time intensive thing and not illegal if it's your own code/implementation. The google/oracle case shows that the api is not copyrightable but the implementation is.


Any thoughts about getting this up on Github ? Would definitely get you some contributors.


From IRC (don't shoot the messenger, please..):

<_Christina_> no github, i dont like revision control


I hope she changes her mind. Revision control saved many people's asses throughout history.


There's opinionated, then there's reckless.


Linus himself said that emailing tarballs and patch files is better than many source control systems (he said this about SVN)

I myself have seen (and had the mispleasure of fixing) many tangled git history trees.

In all cases, you have to be responsible, which neither influences or is influenced by your choice of revision control.


Revision control does not need software per se. Keeping multiple directories and files works too (not as well though).


Which is what Git does: every commit actually is a directory/file tree and a small note a.k.a. `commit message'. You could re-create the effect by hand, by placing `.commit' file in root of the multiple directories you speak of.

However, Git (and any other DVCS) does the bookkeeping and keeps you from missing that one small detail at 4AM.

Also, it's much faster to git-commit than to copy 150MB of sources by hand; mostly because Git avoids work where sensible. Ditto for git-diff.


I can understand and sympathize with "no github, I don't like github" or "I don't like git", or "I don't like social networking" or "I don't like horny virgin hacker boys cyber stalking my every edit" but what the hell?


Did you ask why? There must be a well thought out explanation for this surely?


I'm the only maintainer of this project. I find revision control redundant, since it takes extra steps to set up and use while being of very little value. I'm reasonably good at maintaining my tree without needing any fancy revision control systems (git/svn/whatever).

I will get hated for what I've just said.


It might provide little direct value to your development process, but the real question is, why are you posting this project on the internet?

Do you think there is a chance it will be useful to others, and that they might contribute back patches that you will find useful? If so, it makes sense to make that as easy as possible. Otherwise you are sabotaging your own goals and putting unnecessary barriers between you and your potential contributors.

Sign-up aside, all you would need to do is type "git init" and then set up a one-line script that will do a commit and push it to github. If you want to be nice, you'll type in a message. Voila, you now have a way to:

* let people subscribe to your project

* automatically maintain and announce your changelog

* let them fork your project, make changes, and send those changes back to you as a diff which you can comment on online

* merge those changes back into your tree with a single click / command

Additionally, while you might be confident managing a single code tree, there are things that filesystems don't do well, like branching. I find being able to try new things and setting them aside for a while is invaluable. It lets me be bold and work on whatever I fancy, without having to worry about what I was doing before.

Don't think of git as revision control, think of it as a little robot that lets you do controlled operations on code trees, like you can with files.


I do the same, sort of. I just use RCS on a local machine. Who cares what other people think?

Any chance we could get a glimpse of this booting? Maybe a YouTube video?

Is it easy to do static linking? I'm quite happy without shared libraries. And I don't mind being hated for saying so.


This is Hacker News; we try to stay civil, so I don't think many people are going to "hate" you for not using (understanding?) version control.

Then again, I don't think many people will take you or your project seriously after this, either. Many of us went past folders and tarballs for version control back in 1992, and personally, there's no way I'm going to touch an OS Kernel that is distributed in a zip file. That is not how you do open source -- for what it's worth, you may want to keep your tarballs to yourself: that'd serve the same practical purpose.


I'm going to take christina_b seriously because this is a seriously complex problem, and it's impressive that she's gotten so far with it.

I don't expect that any of the people saying "you should use github to get contributors" actually have the wherewithal to contribute.

Moreover, while I disagree with her stance about SCM, I find it incredibly bikeshed-y that people are talking about that instead of about the technical details of how such a thing is implemented.

Don't any of you have questions or comments about this other than cheerleading, or a bikeshed about SCM? I posted some similar projects that have taken different approaches.


> there's no way I'm going to touch an OS Kernel that is distributed in a zip file

Okay.


That makes sense if it's just you, but you must be losing a lot of potential contributors by not being on Github, let alone not using any version control.

Are you just not that interested in contributions from the public? If so, I think it's possible you're greatly underestimating community interest in the project.


The choice of SCM is the least important factor when it comes to contributors to a genuinely complex problem like this one.


I find I'm always happy I used hg when I get the inevitable sneaky bug in unrelated code. Being able to easily step back through history and run my tests at every step to see where they fail has been very useful many times.


I use hg locally on personal projects also. I very rarely actually need to go back to a prior version, but it gives me more confidence to try different things, knowing I can easily revert to a working version.


> I find revision control redundant, since it takes extra steps to set up

Such as typing "git init"?


And starting a series of steps that have been automated for you?

For a one person project, git is unneeded overhead.


What series of steps? git push?

> For a one person project, git is unneeded overhead.

You've never heard of git bisect?


I hate you! More seriously git is super easy to begin to use, and even more so for small projects and / or projects with a small number of contributors.

Setup? git init; git add . (if no unwanted binary in the tree) Something interesting has been done? git commit -am "rock more" New source file? git add file; git commit -m "new foobar module"

What value does it bring? Great revert capability, bisecting bugs, and so over. I agree most of the time I don't need it, but well, when I do it is handy. It is like being insured.


From Linus himself:

(I don't remember what he exactly said, but it's something to this effect): I hate revision control, that's why I created git.


Somebody else will put this on github then.


That would be rude.


To elaborate, it's rude to take someone else's project, and under the same name, publish it elsewhere. This has been a rule of open-source for a very long time.

If you're going to fork someone else's project, either rename, or call your github fork a mirror (and treat it purely like one).


This has most certainly not been the rule of open source, its almost the opposite of the 'rules' of open source.

The author may not be interested in managing contributions or using source control, that is their prerogative, but as long as the license permits it if people want to work on the source code and collaborate with others, it is completely fine (and encouraged) for them to fork it


Forking a project has always been an option of last resort in open source. Doing so while stealing the name is downright nasty.


Putting a version of an open source project into version control is not a fork, you could argue the same way that distributions are forking all software because they put them in packages. To fork you have to write code.


Putting it into public version control and accepting patches is a fork -- name it something new. If it's just a mirror, then call it that, and don't accept patches.

This is basic OSS politeness and the cultural norm. Only recently has Github trained people to think its OK to take someone else's work, keep the name, and siphon off interest/contributors.

If you want to fork, then do so. Treat it like the new project it is, instead of trading off the name and efforts of someone else, and operating independently of their development standards and norms.

Or, be polite, and accept that the choice of VCS is a stupid reason to fork someone else's project.


"You may ask, why am I doing this? The answer is: no f'ing idea :)"

Love it.


No graphics. No problem. Great, open (source) system to test iOS internals and hack at the lower level stuff.

Also, nice way to test exploits, proof of concept backdoors, virii, trojans and the like without requiring major investment into the apple ecosystem.

Maybe, even the beginnings of a third option besides Android and iOS ?

Thanks!


How could you test exploits, when the underlying os core is linux, not darwin, and all higher level libraries are completely different implementations as well?


Not to mention the complete lack of Sandboxing and Mandatory Code Signing?


As cool as this project is, virtualizing OS X -- or emulating an ARM system for iOS -- is much more likely to be useful for testing iOS internals / lower-level bits without requiring Apple hardware.

For example: http://www.iemu.org/index.php/Main_Page


Maybe Meego would be a good fit ?

But if she could get this working on Android it would be huge. I guarantee you could get a million off Kickstarter if you decided to be a little evil and stoke the fanboy flames a bit on Engadget/Reddit etc.


Dude (or female, not sure), that is and evil an brilliant idea. Even if it never made it on Kickstarter, it would certainly start a movement.


Actual quote is "You may ask, why am I doing this? The answer is: no fucking idea :)"

Not sure why you would censor that when the author didn't.


And this is announced just after the judge has decided APIs are not copyrightable!


We can easily virtualize this and run it aside Android on Galaxy Nexus.

But that would be meaningful only if it was possible to run iOS apps:

" * Will it run iPhone OS apps? * No, because I'm not aiming to have compatible high level frameworks. Just think about how much work is required to have a 100% compatible implementation of UIKit or Celestial. HOWEVER, the CoreOS part should be 100% (or 99%) compatible. Just not the higher level OS. If you're just interested in this because it will "run iOS apps" please go away. "

I wonder if it would be possible to port the binary ios stack.


"I'm not aiming to have compatible high level frameworks" doesn't mean it won't happen, just that it isn't one of her personal targets. The beauty of an open release is that if others want it enough they can work on it.

Let her concentrate on the bit she finds interesting (the core) and that will provide a nice stable platform for others to build the higher level stack on top of if they wish.

Of course there are probably legal issues hidden in there somewhere, so care will need to be taken especially if importing binaries rather than building your own API compatible versions.

While this won't have anything like the scale of Linux, I don't think the comparison some have made regarding the "shape" of the project is exaggerated. She seems to have the right attitude to be the "benevolent dictator" over something significantly wider than she could do alone.


I look forward to seeing Phoronix fan the OS war flames by benchmarking Linux running BSD binaries vs. BSD running Linux binaries.

More importantly, what planet do you come from, and is it accepting immigrants?


There are a number of past projects very similar to this one. The two I remember off-hand:

- http://hcpnet.free.fr/applebsd.html -- NetBSD in-kernel COMPAT_MACH / COMPAT_DARWIN support. This got to the point of being able to run XDarwin, which is a pretty major step towards being able to run the WindowServer: http://hcpnet.free.fr/xdarwin.jpeg

- https://github.com/shinh/maloader -- A user-space Mach-O binary loader. The only goal was to be able to run Apple's binary toolchain on Linux, which it is able to do.

It's very possible to implement the necessary kernel APIs to run Mac / iOS Darwin binaries. Where you run into trouble is the massive software stack that sits on top of those OS APIs.

Without $10M or more to spend on development, it's simply not feasible to produce full binary-compatible replacements for Apple's software frameworks. The best you can hope for is to copy over Apple's software from a real installation, and then run it atop your own kernel.

I love hacks like this, so god speed to christina_b. This is awesome.

To those of you telling the Christina to put her work on github to get contributors, I don't think that is particularly helpful advice. The barrier to entry on a project like this has nothing to do with the SCM being used.


From your first example:

"This project is dead due to a lack of interest from users."

Do they really mean "lack of interest from other developers"?

They shouldn't be doing it for users, they should be doing it for themselves, and to their credit, I think that's often why they do what they do. They have more common sense than the usual. That's why their work is so good. (It's also because they have more of a cathedral-like structure, and not just with respect to the kernel.)

Who are these "users" we need interest from? How do we measure interest? Among OS's NetBSD's user base (non-corporate) is very small.

This developer chose the Linux kernel not to please users by making the "popular choice" or because it is necessarily the easiest to work with. As the blurb says, it's a matter of driver support.

Yes, Godspeed.


In the case of the NetBSD project, users and developers were the same people, and there wasn't much interest.

When looking for people with the necessary skills to contribute, you'll find that the majority qualified individuals are Mac OS X kernel/systems engineers, who already have Apple hardware, and don't have any particular need to support an alternative clone of their existing target platform.

This was certainly the case with the NetBSD project. When it was contemporary, I kept tabs on it, but never bothered to contribute -- Mac OS X worked fine for me.

Revisiting the problem space now, my development time would be better spent working on the open source alternatives (such as Android), rather than attempting to clone Apple's stack. It's just too big. Personally I work with Android on OMAP4 hardware.


I'm a little confused as to what this actually is. It's a version of linux that can run apps compiled for the iPhone?


Actually, so am I. Lets go through it together:

1) "Implementation of Darwin" [1]

2) "On top of the Linux kernel" [2]

3) "Binary compatible with iOS 5.0" [3]

4) "The final goal is probably recreating the iPhone OS 1.0 stack" [4]

--------

[1] "Darwin forms the core set of components upon which Mac OS X and iOS are based"

http://en.wikipedia.org/wiki/Darwin_(operating_system)

[2] "The main component of most computer operating systems"

http://en.wikipedia.org/wiki/Kernel_(computing)

[3] "In computing, a computer that can run the same binary code intended to be run on another computer is said to be binary-compatible"

http://en.wikipedia.org/wiki/Binary_code_compatibility

[4] "Initial OS release".

http://en.wikipedia.org/wiki/IOS_version_history#iOS_1.x:_in...


From what I understand it is a version of Linux that can run binaries compiled for the iPhone on an ARM chip but doesn't provide any of the higher level Cocoa libraries (i.e. no GUI stuff)


Re: apps

Will it run iPhone OS apps? No, because I'm not aiming to have compatible high level frameworks. Just think about how much work is required to have a 100% compatible implementation of UIKit or Celestial. HOWEVER, the CoreOS part should be 100% (or 99%) compatible. Just not the higher level OS. If you're just interested in this because it will "run iOS apps" please go away.


An open source smartphone OS that

- you can compile yourself easily

- which has a real command line and

- is not controlled by some company.

This would be most welcome.

Palm-sized "UNIX". A true opens source "UNIX phone". No company-controlled virtual machines or high level GUI frameworks. Lower complexity, less bloat, same communication functionality.


If this can run CoreFoundation, then can't anyone with the iOS SDK target this platform with no modifications to the SDK?


Yep, that's how the binaries for it are currently built: with the iPhone SDK. However, higher-level stuff hasn't been developed (e.g. graphics), and the native iOS libraries would need emulation of additional lower-level services (like IOKit for hardware interaction) to run.



Liking the ANSI. Maybe someone here has a few iCE/ACiD contacts laying around to make some serious art for it.


I'm glad you like it.


What is Magenta -- in plain english? And what does binary compatible with iOS 5 mean?


> What is Magenta -- in plain english?

Not sure what could be clearer than:

> Magenta is an implementation of Darwin/BSD on top of the Linux kernel.

> And what does binary compatible with iOS 5 mean?

http://en.wikipedia.org/wiki/Binary_code_compatibility

That Magenta will run programs compiled for iOS5 unmodified (if they don't use APIs which haven't been reimplemented yet of course)


That's not clear at all.

This guy has basically built an OS from scratch that can run on iPhones and supports iPhone apps without having to recompile them. Currently, only the base layer has been built so graphics/sound etc do not work but the goal is to emulate the entire iPhone OS.

It's based on the linux kernel and the Darwin OS which is the open source core of the Mac OS X.


"This guy has basically built an OS from scratch that can run on iPhones and supports iPhone apps without having to recompile them."

No, that's completely wrong. Go read it, re-read it, and then do a Google search for binary-compatible.


Think of it as WINE project for iOS. He's building the libraries that iOS code depends on just like WINE recreated all the Windows DLLs so that Windows programs could run on Linux/OSX



This is worse, its wrong. And IMO, parent couldn't be clearer.


I think this guy is a gal


This makes me wonder how long until there is a project that tries to reimplement the ios libraries, similar to what GNUstep is doing for Cocoa.

http://www.gnustep.org/


It's not quite what you describe, but Ivan Vučica is currently working on a GSoC project to implement a subset of UIKit with parts of Quartz and CoreAnimation in GNUstep.

http://www.google-melange.com/gsoc/project/google/gsoc2012/i...

"This proposal covers implementing a flexible animation API compatible with a certain popular existing desktop and mobile platform, as well as adding APIs compatible with a popular mobile platform. This will allow extremely user-friendly interfaces, as well as allow development or porting of applications that use CoreAnimation or UIKit API on platforms that don't yet support it."


It's a cute tech demo, but:

   * Will it run iPhone OS apps?
   	* No, because I'm not aiming to have compatible high level frameworks. Just think
   	  about how much work is required to have a 100% compatible implementation of UIKit
   	  or Celestial. HOWEVER, the CoreOS part should be 100% (or 99%) compatible. Just not
   	  the higher level OS. If you're just interested in this because it will "run iOS apps"
   	  please go away.
I think the submission title is deceptive -- by "fully binary compatible" the developer means that it runs executables compiled for iOS.


Aw.


Sorry. Cool project, but the headline implied (to me) app compatibility. Your page was much more clear (he took the quote out of context); my beef was with the person who posted it on HN with a deceptive headline.

If it had instead said "full binary compatibility with DARWIN", or iOS 5 Darwin, it would have been clear.

And, by the way, if you hadn't said "go away" to people who wanted app compatibility, I might have been less annoyed by the deception. OF COURSE people want app compatibility. It's the core coolness of the project's potential! And maybe someday you'll get a crowd of people around you that can help achieve that. But telling them to go away isn't going to help.


If the headline meant app compability, it would probably have been written like: "It is fully app compatible with iPhone OS 5.0"


Looking at the headline, my first thought wasn't that I'd be able to run arbitrary iOS apps, but that it was a project with that goal.

To me it was a bait-and-switch, where not only was it not a goal, but Christina is somewhat rude to people who thought it might be a goal (sorry Christina).

"I have this cool tech that could be used to run iOS apps -- and I have no intention of ever making it run iOS apps, because that's a crazy idea, now go away for even thinking about it!"

System emulators (ahem, WINE, but tons of others exist) that do the level of emulation Christina scoffs at have been around for a long time, and it's very much not a crazy idea to start one. By yourself, maybe it is, but given the amount of hype this generated quickly, there would obviously be other people willing to jump on board.


binary compatibillity is a standard and well defined term in programming, and this is it.

It is not about having access to all iOS Cocoa Touch etc libraries, or running iOS apps.


Really? You think this made #1 on the front page because people are excited that you can run ls from Darwin on a non-iPhone ARM7 system that's really running Linux? Which has its own ls?

No, people saw the headline and voted it up thinking that "binary compatibility" with iPhone meant compatibility with iPhone 5.0, not just with Darwin. I bet most didn't even read the article first.

Honestly, if there's not even an eventual goal to run iOS apps, I don't see the point. Linux is there underneath already, and just about anything you could compile for Darwin could be compiled for Linux. What iOS "binaries" exist (other than apps) that would make such an environment useful?

I understand (from the FAQ) that the author doesn't even ATTEMPT to justify the project's existence. That's FINE. Not slighting the developer. Sometimes you climb a mountain Because It's There (TM).

But the excitement around it was generated because of a deception.


Has this place become like zdnet or something like that?


>Really? You think this made #1 on the front page because people are excited that you can run ls from Darwin on a non-iPhone ARM7 system that's really running Linux? Which has its own ls? No, people saw the headline and voted it up thinking that "binary compatibility" with iPhone meant compatibility with iPhone 5.0, not just with Darwin. I bet most didn't even read the article first

Not that I agree with your explanation about why the article got upvotes, even if this was the case, it doesn't matter.

There was ABSOLUTELY no deception. The title uses a well known technical term, and uses it appropriately.

If _some_ people thought the title meant it can also run Cocoa Touch apps, instead of merely be binary compatible with them, that's _their bloody problem_.

This is Hacker News, they're supposed to know this kind of thing.

Should the title have been:

"Magenta - "It is fully binary compatible with iPhone OS 5.0, and by fully binary compatible, I mean it in the actual LITERAL technical way and NOT that iOS libraries are also implemented, which has nothing to do with 'binary compatibility' you newbs!", to avoid "deception"?


Dude, I've done most of the CS sequence in college (majored in cognitive science). I've been a professional programmer for 25 years. I do C/C++ development currently, and once upon a time created entire games in assembly language.

I read HN, Communications of the ACM, and other technical sites and blogs to keep up on the state of the art. I designed an SDK that was used in over a hundred commercial products based entirely on its technical merits, and people have been coming to me asking to pay to license my current (not yet public) SDK, based on the merits of my last one.

I submit that since I was deceived by the statement, that it was deceptive. Period.

And as Camillo pointed out, it's frequently applied to libraries. Correctly, I might add, when those libraries are built into shared objects. The ABI [1] needs to match, for example, for them to have binary compatibility.

A good example of such libraries would be the entire set of iOS libraries that would be implied by saying "binary compatible with iPhone OS 5.0."

See [2] if you don't believe me. "Binary compatibility" refers to the ability to run programs built for an OS, and not just the lowest levels of the OS, but the whole thing.

A clear title would be "Magenta: Binary compatible with Darwin (the iOS 5 kernel)." A better title might have been "Magenta: Run Darwin (iOS) binaries on top of Linux."

[1] https://en.wikipedia.org/wiki/Application_binary_interface

[2] https://en.wikipedia.org/wiki/Binary_code_compatibility


"Binary compatibility" is routinely applied to libraries as well. The point of contention is not the meaning of "binary compatibility", but that of "iPhone OS 5.0".

SomeCallMeTim's assumption that this would include the upper layers of the system is reasonable, especially given that the lower layer has its own name (Darwin) and it was not used. OTOH, given that there's no such thing as "iPhone OS 5" (it's been called iOS since version 4), I'd chalk it up to confusion rather than deception.


The fact that there aren't very many widely available useful programs other than iPhone apps that run on the iPhone goes a long way to implying that it runs iPhone apps. It's not like you can download grep from the app store.


>"Binary compatibility" is routinely applied to libraries as well

Wrongly. Only the lower lever is or is not "binary compatible", basically only how the code is loaded and how functions are called.

All the other stuff (libraries, apps) just take advantage of that, and whether higher level libraries exist or not has no bearing on whether a system is binary compatible with another.

Not only that, but a system can have all the libraries that another has, but still NOT be binary compatible with it.

For example, a simple OS X QT app can be ported to Windows with just a recompile, but the two environments are not binary compatible.

Availability of the same APIs and binary compatibillity are two things are what hackers (as in "Hacker News") call "orthogonal".


What you're trying to describe in the first paragraph is "having the same ABI". But that's not the only context where "binary compatibility" is used. In fact, in the fourth paragraph you are referencing the difference between source compatibility and binary compatibility: but in this case, binary compatibility requires not only a compatible ABI, but also the right set of system calls, libraries and assorted machinery that allows the compiled program to run.


How do you deal with mach/whatever calls inside the darwin userland? Do you just replace them with equivalent linux/bsd calls?


Cool. So what does this mean it can do? Run iPhone OS apps?


No.

I tried to post that running iPhone apps wasn't even a design goal, but got downvoted. [1]

[1] http://news.ycombinator.com/item?id=4087395


Does it use some of the open source Darwin code from Apple?


Yes, but the code is under APSL so I'm not violating any copyrights. I'm fully complying with the APSL license.


very cool


Would it be possible to have a Linux kernel with all it's up-to-the-minute hardware support together with a BSD userland maybe via DarwinPorts?[1]

For users who prefer a BSD userland to the one GNU offers, this would be magnificent.

1. e.g. Debian is doing the reverse: FreeBSD kernel and GNU userland.


Is anyone else theorizing about Apple's response?

whois crna.cc: WhoisGuard protected. WhoisGuard is in L.A; a subpoena and "Christina" could find the ICS logo on her site and a DMCA takedown notice for distributing "tools used to violate copyright."

crna.cc says "Will it run iPhone OS apps? * No". But Apple is already suing Samsung for the Galaxy Tab, Nexus S, and Epic 4G [1] [2], so unless nobody is interested in taking this idea to completion, Apple could be an enormous target for cloners.

To me, it's obvious: unlike hardware, where there are still effective barriers to competition, software like iOS is inherently vulnerable to cloning, copying, and being replaced.

[1] http://arstechnica.com/apple/2011/04/bad-touchwiz-apple-sues...

[2] http://arstechnica.com/apple/2012/05/apple-samsung-walk-away...


This does not violate anyone's copyrights.


I don't have to take a position on that to theorize that Apple can use the DMCA to take it down, citing 17 U.S.C. Sec. 1201 (a). [1] [2]

Nevertheless I think you're right, it doesn't violate anyone's copyrights.

[1] http://chillingeffects.org/anticircumvention/faq.cgi#QID91

[2] http://en.wikipedia.org/wiki/Anti-circumvention#Distribution...


Then why haven't they taken down GNUStep and Chameleon?

Oh right, because APIs are not copyrightable or patentable and it's absolutely meaningless to attempt to assert ownership over such things.

The reason why you're the only one "theorizing" about what Apple will do is because most other people here recognize how patents and copyrights work and why there is a dispute between Apple and Samsung.


I suspect you know far less than you think you do about how patents and copyrights actually work. Otherwise you should realize how amazingly silly and oblivious it is to claim that the attempt to assert ownership over such things as APIs is meaningless. It is wrong (on that we agree), but we have ample evidence that even the attempt is far from meaningless:

http://news.ycombinator.com/item?id=4050490


a) You have a complete misunderstanding of how patents/copyright work and why Apple is suing Samsung.

b) Christina has already mentioned that the GUI frameworks are missing which are non-trivial to implement to say the least.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: