XNU

from Wikipedia, the free encyclopedia
XNU
developer Apple
License (s) APSL  2.0
First publ. December 1996
Current  version 6153.141.1 ( macOS 10.15.6 ) (2020)
ancestry OSF MK + FreeBSD
↳ XNU
Architecture (s) Current: x64 , ARM64
Historical: PPC , x86 , ARM32
Others Kernel of the operating systems Darwin , macOS , iOS etc.
opensource.apple.com and github.com/apple/darwin-xnu

XNU is a kernel , which in the free base operating system ( core operating system ) Darwin is used. Darwin forms the basis of Apple's operating system variants macOS , iOS , iPadOS , tvOS and watchOS . XNU is published as free software under version 2 of the Apple Public Source License (APSL). The kernel has its origin u. a. in the NeXTStep operating system .

Naming

XNU is derived on the one hand from X is N ot U nix, also an acronym based on GNU . On the other hand, it probably stands for Mac OS X Nu Kernel as well . The NuKernel was a Mach 3.0 kernel for the Copland project that had been completely rewritten between 1994 and 1997. Copland was supposed to be the successor to the outdated System 7 , but Apple failed to stabilize the kernel. The only developer versions of Copland ever published showed constant crashes due to the unstable NuKernel. It was only with OPENSTEP from NeXT that Apple had a stable Mach 2.5 kernel in hand, on the basis of which a stable Mach 3.0 kernel for the successor operating system of Mac OS could be developed.  

Kernel design

XNU is a hybrid kernel , consisting of parts of the Mach3 - microkernel OSF MK and the monolithic FreeBSD -Kernels, but also from portions of MkLinux , NetBSD and OpenBSD . The XNU kernel of Darwin version 7 corresponds to the FreeBSD kernel in version 5.

In the BSD part, the multi-user system (user IDs, rights), the TCP / IP stack (including the firewall ), the synchronization and the process division are controlled. The Mach part is responsible for multitasking, memory management and error handling. The I / O kit manages plug and play , hot plugging , energy management and extension management.

In the course of development, various security mechanisms were built into the kernel. In the Intel version of Mac OS X Tiger (XNU version 792.x, early 2006), the NX bit is supported to protect against the execution of a maliciously overwritten stack with a malicious function placed there. From Mac OS X Leopard (XNU version 933.x, end of 2007) and iOS 4.3 (XNU version 1735.x, mid 2011) Address Space Layout Randomization (ASLR) and from iPhone OS 2.0 (XNU version 1228 .x, mid 2008) also functions for code signing so that unsigned drivers cannot be loaded. The latter found its way into OS X Mountain Lion (XNU version 2050.x) as a gatekeeper in autumn 2012 and was also backported to Mac OS X Lion 10.7.5 (XNU version 1699.x).

history

The kernel was originally developed by NeXT for their NeXTStep operating system . Up to version 3.3 the operating system was called NeXTStep (from version 3.1 in the notation NeXTSTEP and finally NEXTSTEP), from version 4.0 it was renamed OPENSTEP and bought by Apple at the end of 1996. Since they were looking for a successor to System 7 , which was considered out of date , OPENSTEP was further developed into a successor to the classic Mac OS in the Rhapsody project (version 5.0 to 5.6) . The basis of OPENSTEP, BSD4.3 and Mach 2.5, was also renewed. Both Rhapsody and Mac OS X offer a Unix system based on BSD4.4-Lite and Mach 3.0 - as with FreeBSD, however, XNU Mach 3.0 was not implemented 100% for compatibility reasons. During the Rhapsody development, the Unix part was summarized as Darwin (a BSD operating system similar to FreeBSD) - with XNU as its kernel - the Darwin version number started again at 1.0 and was released from version 5.1 (with a jump from Darwin 1.4. 1 to 5.1) is synchronized with the build number of Mac OS X (version 10.1.1 or later, November 2001). Darwin became the basis of Mac OS X, which is called OS X from 2012 (without “Mac” in the name) and from 2016 in unified spelling macOS . Darwin is also the basis of iOS , which has been available since 2007, and its descendants iPadOS , tvOS and watchOS .

history

XNU for macOS can be viewed and downloaded from Apple, but not those kernels for iOS . The version does not follow the version of Darwin, macOS, or iOS in any way. Which XNU version is running on a system can also be uname -vread out, e.g. As in Mac OS X 10.7.2 : Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64.

