Hacker News new | past | comments | ask | show | jobs | submit login
PureDarwin – Darwin-based open source OS (github.com/puredarwin)
189 points by xvilka on July 11, 2020 | hide | past | favorite | 96 comments



From a pedantic point of view, it's not open source - the XNU license has an additional restriction on top of the Apple Public Source License:

"The rights granted to you under the License may not be used to create, or enable the creation or redistribution of, unlawful or unlicensed copies of an Apple operating system, or to circumvent, violate, or enable the circumvention or violation of, any terms of an Apple operating system software license agreement."

which is a violation of term 7 of the open source definition.


If we're being pedantic, the Open Source Definition can't actually define what is and isn't open source, they can only say what is allowed their trademark certification. It's like if a there was a food label "natural" that got to put an N on their package if they met some conditions. They can tell you what is allowed to have the trademark on it, but they can't tell you what natural is because they're more of a brand than a dictionary.

In my opinion, which is not based on promoting open-source or protecting a brand, open-source means literally the source code is open to anyone to view. Open-source is like a book that can be opened to look inside. Most of the open source initiatives have little to do with whether or not the source code is open and everything to do with what they want to promote in open-source. Their criteria doesn't even make the free as freedom versus free as in beer distinction.

In short, the Open Source Definition, despite it's name, does not actually define open source.


You're right that the Open Source Definition doesn't define the term "open source" - usage does. But common usage of "open source" still means "something that meets the open source definition", not "I can see the source code". There are some people who use a different definition, but it's a long way from being well accepted.


> You're right that the Open Source Definition doesn't define the term "open source" - usage does. But common usage of "open source" still means "something that meets the open source definition", not "I can see the source code". There are some people who use a different definition, but it's a long way from being well accepted.

True, it'd be interesting if someone did some sort of study on that though, and get some real numbers. I have the impression that people know less and less what the open source definition even is, so maybe this has started to shift in the last few years? I have a feeling, to younger developers, open source means often (in practice): I can see the code, and I can use it without having to pay...


I think you're right that most folks don't have as detailed a definition in mind as the fairly verbose open source definition.

