

NeXTBSD aka FreeBSD X - tachion
http://www.slideshare.net/iXsystems/nextbsd-aka-freebsd-x

======
gh02t
Any idea what the purpose is to this? I'm not putting it down, I'm just
looking for context. The annotations say this work is being done at iXsystems,
best known for being the stewards of FreeNAS, but this project seems to be
separate.

~~~
Sanddancer
This has a feeling very much of a research project to see how well an init
framework like launchd would work in FreeBSD. There's been talk amongst a lot
of developers that the current init needs to be replaced by /something/, but
that something is still up in the air.

~~~
vezzy-fnord
It's not just launchd, it's the entire low-level OS X userspace.

Nor is it research. It very much appears to be commercial, since it's
undertaken by iXsystems. They're integrating it into FreeNAS and I think PC-
BSD will follow suit. End goal appears to be get upstream FreeBSD in it, too.

There's nothing of research value here. It's Mach. It's practically an
anachronism to do such a thing deliberately.

I actually have quite a lot to say on this topic, so I think I'll write an in-
depth blog post on it.

~~~
byuu
> They're integrating it into FreeNAS and I think PC-BSD will follow suit.

And this is why I won't use any of the "FreeBSD made easy!" distros: FreeNAS,
PC-BSD, pfSense, etc. Better to learn how to configure the official release to
your intended use case.

> CTO is Jordan Hubbard

I swear, every last OS always has to have one of those "let's replace all this
stuff that's worked for 40 years and go with all this brand-new, much more
complicated stuff because old = bad, new = good!" types.

People just don't like the idea of incremental improvements, nor find beauty
in simplicity anymore.

~~~
gonzo
> And this is why I won't use any of the "FreeBSD made easy!" distros:
> FreeNAS, PC-BSD, pfSense, etc.

one of the main people behind pfSense here...

You're not the target audience.

------
hoistor
Disappointing really, but I think it's unlikely to make it upstream. Perhaps
I've missed some of the advantages to taking this approach though.. Or .. any
of them?

I'd be completely onboard with SMF replacing the init system on all my fbsd
boxes though (I have many on bare metal with linux under bhyve for various
things that need it).

I don't think that's an easy port though with the contract system etc solaris
had for process accounting.

Ahhh. I miss solaris. FreeBSD is almost where we were feature wise before
oracle killed it (zfs, dtrace, jails(iocage) etc).

~~~
quesera
> Ahhh. I miss solaris.

The illumos, SmartOS, and Joyent folks are doing a fantastic job moving
Solaris forward. That's where all the action is these days.

FreeBSD is doing great stuff too, with their more conservative approach, and
drastically fewer resources.

~~~
bensummers
Try OmniOS for a great Solarish server OS.

~~~
hoistor
I used SXCE, OpenSolaris and finally SmartOS for a while after the death, and
unfortunately the benefits just werent' really there any more. I also hit some
pretty nasty performance issues storage wise on my OVH gear (some interrupt
related issue, unsure if fixed, but it was well above my head to grok, and I'
not terribly new to this) which were instantly solved by converting to BSD.

With FreeBSD, the userland is pretty capable (I run all my DBs, some node
apps, reverse proxies etc under it) so jails kinda made sense again. With
SmartOS I had to run most of my stuff under KVM, so what was the point?

Interesting to see what direction the linux abi stuff joyent are working on
goes though.

------
cpeterso
FreeBSD + Mach kernel, libdispatch, and launchd? How does this differ from
Darwin?

~~~
kitsunesoba
I may be misunderstanding, but as far as I know it simply layers Mach kernel
services onto the FreeBSD kernel rather than actually using Mach.

~~~
vezzy-fnord
Correct. There's an OSF Mach shim running as a FreeBSD kernel module which is
then used to drive XPC and everything above.

That said, I feel rather uneasy about the base FreeBSD going such a verbatim
OS X route. I can understand doing it for FreeNAS, PC-BSD and derivatives, but
it's quite invasive for upstream. Especially considering this requires running
a parallel Mach kernel in the same address space.

Also, using Mach IPC deliberately in 2015 is like shooting yourself in the
foot in my mind, but it's probably better than kdbus.

