In the Vinony graph
Within Vinony's link graph, Apple Darwin is referenced by 871 other articles, and connects out to tvOS, watchOS and macOS Server.
It is catalogued under topics including 2000 software, Animal mascots and Apple Inc. operating systems.
Its subject is documented across 30 Wikipedia language editions.
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
Wikidata facts
- Instance of
- BSD
- Part of
- iOS
- Named after
- Charles Darwin
- Based on
- FreeBSD
- Developer
- Apple Inc.
- Platform
- AArch64
- Official website
- opensource.apple.com
- Image
- GNOME 2 running on openDarwin (2004).png
Show 7 more facts
- publication date
- 2000-11-15
- influenced by
- A/UX
- replaces
- Classic Mac OS
- mascot
- Hexley
- software version identifier
- 124.1
- source code repository URL
- github.com/apple-oss-distributions/xnu
- copyright license
- Apple Public Source License
Sources (2)
via Wikidata · CC0
Article · 中文
Darwin 是由蘋果公司於2000年所釋出的一個開放原始碼作業系統。Darwin 是 macOS 和 iOS 操作環境的作業系統部份。蘋果公司於 2000 年把 Darwin 釋出給開放原始碼社群。 Darwin 是一種類 Unix 作業系統,包含開放原始碼的 XNU 內核,其以微核心為基礎的核心架構來實作 Mach,而作業系統的服務和使用者空間工具則以 BSD 為基礎。類似其他類 Unix 作業系統,Darwin 也有對稱多處理器的優點,高效能的網路設施和支援多種整合的檔案系統。 整合 Mach 到 XNU 内核的好處是可攜性,或者是在不同形式的系統使用軟體的能力。舉例來說,一個作業系統核心整合了 Mach 微核心,能夠提供多種不同 CPU 架構的二進位格式到一個單一的檔案(例如 x86 和 PowerPC),這是因為它使用了 Mach-O 的二進位格式。Mach 的缺點則是增加了作業系統内核 的複雜度。在過去的微核心實作上,這種複雜度有時候會導致很難分離核心效能的問題。因此,採用 Mach 微核心會伴隨風險,但它有潛在的好處是廣泛的可移植性。以 Darwin 可移植性的具體例子來說,在 2005 年 6 月,蘋果電腦宣佈它會於 2006 年在 Mac 電腦上開始採用 Intel 處理器。 Darwin 的開發者在 2000 年決定採用一個吉祥物,選擇了鴨嘴獸 Hexley。蘋果電腦也沒有把 Hexley 認可為 Darwin 的一個標誌。 在2002年4月,在網際網路軟體論壇(Internet Software Consortium, ISC)上,Apple成立OpenDarwin.org,是一個協助合作Darwin發展的社群。OpenDarwin建立它自己釋出的Darwin作業系統。值得注意的是OpenDarwin子計畫中包含了DarwinPorts,目標是組合下一世代的port集合給Darwin使用(對於長期而言,也給其他的BSD所衍生的作業系統)。OpenDarwin專案於2006年中止,2007年另一個專案成立去接手OpenDarwin之前的目標。 2003年7月,蘋果在APSL的2.0版本下釋出了Darwin,是由自由軟體基金會批准為自由軟體的許可證。先前在較早的APSL版本下,儘管它已經達到開放原始碼定義的要求,但所釋出的先前版本並不符合FSF對於自由軟體的定義。
Abstract from DBpedia / Wikipedia · CC BY-SA