But I think most folks have in mind something more permissive than just being able to /view/ the source. In particular, being able to modify, run, and redistribute are also essential (the fsf's four freedoms get closer to the heart of the matter).

I think "you can't use it to do X" disqualifies the license, though in this case I'm not sure how much I care, since it's prohibiting things that are illegal where I am anyway (maybe if your country doesn't have a dmca equivalent it might matter).


The lawyers know what it means and they are the ones that matter in this context.


People show up with their superficially plausible arguments like this one to try and retcon what "open source" means, but there are a few pesky problems.

> Open-source is like a book that can be opened to look inside.

Except every single book that has ever existed also has that property, and you're definitely not calling them "open source". If you did tell someone that a book is "open source" they'd understand you to be saying something else entirely other than that you can look at it.

Sometimes prescriptivism has its merits. The case of "open source" is one of them.


> People show up with their superficially plausible arguments like this one to try and retcon what "open source" means, but there are a few pesky problems.

It's the OSI who are trying to retcon what open source means!

Why do they think they have the right to tell anyone what 'open source' means? They should have used a new term, not taken an existing one.


> They should have used a new term, not taken an existing one.

I think you're trolling, yes? First read: "what a crazy comment", second read: "hmm, might be trolling", third read: "okay, yeah, I get it now… I think". This is a dangerous game.


> I think you're trolling, yes?

No, I'm not trolling.

I don't think the OSI should have taken an existing generic industry term and tried to trademark it and give it a new definition. I think that was a real ethical mistake and it was also a strategic mistake.

I think it would have been better for everyone if they called it OpenFoo (TM) software, or something like that that they came up with themselves and they could legally protect.

Now they're reduced to just trying to complain when people don't look at things their way.


“open source” was not a term, much less an industry term, before the OSI founders came up with it.

Source: I was in the industry and Free Software movement at the time.

More background: https://opensource.com/article/18/2/coining-term-open-source...


> “open source” was not a term, much less an industry term, before the OSI founders came up with it

I'm afraid this is not true.

The article you've linked to claims to have coined 'open source' in reference to software in 1998.

But for example here's one earlier written reference from 1996 http://www.xent.com/FoRK-archive/fall96/0269.html.

Here's a more general discussion about the false claim of the OSI to have coined it http://hyperlogos.org/blog/drink/term-Open-Source.

Another fact is that the USPTO rejected the OSI's attempt to trademark, because even they realised it was a simple descriptive term.


Wow! At first I thought you had found a place where these two words occurred after each other but it seems to have been used a few times I must admit I have been wrong.

It is so nice when someone takes the care to actually provide evidence for their claims.

That said, today I would still say OSIs definition has won and if anyone presented me with code and claimed it was open source and it didn't match OSIs standard then I personally would be disappointed.

But I probably won't claim anymore that they are stealing our term.


In 1985 "Computer Chronicles" on PBS said "open source code" while talking about Bill Joy and his new startup.

https://twitter.com/OMGerdts/status/1245905516913623040?s=20



Unfortunately most of these seems to be unrelated to software licensing, but I learned a new hack (before:) and also I got another confirmation that Google search results are finally starting to improve after 10 years...!


[flagged]


> (open (source code model)) ≠ (open source)

But that's my point. It already had a different meaning. And I don't think your parsing stands up to what the record says. People who were in the community at the time will tell you for example:

> I joined Caldera in November of 1995, and we certainly used "open source" broadly at that time.

So why didn't they pick something that nobody was using at all? Something they could trademark?

> Insanely dishonest way to characterize this.

Can you explain why you think that? My understanding, from their own documents, is that 'there is virtually no chance that the U.S. Patent and Trademark Office would register the mark "open source"; the mark is too descriptive.'

'Open source' is a simple descriptive phrase - it's not something the OSI own, or coined, or have any right to lecture people on.


> 'Open source' is a simple descriptive phrase - it's not something the OSI own, or coined, or have any right to lecture people on.

You're sort of pulling back here—defending it in a different context than the way it was used in the place you first wrote it.

Do you want to take this private? I'll email you. I've been in enough HN flamewars over the last 24 hours, and these types of threads where a few people dominate aren't good and might as well be private, anyway.


I don't believe I am pulling back.

My claims are:

* 'open source' was an existing industry term before 1998, with a broadly similar meaning - not exactly the same and that's kind of the point - why pick an existing term and try to give it a new meaning and then claim you invented it?

* 'open source' is a plainly descriptive term, so much so that the even the USPTO told them this and that them trying to trademark it was a nonsense - it's like they tried to claim they invented 'sliced bread' and then wanted to trademark it - it's just an adjective and a noun

With both of these things, I think it's really silly of them to try to tell people that things aren't open source because they don't meet their own pet definition (and they do that - they have come into HN threads and told people off).

You can email me if you want! All my details are in my profile. But it's not my job to convince anyone of anything. I just know why I wouldn't let the OSI lecture me, and I'd recommend other people check the history as well.


Okay, in that case...

> They should have used a new term, not taken an existing one.

False premise. They didn't take "an existing generic industry term" and "give it a new definition". They took an existing definition[1] and tried coming up with a catchy new turn of phrase that they hoped would be adopted in lieu of "free software", and they were wildly successful. So successful that people convince themselves that "open source" must have already been a thing when Christine Peterson suggested it at the meeting where they settled on using it.

1. https://en.wikipedia.org/wiki/Debian_Free_Software_Guideline...


> So successful that people convince themselves that "open source" must have already been a thing when Christine Peterson suggested it at the meeting where they settled on using it.

No it was already a thing!

She claimed to have coined it in 1998.

It was already in use at least as early as 1996.

http://www.xent.com/FoRK-archive/fall96/0269.html


I don't have any great insight that's not in the public record, but from reading that announcement and the other article you linked, observations:

- There are a bunch of references to other folks using the term, all of which are big names I recognize as being pioneers in open source consistent with the OSI's notion of it.

- The mailing list posts enumerate a bunch of advantages that would not follow from mere availability of source code without additional rights consistent with the OSI's general notion.

The sense I get from this is that the term probably was in use already, but it pretty much meant what the OSI says it does, not just "the source is out there."


> open-source means literally the source code is open to anyone to view

You mean the term "source available", which has been a well-defined term for years as well.


I think the term "source available" is somewhat ambiguous, in it can potentially refer to a few different arrangements:

1) The source is freely available to anyone to view, but rights to compile/modify/redistribute/etc are heavily restricted

2) Proprietary software you have to purchase, but it comes with the full source code