~~~
erikarn
There's no parallel Mach kernel running. It's just Mach IPC shimmed as an FD
type.

~~~
vezzy-fnord
It's a kernel module implementation of much of OSF Mach verbatim copied and
shimmed from MkLinux, not just IPC. See sys/compat/mach in the NextBSD source
tree.

~~~
erikarn
Yeah I looked; it's the IPC from Mach with some shimmed bits to do VM-y things
for mapped message passing.

Mach was mostly VM and IPC - so of course it looks like it's a lot of Mach
code. But there's no separate mach kernel running - it's just the IPC
instances and they only exist as FD bits. It's not a complete kernel and
FreeBSD isn't running "on" mach.

~~~
vezzy-fnord
I never made such a claim that FreeBSD is running on Mach. I said it
integrated a Mach kernel interface as a module running in kernel space.

They also ported tasks (as processes), threads (kthreads) and some clock/timer
stuff, as well. No memory objects because there's no external pager they can
be backed from.

------
webaholic
I wish they would outline their plans to integrate these technologies with
FreeBSD. It is time for Apple (by way of their innovations) to feed the base
which they used to build Mac OS X. How willing is the FreeBSD upstream to
integrate these?

~~~
iheartmemcache
Very. The core committers have a direction in which they'll take FreeBSD, but
compared to say OpenBSD, it's a very open community. Colin who posts here
frequently is pretty influential in the community as I recall.

I'm horribly disappointed in the way that Apple seems to give back barely
anything to the community. Google and Facebook's github is populated with
dozens of projects. Granted, some are in a state of disrepair, others are
incredibly useful. E.g., the state of open source static analysis is on par
with Coverity at this point for our 300k line C++ project. I'm a bit of a
tinfoil privacy nut, but thanks Google and Facebook, you guys rule!

~~~
erikarn
Apple publish and give back heaps to the open source community.

