Skip to content
EntityQ14581· pop 30· linked from 871 articles

unixähnliches Betriebssystem und Basis von macOS, iOS etc.

Key facts

Developer
Apple
Written in
C , C++ , Objective-C , assembly language
Os family
Unix-like , FreeBSD , BSD
Working state
Current
Source model
Currently open source with proprietary components, previously open source
Initial release
November 15, 2000 ; 25 years ago ( 2000-11-15 )
Latest release
27.0.0 / June 8, 2026 ; 3 days ago ( 2026-06-08 )
Repository
github .com /apple-oss-distributions /distribution-macOS
Supported platforms
Current: x86-64 , 64-bit ARM , 32-bit ARM (32-bit ARM support is closed-source) Historical: PowerPC (32-bit and 64-bit), IA-32
Kernel type
Hybrid ( XNU )
Influenced by
NeXTSTEP , FreeBSD , BSD , Mach
Default user interface
Command-line interface ( Unix shell )
License
Mostly Apple Public Source License (APSL), with closed-source drivers
Official website
opensource .apple .com /releases /

via Wikipedia infobox

Source code

XNU kernel is part of the Darwin operating system for use in macOS and iOS operating systems. XNU is an acronym for X is Not Unix. XNU is a hybrid kernel combining the Mach kernel developed at Carnegie Mellon University with components from FreeBSD and a C++ API for writing drivers called IOKit. XNU runs on x86 64 and ARM64 for both single processor and multi-processor configurations. config - configurations for exported apis for supported architecture and platform SETUP - Basic set of tools used for configuring the kernel, versioning and kextsymbol management. EXTERNAL HEADERS - Headers sourced from other projects to avoid dependency cycles when building. These headers should be regularly synced when source is updated. libkern - C++ IOKit library code for handling of drivers and kexts. libsa - kernel bootstrap code for startup libsyscall - syscall library interface for userspace programs libkdd - source for user library for parsing kernel data like kernel chunked data. makedefs - top level rules and defines for kernel build. osfmk - Mach kernel based subsystems pexpert - Platform specific code like interrupt handling, atomics etc. security - Mandatory Access Check policy interfaces and related implementation. bsd - BSD subsystems code tools - A set of utilities for testing, debugging and profiling kernel. The xnu make system can build kernel based on KERNEL CONFIGS & ARCH CONFIGS variables as arguments. Here is the syntax: Additionally, there is support for configuring architectures through ARCH CONFIGS and kernel configurations with KERNEL CONFIGS . Note: By default, the architecture is set to the build machine's architecture, and the default kernel config is set to build for DEVELOPMENT . This will also create a bootable image, kernel.[config], and a kernel binary with symbols, kernel.[config].unstripped. Remember to replace DEVELOPMENT and ARM64 with the appropriate build and platform. Extra Flags: You can pass additional flags to the C compiler at the command line with the EXTRA CFLAGS build setting. These flags are appended to the base CFLAGS , and the default value for the setting is an empty string. $ make MAKEJOBS=-j8 this will use 8 processes during the build. The default is 2x the number of active CPUS. $ make -j8 the standard command-line option is also accepted $ make -w trace recursive make invocations. Useful in combination with VERBOSE=YES $ make BUILD LTO=0 build without LLVM Link Time Optimization $ make BOUND CHECKS=0 disable -fbound-attributes for this build $ make REMOTEBUILD=user@remotehost perform build on remote host $ make BUILD CODE COVERAGE=1 build with support for collecting code coverage information The XNU build system can optionally output color-formatted build output. To enable this, you can either set the XNU LOGCOLORS environment variable to y , or you can pass LOGCOLORS=y to the make command. By default, a DWARF debug information repository is created during the install phase; this is a "bundle" named kernel.development. .dSYM To select the older STABS debug information format (where debug information is embedded in the kernel.development.unstripped image), set the BUILD STABS environment variable. To test the xnu kernel, you need to build a kernelcache that links the kexts and kernel together into a single bootable image. To build a kernelcache you can use the following mechanisms: Using automatic kernelcache generation with kextd . The kextd daemon keeps watching for changing in /System/Library/Extensions directory. So you can setup new kernel as The development kernel and iBoot supports configuring boot arguments so that we can safely boot into test kernel and, if things go wrong, safely fall back to previously used kernelcache. Following are the steps to get such a setup: 1. Create kernel cache using the kextcache command as /kernelcache.test 2. Copy exiting boot configurations to alternate file The --nextonly flag specifies that use the boot.plist configs only for one boot

