Talk:XNU
This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||
|
Two things
[edit]Two things:
- I think it is important to mention Mac OS X as a lot more people use it than Darwin, and a lot more people will recognise the OSX name than the Darwin name.
- If we are going to be specific that XNU code is from the FreeBSD kernel not the FreeBSD operating system, then we should then be specific that XNU code is from the Mach kernel not the Mach operating system. AlistairMcMillan 22:34, 24 Sep 2004 (UTC)
- Is Mach an operating system? – Mipadi 03:24, 18 December 2005 (UTC)
- Mach is only a kernel, to be specific, it is a microkernel, most important part of the operating system. XNU is the operating system what use Mach microkernel. Darwin is the development platform what combines XNU operating system and compile tools and settings. Mac OS X is the software system what includes Darwin and other Mac OS X technologies. The XNU is not kernel. It is the complete operating system what includes some FreeBSD operating system parts to offer filesystem and network stack. The FreeBSD is monolithic kernel == operating system. Monolithic kernels are alone operating systems. Microkernels are not operating systems but parts of it. The operating systems were first monolithic kernels. Then later OS designers got idea to improve the security and stableness of the operating systems by slicing them to parts. To a small microkernel and then OS servers (modules) what were running as supervisor mode together with the microkernel. Together the microkernel + OS servers build up the operating system as the monolithic kernel was alone. The XNU is marketed as "hybrid kernel" what is actually microkerne-based operating system but just OS servers located little different way, but still separated from the kernel itself. I must admit that this is very difficult topic to many. Because marketing from big companies and even from GNU hides the truth behind own purposes of fame. 62.165.184.109 (talk) 20:37, 30 August 2009 (UTC)
- I think Alistair is right that MacOS should be mentioned a lot more. In particular, there should be a summary of what MacOS provides that XNU does not in order to make a complete operating system. Also, the page states that XNU is "open source", which implies I could compile a custom kernel for MacOS. Is that correct or does Apple use key signing to prevent it? How much freedom does the kernel being open source actually give MacOS users? Ben (talk) 22:09, 19 March 2021 (UTC)
acronym?
[edit]Can anyone verify that XNU actually stands for XNU's Not Unix ("is" probably shouldn't be listed as its own word of it would be XINU)? Most references on the Internet seem to be speculation (or speculation repeated as fact). —The preceding unsigned comment was added by 63.227.67.1 (talk • contribs) 21:23, 15 July 2005 (UTC)
- It stands for X is Not Unix—I looked it up on Apple's website; – Mipadi 03:24, 18 December 2005 (UTC)
- Thanks for the citation (sorry for taking so long to reply, I was unregistered back when I made the request). I'm curious if someone has quick access to older ADC documentation. I don't recall seeing the phrase until relatively recently, and I'm curious if there's some evidence of X is Not Unix being some kind of backronym. -rasd —The preceding comment was added by Rasd (talk • contribs) 18:39, 26 April 2006 (UTC)
- They don't use the name XINU because this name was already used by an operating system made by douglas COMER for teaching purpose (and published in the "xinu book") - yoann padioleau
- It sounds an awfull lot like GNU's Not Unix (se the GNU article) so X is Not Unix does't make much sense to me in this context (X is the display manager isn't it?)? XNU's Not Unix seems more logical. But the apple page indeed say X. :S
- --Apis O-tang 08:25, 16 October 2007 (UTC)
- No, the display manager in Mac OS X is the Quartz Compositor; the native GUI in OS X doesn't use the X Window System. I'm not sure what the "X" in "X is not UNIX" stands for, but it's not the X Window System - it's probably "X" as in "OS X". Guy Harris 08:50, 16 October 2007 (UTC)
- Yes, but XNU was from NeXTSTEP right? (and they might have used X as a display manager, although I don realy know). So when XNU was developed, the name OS X didn't even exist... unless it was originally developed under another name and later renamed XNU for use in Mac OS X?
- --Apis O-tang 15:51, 17 October 2007 (UTC)
- XNU is descended from, among other things, the kernel in NeXTSTEP. As far as I know, the NeXTSTEP kernel was not called "XNU". NeXTSTEP did not use the X Window System, either; it used Display PostScript. Guy Harris 20:46, 17 October 2007 (UTC)
- Ahh, well it makes more sense to me now, thanks for the information :). It sounds reasonable that X refer to the x in Mac OS X then, as you sugested.
- --Apis O-tang 00:30, 18 October 2007 (UTC)
- I thought the X in Mac OS X stands for 10. ;-) --Kickino (talk) 01:57, 8 March 2009 (UTC)
- the X on the XNU stands for 10. Thats why it is called Mac OS X. OS X means tenth operating system from Apple. The XNU is result from the NeXTStep. Apple toke Linux operating system (kernel) and designed the MkLinux from it. MkLinux is Linux operating system but changed to work like microkernel based OS and not as monolithic. MkLinux was Apple's first open source project and project to design new operating system for NeXTStep. Then Apple toke Mach microkernel, FreeBSD operating system (=monolithic kernel) and sliced from it filesystem and network stack. Builded the I/O kit for them and then got microkernel-based operating system XNU, what it used as operating system for next software system called Mac OS X. 62.165.184.109 (talk) 20:44, 30 August 2009 (UTC)
- According to the now released source code of XNU; "XNU is an acronym for XNU is Not Unix"
- Kirkgaard (talk) 21:06, 3 October 2017 (UTC)
Darwin userland
[edit]Mac OS X was originally populated with mostly NetBSD userland. It wasn't heavily moved to FreeBSD until later (I suspect once Jordan Hubbard was brought into Apple from the FreeBSD project). —The preceding unsigned comment was added by 68.158.68.247 (talk • contribs) 5:39, 20 February 2007 (UTC).
Seconded. Wilfredo Sanchez was a NetBSD developer for a while synching the userland trees between Darwin and NetBSD. NetBSD's portability made it easier for Apple to get a current userland (instead of the crufty NeXT/Rhapsody one). The move to FreeBSD was only AFTER Jordan was on-board at Apple and was in a management position. Because of the incestuous nature of BSDs, the differences in userlands are generally innocuous. 71.12.163.234 (talk) 11:46, 28 October 2010 (UTC)
ARM processor too?
[edit]The article now states: "Currently, XNU runs on x86 (Intel and AMD) and PowerPC based processors...". Didn't Apple also have to port XNU to the ARM architecture, in order to get a trimmed down OS X to run on the iPhone (which appears to be ARM-based)? --Georgeryp 03:54, 7 September 2007 (UTC)
- Yes, and it now runs on ARM64-based Macs. I've updated that to indicate that it currently supports ARM64 and x86-64, and to indicate when 32-bit x86 and 32-bit ARM support were dropped (and to use the {{as of}} template). Guy Harris (talk) 20:58, 5 February 2021 (UTC)
more on userspace drivers?
[edit]i appreciate the limited mention of user space drivers, but would appreciate a bit more info. kernel space drivers are mentioned, as is the possibility of writing user space drivers, but no actual user space drivers are mentioned. are there any? are there likely to be any?
this is supposedly an architectural advantage, so whether it actually pays off in practice is significant. —Preceding unsigned comment added by 69.253.239.161 (talk) 17:59, 15 May 2008 (UTC)
performance and scalability?
[edit]some discussion of performance compared with other operating systems as well as how well xnu scales when deployed on multiple cores or processors would be welcome. —Preceding unsigned comment added by 69.253.239.161 (talk) 19:34, 15 May 2008 (UTC)
Pronunciation
[edit]Which is correct? Zee-New or X-N-U? --76.100.200.168 (talk) 03:03, 25 July 2008 (UTC)
Ex-Enn-You - Apple aren't Xenu fans ;) —Preceding unsigned comment added by 88.107.165.198 (talk) 10:19, 5 February 2009 (UTC)
- Great. Now we can argue over whether it's "officially" pronounced ten-en-you. :) MFNickster (talk) 02:05, 29 March 2009 (UTC)
- official pronunciation is snoo — Preceding unsigned comment added by OMPIRE (talk • contribs) 20:01, 7 May 2014 (UTC)
- [citation needed] Guy Harris (talk) 20:51, 7 May 2014 (UTC)
It's meant to be part of a joke, as in "what's XNU?" — Preceding unsigned comment added by OMPIRE (talk • contribs) 20:55, 7 May 2014 (UTC)
Message passing within the kernel?
[edit]Mach message passing is pretty well documented elsewhere but how it works in XNU seems a bit mysterious. How much of the Mach Microkernel's communication protocol is maintained? —Preceding unsigned comment added by 69.136.108.216 (talk) 17:04, 2 March 2009 (UTC)
Licensing
[edit]Does the kernel contain any AT&T/Novell or CMU copyrighted code. If so, was a license purchased outright? If not, when was it purged? -- Beland (talk) 15:29, 6 March 2009 (UTC)
- I refer the honourable gentleman, to my previous answer. AlistairMcMillan (talk) 19:15, 6 March 2009 (UTC)
"Reception" section
[edit]Over and above the issues brought up in the comment for the edit removing the "Reception" section, the article that section cited isn't really a very good review - it's a speculative comment about what the author thought was one particular aspect of XNU. And, while he was criticizing Mach for "[putting] anything that accesses hardware into the microkernel", he was also criticizing microkernels for all the context switches between user processes that they require. XNU not only puts network and storage drivers in the kernel, it also puts the stuff that calls the network and storage drivers - file systems and networking stacks up to the transport layer - into the kernel. That's why it's sometimes labeled a hybrid kernel, although a certain other Linux fan considers "hybrid kernels" to just be marketing.
So I'd say the removal of that section, in the state it was in, was no loss. Guy Harris (talk) 18:34, 16 July 2015 (UTC)
Can the 32-bit kernel really run 64-bit apps?
[edit]Is it really true that "K32 can run 64-bit applications"?
Can we please have a citation for this surprising claim?
With other operating systems such as Linux and Windows, a 32-bit kernel cannot run 64-bit executables. — Preceding unsigned comment added by 61.68.87.30 (talk • contribs) 06:30, 4 July 2017 (UTC)
- "Is it really true that "K32 can run 64-bit applications"?" Yes.
- "Can we please have a citation for this surprising claim?" Yes. John Siracusa (August 31, 2009). "Mac OS X 10.6 Snow Leopard: the Ars Technica review". Ars Technica.
Finally, this is worth repeating: please keep in mind that you do not need to run the 64-bit kernel in order to run 64-bit applications or install more than 4GB of RAM in your Mac. Applications run just fine in 64-bit mode on top of the 32-bit kernel, and even in earlier versions of Mac OS X it's been possible to install and take advantage of much more than 4GB of RAM.
- "With other operating systems such as Linux and Windows, a 32-bit kernel cannot run 64-bit executables." That's because they didn't bother to do the work that Apple did. The lack of support for it in some kernels does not imply the inability to support it in any kernel. Guy Harris (talk) 07:01, 4 July 2017 (UTC)
According to Apple, XNU is a pure monokernel, not a hybrid
[edit]In many documents, like this one, Apple's own kernel engineers flatly state that XNU is not a hybrid kernel: " xnu is not a traditional microkernel as its Mach heritage might imply... the kernel is in fact monolithic". To implement that, "... message passing was short circuited by having BSD directly call Mach functions"
This article states it is a hybrid. Unless I am mistaken, that is not the case. In the article on hybrids, much of the operating system still contains items that have been moved from kernel space to user space, like the file system. I believe all of these are in kernel space in XNU, and the appropriate diagram is the one on the left.
Thoughts?
Maury Markowitz (talk) 15:25, 6 June 2024 (UTC)
- According to Linux Torvalds, "hybrid kernel" is a marketing term.[1]
- I'm inclined to agree with him.
- In NT, the file system drivers run in kernel mode and are called from other kernel-mode code. There are add-on mechanisms that support that for Windows, but there are mechanisms for doing that with the kernel originally created by Mr. Torvalds and for macOS and so on. Filesystem in Userspace (FUSE) was originally a Linux mechanism; PUFFS was originally a NetBSD mechanism.
- And, even before FUSE/PUFFS, userland NFS servers were a trick used to put file systems into userland (FTPFS in macOS, automounter file systems in SunOS and other UN*Xes), and macOS's WebDAVFS had a specialized kernel stub and a userland process that plugged into it.
- And macOS had traditionally put many classes of device drivers in kernel space, but DriverKit now lets them be implemented in userland (at least on a VMware Fusion virtual machine, I noticed that at least one network driver had been moved to userland after a software update - it was an update to a beta, and I noticed because it had lost network connectivity when the userland process running the driver had crashed without the system crashing).
- So I'm unconvinced that there's a firm line between monolithic kernels and "hybrid kernels". Guy Harris (talk) 18:21, 6 June 2024 (UTC)
References
- ^ "Linus Torvalds".
As to the whole "hybrid kernel" thing - it's just marketing. It's "Oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has.