Live data from Hacker News

macOS Internals

gist.github.com

61–70 of 146 posts

Re: macOS Internals

#61
post #31

Earlier quoted context omitted.

Yeah, it's all a bunch of programs doing their thing. One draws a GUI, another talks to the network adapter, and so forth.. And when you click a launcher icon, a loader program is started that (more or less) copies a program into RAM and when all is set up, it tells the OS (and the hardware) to run that, too.

Yes, a modern OS is a tangled mess of microservices.

They just don't communicate using JSON. I can see it now; Kernel JSON (aka kjson) support in the Linux kernel to attract Node developers.

Re: macOS Internals

#62
post #59

Earlier quoted context omitted.

If you don't, would recommend listening to ATP, which he's a cohost on. Still a joy to listen to.

Used to listen to it. Stopped because I cannot stand Marco Arment.

I am mostly fine with Marco but he introduces so much fluff and nonsense that I subconsciously avoid listening to ATP.

Re: macOS Internals

#63

macOS probably doesn't get enough love from an OS design perspective. Over the years I've had reasons to work pretty closely with the guts of all of Linux, macOS and Windows and macOS is probably my favourite, design wise, although for some tasks you can't beat the flexibility and feature set of Linux. A few highlights that are lesser known: - XPC/Mach is a pretty reasonable IPC system that avoids the huge complexity…

> Apple did it twice!

Thrice, in fact! 68000 -> PowerPC, PowerPC -> Intel, Intel -> ARM/Apple Silicon

Re: macOS Internals

#64

If this kind of thing interests you: late-2000's/early-2010's Apple had some fantastic documentation, but it's all hidden in the “documentation archive” ( https://developer.apple.com/library/archive/navigation/ ).

Only available to us old timers really, as newer devs on the ecosystem don't even know what to search for.

I don't get it how they messed this up.

Re: macOS Internals

#65

macOS probably doesn't get enough love from an OS design perspective. Over the years I've had reasons to work pretty closely with the guts of all of Linux, macOS and Windows and macOS is probably my favourite, design wise, although for some tasks you can't beat the flexibility and feature set of Linux. A few highlights that are lesser known: - XPC/Mach is a pretty reasonable IPC system that avoids the huge complexity…

[deleted]

Re: macOS Internals

#66
post #4

History is such a great way to learn anything. It’s interesting - like a mystery revealed, but also provides the why - why things are the way they are. I was looking into accounting the other day, and you can go back to the first document that mentioned credit and debit and introduced modern accounting. There are so many topics like this that seem confusing and arbitrary but it all began extremely simply and pragmati…

> The present is the past rolled up for action and the past is the present unrolled for understanding. — A&WJD

> A&WJD

Who's that?

Re: macOS Internals

#67

macOS probably doesn't get enough love from an OS design perspective. Over the years I've had reasons to work pretty closely with the guts of all of Linux, macOS and Windows and macOS is probably my favourite, design wise, although for some tasks you can't beat the flexibility and feature set of Linux. A few highlights that are lesser known: - XPC/Mach is a pretty reasonable IPC system that avoids the huge complexity…

XPC is great.

I don't really understand WinDev in regards to COM.

In abstract, it is a very good OOP ABI, and cross language interop.

In practice, one would expect that given how much they have doubled down on COM for the last 25 years, they would have come up with a development experience that isn't the worse from all IPC systems invent so far in regards to development experience.

.NET requires actually knowing COM at C and C++ level, and as of .NET Core, also write IDL files manually, as they removed type library support from .NET toolchain.

On C++ side, there have been endless reboots, none of them really productive, with exception of C++/CX, killed due politics.

WinDev really loves their bubble.

Regarding GC on OS, many others have tried as well. The problem is having a company willing to throw enough money at the problem and steer developers to adopt the platform no matter what.

Which is actually quite surprising for Android, given Google's track record in killing products before they can establish themselves.

All in all, there is still a lot of NeXTSTEP in macOS.

Re: macOS Internals

#68
post #60

macOS probably doesn't get enough love from an OS design perspective. Over the years I've had reasons to work pretty closely with the guts of all of Linux, macOS and Windows and macOS is probably my favourite, design wise, although for some tasks you can't beat the flexibility and feature set of Linux. A few highlights that are lesser known: - XPC/Mach is a pretty reasonable IPC system that avoids the huge complexity…

I agree with most of what you've said here, except: - Code signing. It's incredibly frustrating as a developer to try and codesign an application to pass gatekeeper, requiring multiple steps with very little information as to what's _actually_ going on or going wrong in the middle of it, including uploading your entire bundle to Apple and waiting an arbitrary amount of time for them to notarize it. > It's very weak t…

Code signing is coming for Win32 as well, as announced at BlueHat IL 2023.

Re: macOS Internals

#70
post #24

The window server is "lightweight" in that it does no screen drawing itself. It is, to use Apple's term, "drawing model agnostic." WindowServer is such a behemoth nowadays, it took me ages to reverse engineer how to make rcmd ( https://lowtechguys.com/rcmd ) control Stage Manager. It’s interesting to see it described as lightweight . I guess every lightweight solution becomes heavy and complex with enough usage.

I love your website's privacy page. Also lightweight.

["rcmd does not collect any personal information."]

That's the complete page. Great policy!

Post reply on HN