Hacker News new | ask | show | jobs
by pabloski 3091 days ago
This is BSD at work my friend. And this is why every serious opensource fan should prefer GPL and similar licenses. The thing who shocked me the most, was to learn that Sony uses FreeBSD on the PS4 and yet no Radeon driver has been given back to the community. Obviously they have a bad ass device driver in the PS4 with some serious 3D performance ( after all it is a gaming console ). Yet the only thing you have in mainline FreeBSD is a hacked driver ported from Linux! BSD at work!
4 comments

Orbis doesn't work the way you think it does. The kernel is based on FreeBSD, but the entire gfx stack (and everything else above the kernel) is custom. It's not even OpenGL compatible, instead running their custom GNM library (Metal/Vulkan/Mantle equivalent) and GNMX (OpenGL/DirectX equivalent).

Nothing they've built in their stack would translate to an Xorg driver, beyond the kernel shim (the smallest and simplest portion of the code, in most video drivers).

"hacked" driver, yeah, no.

There is nothing wrong with porting from Linux.

We have a compatibility layer for Linux drivers in the kernel (LinuxKPI), so the GPU drivers are not modified that much. A lot of work on LinuxKPI has been sponsored by Mellanox, by the way :) since it's also used for their network drivers (mlx4/5).

And it works fine, I'm currently writing this from a PC with an RX 480 running FreeBSD 12-CURRENT. DRI3, Wayland, Vulkan — everything works.

Also, the Sony driver would've been completely irrelevant to desktop systems. It supports one specific GPU model, Sony proprietary APIs, probably nothing in terms of KMS/DRM/GBM/EGL!

These are entirely different arguments.

One is that the users of *BSD's aren't donating to the development, despite enjoying its fruits. GPL will never help here.

The other is about not having to give your changes to the project itself back (bug fixes or features). GPL helps here. However, your examples do not apply to this bucket: Sony's fancy graphics driver can just be a closed-source out-of-tree driver, which would be perfectly compliant with GPL. This is why we have closed-source graphics drivers on Linux.

I personally love open source, and greatly dislike GPL. I prefer the Apache licenses (open but legally explicit), but am completely okay with BSD/MIT.

> Sony's fancy graphics driver can just be a closed-source out-of-tree driver, which would be perfectly compliant with GPL.

This is a loophole with the GPL, not the way it is intended to be used. It is far from clear if this is even legal. The Linux developers are split on the issue, but no one seems to care enough to press charges.

It isn't a loophole of GPL, it's a feature of the project in question.

If having GPL-licensed code execute non-GPL binary components violates the license, then it would be a license violation to execute any binary that is not GPL-licensed on such an operating system running a GPL-licensed kernel. Such a limitation would be absurd.

From a high-level, project-agnostic perspective, there is no difference between a kernel module and an application binary—they are both external binary blobs with the intention to extend the functionality of the initial project (in this case the Linux kernel). The differences are low-level and kernel-specific (kernel- vs. user-mode, API availability, intended functionality). The GPL does not distinguish between a printer driver or a calculator application.

Another aspect would be the use of a GPL-licensed header file. However, coming to the conclusion that using an untouched header-file (which usually only contains an API surface) from a GPL-licensed project taint code to require GPL-license for compliance would have huge consequences. Many projects would be rendered in violation overnight. This would likely hurt GPL.

> This is why we have closed-source graphics drivers on Linux.

And yet, having Linux being GPL must have given incentive at some point to give code back since nowadays both Intel and AMD have very good GPL'ed drivers.

I would argue that you're drawing a false connection between being GPL and the benefits of open source code. GPL provides legal protections, but does not directly or indirectly incentivize writing open source code.

Having open source drivers grant Intel and AMD at least the following:

1. Free work on their drivers. Who wouldn't benefit from bug fixes and improvements to the graphics drivers of extremely popular graphics cards? In other words, it reduces cost.

2. Good marketing. There is only a very small group of people who are twisted enough to think that open source is a bad thing. There is a much larger group that see it as a positive thing (and then there's the group that doesn't care at all). In other words, it increases sales.

3. Greater ability to mold the Linux kernel to better accommodate their drivers and needs. Even though a company can send patches to the kernel that would help their closed-source drivers, if they only help closed-source drivers, they are very unlikely to be accepted. On the other hand, any sane change that would help an in-tree driver would be accepted without question. In other words, it increases flexibility.

None of this relates to GPL (the drivers are probably only GPL because GPL forces the in-tree drivers to be GPL), and the same logic applies to *BSD's. The reason we don't have good graphics drivers on BSD is likely because it takes a lot of effort to write one. If it isn't going to affect revenue, Intel and AMD are unlikely to care.

I find it far more likely that Linux has better drivers made by companies because it has much better marketshare, not because it's GPL.
Both of which will soon be available on FreeBSD. Yay free software!

By the way, amdgpu does not appear to be GPL, just GPL compatible. https://github.com/wkennington/linux-firmware/blob/master/LI...

It's a difference in perspective, I rather prefer situation where no one isn't forced to anything, and that's why I think BSD license is 'better'. I want you, me and everyone else, including companies like Sony, to be free to take the code and benefit from it in every possible way, and if they choose not to share back, it's again their freedom to make this decision. I will use my freedom to make the decision of sharing back, despite all other decisions made in that regard, because this is what I consider a truly free software, unlike the GPL.
GPL is about enabling freedom for end-users. An end-user could be anything from an individual to a corporate entity. Your definition of freedom appears to be just "permissive licensing". Unfortunately, permissive licensing like BSD, could mean that one's code ends up being wielded by a corporation to remove end-user freedoms, typically to lock them in as paying customers.

I am a Free Software Foundation (FSF) member because I believe that end-user freedoms are becoming increasingly under threat as of late and they appear to be among the few that are taking the problem seriously.

Corporations can't 'wield the code' because by copying it and using it it doesn't take it away from other people and as such this argument against BSD license doesn't really make sense. Corporation can copy the code and improve it so that it would have people willing to pay for their improved code version and I am OK with that, in the end they made the work to generate the profit, that's their goal. I don't have one like such, so I can and I do release my code BSD licenses so that others could do anything (literally) they want with it.
> Corporations can't 'wield the code' because by copying it and using it it doesn't take it away from other people.

The relevance of the original code can be taken away, for example by hijacking a standard or through control of APIs and/or hardware. Will anyone be able to buy hardware in 10 years time that will not be under the full control of a corporation?