[http://opensource.apple.com/release/os-x-10103/](http://opensource.apple.com/release/os-x-10103/)

.. they're just not fanboys about it.

~~~
dmd
That appears to be open source software that Apple is using (and is required
to publish the source for, under that software's license) -- not software
Apple has written and is releasing.

~~~
gilgoomesh
Read the list again. Most of Apple's major packages are there.

xnu (the kernel), Libsystem (C/C++ core libs), CommonCrypto/Security, CF
(CoreFoundation), IOKit et al, hfs, Apple SMB and more.

It doesn't include a number of other Apple projects that are hosted elsewhere
like launchd, libdispatch, clang/llvm.

~~~
laumars
You're right that Apple gets a lot of criticism for not supporting open source
yet host a lot of open source projects. But I think a lot of the criticism
comes about because Apple's commitment to open source often comes with
caveats. To use a few examples from your list:

* XNU is based on existing open source software. You're right that Apple had no obligation to release the source of XNU given the permissive licences of the parent code. But equally it feels a little disingenuous to congratulate a company for releasing their code to a project that was open source to begin with anyway.

* Apple SMB referenced from Samba code and only created because Samba changed licence to GPLv3.

* Clang/LLVM isn't an Apple owned project. Though I will granted you that they are major contributors to it.

I cannot blame Apple for wanting to keep their proprietary inventions closed.
They are a business after all so I'd expect them to put their business
interests ahead of "good will".

------
bnastic
Jordan Hubbard mentions some of his reasoning behind going back to what he did
at Apple (among other things) in this thread:
[https://lists.freebsd.org/pipermail/freebsd-
hackers/2015-Aug...](https://lists.freebsd.org/pipermail/freebsd-
hackers/2015-August/048090.html)

~~~
laumars
That message was posted by Bill Sorenson, so not sure if it's the message you
were intending to link to. However it's still a good read even if it wasn't
the intended mail.

~~~
xenophonf
See later in the thread:

[https://lists.freebsd.org/pipermail/freebsd-
hackers/2015-Aug...](https://lists.freebsd.org/pipermail/freebsd-
hackers/2015-August/048116.html)

------
kev009
As a FreeBSD user, developer, and fan, I'm excited that they are digging into
some of this stuff. My amateur question is just wonder if adding a ton of new
KPIs is really necessary, or could be done in a more holistic thinking way.

------
bbatha
I wonder if you could glue microsoft's ios emulation layer on top of this and
get the basis of an open source ios/os x?

~~~
0x0
No because microsoft's implementation calls to win32 and XAML for everything.

Also, would you trust an implementation that thinks this is an OK
implementation of arc4random()? (even if it was fixed later?) -
[https://github.com/Microsoft/WinObjC/blob/59a63e42a9d10da8aa...](https://github.com/Microsoft/WinObjC/blob/59a63e42a9d10da8aadbf8d3b6c10fd02e6b40c6/Frameworks/CoreFoundation/CFMisc.mm#L28)

~~~
neverartful
But if you throw in wine... I say this in jest, but it does make me wonder.

~~~
pjmlp
First Wine needs to understand WinRT application model.

------
sergiolp
A curious (and probably unintended) side effect, is that if its implementation
of the Mach API is complete enough, this should allow to run Hurd user space
server/translators on FreeBSD.

Not sure if useful, but would be cool (in a weird, nerdy way) anyway.

~~~
vezzy-fnord
It isn't. For one thing, it's a port of an old OSF Mach kernel. Hurd uses GNU
Mach, which is descended from CMU Mach 3.0. They don't support memory objects,
their threading is bare bones, they assume a bootstrap server and there would
be no way to actually get glibc and Hurd RPC working.

~~~
sergiolp
The OSF vs GNU Mach thing is not a problem. It was years ago, but I managed to
run a Hurd translator statically linked against a slightly modified glibc on
OSF Mach (the one bundled with MkLinux, you can see its code on my repo
[https://github.com/slp/mkunity](https://github.com/slp/mkunity)).

In fact, if you look at Mach support code on glibc's code, you'll see build
time conditionals for supporting non-GNU Mach versions.

The bootstrap server is not a problem either, but the lack of memory object
would indeed break all libpager based translators, among other stuff.

As a PoC, I wrote a filesystem translator
([https://github.com/slp/anonfs](https://github.com/slp/anonfs)) which doesn't
rely on memory objects, implementing conventional read/write semantics (no
mmap() support, though).

~~~
vezzy-fnord
The option of using MkLinux as a host has been raised as a hypothetical since
many years ago, but was never tried. I don't have spare PPC hardware in mind,
but that's interesting to hear it works.

Porting the NextBSD work to the Linux kernel API is certainly something on my
list in case rump integration for Hurd doesn't pan out, in any event.

------
gjvc
where / when was this presented?

~~~
glitch
Bay Area FreeBSD User Group (BAFUG) August 2015 meeting. There's a video
recording available at [http://www.nextbsd.org/jordan-hubbard-visits-
bafug/](http://www.nextbsd.org/jordan-hubbard-visits-bafug/)

~~~
gjvc
just found it, thank you.

------
michaelpinto
Dumb question: Could this give me a NeXT desktop in VMware? And could it run
old NeXTstep software?

~~~
terhechte
You can already have that by installing a Gnustep based disto like Etoile.

[http://etoileos.com/etoile/](http://etoileos.com/etoile/)

Or apt-get'ing Gnustep on any modern Linux. Any OpenStep compatible app should
compile and run. Modern Cocoa apps won't necessarily work because Gnustep
doesn't support all the new stuff that Apple developed over the years, but the
basics are all there.

~~~
michaelpinto
Thank you!

------
fithisux
Freebsd X will have ioKit drivers? (source compatibility)

------
ilurkedhere
Is this similar to systemd?

~~~
wmf
It's similar in the sense of throwing out the Unix philosophy and replacing it
with a different one while keeping 99% of the code. It's not obvious why
NeXTBSD would be better than Lennartux though.

(Just to be clear, I never liked the Unix philosophy so I enjoy seeing
experiments in postunixism.)

~~~
feld
Watch the video and they cover why it's not throwing out the UNIX Philosophy

------
felixgallo
"launchd clubs UNIX's 'keep it simple' philosophy like a baby harp
seal'...Hint: the world has changed!"

Yeah -- Unix completely dominated essentially every market niche, utterly
annihilating all competing philosophies so hard you'd think it was drilling
for oil.

~~~
cwyers
Windows says hi.

~~~
felixgallo
Every phone, tv, appliance and internet device says hi back. Also, bye.