3) Proprietary software sold in binary form, but where the full source code can be licensed for an additional fee

4) Proprietary software sold in binary form, but where customers can acquire source code access subject to heavy restrictions

As an example of option (4) – there was a period in the past when IBM used to allow customers to order the source code to some of its mainframe software products (including the MVS operating system), but it was only shipped on microfiche. As such customers could view the source code but not compile or modify it. Additionally, much of that software was written in a proprietary dialect of PL/I known as PL/S (or later versions are called PL/X), for which IBM mostly refused to release the compiler – so even if you transcribed the microfiche into machine readable format, you didn't have a compiler with. (IBM has occasionally licensed the PL/S compiler to ISVs and other partners; some clone mainframe vendors, such as Fujitsu, apparently built compilers for PL/S by extending PL/I compilers; RAND Corporation did something similar in the 1980s, and briefly distributed the result, but got in trouble with IBM's lawyers and had to stop.)

XNU is closest to sense (1), but rather than being "heavily restricted", it is almost Open Source Definition compliant – there is an additional restriction which violates the Open Source Definition, but for many users that additional restriction will have no practical relevance. It is certainly a long way from a "reference license" which lets you read the source code but not compile or modify it or distribute your changes.


None of this conflicts with what the parent said. The term isn't ambiguous any more than the word "source" is ambiguous because it doesn't specify a language. It means exactly what both you and the parent said. It unambiguously defines a class rather than an instance, and disambiguates vs open source, and all these example class members you provided fall within the idea the parent expressed.


I think the point c3534l was making is that open source should be considered a generic term and should not have its meaning conflated with Open Source™ which is just one group with one opinion.

And I agree, at least in part. I think the agonising over a precise definition of open source is as futile as the attempts to distinguish "hacker" from "cracker" twenty years ago. At the same time I also agree that proprietary software that has available source but no rights to do anything with it is most definitely not open source by any rational definition.

So whether or not OpenDarwin is Open Source™, it's still open source.


I fully understood his point and at the same time disagree with it - "open source" should not be considered a generic term, and the reasons are purely practical. OSI has taken this term two decades ago and coined its widely known meaning, where "open source" means "compliant with the OSI open source definition", just as GNU did with "free" or "libre" software.

The terms "open source" and "free software" have become ubiquitous in the programming world and widespread even in popular culture and redefining them brings completely no benefit - not even cultural ones, since the terms "open" or "free" or "libre" software do not have background associated with racism or sexism, unlike some of the recent nomenclature debates.

And this "one group with one opinion" that you are speaking of has been one of the most powerful software groups in the world with a lot of influence on how the programming world is shaped and what software you, your family, your employers, your friends and your enemies use in your daily life, so your argument about it being "one group with one opinion" holds as much sense to me as Microsoft being "just one operating system vendor with one opinion" in a discussion about operating systems.


I simply disagree that the group which coins a term gets to control its usage or its colloquial definition. That's not a reflection of my preference, it's just my own observation of reality. In reality, words mean whatever the recipient thinks it means. In practice, that means the assumptions of the median person overrule any formal definition.


They didn't write a law for the purpose of oppression and human farming. They presented a suggestion for everyone's benefit and sanity, and everyone adopted it voluntarily because it was beneficial and sane.

This argument is neither.


I'm not arguing for benefits or sanity. I'm not claiming it's a good outcome, or that it's an outcome I prefer. Far from it—I wish it was as you describe. I wish we didn't have to keep inventing new words as existing ones get corrupted by improper use.


> I think the point c3534l was making is that open source should be considered a generic term and should not have its meaning conflated with Open Source™ which is just one group with one opinion.

They're both "just one group with one opinion." The difference is that one is definition widely accepted as a term of art in software development and the other is not.