Under the first developer preview of the Mach kernel is the installation CD in single-user mode ( english single user mode , key combination ⌘ Befehl  + S) following version: Mac OS Kernel Version 10.0: Fri Apr 30 23:26:14 PDT 1999; root(rcbuilder):Objects/xnu-24.6.obj~2/RELEASE_PPC. It is the first known release by XNU.

Version of
XNU Darwin macOS, OS X, Mac OS X or iOS (if available)
24.6 0.1 Mac OS X Developer Preview (also known as DP1 for short); the operating system identifies itself as "Mac OS X 10.0", not as "Darwin 0.1".
44 0.2 Mac OS X Developer Preview 2 (DP2 for short)
59.10 1.0 Mac OS X Developer Preview 3 (DP3 for short)
74.7 1.1 Mac OS X Developer Preview 4 (DP4 for short)
103.x 1.2 Mac OS X Public Beta "Kodiak"; Build 1H38: XNU 103; Build 2E14: XNU 103.1
123.5 1.3.1 Mac OS X 10.0.0 "Cheetah"
124.x Mac OS X 10.0.1–10.0.4 "Cheetah"
201.x 1.4.x / 5.x Mac OS X 10.1.x "Puma"
344.x 6.x Mac OS X 10.2.x "Jaguar"
517.x 7.x Mac OS X 10.3.x "Panther"
792.x 8.x Mac OS X 10.4.x "Tiger"
933.x 9.x iPhone OS / iPad OS 1.x; first ARM version
1228.x Mac OS X 10.5.x “Leopard” ; last PowerPC version; iPhone OS / iPad OS 2.x
1357.x 10.x iPhone OS / iPad OS 3.0-3.1.3
1456.1.26 Mac OS X 10.6-10.6.1 "Snow Leopard"
1486.2.11 Mac OS X 10.6.2 "Snow Leopard"
1504.x Mac OS X 10.6.3-10.6.8 “Snow Leopard” ; iPad OS 3.2, iOS 4.0-4.2.1
1699.x 11.x Mac OS X 10.7.x "Lion"
1735.x iOS 4.3–4.3.5
1878.x iOS 5.x
2050.x 12.x OS X 10.8.x "Mountain Lion"
2107.x 13.x iOS 6.x
2422.x OS X 10.9.x "Mavericks"
2423.x 14.x iOS 7.x
2782.x OS X 10.10.x "Yosemite"
2783.x iOS 8.0–8.2
2784.x iOS 8.3–8.4.1
3247.x 15.x OS X 10.11-10.11.1 "El Capitan"
3248.x iOS 9.x, OS X 10.11.2-10.11.6 "El Capitan"
3789.x 16.x iOS 10.x, macOS 10.12.x "Sierra"
4570.x 17.x macOS 10.13.x "High Sierra" , iOS 11.x
4903.x 18.x macOS 10.14.x "Mojave" , iOS 12.x
6153.x 19.x macOS 10.15.x "Catalina" , iOS 13.x

Trivia

In iOS 11 , Apple's own implementation of the L4 microkernel for the Secure Enclave was added. This runs on a coprocessor integrated in the ARM processor Apple T1 , S2 and S3 as well as the later A series as part of the boot chain . a. used for updates, Touch ID / Face ID and Apple Pay . However, this L4 kernel is not part of XNU or Darwin.

Web links

Individual evidence

  1. ^ Luke Jones: Apple Takes Open Source Step with XNU Kernel Release. Long-time restricted software has been a staple of Apple over the years, but the company is loosening towards open source with the release of XNU kernel on GitHub. In: WinBuzzer News. October 2, 2017, accessed March 24, 2019 .
  2. XNU (Apple Source Browser). Retrieved March 24, 2019 .
  3. Porting UNIX / Linux Applications to OS X: Glossary , accessed on August 3, 2012
  4. ^ A b Amit Singh: Mac OS X Internals: A Systems Approach . Addison-Wesley Professional, 2006, ISBN 978-0-13-270226-3 , pp. 36 ( full text in Google Book Search).
  5. a b Mac OS X Internals: What is Mac OS X? (English), Amit Singh, December 2003, accessed December 12, 2015
  6. XNU (Apple Source Browser). Retrieved November 9, 2017 .
  7. iOS Security Guide - White Paper. (PDF; 475 kB) Apple, January 2018, p. 7 ff. , Accessed on August 4, 2018 (English).