2 ms·
And Mach was a modified 4.2BSD kernel adding microkernel aspects. It was literally written as a drop in replacement for BSD. The kernel also includes code from
by notaplumber 8y ago
And Mach was a modified 4.2BSD kernel adding microkernel aspects. It was literally written as a drop in replacement for BSD.
The kernel also includes code from BSD, source is available, including from FreeBSD/NetBSD and OpenBSD. For example, the network stack is BSD code. It also includes OpenBSD's pf(4).
For example, there was a recent ICMP vulnerability in XNU, that later affected FreeBSD. So please reconsider posting misinformation in the future.
- TickleSteve 8y agoIf you look at the comments below, I'm well aware of the repo containing XNU and BSD. Mach was not a modified BSD kernel, it was a research kernel developed at CMU developed from the Accent and Aleph kernel(s) as a replacement for the BSD kernel, nothing to do with BSD excepting that BSD took some ideas from it... later. https://en.wikipedia.org/wiki/Mach_(kernel) https://en.wikipedia.org/wiki/Mach_(kernel) Look at the repo, the BSD sources are nothing but a userland (POSIX) API layer + the odd device compatibility layer. Please refrain from posting misinformation in the future.
- notaplumber 8y agohttps://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/kern/ https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/ke... https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/net/ https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/ne... https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/netinet/ https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/ne... https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/netinet6/ https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/ne... You will find RCS tags for OpenBSD/NetBSD/FreeBSD littered throughout the kernel source tree, some files even retaining original SCCS ids from 1980's CSRG days. $ grep -R "\$OpenBSD:" | wc -l 24 $ grep -R "\$NetBSD:" | wc -l 138 $ grep -R "\$FreeBSD:" | wc -l 162 $ grep -R "\$KAME:" | wc -l 73 $ grep -R "WIDE Project" | wc -l 87 $ grep -R "The Regents" | wc -l 427 $ grep -R "Berkeley" | wc -l 919 This isn't "userland (POSIX) API layer + the odd device compatibility layer", far from it. Don't presume to know who you're talking smack to, when it's clear you have absolutely no idea what you're talking about.
- TickleSteve 8y agooh dear... you're using line counts as an argument? seriously? its a "micro" kernel... its small! I'm talking architecturally... look at the real history, the Aleph->Accent->Mach set of kernels was from a different tree. The research program was to see if they could replace the BSD kernel with a Mach-type kernel and get the benefits of new kernel + POSIX/BSD userland... the research was a success. Just tell me what mode that the BSD code was being run in? superviser or user mode? back in the Mach days, BSD code was user-mode code, explicitly not supervisor mode, that was the point. That has likely now changed, but we're debating the origin here, not the current state. This does not mean that Mach was "derived from" BSD.