Not to mention, the capital-O capital-S group is the one who coined the phrase and pushed for its adoption in the first place.


It’s not quite like natural, natural is a word that would predate any comoany trying to take it for their own ends. “Open Source” as a terminology was coined in 1998 by a group of people, and the OSI was formed by one of those people that same year to help define what the term would mean and encourage industry adoption. An entity that has existed as long as the term has and helped shape it’s perception to programmers is a bit different than an entity coopting a term that had prior use.

Regardless, I’ve always understood Open Source to also mean open to use, extension, and repackaging myself. The exact definition indeed doesn’t have to be owned by the OSI, but their guideline are a pretty good approximation of what I would expect code to do to be truly open source.


Even if you ignore the subthread of whether or not the OSI coined the term "open source" or if it was previously used, I think it's valid to standardize terms.

Imagine everyone had browsers with slightly different ideas of what HTML was, and then the W3C comes along and says "we're going to standardize on HTML meaning this", and then, 20 years later, I think it's valid to say "this isn't valid HTML" to mean "this HTML doesn't conform to the W3C's standard".

Or, to pick a different example, just because the word "planet" has been used for thousands of years with varying definitions doesn't mean that it's wrong for me to say "Pluto isn't a planet" rather than "Pluto isn't a planet™ as defined by the IAU".

I think if a word is previously vague and unclear, and then a standards body steps in and defines the edge cases, and everyone uses their definition of the word for decades, I think that's good enough to use that definition for everyone going forward. You might have had an argument 20 years ago when the word was newly standardized, but it's too late now; just pick a new word like "source available".


Open source has a common and well understood definition. Your definition and opinion won't change that. You may however cause confusion if you misuse the term.


Before it was repurposed, it used to mean that software packages for developers also had the library source available for debugging purposes.


Can you provide any historical primary sources that show that it was widely used like this before it gained it's current meaning over 20 years ago?


My brain I guess, not going to search now for whatever issues from DrDobbs, The C User's Journal, The C/C++ User's Journal, PC Techniques, Computer Shopper, Crash, Your Sinclair, Amiga Format, Input, Byte, C++ Report, MSJ Systems Journal might have been digitalized and in what page the magic words appear.


Your brain only really counts if you have some records of you using the term like this and people understanding you as such over 20 years ago. Otherwise there should be some published materials available to back up your claim. This is a list of the names of magazines and doesn't really help much. Can you provide some specific references of this usage?

Either way it doesn't really matter. The only ones that really care about licenses are legal and they know what open source means.


Yes, advertising, code listings and developer product reviews in those magazines, but I guess now facts only count if they are pasted into some random Website.

Which by the way, plenty of fellow HNers have provided in multiple answers using other sources.


I'm not asking for links (although that is nice). I am asking for an actual reference rather than a list of magazine titles. References look something like: Name of publication, date, volume or issue number, page number. E.g. something like Computer Magazine, Issue 10, 1995, page 15. You have claimed widespread usage so several references will be needed to establish that.


Yeah, because you will just go to the shop buy that Computer Magazine, Issue 10, 1995.

Do you realize the stupidity of asking for such kind of proof, when everyone else on this thread old enough to be working back then has made similar statements?

So now I need to go to the local library and dig through incomplete archives of 70 and 80's programming magazines to make a random dude happy on Internet?!?

I have more productive stuff to do with my time, and to be honest even that Computer Magazine, Issue 10, 1995, page 15 facsmile wouldn't change your mind anyway.


Hmm, no. I also remember using the term open source before 1998, but if you make that claim but refuse to provide evidence, then your claim can be dismissed without evidence. The burden of proof is on the person making the claim. This doesn't mean your claim isn't true, it just means there's no reason for the person you're talking with to believe you.

  When you resort to,"I have more productive stuff to do with my time" you need to realize you are wasting their time just as much.  When asked for evidence you don't have, the appropriate response is simply, "yeah, I can't support my claim, so I guess it's just an anicdote." End of discussion.


Believe in whatever rocks your world and live an happy life.