Excerpt from the source-code README · 22,120 chars · not written by Vinony

Article · Deutsch

Darwin ist ein freies Unix-Betriebssystem des Unternehmens Apple und die Basis für die proprietären Betriebssysteme von Apple, die aus Mac OS X entstanden sind: macOS für Personal Computer der Marke Mac, iOS für die Mobilgeräte iPod und iPhone, iPadOS für das iPad, tvOS für die Apple-TV-Set-Top-Box, und watchOS für die Apple Watch. Es wurde als Darwin 0.1 am 16. März 1999, gemeinsam mit Mac OS X Server 1.0, erstmals verfügbar gemacht. Im Januar 1997 wurde NeXT von Apple übernommen und damit auch das bis Version 3 noch NeXTStep genannte Betriebssystem OPENSTEP, das gerade in Version 4.0 veröffentlicht worden war. Dieses wurde unter dem Namen Rhapsody u. a. um die Macintosh-Oberfläche im Platinum-Design, wie es auch in Mac OS 8 verwendet wurde, sowie die Virtualisierungsumgebung Blue Box, unter der Mac OS 8.1 virtualisiert ausgeführt werden konnte, erweitert. NeXTStep, OPENSTEP und Rhapsody nutzen große Teile von BSD-Unix als Grundlage für ein auf mehreren Plattformen und Rechnerarchitekturen lauffähiges Betriebssystem – auch Rhapsody hätte auf mehreren Plattformen laufen sollen, doch stoppte Apple 1998 die Veröffentlichung des fertiggestellten Rhapsody für PowerPC-Macintosh- und x86-PC-Systeme, da eine Multi-Plattform-Strategie als am Markt gescheitert erkannt worden war. Auf der WWDC 1998 kündigte Apple die Verschmelzung von Mac OS (damals aktuell in Version 8, bis 1997 noch System 7) mit Rhapsody an, welches den Namen „Mac OS X“ tragen sollte. Laut Steve Jobs sollte Mac OS X bereits 1999 erscheinen. Da es jedoch 1999 noch nicht fertig war, wurde Rhapsody als reines Macintosh-Server-Betriebssystem unter dem Namen „Mac OS X Server 1.0“ veröffentlicht – sowie dessen quelloffener BSD-Kern als Darwin 0.1. Auf dieser Basis – Rhapsody und Darwin als dessen quelloffener Teil – wurde mit der Entwicklung von Mac OS X 10.0 begonnen und mit den Veröffentlichungen der Developer Previews und der Public Beta wurden ab 1999 auch einige Versionen von Darwin veröffentlicht, die auf einem Macintosh-Computer mit laufendem Mac OS installierbar waren. Doch nach der fertigen Version von Mac OS X 10.0 „Cheetah“ 2001 verlor Apple das Interesse an einer offiziellen Darwin-Distribution und stellt seither nur mehr den Quelltext für Darwin, der die Basis der jeweiligen Version des proprietären Betriebssystems bildet, zur Verfügung. Die Weiterentwicklung von Darwin ist in dieser Form eng mit der Entwicklung der Apple-Betriebssysteme verwoben. Da integrale Teile von macOS und iOS nicht quelloffen verfügbar sind, fehlt Darwin sowohl die grafische Benutzerschnittstelle Aqua als auch Quartz, OpenGL, QuickTime sowie die Programmierschnittstellen Cocoa und Carbon, weshalb Programme für Mac OS X/​OS X/​macOS auch nicht lauffähig sind. Daher nutzten die wenigen verfügbaren Darwin-Distributionen freie (FreeBSD-kompatible) Desktop-Umgebungen, und z. B. mittels MacPorts ist eine Vielzahl freier Software auch auf Darwin ohne großen Aufwand nutzbar.

Abstract from DBpedia / Wikipedia · CC BY-SA