Skip to content(if available)orjump to list(if available)

PureDarwin

PureDarwin

28 comments

·July 1, 2022

runjake

This project has been largely inactive for some time.

I can't think of many (any?) reasons to run this. The Darwin part of macOS is the least interesting and least capable part of the operating system.

Edit: I used to spend a lot of time hacking on Darwin code until I realized that Apple wasn’t really into open sourcing it. It was just some check mark to check off on.

grumpyprole

Is APFS part of Darwin? If not, then that would support your point.

cpach

Neat project. Only two commits for 2022 though: https://github.com/PureDarwin/PureDarwin/commits/main

naikrovek

Yeah, I wish this was kept up to date. I can't imagine it had a large user base, though, and I'm sure it was always a labor of love. Labors of love can die quick if there isn't interest or if someone expresses distaste in the product of the effort.

smm11

I thought this died about ten years ago.

hnlmorg

That was OpenDarwin. This is PureDarwin.

DavidPiper

Some previous threads:

2013: https://news.ycombinator.com/item?id=6271241

2016: https://news.ycombinator.com/item?id=11804599

2019: https://news.ycombinator.com/item?id=21644005

2020: https://news.ycombinator.com/item?id=23799331

I went down this rabbit hole for a while at University. I might come back to it one day.

Lammy

Their `libcoreservices` has been useful to me for system-directory discovery on post-macOS-10.9 systems without having to install the whole heavyweight "macOS SDK" behind a Developer login wall: https://github.com/PureDarwin/libcoreservices

These were available in Apple's open-source Libc until (afaict) Libc versions 9xx.x.x, corresponding to Mac OS X 10.9.x: https://opensource.apple.com/source/Libc/Libc-997.90.3/inclu...

They were also available in the Mac OS X / macOS SDK package from as far back as I could find (10.1.x) through macOS 10.11.

- https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10...

- https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10...

- https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10...

macOS 10.12 introduced the new equivalent `sysdir` and deprecated `NSSystemDirectories`. These were only ever available as part of the SDK, not in Libc.

- https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10...

- https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10...

- https://keith.github.io/xcode-man-pages/sysdir.3.html

runlevel1

Ah, so that's how/why the directories in `/var/folders` are named the way they are in macOS.[^1] I've wondered that for a while.

[1]: https://github.com/PureDarwin/libcoreservices/blob/1b151faa4...

null

[deleted]

TheAceOfHearts

What would you use this for? In what kind of problem or situation would you find yourself for which this tool is the solution?

prmoustache

Sometimes you find bugs more eaaily by compiling same software on different OS. Diversity is not a bad thing.

Also while the asahi project made great work I could have seen a good incentive by having a well supported open source OS that run on new Mac Arm series and doesn't need reverse engineering every time Apple release a new proc. That is me hoping Apple would have also released the drivers as open source drivers but I am probably just dreaming/being naive.

nix23

>you find yourself for which this tool is the solution

This "tool" is called a operating-system, it can be used in the situation when you have hardware but no software, the finished solution is hardware with an installed OS, plus additional software for the meatball in front of the screen.

2bitencryption

Maybe a dumb question, but what's in it for Apple for open-sourcing Darwin?

Is it purely from some license restriction of some software they use?

The next best reason is normally something like "open source code tends to proliferate", like openSSH, Linux, git, etc. But Darwin does not seem to be thriving in this way - from the page, it seems to be a small hobbiest community, and it's not like Apple needs to depend upon the community for their core OS to thrive.

I'm definitely happy Apple releases Darwin as open source, so don't interpret this as me criticizing that. I'm just trying to understand their motive.

Lammy

It is — or at least was, before LLVM/Clang existed and before Apple's GPLv3 Eternal September — a good way for them to give away something with no actual strategic value as a preemptive ideological rebuttal against their own use of Free Software in their otherwise-proprietary products.

humanwhosits

Perhaps it's useful for 3rd parties trying to develop device drivers. Can read the code when they're wondering why something is the way it is

yjftsjthsd-h

> Is it purely from some license restriction of some software they use?

Pretty sure most of it is under permissive licenses (with some exceptions like GPLv2 BASH), so I don't think that's it.

dTal

> I'm just trying to understand their motive.

> I'm definitely happy Apple releases Darwin as open source

You answered your own question :)

freedomben

Is this an official Apple project, and/or is it being run by Apple engineers? It's hard to ascertain the relationship here. I would think it was totally separate but comments have sounded like it's a formal relationship that is known.

sharikous

Apple used to release a small open source OS called Darwin, which was the basis of macOS (xnu kernel + libraries and runtime), without a GUI.

With time Apple started to release less and less. A smaller part of the kernel and a smaller part of the runtime. Already a long time ago there was no "Darwin" to speak about, only a barely compilable xnu kernel and some runtimes, sometimes not compilable without additional components only Apple has.

This project tries to fill the holes and create an open source OS that uses what Apple still gives us in terms of source code. I don't think it's run by Apple engineers.

Actually, seeing the low activity and the fact they are working on old versions of the code, I think there is no real activity to speak about.

hnlmorg

There’s no formal relationship. This is just using the open source base of macOS. Basically the UNIX part.

It is interesting from a nerdy perspective but it’s usefulness is limited since you can’t actually run any of macOS’s desktop software. However it does (or at least did back in the earlier days of macOS) provide a counter argument to the backlash Apple received about their use of open source code in a proprietary OS. But there’s a multitude of perspectives on this matter, each just as valid as the last.

mistrial9

>But there’s a multitude of perspectives on this matter, each just as valid as the last.

this is called in some circumstances "universalism" .. since this is software license law, commerce and legal ethics, there is no application for "universalism" here other than an elaborate way to avoid thinking

PraetorianGourd

> other than an elaborate way to avoid thinking

Eh, not really. Legal arguments tend to be _valid_ but that doesn't make them _right_ or how we _ought_ to live. Valid defines ways we _can_ live. They aren't against natural laws, self-contradictory etc. Taking something under MIT, forking it, adding a feature and then selling it is _valid_ but that isn't how an actor _ought_ behave.

Tepix

What are the strengths and weaknesses of Darwin?

Maursault

Among Darwin's strengths are that it is BSD with a Mach kernel, has a layered architecture, object-based programming interface and all advanced modern networking features, all contributing to Darwin's compatibility, performance, efficiency and stability. FreeBSD contributes a large portion of the code and the industry standards support comes along with it.

It should be noted that when first released, Apple was still only producing PowerPC, but Darwin also ran on x86. Allegedly, Apple had an internal unreleased early version of Rhapsody, but that ran on x86, codenamed Marklar. The way people first started never shutting up about Linux had to do with utilizing old and otherwise obsolete hardware as a light web server or home media server. In the early 2000's, in theory, same as Linux was, Darwin could be run on inexpensive x86 to be a streaming server using Darwin Streaming Server software, so whatever the value of that might be.

The weakness of Darwin is incompleteness and near total lack of community support (it does include the manual).

raverbashing

So, how behind is Darwin from the current latest Apple OS releases?

How behind is Apple OS from the latest FreeBSD releases?

Samyak1

Like the idea