Why is it at all interesting that you define open as merely viewable, while other people define open as also being usable? I see no pedantic correction here, merely an opinion on what one individual personally cares about. IE, you think visibilty is the important part. OK good for you. So what? That does not define open or correct any other definition of open.


It’s not open if it is read only. It’s only open if you can read and modify the source.


That clause is really weird. IANAL (maybe it has specific meaning in law), but why is it even included as a clause rather than some comment / reminder saying that the licence doesn't make otherwise illegal things legal?

In practice nothing would change if they skipped it, right?


Not all jurisdictions forbid what that clause forbids, and even in some jurisdictions where it would normally be forbidden there may be circumstances under which you're permitted to do so, so it's definitely intended to forbid you from doing things that would otherwise be legal.


I'm also NAL, but circumvention is not always illegal, nor is running a legally purchased copy of OS X on non-apple hardware (or at least that was true when OS X was distributed on physical media, which is also when that clause was written).


It is likely in relation to running macOS on non apple hardware, as the Darwin kernel is often distributed with hackintosh tools. This would give them a reason to send a cease and desist otherwise legal software.

edit: wording


"Open Source" versus FOSS


For the first few years of the 2000's, Apple actually supported a similar project called OpenDarwin. It was basically the open source components of MacOS. I ran it for a bit, but there wasn't much community support for it.

https://web.archive.org/web/20060804104416/http://opendarwin...

https://en.wikipedia.org/wiki/Darwin_(operating_system)#Open...


That's too bad that community support was lacking. Things might be different now?


Is there any reason for this submission at this time? This project hast been dormant/stagnant for years.

Note the "stay tuned" message for a working bootabable image from Jan 2018: https://github.com/PureDarwin/PureDarwin/issues/35


Jan 2020, not 2018. And commit history indicates quite a bit of activity.


Ok, I read that particular thread a bit more carefully:

2017-11-21: mcandre: "Release a working ISO ASAP"

2018-06-08: csekel: "We will be releasing ISO shortly. Thanks"

2020-01-18: piranna: "Any updates on this? It was one and a half years since it was anounced the ISO "soon"..."

2020-01-18: hideout: "yes we are on this .... stay tuned!"

(hideout's last public commit to any darwin related repo dates from 2019-10-14)

I was just surprised to see this on the front page today, since it doesn't look like anything substantial has changed. Maybe something I missed?


HN submissions are often “I found out about this cool thing today and want to share it with other devs”. Whether it appears on the front page entirely depends on whether enough people find it interesting (subject to resubmission rules, of course).


The simplicity is amazing, and why i always come back. Links do not always need to be new. There are good things, which are not new.

Like this one!


thanks for your nice comment syspec


FTFY:

> Whether it stays on the front page for a long time entirely depends on whether enough people find it interesting.

Most of the times, as soon as you submit something, it goes on the frontpage. It may quickly go down, yes.


em500 Yes we have an almost bootable image of PD 19.3 based on the latest XNU kernel which we PD are following the number to kernel version releases 17.4..18.2..etc ISO may not be possible at this moment. We are working on qemu/vmware image with a build toolchain set. We could use more developers for sure right now only myself and wjkosx are the active ones currently.


hello everyone first thank you for your interest in our project we will be more active soon everyone had a lot to do stay tuned


Because I answered to a comment[1] about Linux on top of Mach microkernel, and then searched HN - no particular mentions for a while. This is why I decided to submit it :)

[1] https://news.ycombinator.com/item?id=23796503


That is jan 18th, of this year.


launchd is cancer - is like systemd but designed for no user to use it


NextBSD ("FreeBSD X") operates in a similar space and was also looking promising, but it looks like development stopped.

In that approach, the BSD kernel was extended to support some Mach syscalls and libdispatch, launchd, and a few other userspace macOS-isms stuck around too.

Slides + Video: https://www.reddit.com/r/freebsd/comments/3iikry/slides_next...

There was also an effort some time ago to get opensource Darwin compiled and booted on ARM development boards:

https://github.com/darwin-on-arm


Can someone explain what the motivation is behind running Darwin?


As with many (maybe even most) computing projects, for the hell of it.[1]

