[HN Gopher] Apple XNU: Clutch Scheduler
       ___________________________________________________________________
        
       Apple XNU: Clutch Scheduler
        
       Author : tosh
       Score  : 172 points
       Date   : 2026-02-08 20:38 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | trueno wrote:
       | interesting. id love an eclecticlight breakdown of this. they're
       | one of the few if only that write anything worth reading on apple
       | hardware, i once found a QOS/scheduler insight through those guys
       | when I couldn't get my c/cpp project pinned to the cores I wanted
       | on m-series. https://eclecticlight.co/m1-macs/
        
         | saagarjha wrote:
         | He doesn't read code. Convert it to some log messages and he
         | might explore it.
        
         | KerrAvon wrote:
         | Please take anything this fella writes with several grains of
         | salt.
        
           | denotational wrote:
           | Please could you elaborate?
        
       | cadamsdotcom wrote:
       | > The XNU kernel runs on a variety of platforms
       | 
       | This is fascinating, would love to know where it's used! (Besides
       | macOS)
        
         | electronsoup wrote:
         | Perhaps they mean ISAs
        
           | xphos wrote:
           | Well x86 at one point, arm both the 32 and 64 bit versions. I
           | think they had RISCV support in their source tree at one
           | point but not really at a commercial level. It does cover a
           | lot different levels of hardware though
        
             | wiml wrote:
             | PPC32/64 of course, and for a long time Darwin still
             | contained remnants of its predecessor's support for SPARC,
             | PA-RISC, and m68k.
        
             | kjs3 wrote:
             | Is mc68k or PPC still in there anywhere?
        
               | monocasa wrote:
               | I'm sure there's vestiges of them somewhere, but the
               | underlying support (the architecture specific parts of
               | the mach portion of the kernel) is gone for those archs.
        
               | mghackerlady wrote:
               | I wouldn't be surprised if they keep a minimal Power base
               | maintained behind closed doors. It's how they managed to
               | jump ship to intel so quickly, they never stopped
               | maintaining NeXTSTEPs x86 port
        
               | monocasa wrote:
               | I would honestly be shocked if they were.
               | 
               | They've been making quite a few changes to the virtual
               | memory code over the past decade, and keeping those
               | vestigial arch's around is a pretty big maintenance
               | burden. It'd probably be less work to just add the arch
               | as if it were new when it's needed at this point since
               | the kernel itself is pretty portable.
        
             | userbinator wrote:
             | Which Apple products run arm32 XNU? Their first Apple
             | Silicon CPUs were already arm64.
        
               | dagmx wrote:
               | Well there were still the historical arm32 chips in their
               | iOS devices, but until recently the watches were a cursed
               | arm64_32 (or something like that) which is arm64 with 32
               | bit pointers iirc.
        
               | xphos wrote:
               | I should have just soureced this, They had PowerPC not
               | RISCV in there source tree that was the X factor one. The
               | Arm32 bit variant is closed sourced (leaked before) but
               | was supported until IOS 11. XNU is really old almost 30
               | years! And before XNU there was the MACH kernel and the
               | larger BSD tree it was built on which is an argument that
               | it probably had a initial MIPs release too but I couldn't
               | source the truth on that.
               | 
               | [1] https://en.wikipedia.org/wiki/XNU
        
             | skissane wrote:
             | Does Apple use macOS in servers in its datacentres? Or are
             | they all Linux?
             | 
             | Surely at a minimum they need macOS for CI.
             | 
             | Apple does have one advantage here-they can legally grant
             | themselves permission to run macOS internally on non-Apple
             | hardware, and I don't believe doing so legally obliges them
             | to extend the same allowance to their customers.
             | 
             | But that might give them a reason to keep x86_64 alive for
             | internal use, since that platform (still) gives you more
             | options for server-class hardware than ARM does
        
               | jabwd wrote:
               | They do run Apple Silicon in data centers, so perhaps
               | another custom version of Darwin + their system
               | frameworks. It is hard to tell without some leaks :)
        
               | glhaynes wrote:
               | For Private Cloud Compute: "a new operating system: a
               | hardened subset of the foundations of iOS and macOS
               | tailored to support Large Language Model (LLM) inference
               | workloads while presenting an extremely narrow attack
               | surface." https://security.apple.com/blog/private-cloud-
               | compute/
        
               | therein wrote:
               | They use Ubuntu on x86-64 servers, at least for iCloud.
               | Backends for iCloud, Photos and Backups etc. are written
               | in Java.
        
               | Longhanks wrote:
               | Any sources or more information on that?
        
               | twalla wrote:
               | For the Java bit at least, this aligns with job
               | descriptions I've seen and recruiter outreach I've
               | received (long time ago though, maybe 5 years).
        
               | pjmlp wrote:
               | NeXT added a Java variant to WebObjects and it was for
               | several years the main server side infrastructure, after
               | being acquired by Apple.
               | 
               | Nowadays you can usually still find Java and JVM
               | languages like Clojure (Apple Maps), on Apple's job ads.
               | 
               | How much of it is still Java based, no idea.
               | 
               | I imagine XCode Cloud has nothing to with it for example.
        
               | sillywalk wrote:
               | They moved their password monitoring service from Java to
               | Swift.
               | 
               | https://news.ycombinator.com/item?id=44172166
               | 
               | https://www.swift.org/blog/swift-at-apple-migrating-the-
               | pass...
        
               | therein wrote:
               | Unfortunately I am the source in this case. It is from
               | having worked on them personally. :)
        
           | LoganDark wrote:
           | IIRC, Apple uses 'platform' to refer to an SoC integration.
           | For example, M1, M2 and etc. are separate platforms. M5 in
           | Vision Pro is a separate platform than M5 in MacBook Pro. I
           | believe Apple's XNU does somewhat still support non-Apple
           | Silicon as well though.
        
             | fragmede wrote:
             | Yeah they're was that whole x86 thing thru did for quite a
             | while.
        
               | simonh wrote:
               | Twice, on the basis that NEXT used the same kernel and
               | that ran on 68k and Intel when Apple bought them and
               | later ported it for Power PC. When Steve Jobs went back
               | to Apple, for a long time he ran NEXT on a Thinkpad.
        
               | mghackerlady wrote:
               | NeXTSTEP also ran on SPARC iirc
        
               | pjmlp wrote:
               | OpenSTEP actually.
        
               | mghackerlady wrote:
               | OpenSTEP had SPARC support, yes, but NeXTSTEPs last
               | release had support for m68k, x86, and SPARC. 3.3 had
               | support for PA-RISC
        
         | csb6 wrote:
         | I believe it means Apple's other hardware platforms (phones,
         | tablets, smart TVs, VR headsets, smartwatches)
        
         | LoganDark wrote:
         | It's used in iOS as well. iOS runs in some unexpected places,
         | like for example Studio Display. Also, the Apple Lightning
         | Digital AV Adapter runs Darwin (because RTKit didn't exist
         | yet).
        
           | nxobject wrote:
           | And touchbars too, strangely enough.
        
             | LoganDark wrote:
             | For Intel platforms, the Touch Bar is driven by the trusted
             | coprocessor (T1/T2), but that itself runs bridgeOS which
             | indeed is Darwin/watchOS-based. With Apple Silicon I don't
             | know if bridgeOS is still used; the SEP runs an L4.
        
           | asimovDev wrote:
           | that lightning AV adapter is crazy, iirc it creates an
           | ethernet connection to airplay the display to the device
        
         | internet2000 wrote:
         | All of Apple's platforms.
        
       | almoni wrote:
       | Does this contribute to macOS's suitability for DAW applications
       | or is that more the baked in low-latency audio drivers?
        
         | bigyabai wrote:
         | CoreAudio probably deserves most of the credit, there. Similar
         | ASIO-style solutions like JACK, DirectSound and now Pipewire
         | hit the sub-30ms mark without any big scheduler tweaks.
        
           | lukeh wrote:
           | IOKit was designed to support CoreAudio from the start, cc
           | gvdl.
        
           | KerrAvon wrote:
           | CoreAudio was developed alongside xnu / IOKit for Mac OS X,
           | so it's kind of all of it. Apple had the opportunity to start
           | fresh with a built-in super low-latency audio subsystem at
           | the turn of the century, and they took it.
        
         | dcrazy wrote:
         | Audio actually runs on a dedicated realtime thread. This used
         | to be scheduled differently, but nowadays it might be
         | implemented by the FIXPRI bucket described in this document.
        
       | poige wrote:
       | Darwin had bunch of schedulers except this one: dualq, multiq,
       | etc
       | 
       | In fact here's the one used in Sonoma: sysctl kern.sched -> edge
       | 
       | which seems to be an extension over "clutch":
       | 
       | https://github.com/apple-oss-distributions/xnu/blob/main/osf...
       | 
       | "... Single-cluster, symmetric (SMP) systems can run with just
       | the Clutch policy, but multi-cluster, asymmetric (AMP) systems
       | must further enable the Edge policy extension to Clutch in order
       | to manage scheduling across the multiple CPU clusters. ..."
        
         | dcrazy wrote:
         | Edge is also described in the linked document.
        
       | travisgriggs wrote:
       | Read through much of this. Definitely started feeling like "a
       | picture might be worth 1,000+ words".
        
       ___________________________________________________________________
       (page generated 2026-02-09 23:01 UTC)