Difference between revisions of "Darwin"
m (→See also: +Darwin 6.0.1 Release notes) |
|||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | Darwin is the open source core of [[OS X]]. | + | '''Darwin''' is the [[open source]] core of [[OS X]]. |
− | + | == Rhapsody == | |
+ | [[Image:Darwin 0.1 booted single user mode.png|150px|thumb|right|Darwin 0.1]] | ||
− | + | In the beginning of the project it was a fork of [[OPENSTEP]]. As far as I've been able to track down there have been 3 public releases of this OPENSTEP Darwin. And there have been several more public releases, up to and including OS X Server 1.0 which was based on the OPENSTEP kernel. Further complicating things, Darwin 0.1 reports itself as Rhapsody 5.3, while Darwin 0.2 and 0.3 report themselves as Darwin 0.2/0.3 | |
− | |||
− | |||
− | |||
− | |||
+ | From the source code of Darwin 0.1, The kernel is based on OS/F's 6.1 kernel. This is evident in [https://unix.superglobalmegacorp.com/cgi-bin/cvsweb.cgi/kernel/mach/boolean.h?rev=1.1.1.1;cvsroot=Darwin0 boolean.h as an example]: | ||
+ | <pre> | ||
+ | /* | ||
+ | * OSF Research Institute MK6.1 (unencumbered) 1/31/1995 | ||
+ | */ | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | The following is a table of versions I've been able to put together with information from the [http://www.rhapsodyos.org/ Rhapsody Resource Page], and a mirror of the [http://mirror.informatimago.com/next/developer.apple.com/darwin/news/qa20010925.html Darwin Q&A]. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Kernel Version | ||
+ | ! OS Name | ||
+ | ! OS X Version | ||
+ | ! Darwin Version | ||
+ | ! Code name | ||
+ | |- | ||
+ | | 5.0 | ||
+ | | Rhapsody | ||
+ | | Rhapsody Developer Release | ||
+ | | N/A | ||
+ | | Grail1Z4 | ||
+ | |- | ||
+ | | 5.1 | ||
+ | | Rhapsody | ||
+ | | Developer Release 2 | ||
+ | | N/A | ||
+ | | Titan1U | ||
+ | |- | ||
+ | | 5.2 | ||
+ | | Rhapsody | ||
+ | | Rhapsody 1.0 | ||
+ | | N/A | ||
+ | | Unknown | ||
+ | |- | ||
+ | | 5.3 | ||
+ | | Rhapsody | ||
+ | | Mac OS X Server 1.0 | ||
+ | | [[Darwin 0.1]] | ||
+ | | Hera1O9 | ||
+ | |- | ||
+ | | 5.4 | ||
+ | | Rhapsody | ||
+ | | Mac OS X Server 1.0.1 | ||
+ | | [[Darwin 0.2]]? | ||
+ | | Loki1A2 | ||
+ | |- | ||
+ | | 5.5 | ||
+ | | Rhapsody | ||
+ | | Mac OS X Server 1.0.2 | ||
+ | | [[Darwin 0.3]] | ||
+ | | Loki2G1 | ||
+ | |- | ||
+ | | 5.6 | ||
+ | | Rhapsody | ||
+ | | Mac OS X Server 1.2 | ||
+ | | N/A | ||
+ | | Pele1Q10 | ||
+ | |- | ||
+ | | 5.6 | ||
+ | | Rhapsody | ||
+ | | Mac OS X Server 1.2v3 | ||
+ | | N/A | ||
+ | | Medusa1E3 | ||
+ | |} | ||
+ | |||
+ | === Getting this to run === | ||
+ | |||
+ | ==== i386 ==== | ||
+ | Darwin 0.x can be built using a Rhapsody/OS X Server 1.0 binary system as a starting point. However when it comes to emulation and physical hardware the EIDE driver has a problem losing interrupts. It is not only a problem with Darwin/Rhapsody but on physical machines as well. This poses a challenge to 'white box' builders to this day. However the emulator Qemu 0.90 can run Rhapsody albeit with a busmouse driver. | ||
+ | |||
+ | For the sake of preservation, the preserved downloads from [https://archive.org/details/darwin_0.1 Darwin 0.1 are on archive.org]. Some components in the 0.1 tars didn't make it to the 0.3 CD-ROM so they are needed to build a more 'complete' set. | ||
+ | |||
+ | At this moment I have the following version of Darwin setup to run on Qemu: | ||
+ | |||
+ | * [https://sourceforge.net/projects/aapl-darwin/files/qemu-images/Darwin03_qemu090_24_4_2017.7z/download Darwin 0.3] | ||
+ | |||
+ | ==== PowerPC ==== | ||
+ | There has been tremendous improvements to Qemu, and it is now possible to install MacOS 9, and OS X Server 1.x, along with OS X 10.x. Darwin for the PowerPC doesn't have an actual installer on the discs, but rather you boot up into MacOS, and restore a disk backup from CD onto your target hard disk, and boot into that. Information can be found about the progress of the Qemu PowerPC on [https://www.emaculation.com/forum/viewtopic.php?f=34&t=7047&p=55205#p55205 emaculation.com] | ||
+ | |||
+ | Currently I have images of 0.3 & 1.0.2: | ||
+ | |||
+ | * [https://sourceforge.net/projects/aapl-darwin/files/Darwin-0.3/Apple-CDROM/Darwin-0.3.toast/download Darwin-0.3.toast] | ||
+ | * [https://sourceforge.net/projects/aapl-darwin/files/Darwin-1.0/Apple-CDROM/DarwinOS-1.0.2.dmg/download DarwinOS-1.0.2.dmg] | ||
+ | |||
+ | The process right now involves installing MacOS 9, as 8.6 included on the 0.3 currently doesn't boot. And likewise, the restore program on 0.3 won't run under MacOS 9, but the restore program from the 1.0.2 image will run on MacOS 9. | ||
+ | |||
+ | For the impatient, I do have the images already extracted and setup with Qemu | ||
+ | * [https://sourceforge.net/projects/aapl-darwin/files/qemu-images/Darwin03-PowerPC_qemu-2.11_04_22_2018.7z/download Darwin03-PowerPC_qemu-2.11_04_22_2018.7z] | ||
+ | * [https://sourceforge.net/projects/aapl-darwin/files/qemu-images/Darwin1.00PowerPC_qemu-2.11_04_22_2018.7z/download Darwin1.00PowerPC_qemu-2.11_04_22_2018.7z] | ||
+ | |||
+ | Currently there is no networking. | ||
+ | |||
+ | == XNU == | ||
+ | |||
+ | [[Image:Darwin 1.4.1 x86 booted.png|150px|thumb|right|Darwin 1.4.1]] | ||
+ | |||
+ | After the release of OS X Server 1.0, it was clear at this point that OS X was doomed, as 3rd party software vendors expressed no interest in porting applications to OPENSTEP/Cocoa API's. Instead Apple would have to go and create the Carbon framework, allowing traditional MacOS applications to use a subset of the toolbox API, and then be ported to OS X. Along the way the older OPENSTEP kernel was dropped in favor of a newer kernel based on Mach 3.0 and a C++ driver framework. | ||
+ | |||
+ | The Darwin OS includes both the XNU kernel, along with all the free tools. | ||
+ | |||
+ | As far as I recall it started being fully distributed in Darwin 1.0, which was a PowerPC only release, while later releases included native support for the x86. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version | ||
+ | ! Released | ||
+ | ! Corresponds With | ||
+ | |- | ||
+ | ! Darwin 1.0 | ||
+ | ! April 2000 | ||
+ | ! Mac OS X Developer Preview 4 | ||
+ | |- | ||
+ | ! Darwin 1.2 | ||
+ | ! October 2000 | ||
+ | ! Mac OS X Public Beta | ||
+ | |- | ||
+ | ! Darwin 1.3.1 | ||
+ | ! April 2001 | ||
+ | ! Mac OS X 10.0.1 | ||
+ | |- | ||
+ | ! Darwin 1.4.1 | ||
+ | ! Fall 2001 | ||
+ | ! Mac OS X 10.1 | ||
+ | |- | ||
+ | ! Darwin 5.1-5.5 | ||
+ | ! | ||
+ | ! Mac OS X v.10.1.1-10.1.5 | ||
+ | |- | ||
+ | ! Darwin 6.0-6.8 | ||
+ | ! | ||
+ | ! Mac OS X v.10.2.0-10.2.8 | ||
+ | |- | ||
+ | ! Darwin 7.0-7.9 | ||
+ | ! | ||
+ | ! Mac OS X v.10.3.0-10.3.9 | ||
+ | |- | ||
+ | ! Darwin 8.0-8.11 | ||
+ | ! | ||
+ | ! Mac OS X v.10.4.0-10.4.11 | ||
+ | |- | ||
+ | ! Darwin 9.0-9.1 | ||
+ | ! | ||
+ | ! Mac OS X v.10.5.0-10.5.1 | ||
+ | |} | ||
+ | |||
+ | === Versioning confusion === | ||
+ | |||
+ | As mentioned over on [http://www.nextcomputers.org/forums/viewtopic.php?p=7625 this thread at nextcomputers.org], that although there was a released memo explaining the logic behind the version number changes so that way Darwin would match up to the build number of XNU, it lead to great confusion. However this letter at least sets it to the original intent. | ||
+ | |||
+ | <pre> | ||
+ | New Darwin Versioning Scheme | ||
+ | |||
+ | As of Software Update 1 for Mac OS X v10.1, we have moved to a new | ||
+ | numbering policy for the Darwin portions of Mac OS X. It you type | ||
+ | "uname -a" from the command-line, you will see that the Darwin version | ||
+ | number has changed to "5.1" (actually 5.1.0), which better aligns | ||
+ | Darwin's numbering scheme with our internal build processes. The "5" | ||
+ | refers to the major release - "4" was Mac OS X v10.0, and the earlier | ||
+ | numbers represented developer releases. The minor version '1' is | ||
+ | generally the update number, and the final number (e.g, the "0" in | ||
+ | 5.1.0) represent 'variants'. For example, under the new scheme, the | ||
+ | Darwin in Mac OS X v10.1 would've been '5.0.0' whereas the Open Source | ||
+ | Darwin version released immediately afterwards (1.4.1) would've been | ||
+ | "5.0.1". | ||
+ | |||
+ | We apologize for any disruption this may cause existing projects, and | ||
+ | hope this change will enable us to provide greater consistency in the | ||
+ | future. | ||
+ | |||
+ | Sincerely, | ||
+ | Ernie Prabhakar | ||
+ | </pre> | ||
+ | |||
+ | The following releases can be downloaded [https://web-beta.archive.org/web/20090903180055/https://opensource.apple.com/static/iso/ here]: | ||
+ | *[https://sourceforge.net/projects/aapl-darwin/files/Darwin-1.0/Apple-CDROM/Darwin-1.0.toast/download Darwin 1.0 - OS X 10.0 DP 4] - [[Darwin 1.0 Release notes|Release notes]] | ||
+ | *[https://opensource.apple.com/static/iso/darwinx86-141.iso.gz Darwin 1.4.1 - OS X 10.1 x86] - [[Darwin 1.4.1 Release notes|Release notes]] | ||
+ | *[https://opensource.apple.com/static/iso/darwinppc-141.cdr.gz Darwin 1.4.1 - OS X 10.1 ppc] - [[Darwin 1.4.1 Release notes|Release notes]] | ||
+ | *[https://opensource.apple.com/static/iso/darwinx86-602.iso.gz Darwin 6.0.2 - OS X 10.2 x86] - [[Darwin 6.0.2 Release notes|Release notes]] | ||
+ | *[https://opensource.apple.com/static/iso/darwinppc-602.cdr.gz Darwin 6.0.2 - OS X 10.2 ppc] - [[Darwin 6.0.2 Release notes|Release notes]] | ||
+ | *[https://opensource.apple.com/static/iso/darwin-701.iso.gz Darwin 7.0.1 - OS X 10.3.1 unknown] - [[Darwin 7.0.1 Release notes|Release notes]] | ||
+ | *[https://opensource.apple.com/static/iso/darwinx86-801.iso.gz Darwin 8.0.1 - OS X 10.4 x86] - [[Darwin 8.0.1 Release notes|Release notes]] | ||
+ | *[https://opensource.apple.com/static/iso/darwinppc-801.cdr.gz Darwin 8.0.1 - OS X 10.4 ppc] - [[Darwin 8.0.1 Release notes|Release notes]] | ||
+ | |||
+ | === Getting this to run === | ||
+ | Compatibility is a mixed bag, and it was just as bad at the time, and on real hardware. | ||
− | == | + | ==== Darwin 1.4.1 ==== |
− | + | Recently I've found that it will run using Qemu 2.7. | |
+ | I didn't have to do anything special and I've written about it [https://virtuallyfun.superglobalmegacorp.com/2016/09/20/darwin-1-4-1-installs-on-qemu-2-7/ here]. | ||
+ | ==== Darwin 8.0.1 ==== | ||
+ | Darwin 8.0.1 to run under [[Qemu]] 0.13.0. As far as I know 1.4.1, has some kind of CPU issue, and 6.0.1 and 7.0.1 all have ACPI issues. | ||
Installation is pretty simple, a config like this is more then enough to get going: | Installation is pretty simple, a config like this is more then enough to get going: | ||
Line 18: | Line 205: | ||
C:\qemu-0.13.0>qemu.exe -L pc-bios -m 256 -hda 4gc.disk -cdrom 801.iso -net nic,model=e1000 -net user -no-reboot -boot d</pre> | C:\qemu-0.13.0>qemu.exe -L pc-bios -m 256 -hda 4gc.disk -cdrom 801.iso -net nic,model=e1000 -net user -no-reboot -boot d</pre> | ||
− | == What runs == | + | <!-- == What runs == --> |
+ | ==See also== | ||
+ | |||
+ | * [[Darwin 6.0.1 Release notes]] | ||
+ | |||
+ | {{Nav Unix}} | ||
+ | |||
+ | [[Category: Apple Operating Systems]] |
Latest revision as of 16:58, 13 January 2024
Darwin is the open source core of OS X.
Contents
Rhapsody
In the beginning of the project it was a fork of OPENSTEP. As far as I've been able to track down there have been 3 public releases of this OPENSTEP Darwin. And there have been several more public releases, up to and including OS X Server 1.0 which was based on the OPENSTEP kernel. Further complicating things, Darwin 0.1 reports itself as Rhapsody 5.3, while Darwin 0.2 and 0.3 report themselves as Darwin 0.2/0.3
From the source code of Darwin 0.1, The kernel is based on OS/F's 6.1 kernel. This is evident in boolean.h as an example:
/* * OSF Research Institute MK6.1 (unencumbered) 1/31/1995 */
The following is a table of versions I've been able to put together with information from the Rhapsody Resource Page, and a mirror of the Darwin Q&A.
Kernel Version | OS Name | OS X Version | Darwin Version | Code name |
---|---|---|---|---|
5.0 | Rhapsody | Rhapsody Developer Release | N/A | Grail1Z4 |
5.1 | Rhapsody | Developer Release 2 | N/A | Titan1U |
5.2 | Rhapsody | Rhapsody 1.0 | N/A | Unknown |
5.3 | Rhapsody | Mac OS X Server 1.0 | Darwin 0.1 | Hera1O9 |
5.4 | Rhapsody | Mac OS X Server 1.0.1 | Darwin 0.2? | Loki1A2 |
5.5 | Rhapsody | Mac OS X Server 1.0.2 | Darwin 0.3 | Loki2G1 |
5.6 | Rhapsody | Mac OS X Server 1.2 | N/A | Pele1Q10 |
5.6 | Rhapsody | Mac OS X Server 1.2v3 | N/A | Medusa1E3 |
Getting this to run
i386
Darwin 0.x can be built using a Rhapsody/OS X Server 1.0 binary system as a starting point. However when it comes to emulation and physical hardware the EIDE driver has a problem losing interrupts. It is not only a problem with Darwin/Rhapsody but on physical machines as well. This poses a challenge to 'white box' builders to this day. However the emulator Qemu 0.90 can run Rhapsody albeit with a busmouse driver.
For the sake of preservation, the preserved downloads from Darwin 0.1 are on archive.org. Some components in the 0.1 tars didn't make it to the 0.3 CD-ROM so they are needed to build a more 'complete' set.
At this moment I have the following version of Darwin setup to run on Qemu:
* Darwin 0.3
PowerPC
There has been tremendous improvements to Qemu, and it is now possible to install MacOS 9, and OS X Server 1.x, along with OS X 10.x. Darwin for the PowerPC doesn't have an actual installer on the discs, but rather you boot up into MacOS, and restore a disk backup from CD onto your target hard disk, and boot into that. Information can be found about the progress of the Qemu PowerPC on emaculation.com
Currently I have images of 0.3 & 1.0.2:
* Darwin-0.3.toast * DarwinOS-1.0.2.dmg
The process right now involves installing MacOS 9, as 8.6 included on the 0.3 currently doesn't boot. And likewise, the restore program on 0.3 won't run under MacOS 9, but the restore program from the 1.0.2 image will run on MacOS 9.
For the impatient, I do have the images already extracted and setup with Qemu
* Darwin03-PowerPC_qemu-2.11_04_22_2018.7z * Darwin1.00PowerPC_qemu-2.11_04_22_2018.7z
Currently there is no networking.
XNU
After the release of OS X Server 1.0, it was clear at this point that OS X was doomed, as 3rd party software vendors expressed no interest in porting applications to OPENSTEP/Cocoa API's. Instead Apple would have to go and create the Carbon framework, allowing traditional MacOS applications to use a subset of the toolbox API, and then be ported to OS X. Along the way the older OPENSTEP kernel was dropped in favor of a newer kernel based on Mach 3.0 and a C++ driver framework.
The Darwin OS includes both the XNU kernel, along with all the free tools.
As far as I recall it started being fully distributed in Darwin 1.0, which was a PowerPC only release, while later releases included native support for the x86.
Version | Released | Corresponds With |
---|---|---|
Darwin 1.0 | April 2000 | Mac OS X Developer Preview 4 |
Darwin 1.2 | October 2000 | Mac OS X Public Beta |
Darwin 1.3.1 | April 2001 | Mac OS X 10.0.1 |
Darwin 1.4.1 | Fall 2001 | Mac OS X 10.1 |
Darwin 5.1-5.5 | Mac OS X v.10.1.1-10.1.5 | |
Darwin 6.0-6.8 | Mac OS X v.10.2.0-10.2.8 | |
Darwin 7.0-7.9 | Mac OS X v.10.3.0-10.3.9 | |
Darwin 8.0-8.11 | Mac OS X v.10.4.0-10.4.11 | |
Darwin 9.0-9.1 | Mac OS X v.10.5.0-10.5.1 |
Versioning confusion
As mentioned over on this thread at nextcomputers.org, that although there was a released memo explaining the logic behind the version number changes so that way Darwin would match up to the build number of XNU, it lead to great confusion. However this letter at least sets it to the original intent.
New Darwin Versioning Scheme As of Software Update 1 for Mac OS X v10.1, we have moved to a new numbering policy for the Darwin portions of Mac OS X. It you type "uname -a" from the command-line, you will see that the Darwin version number has changed to "5.1" (actually 5.1.0), which better aligns Darwin's numbering scheme with our internal build processes. The "5" refers to the major release - "4" was Mac OS X v10.0, and the earlier numbers represented developer releases. The minor version '1' is generally the update number, and the final number (e.g, the "0" in 5.1.0) represent 'variants'. For example, under the new scheme, the Darwin in Mac OS X v10.1 would've been '5.0.0' whereas the Open Source Darwin version released immediately afterwards (1.4.1) would've been "5.0.1". We apologize for any disruption this may cause existing projects, and hope this change will enable us to provide greater consistency in the future. Sincerely, Ernie Prabhakar
The following releases can be downloaded here:
- Darwin 1.0 - OS X 10.0 DP 4 - Release notes
- Darwin 1.4.1 - OS X 10.1 x86 - Release notes
- Darwin 1.4.1 - OS X 10.1 ppc - Release notes
- Darwin 6.0.2 - OS X 10.2 x86 - Release notes
- Darwin 6.0.2 - OS X 10.2 ppc - Release notes
- Darwin 7.0.1 - OS X 10.3.1 unknown - Release notes
- Darwin 8.0.1 - OS X 10.4 x86 - Release notes
- Darwin 8.0.1 - OS X 10.4 ppc - Release notes
Getting this to run
Compatibility is a mixed bag, and it was just as bad at the time, and on real hardware.
Darwin 1.4.1
Recently I've found that it will run using Qemu 2.7. I didn't have to do anything special and I've written about it here.
Darwin 8.0.1
Darwin 8.0.1 to run under Qemu 0.13.0. As far as I know 1.4.1, has some kind of CPU issue, and 6.0.1 and 7.0.1 all have ACPI issues. Installation is pretty simple, a config like this is more then enough to get going:
C:\qemu-0.13.0>qemu.exe -L pc-bios -m 256 -hda 4gc.disk -cdrom 801.iso -net nic,model=e1000 -net user -no-reboot -boot d
See also
v • d • e UNIX Versions, Vendors and Related |
---|
Research Unix PDP-7 UNIX • V1 • V2 • V3 • V4 • V5 • V6 • V7 • V8 • V9 • V10 • LSX • MINI-UNIX • Unix/32V
AT&T - CB-UNIX • PWB/UNIX • USG UNIX • System III • System IV • System V BSD - 2.9 BSD • 2.10 BSD • 2.11 BSD • 3BSD • 4BSD • 4.1 BSD • 4.2 BSD • 4.3 BSD • 4.4 BSD BSD Descendants 386BSD • NetBSD • FreeBSD • OpenBSD • NeXTSTEP • Darwin |
Other - xv6 • AMIX • SunOS • Solaris • ULTRIX • A/UX • XENIX • AIX • Dell UNIX |