[1]: https://github.com/PureDarwin/PureDarwin/wiki/About#why-spen...


Amen


It seems that they do it for fun and giggles, but all the users are interested in, ultimately, is "Can it run macOS software? No? Stop wasting my time."


Well it can run macports!


For fun and research


Can we assume that the 'research' part will be of particular value to Apple, or am I wrong here?


I don't think Apple gets much from a few hobbyists having fun with some scraps of their code.


Continuous integration servers that aren't run on genuine Apple hardware?


One can hope this will become eventually possible, but with the pace of PureDarwin as it is, I doubt it will before Apple migrates to ARM with custom instruction set additions.


Wouldn't you have to reverse-engineer and implement a LOT of closed-source APIs and libraries to get a full iOS toolchain going?


There is a project [1][2] to emulate iOS in QEMU. You can find more details about installation process and research itself in their articles [3][4].

[1] https://github.com/alephsecurity/xnu-qemu-arm64

[2] https://github.com/alephsecurity/xnu-qemu-arm64-tools

[3] https://alephsecurity.com/2019/06/17/xnu-qemu-arm64-1/

[4] https://alephsecurity.com/2019/06/25/xnu-qemu-arm64-2/


Perhaps if you package your code for MacPorts.


Using this for that would probably break terms of service just as much as a hackintosh would.


Depends the country you are in, a lot of countries have interoperability exceptions, so while a hackintosh might not be legal, something like this would.


I'm struggling to understand HN these days. This is being downvoted, and IMHO is the key question to ask the folk putting in the effort.

Would love a downvoter to give a hint...


The biggest factor is randomness, which can't be understood in that way. People frequently imagine stories about why HN is "doing" this or that, but that's a category error, since HN is a statistical cloud. Randomness plus cognitive bias equals narrative, etc.

You'll notice that your GP comment is now upvoted while this one is downvoted. That's common, because unfairly downvoted comments frequently get corrective upvotes from users who come along and see that the comment is fine: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que.... Meanwhile, complaints like this one break the site guidelines (see https://news.ycombinator.com/newsguidelines.html at the bottom!) and usually end up being false as well.


just because it doesn't suit you it doesn't have to be done badly a little understanding for other projects thank you lg from berlin


Not a downvoter but you have reached into one of those unwritten rules:

You shall not criticize Apple, Rust and Elon Musk.

HN is super cool for any other topics, except when there's some sort of tech cult involved in it.


There's plenty of criticism of those topics. I think you're running into the notice-dislike bias: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que.... Your comment here mostly says how you feel about them.

This comment breaks the site guideline against going on about downvotes, by the way—in spirit if not in letter. Please don't post like this; it's off topic and boring.


Sorry @dang. Your right.

This is the best place to discuss about those same topics, BTW, even when from my perspective, some of them look to have a little more bias than others.


Appreciated! I think we all have these perceptions.


Would anyone actually like to help work on the project? I am one of the Dev's actively working on it. We could use the help, project was slow as I was working on my degree. Reply here and I will contact anyone who would like to join our efforts in making a difference on the Project.



Can it run software packaged for macOS ?


The graphical user interface components of macOS are proprietary software, as are a bunch of other libraries included in macOS that software packaged for macOS is likely to use.

So if this was a goal of PureDarwin then they’d have a lot of work ahead of them in order to implement those APIs.

This wiki page on the repository seems to indicate that they are not intending to do that:

https://github.com/PureDarwin/PureDarwin/wiki/Graphics

> While Darwin is the operating system underlying Mac OS X, the graphical environments of PureDarwin and Mac OS X are very different. This is because most graphical aspects of Mac OS X (especially Quartz and Aqua) are proprietary, closed-source software and are not available for PureDarwin. Hence, PureDarwin uses a more traditional UNIX-like graphics system (X server), waiting a better alternative.


https://en.m.wikipedia.org/wiki/GNUstep may help with some of this, but it is hard to keep up with a moving target.


I would be interested to know if it might be possible to eventually install XCode Command Line Tools or similar, and then use it to sign DMG packages?

At the moment having to keep a Mac solely for the purposes of signing software packages is very frustrating.


clear! depends on which





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

Search: