Darwin (operating system)

from Wikipedia, the free encyclopedia
Darwin
developer Apple
License (s) APSL 2.0
First publ. November 15, 2000
Current  version 19.3.0 from January 28, 2020
(199 days ago)
Kernel XNU , hybrid kernel ( Mach  and  FreeBSD )
ancestry 4.3BSD
↳ NeXTSTEP → OPENSTEP
↳ Rhapsody
↳ Darwin
4.4BSD
↳ Darwin
FreeBSD
↳ Darwin
Architecture (s) Current: x86-64 , ARM64
Historical: PPC , x86 , ARM32
compatibility POSIX , FreeBSD
Others Basic system of macOS , iOS , etc.
opensource.apple.com
Darwin is the lower layer of Mac OS X, OS X or macOS

Darwin is a free Unix - Operating system of the company Apple and the basis for the proprietary operating systems from Apple, which have arisen from Mac OS X: macOS for personal computers of the brand Mac , iOS for mobile devices iPod and iPhone , iPadOS for the iPad , TVOS for the Apple TV set-top box, and watchOS for the Apple Watch . It was first made available as Darwin 0.1 on March 16, 1999, along with Mac OS X Server 1.0 .

In January 1997, NeXT was taken over by Apple and with it the OPENSTEP operating system , which was still called NeXTStep up to version 3 and which had just been released in version 4.0. This was called Rhapsody u. a. by the Macintosh surface in Platinum design, as it was also used in Mac OS 8 , as well as the Blue Box virtualization environment, under which Mac OS 8.1 could be run virtualized. NeXTStep, OPENSTEP and Rhapsody use large parts of BSD -Unix as the basis for an operating system that can run on multiple platforms and computer architectures - Rhapsody should also have run on multiple platforms, but in 1998 Apple stopped the publication of the completed Rhapsody for PowerPC Macintosh and x86 PC systems, as a multi-platform strategy had been recognized as having failed on the market. At WWDC 1998 Apple announced the amalgamation of Mac OS (at that time currently in version 8, until 1997 still System 7 ) with Rhapsody, which was to be called “Mac OS X”. According to Steve Jobs , Mac OS X should be released in 1999. However, since it was not finished in 1999, Rhapsody was published as a pure Macintosh server operating system under the name “Mac OS X Server 1.0” - and its open source BSD core as Darwin 0.1.

On this basis - Rhapsody and Darwin as its open source part - the development of Mac OS X 10.0 was started and with the publication of the Developer Previews and the Public Beta , from 1999 onwards, some versions of Darwin were also published, which on a Macintosh computer with Mac OS running. However, after the finished version of Mac OS X 10.0 “Cheetah” in 2001, Apple lost interest in an official Darwin distribution and since then has only provided the source code for Darwin, which forms the basis of the respective version of the proprietary operating system. The further development of Darwin in this form is closely interwoven with the development of the Apple operating systems.

Since integral parts of macOS and iOS are not available openly, Darwin lacks the graphical user interface Aqua , Quartz , OpenGL , QuickTime and the programming interfaces Cocoa and Carbon , which is why programs for Mac OS X / OS X / macOS cannot run either . Therefore, the few available Darwin distributions use free ( FreeBSD -compatible) desktop environments . B. by means of MacPorts , a large number of free software can also be used on Darwin without great effort.

Architecture, functional description and system requirements

The source code base of Darwin goes back to 4.4BSD-Lite , which was cleaned of the last remaining original System V source lines after the dispute over rights to the UNIX code, which ended in 1994 . It is under a free license, the APSL . At the same time, Darwin is a descendant of the NeXTStep operating system developed by NeXT , which was renamed OPENSTEP in 1996 and was still based on 4.3BSD. Apple bought NeXT towards the end of 1996 and then further developed the purchased system into Rhapsody . The BSD basic system was ported from 4.3BSD to 4.4BSD Lite source code and the kernel from Mach 2.5 to Mach 3. With the release of the Mac OS X Developer Preview 1 , this kernel was first known under the name XNU and published as part of the Darwin source code. Mach 3, however, is not fully implemented, but expanded with parts of the FreeBSD kernel to create a hybrid kernel , so that it combines the advantages of a monolithic kernel with the advantages of a microkernel . Parts of the Mach implementation from MkLinux , in which Apple was also involved, were reused.

Darwin can run in different versions on PowerPC processors, x86 processors and on ARM processors. While all programs for Darwin will work on Mac OS X, programs tailored for Mac OS X / OS X / macOS will not necessarily work on Darwin. The mobile operating systems iOS for iPhone , iPad and iPod touch , tvOS for Apple TV and watchOS for the Apple Watch are also based on Darwin, but the user has neither access to the file system nor to the command line . In some cases, this restriction can be lifted by jailbreaking .

Licensing and Marketing

Darwin is published in the source code under the Apple Public Source License , which from version 2.0 is recognized by the Free Software Foundation as a license for free software . The mascot of Darwin is Hexley, the platypus .

Darwin is the open source core of Apple's proprietary Mac OS X and Rhapsody-based operating systems. Darwin binary releases have ranged from Apple through Darwin 8.0, on which Mac OS X Tiger version 10.4 from 2004 is based.

Availability

Apple itself only publishes the source code for the parts necessary to create a Darwin operating system. However, due to the internal build system used by Apple, which is not publicly available, the sources are not that easy to compile. For projects like OpenDarwin and PureDarwin, the first task was to make the source text translatable with publicly available compilers . The source texts are also specifically adapted to the Apple hardware and are also not very well documented, which makes adaptation difficult. With the XNU kernel, for example, Apple only ever published the parts required for the processor architecture used by the current Macs for macOS, but not those for iOS. Since support for PowerPC was discontinued with Mac OS X Snow Leopard (10.6, 2009), PowerPC support can no longer be found in the XNU kernel for Darwin 10.0 and newer. With a few exceptions, source texts from iOS are not available.

Initially, Apple released a package for Mac OS called "Darwin OS" , which allowed Darwin to be installed on a Mac. Independent distributions were partly offered by external developers. From 2002 this task of making the Darwin operating system available as a distribution was handed over to the OpenDarwin project. When this was discontinued, there were independent efforts to release a Darwin-based distribution of a full-fledged Unix operating system, which, however, was only moderately successful.

Darwin OS (1999-2002)

In 1999, Apple began delivering the first Mac OS X developer previews to a limited number of developers. Its core was based on the OPENSTEP developed by NeXT (NeXTStep or NeXTSTEP until 1995) and was further developed by Apple as the successor to System 7 after its takeover at the end of 1996 . After the Rhapsody project (which can be viewed as version 5.x of OPENSTEP) was discontinued in 1998, Apple released a version based on it as Mac OS X Server 1.0 in 1999 . The core of this first operating system called “ Mac OS X ” became the basis of Mac OS X 10.0 (2001, alpha and beta versions 1999-2000) Encourage developers. Since Apple decided in 1997 to end the multi-platform strategy (and described the Rhapsody developed for Macs and PCs as a failure), further development focused purely on the PowerPC architecture. The release of the source code, however, enabled backporting to the Intel x86 architecture by free developers.

Darwin OS 0.3 (1999) had the same hardware requirements as Mac OS X Server 1.0 (1999, Rhapsody 5.3–5.6) and, since it was further developed with Mac OS X, soon its requirements and system compatibility. Darwin 1.2.1 (2000) runs on all Macintosh systems that also run the Mac OS X Public Beta and on some Intel x86 PCs. However, Apple's support for the x86 version (“Darwin x86”) has not been actively pursued.

The package published by Apple could initially only be installed from Mac OS , but there were external sources for a kind of Darwin distribution as a bootable installation CD. With Darwin 1.3.1 / x86 and 1.4.1 (later Darwin Version 5) Apple itself published bootable Darwin ISO images for the first time as part of the Developer Connection .

Like NeXTStep and OPENSTEP, Darwin (and thus also Mac OS X or OS X or macOS) benefited from a large number of open source projects. Apple is thus part of the global open source community, since further developments often have to be published due to licensing requirements (e.g. WebKit ).

Darwin 8.0.1 was the last Apple released version of a binary Darwin on installation media.

history

The publication of Darwin is primarily only as source text . In some cases, Apple has made binary installation images, ISO images , available for individual versions of Darwin as part of the Apple Developer Connection (ADC). Since the source code needed for some particular hardware drivers missing, they must be installed as binary packages.

Which version is running on a system can be uname -vread out if access to a command line is available, which is generally not the case with iOS without jailbreak . Under Mac OS X Lion 10.7.2 are uname -vexample Darwin Kernel Version 11.2.0: Tue Aug 9 20:54:00 PDT 2011; root:xnu-1699.24.8~1/RELEASE_X86_64of.

Version of
Darwin macOS (OS X, Mac OS X) and iOS ADC publication 1)
Older version; no longer supported:0.1 2) Mac OS X Developer Preview ("DP" or "DP1" for short; Alpha version of Mac OS X 10.0) -
Older version; no longer supported:0.2 2) Mac OS X Developer Preview 2 ("DP2" for short; alpha version of Mac OS X 10.0) -
Older version; no longer supported: 1.0 Mac OS X Developer Preview 3 ("DP3" for short; Alpha version of Mac OS X 10.0) 1.0.2: Installation package for PowerPC
Older version; no longer supported: 1.1 Mac OS X Developer Preview 4 ("DP4" for short; alpha version of Mac OS X 10.0) -
Older version; no longer supported: 1.2.1 Mac OS X Public Beta "Kodiak" ( Beta version of Mac OS X 10.0) 1.2.1: Installation package for PowerPC
Older version; no longer supported: 1.3.1 Mac OS X 10.0.x "Cheetah" 1.3.1: Installation package for PowerPC; ISO for x86
Older version; no longer supported: 1.4.1 Mac OS X 10.1.0 "Puma" 1.4.1: ISO for PowerPC and x86
Older version; no longer supported: 5.1-5.5 Mac OS X 10.1.1-10.1.5 "Puma"
Older version; no longer supported: 6.x Mac OS X 10.2.x "Jaguar" 6.0.2: ISO for PowerPC and x86
Older version; no longer supported: 7.x Mac OS X Panther (10.3.x) 7.0.1: ISO for PowerPC and x86
Older version; no longer supported: 8.x Mac OS X Tiger (10.4.x) 3) 8.0.1: ISO for PowerPC and x86
Older version; no longer supported:9.x 4) Mac OS X Leopard (10.5.x); iOS 1.x and 2.x; 5) -
Older version; no longer supported: 10.x Mac OS X Snow Leopard (10.6.x); iOS 3.x and 4.0-4.2.1 5) -
Older version; no longer supported: 11.x Mac OS X Lion (10.7.x); iOS 4.3-4.3.5 and 5.x -
Older version; no longer supported: 12.x OS X Mountain Lion (10.8.x) -
Older version; no longer supported: 13.x OS X Mavericks (10.9.x); iOS 6.x -
Older version; no longer supported: 14.x OS X Yosemite (10.10.x); iOS 7.x and 8.x -
Older version; no longer supported: 15.x OS X El Capitan (10.11.x); iOS 9.x, tvOS 9.x -
Older version; no longer supported: 16.x macOS Sierra (10.12.x); iOS 10.x, tvOS 10.x -
Older version; still supported: 17.x macOS High Sierra (10.13.x); iOS 11.x, tvOS 11.x -
Older version; still supported: 18.x macOS Mojave (10.14.x); iOS 12.x, tvOS 12.x -
Current version: 19.x macOS Catalina (10.15.x); iOS 13.x, tvOS 13.x -
Legend:
Older version; no longer supported
Older version; still supported
Current version
Current preliminary version
Future version
1)Darwin binary installation media published by Apple through Developer Connecton .
2) The operating system identifies itself as “Mac OS X 10.0”, not as “Darwin 0.1” or “Darwin 0.2”.
3)The Apple TV the first generation used a modified Mac OS X Tiger (10.4), which also as Darwin Version 8 identified.
4)Darwin 9 is the last version for PowerPC and at the same time the first version for ARM .
5) Before version 4.2.1, iOS was called “iPhone OS” and “iPad OS” and also serves as the basis for tvOS and watchOS .

Darwin distributions and ports

Darwin on ARM

With the Darwin on ARM Project , there has been a Darwin 12.x ( OS X Mountain Lion , 10.8, 2012) -based project by a single developer since 2013 , which uses the Darwin kernel XNU - and everything else that is required for it - should enable it to run on ARM devices (AArch64, ARMv7, ARMv6-A). However, the last edit was in October 2017.

OpenDarwin

OpenDarwin (2002–2006) was founded in April 2002 by ISC and Apple. Everyone was free to contribute to the project. The goal was an independent Darwin distribution, the platform should support both PowerPC and x86 architectures. This made OpenDarwin an embodiment of the Darwin operating system, which also made it possible for external developers to contribute directly to the source code without being an Apple employee or having to register with Apple. As with Darwin OS (from 1999), it was the only possibility for external developers to be able to work on the core components such as the system kernel, since some parts of the CVS tree were always based on the live Darwin CVS. Other parts were only updated periodically by Apple, which made contributions outside of Apple even more difficult. OpenDarwin was made available based on the current CVS tree.

Instead of the hoped-for openness of an independent distribution , however, it was increasingly difficult to compile the sources made available by Apple without an Apple computer running Mac OS X. Apple used a build system that was only available internally and only adapted the sources to its own hardware, while larger contributions from independent developers were in most cases not integrated into Darwin. On the contrary, Apple removed existing support for older hardware, which irritated the free OpenDarwin developers, since such a procedure is considered unusual in the open source world. With the success of Mac OS X, Apple increasingly began to make new versions of the source code and new drivers dependent on the proprietary Mac OS X, which made an independent Darwin distribution impossible without additional effort such as in-house developments or backports. Eventually the most active OpenDarwin developers were taken over by Apple. Since this a non-disclosure agreement (NDA: n on- d isclosure a greement ) sign had, they could no longer contribute to the free project. OpenDarwin could finally no longer be maintained due to a lack of active developers.

On July 26, 2006, the "OpenDarwin" project was discontinued. Apple was apparently not interested in supporting OpenDarwin according to the principles of an open source community , but only used Darwin as the basis for the proprietary Mac OS X. In this light, the open source operating system components only appear as a means to make Mac OS X more successful market. On the official website, which was available until June 28, 2007, the administrators most recently stated that the reason for the end of OpenDarwin was that the project's goals had not been achieved in four years.

PureDarwin

With PureDarwin there has been a follow-up project since the end of 2007 after OpenDarwin was discontinued. The aim of the project is to produce a bootable Darwin ISO . The development is relatively unsteady, so there were no significant efforts between 2012 and 2015, and the version remained at PureDarwin 1.3 Beta, at the level of Darwin 9.8 (analogous to Mac OS X Leopard 10.5.8 from 2007–2009). The current version is “PureDarwin 17.4 Beta OS” from 2017, which is based on Darwin 17.4 (analogous to macOS High Sierra 10.13.3).

See also

Web links

Individual evidence

  1. Mac OS X Internals: What is Mac OS X? , Amit Singh (English); accessed on August 17, 2016.
  2. kernelthread.com: Towards Mac OS X , Amit Singh (English); accessed on August 18, 2016.
  3. Mac OS X (English); accessed on August 18, 2016.
  4. PureDarwin ( Memento August 17, 2016 in the Internet Archive ) Version 9: “ MacPorts is running on PureDarwin 9, potentially giving us thousands of open source software titles. "; accessed on August 18, 2016.
  5. Apple is updating its Public Source License. In: heise online . August 7, 2003, accessed June 30, 2008 .
  6. About Hexley. Archived from the original on December 13, 2006 ; accessed on December 18, 2015 .
  7. http://www.hexley.com/
  8. Apple Source Browser : tarballs
  9. Apple Source Browser
  10. ^ A b Rob Braun: A Brief History of Apple's Open Source Efforts. Archived from the original on October 13, 2006 ; accessed on December 18, 2015 .
  11. The iPhone Wiki - Kernel : “ It is worth noting that Apple does not list XNU as being an open source component of iOS. This can be seen by viewing opensource.apple.com and selecting any iOS version. As far as can be told, none of the versions of XNU are available in source version. "And" It does not appear that Apple assumes what you see in the OS X pages are also on iOS as JavaScriptCore, WebCore, among others are listed on both OS X (10.8) and iOS (6.0), albeit different versions.
  12. ^ Darwin For Intel. Darwinfo.org, 1999, archived from the original on November 10, 2000 ; accessed on February 21, 2016 .
  13. ^ Darwin OS installation. Darwin OS 0.3. Apple Computer, Inc. , 1999, archived from the original on October 7, 1999 ; accessed on February 21, 2016 .
  14. a b Darwin - Release Installation. Darwin 1.2.1. Apple Computer, Inc. , 2000, archived from the original on February 6, 2001 ; accessed on February 21, 2016 .
  15. ^ A b c Why Darwin Failed. Rob Braun, February 23, 2006, archived from the original on June 1, 2015 ; Retrieved February 21, 2016 (English, Rob Brown was the initiator of Darwinfo.org and from 2002 co-founder of OpenDarwin.org.).
  16. ^ Darwin Contributors. Apple Computer, Inc. , 2001, archived from the original on February 2, 2002 ; accessed on February 21, 2016 .
  17. a b c d e Darwin Releases. (No longer available online.) In: Developer Connection. Apple, 2000, archived from the original on September 6, 2008 .;
  18. Darwin 1.4.1 Release notes. (English): “The contents of this CD cannot be entirely reproduced from the source in anoncvs.opensource.apple.com. It contains binary versions of certain non-open source drivers. "
  19. Darwin - Release Installation. (No longer available online.) In: ADC. Apple, 2001, archived from the original on October 23, 2002 .;
  20. Darwin - Release Installation. (No longer available online.) In: ADC. Apple, 2001, archived from the original on October 3, 2002 .;
  21. Darwin - Release Installation. (No longer available online.) In: Open Source. Apple, 2000, archived from the original on August 5, 2001 .;
  22. Source Browser. (No longer available online.) Apple, archived from the original on September 3, 2009 .;
  23. GitHub: oisc-logger / mac_os_agents.txt lists various Darwin versions with the associated OS X versions; accessed on December 24, 2015
  24. GitHub : Darwin on ARM Project , accessed December 18, 2015
  25. a b Open Darwin Shutting Down. July 25, 2006, archived from the original on December 31, 2006 ; accessed on December 18, 2015 .
  26. OpenDarwin closes the gates. In: heise online . July 26, 2006, accessed April 6, 2013 .
  27. New PureDarwin 1.3 beta release ( Memento from December 18, 2015 in the Internet Archive ) (English), December 15, 2012, accessed on December 18, 2015
  28. https://github.com/PureDarwin/PD-17.4-Beta
  29. https://www.puredarwin.org/