Verzögerungen by Design: Warum macOS Catalina so langsam ist

macOS 10.15 soll für manche Nutzer deutlich an Geschwindigkeit verloren haben. Von Wartezeiten bis zu einer Sekunde bei bestimmten Systemoperationen und bis zu 30 Sekunden bei App-Starts ist die Rede. Nachdem zuerst die bekannten Entwickler und Autoren Marco Arment und John Siracusa in ihrem ATP-Podcast auf das Problem aufmerksam gemacht hatten, nahm sich Textmate-Entwickler Allan Odgaard das Problem vor.
Einfache Workarounds funktionieren, sind aber zu radikal
Odgaard konnte die Probleme reproduzieren und einige Workarounds vorschlagen. Nach seinen Erkenntnisses sind macOS-Systemfunktionen für die Verzögerungen verantwortlich. Genauer handelt es sich dabei um solche Systemfunktionen, die eine Internetverbindung erfordern.
Entsprechend besteht laut Odgaard der einfachste Workaround für die Beseitigung der Performanceprobleme darin, die Internetverbindung des jeweiligen Geräts zu kappen. Danach lief sein System absolut rund.
Die zweite Methode besteht in der Deaktivierung der Systemintegritätsprüfung (SIP, System Integrity Protection), auch als Rootless bezeichnet. Die mit OS X 10.11 El Capitan eingeführte SIP sorgt dafür, dass Programme und Anwender selbst mit Root-Rechten keine System-Ordner von macOS mehr verändern können.
SIP beschränkt auch Zugriffe auf laufende Prozesse, was unter anderem Debugging-Funktionen einschränkt. Deshalb funktionieren einige Tools, die in das System eingreifen, wie etwa der macOS-eigene Terminal-Befehl opensnoop nur ohne SIP-Schutz. Nach der Abschaltung der SIP stellte Odgaard jedenfalls eine erhebliche Beschleunigung seines Systems fest. Alle Verzögerungen konnte er auf diese Weise jedoch nicht beseitigen.
Probleme mit Apples Beglaubigungsfunktion
Bei weiteren Untersuchungen fand Odgaard dann Hinweise auf einen Zusammenhang mit Apples neuer Beglaubigungsfunktion. Die stark verschärften Voraussetzungen für eine Beglaubigung einer außerhalb des Mac-App-Stores vertriebenen App waren von Apple ursprünglich bereits im letzten Jahr eingeführt worden. Nachdem es etlichen Entwicklern nicht schnell genug gelungen war, den neuen Bedingungen gerecht zu werden, hatte Apple die Frist für die Einhaltung derselben noch mal auf Januar 2020 verlängert.
Noch bis Januar 2020 wurden demnach Apps von Apple beglaubigt, denen die Hardened-Runtime-Fähigkeit oder die Developer-ID-Signatur fehlte. Auch sichere Timestamps für die Code-Signing-Signatur waren zunächst keine Pflicht. Zudem durften Entwickler ein älteres SDK verwenden und das Sandbox-Entitlement com.apple.security.get-task-allow
konnte einen Wert haben, „der allen Variationen von true“ entspricht.
Die Beglaubigung einer App erfolge laut Apple schnell und automatisiert über das Web. An dem Begriff der Schnelligkeit hat Odgaard indes seine Zweifel. Bis zu sieben Sekunden musste er auf eine Autorisierung beim Aufruf einer neuen ausführbaren Datei warten – unerheblich, ob der Start via Finder oder über ein Shell-Script stattfand. Beim regulären App-Start stellte Odgaard Verzögerungen zwischen fünf und 30 Sekunden fest.
Für Entwickler sieht Odgaard ein besonderes Problem darin, dass im Development-Zyklus immer wieder neue Versionen einer App oder Komponente getestet werden müssen, was dann jeweils zu den beschriebenen Verzögerungen führen würde. Apple habe auf die Fehlerdokumentation ablehnend geantwortet und erklärt, das Verhalten sei so beabsichtigt („by design“).
Probleme beim Zugriff auf Systemordner und den Schlüsselbund
Damit nicht genug. Auch der Zugriff auf Systemordner mit Nutzerrechtebeschränkung erfolge verzögert, so Odgaard. Dabei reiche bereits die Anforderung, den Namen oder das Icon des jeweiligen Ordners anzuzeigen, um Apples Verifikationsprozess anzustoßen, der über den Sandbox-Prozess des Systems laufe und rund 150 Millisekunden pro Request brauche. Zwar werde der Request in einen Cache geschrieben. Der jedoch werde bei jedem Neustart gelöscht. Auch dieser Fehler sei Apple bereits bekannt.
Da die Problematik mit der Mac-Sicherheit verbunden zu sein scheint, ist es nur konsequent, dass Odgaard ebenso Verzögerungen feststellte, wenn Apps auf den Schlüsselbund, also die zentrale Passwortverwaltung des macOS, zugreifen wollten.
Diskussion um Odgaards Erkenntnisse entbrannt
Unter Odgaards Beitrag und auf Hacker News, sowie in Developer-Blogs hat sich eine differenzierte Diskussion entwickelt. Dabei überwiegen jene, die die Probleme auf die ein oder andere Weise bestätigen können, gegen jene, die behaupten, Odgaard habe sich schlicht nicht an die neuen Apple-Konventionen gehalten und müsse sich von daher nicht wundern, dass er Probleme bekomme. Apple hat sich bislang nicht weiter geäußert.
Passend dazu: Apple-Hacker: Windows ist jetzt viel sicherer als macOS