Interesting little tidbit for the weekend: we now know what operating system the Nintendo Switch is running. Since it’s basically an NVIDIA Shield, I kind of expected it to be running Android – heavily modded, of course – but it turns out it’s running something else entirely: it’s running FreeBSD.
Like Sony, Nintendo also opts for FreeBSD for its games console. This means of the four major gaming platforms, two run Windows, and two run FreeBSD. Fascinating.
Them having a “FreeBSD Kernel” BSD copyright notice in the documentation could just mean the product includes part of the FreeBSD kernel, like headers for the networking subsystem. It doesn’t mean it’s <strike>based on</strike> running the FreeBSD kernel.
That would be mighty cool though!
I think we’ll just have to wait until someone cracks it open until we know for sure how much FreeBSD is in there.
Edited 2017-03-04 09:17 UTC
Considering it was a major selling point for the PS3 to have Linux into it, having the superior FreeBSD in its heart, and being truly open -GPU wise-, would kick some ass out there.
Remember where have failed the Gizmodo or the GP2X ? Maybe there’s a chance here, with more maturity and support from a big firm. Give Nintendo some kudos for evolving like their Pokemons.
Yes, it might have parts of FreeBSD in it. Runs FreeBSD? Ok, show us a system prompt and a uname -a to confirm it.
Why is this doubtful? The PS4 runs FreeBSD. NVidia also already supports a full graphics stack on FreeBSD, too.
Not “parts of FreeBSD”, not “uses FreeBSD headers.”
It is FreeBSD underneath. It doesn’t have to have the full userland to still be FreeBSD.
Its pared down, of course, and has a couple custom features not found in the base system, but that doesn’t make it *NOT* FreeBSD. It’s FreeBSD enough that Sony’s contributions back found their way into the kernel.
Edited 2017-03-04 19:01 UTC
We don’t know that the Switch runs FreeBSD.
We only know through public information that it uses code from the FreeBSD kernel.
Note that even Microsoft used FreeBSD kernel code in Windows NT before 3.5, and nobody said that Windows computers ran FreeBSD because of that.
http://archive.is/IXUi
(That story was posted on the now-defunct kuro5hin.org)
The Copyrights appear to be dated 1995-1996 and Jean-loup Gailly and Mark Adler – so probably compression based.
Still, OS’s are farking difficult to write, especially a multithreaded kernel meant to run efficiently on a multicore processor.
However, FreeBSD runs fairly well on ARM. It has very capable scheduler, VFS subsystem, security, network stack, etc. With a somewhat customized graphics stack (NVidia already has existing FreeBSD drivers, as well as Linux ARM drivers), it lets Nintendo focus on the system UI and relevant gaming APIs without having to worry about the nitty gritty of kernel development.
This is exactly what Sony did. Nintendo would be foolish to do otherwise.
I wonder if Nintendo will contribute back their changes? If I had to prognosticate on what those contributions might be, I’d guess work on virtualization on ARM – there are a set of patches that currently exist that partially implement Bhyve on ARM, but it isn’t quite there.
Sony contributed back to FreeBSD, too, bringing AVX support to the kernel when before there was none.
From the people that have seen the credits, I understand the text is pretty long. We can fairly trust it runs the “Free BSD kernel”, otherwise they wouldn’t have bothered about writing it out.
Taking the FreeBSD kernel usually implies also taking the C library, so the SDK should further clarify any doubt.
How much has Nintendo modified or added we may never know, that is exactly the beauty of the BSD license.
No. They have to write it out because they used the code and the licence stipulates that you reproduce the licence.
Only 2 actual names are on it, though, and both of them (Mark Adler and Jean-loup Gailly) are usually connected with compression. They worked on zlib together.
Come on now. You know the difference between an OS and a user interface running on top of it. Lets just marvel the fact that FreeBSD has Apple, Sony and now Nintendo working on it.
Use doesn’t equate to contributions (money or code). If it did OpenBSD would be one of the most widely supported and well funded free OSes out there.
The BSD license means they can fork whatever they want of FreeBSD and keep ALL of it under lock and key. I’m not making a moral judgment here, I’m pointing out the fallacy of assuming just because Nintendo is using part of the FreeBSD project means they will support upstream.
Well, Sony has contributed a bit of code upstream. Apple has contributed a whole shitload of code under BSD-friendly licenses, a lot of which is being used in FreeBSD.
Lets see if Nintendo does, too.
And if not, oh well. It doesn’t in any way diminish from the FreeBSD project.
Sure, but Nintendo’s modifications to FreeBSD are kept secret from the communitah! The Four Freedoms Of The Holy GNU have been violated, and it is all the fault of the FreeBSD guys for not embracing The Way Of The Holy GNU.
Edited 2017-03-05 11:39 UTC
Freedom with restrictions is not free
I know! That need to eat is a real bother to my freedom
The FreeBSD license is often criticized as a “rape-me license” because it explcitely allows talking FreeBSD for free and turning it into something proprietary closed source software to make money with. This may not look nice (or even fair), but the developers made that decision. If you (as a developer) are not happy with that kind of terms, use GPL or create your own license to make contribution back a neccessary requirement for the use of your code in other projects.
Also note that the FreeBSD license is not the only one of that kind of licenses.
No, you don’t understand, in order to protect your freedom to do whatever you want with your code, we must take some of those freedoms away.
Embrace the HolyGNU, embrace freedom*
*Your idea of freedom must be compliant with the idea of the Holy GNU otherwise you are an evil heretic helping out evil companies like Sony and Nintendo sabotage user freedom!!11
When was the last Apple commit back to Free BSD?
Their last commit to the base system? Probably quite a while. XNU’s FreeBSD components have probably diverged quite a bit.
However, there are at least a couple FreeBSD developers on Apple’s payroll, not to mention those developers Apple pays to work on clang/llvm.
GCD is part of the FreeBSD kernel, too.
Also consider CUPS which is commonly used for printing on FreeBSD.
Without the source, hard to see how diverged it is. But from the dates and featureset of various tools e.g. readlink, it’s clear that Apple haven’t updated them from the FreeBSD sources for around a decade, which is frankly a bit shocking. Makes you wonder if they are merely lazy, don’t care, or that they diverged so far they can’t rebase onto the current state of the FreeBSD sources. As an end user, it’s made using and supporting MacOS X increasingly difficult due to the dated and feature-deficient tools and libraries.
Check the code here: https://www.apple.com/opensource/
They periodically resync the userland, and I’m not sure when the last time they did that.
I think it’s more that they don’t want to introduce breaking changes, and MacOS hasn’t been the crown jewel for a while.
That’s about the worst real test possible. Running an OS doesn’t require that a shell works, or that uname exists. You can easily set up a useful FreeBSD system (particularly for embedded purposes) in which neither is true.
Every Sony Blu-ray player that I’ve ever owned references NetBSD in the licenses section of the documents. Always assumed the smart TV nteface was based on netBSD. (slooow)
NetBSD not freebsd.
Pretty sure it was true for the DVD players too.
Oh and Java which I understand is sadly necessary for Blu-ray menus…m
Sadly? BD-J interactivity is one of the best features of Blu-ray, as it allows extras that were unheard-of before. Entire games can be built with it. For DVDs, these were done with Windows software such as InterActual Player, known by the marketing name “ROM features”, but those features were not available when playing with a regular DVD player.
The slowness is probably caused by the need to authenticate AACS and BD+ before doing anything with the content. BD+ is an entire program that must run and finish to authenticate. But you know, it was either that or studios not releasing content for the format.
Edited 2017-03-04 16:27 UTC
I suppose java is better than some even more proprietary code .. there is a slightly bigger chance of developing an open source player .. for macOS X for example (there isn’t an official blurry player at all iirc)
It is this inconvenience that I start to support those who want to break the crypto .. I pay for blurays properly .. and I bought a proper blu-ray disk player which would work on windows .. but not macOS nor Linux…
grrrr
So, you bought hardware without making sure you can have software to use it for your particular OS. Class, how do we call this? (Answer: Bad planning)
https://xkcd.com/644/
Also, you can get rid of the copy protection with DVDFab Blu-ray Copy for Mac. The big problem is not the crypto, but the fact the FOSS community still doesn’t have software that supports Blu-ray’s interactive features properly.
Edited 2017-03-05 11:39 UTC
It sounds exciting, but I do buy many DVDs and BRDs and I have never seen an example of good use of this. Do you have a particularly brilliant example? I watch BRDs in a PS3 — maybe it hides this features because it does not support them?
BTW, no Stallmanites in the comments informing us about how the BSDs failed to protect their code from falling into proprietary hands? Where is OSAlert going to?
Edited 2017-03-04 16:33 UTC
Those evil mega corps taking our efforts and profiting from them without giving back … grrrr
Assuming you contribute to FreeBSD, you should see it as a validation of your quality work.
With the BSD license you full well know that no one has to contribute anything back to it, if you have the expectation that everyone will, perhaps you should switch to contributing to Linux or something else with a license that sets that expectation
I would be very surprised if the BSD license isn’t one of the reasons of choosing freebsd over linux (sony really didn’t want to comply with the GPL back then, and mostly had to be dragged kicking and screaming into complying).
License is certainly the primary concern.
The GPL makes things difficult, especially when trade secrets are involved, or when you’re licensing other people’s tech.
The BSD licenses removes these concerns, and allows you to to use tech in a way not feasible with the GPL.
Sony could have always licensed the linux kernel and done what they liked with it as well…
bnolsen,
You are right that sometimes a proprietary company can avoid the open source requirements by licensing the code under an alternate proprietary license in exchange for a fee. However the code contributed to linux is strictly under GPLv2. While some projects require contributors to grant full rights to a not-for-profit organization existing to oversee the project, the only requirement for linux contributors is to comply with GPLv2. This means that nobody, not even Linus himself, is able to obtain/sell the linux kernel under a non-GPLv2 license because he doesn’t own the kernel. This has been a roadblock even to GPLv3 adoption because linux doesn’t allow for “GPLv2 or newer”.
Theoretically, adding a new license would require reaching out to every contributor and getting them to agree or otherwise remove their code. But even then specific contributions at some point in time may be very difficult to isolate after many years of evolution. A developer could have reused GPL code (from linux or elsewhere) and in any other context nobody would care, but in this specific context this developer doesn’t have the right to re-license the code even though he is recorded as the contributor under source control. so it seems unlikely to me that an alternate license would be in the cards for linux.
It will be interesting to see what, if any, contributions back Nintendo makes, the way Sony’s custom PS4 code found its way back into the FreeBSD system.
FreeBSD just makes sense to use for any commercial product where you want lockdown and restricted sourcecode access. It’s actually more surprising to me that less devices are using FreeBSD than Linux. If I was going to make a competitor OS to Apple or Microsoft FreeBSD would be my first choice as the base. You get a billion or so dollars of development work done for you with almost zero outlay. You then just extend it to match whatever features/hardware you need it to have.
the thing is that when it comes to linux, gpl helps with hardware support.
there is a lot of hardware reuse among various devices and sharing the driver code definitely helps here – it’s easier to get your stuff running, and you can always modify the driver for your hardware if it’s sliggtly different.
if there is no such incentive with bsd licence ,things may be different among vendors – eaxh may end up writing their own driver, independently.
it’s whole another thing that some of them do not share their gpl code anyway.
I imagine much comes down to mindshare and available institutional expertise, rather than licensing or technical merit. Everyone more or less knows of and/or uses Linux, but FreeBSD is more niche. Maybe that will slowly change [I used to use Linux almost exclusively for two decades; now there’s much more FreeBSD around.]
When tasked with updating an embedded product from DOS in a previous job, we went with Linux. With the agreement of the management. That was purely because it worked and we understood it. FreeBSD wasn’t even considered. I suspect this happens in lots of situations where FreeBSD would be a perfectly valid alternative choice.
Edited 2017-03-05 13:21 UTC
Yeah, few companies are adventurous, or technical, enough to wade into the BSD waters. If decisions were based on technical merit, Linux would have zero presence in the networking appliance world.
Right now, everyone makes money using Linux, so everyone uses Linux. There are some exceptions, and they’ve significantly raised the profile of FreeBSD. Netflix for instance.
rleigh,
Yea I’ve seen the same thing where Linux is considered but FreeBSD is not. Linux is favored for it’s better support and popularity. However in my experience those are strictly userspace projects where GPL requirements aren’t imposed on the company’s code. Most corporate linux users simply don’t do kernel level work, but if it weren’t for the fact that the linux GPL license doesn’t apply to independent userspace projects, there would probably be more corporate push-back against it because it conflicts with their proprietary business model.
If we shift to userspace libraries, I have seen companies actively avoiding GPL code to avoid the licensing requirements.
Edited 2017-03-05 16:12 UTC
Even Linn hi-end hifi maker uses FreeBSD. As you say it is only a license advantage. They can take a working product for free, customize it and do not fear to give back anything to anyone.
There is the big catch of graphics support. With a game console, you’re going to have to write a whole lot of custom code and libraries for graphics anyway. However, if you’re building a stock OS, you’re looking at a decade behind tech with video card support on FreeBSD. Sure, NVIDIA has a binary blob available but AMD support is bad and nothing past haswell is supported on the intel side.
You don’t pick freebsd for a technical advantage if you’re building an OS for desktops. I know this from experience. There are many advantages to BSD, but GPU support is not one of them.
Let’s be honest, if you are building an OS intended for non-nerds, you ‘d be better off scrapping the trainkwreck that is X.org altogether and start anew, or if you can’t do that, just modify Android.
X.org is like the kiss of death for anything involving the client-side, no successful OS on the client-side has it. Many client-side OSes who don’t have it (Android, TiVo, Enigma, Boxee OS X) are successful.
Edited 2017-03-06 15:48 UTC
Tizen uses X11 on all Samsung TVs currently being sold. It will eventually be replaced with Wayland but it appears to be working right now.