Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why Linux? The networking stack on BSD is superior, and the OS places no copyleft restrictions!

I'm starting to believe that developers choose OS/Tools the are used to (Linux in this case) versus the one best suited for the job (BSD)



Which tool is the best for a task is not always the major factor. Other things like the developer team experience with the tools, the community support and the planned deadlines sometimes makes the decision a little harder. If the ms teams are already familiar with tweaking linux distros to their needs, then it seems like a good choise


> I'm starting to believe that developers choose OS/Tools the are used to (Linux in this case) versus the one best suited for the job (BSD)

They do, and it isn't always the wrong choice. If you know the OS inside out it's better to use that than a brand new one you don't know the sharp edges of yet.


Because the hardware[1] mostly is only supported on Linux, or the Linux support is more mature.

Take the Cavium products: they shipped multiple distributions of Linux on the Arm64 products 2+ years ago, and FreeBSD around 18 months later.

The Juniper products only support Linux.

[1] http://www.opencompute.org/wiki/Networking/SpecsAndDesigns


The Juniper products only support Linux.

A lot of Juniper products arrive with FreeBSD pre-installed. They just aren't obvious about it.


Sure.

But the OpenCompute ones listed don't.


Except that in this case it doesn't matter. The real forwarding is done in the ASIC's of the switches.


> ... and the OS places no copyleft restrictions!

I'm still baffled why people think this is a benefit. If you actually care about software freedom, lack of copyleft is a bad thing IMO. What's to stop $EvilCorp from creating a system that is completely locked down, can't be replaced, and is based on your technology? That's what UEFI is, by the way. It's only by Microsoft's blessing that you can install alternative operating systems on new Windows laptops. So please tell me more about why copyleft is a negative. If TianoCore was GPLv3, UEFI would actually be more bearable to work with (but core/libreboot is clearly the way to go on from here).


BTW, if anyone wants to stand up for Copyleft, Software Freedom Conservancy (SFC) needs your support:

https://sfconservancy.org/supporter/


FYI, the TianoCore FAT driver is actually non-free thanks to Microsoft.


Actually, Microsoft has provided a patent grant[1][2][3] to anybody who implements a FAT driver for the purpose of booting UEFI. Which is actually a reason why FAT is still in the Linux kernel even though people argue that Microsoft will sue one day.

But IMO we should be all switching to CoreBoot (or LibreBoot). It's much less fucked up than UEFI, the only negative being that you have to flash it yourself (unless you buy a $1000 5-year-old Thinkpad).

[1]: http://download.microsoft.com/download/1/6/1/161ba512-40e2-4...


They are still responsible for the non-free license on the TianoCore; Intel are having to negotiate with Microsoft to change the license, despite being the copyright holder.

Agreed re not using UEFI. I wouldn't touch CoreBoot though, LibreBoot seems more sane.


LibreBoot is CoreBoot with certain binary blobs removed. Sure, I agree that LibreBoot is better from a freedom perspective, I just assumed that you wouldn't know what LibreBoot is (more people have heard of CoreBoot).


In what ways is the BSD networking stack superior?


Throughput. The BSD networking stack has been very carefully engineered over time. Linux is OK, but nowhere near as robust. FreeBSD is legendary for load tolerance and network throughput, that on equal machines would choke a Linux server. Seen it, work(ed) with it. When we do something serious that requires heavy load and awesome throughput, we always lean on FreeBSD, never anything else. Everything else has always let us down.


I've seen this claim before, but I've also seen the counterclaim that Linux network stacks have since caught up and even surpassed the BSDs on throughput and latency.

Whether one or the other is truly better though might be irrelevant...either is such a monumental improvement over the windows networking stack that there are bound to be large benefits.


This is an OS for the control plane for hardware switches, so its throughput is not that important. Hardware does most of the heavy lifting.


I understand this, but was answering the question (in general) about why I believe BSD has better networking.


Not that I really doubt you (the FreeBSD developers have a hard won and worthy reputation in this area!) but do you have any benchmarks that help back this claim?

I promise this isn't a question to try to make a point, I'm genuinely interested.


Had mediocre network performance and increased load with freebsd on VMs (kvm), while at the same time a linux one would saturate a whole link.


Why are you trying to get network throughput on a VM? Of course it's going to be slow, but KVM probably has some passthrough optimisations for Linux guests.


Because that's what software defined networking is (mostly) about. In the majority of cases it's used as a way to setup a network plane for virtualized hosts.

Edit: See for example why VMWare bought Nicira: http://techcrunch.com/2012/07/23/vmware-buys-nicira-for-1-26...


I'm not a BSD guy, but I can still see it's a little unfair to compare the network throughputs of Linux and *BSD as guest VMs on a Linux host running KVM. You aren't going to get good throughout in that case without hardware passthrough (even then it's still bad). End of story.


I get your idea, but Kvm on linux is prolly the most deployed hypervisor in the world or will be soon. If it doesn't run well on it then it won't be used. End of story.


Sure it's unfair. But it is the current state of software.


That was as true ten years ago, is it still? Have there been any recent benchmarks?


I know that a bit more recently (~4 years ago) WhatsApp emphasized that FreeBSD's networking stack was part of what allowed them to scale so cheaply. I'm sure there was a good amount of benchmarking and profiling involved in that choice, using their production workloads.


Benchmarks please, thank you!


Got benchmark numbers on that?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: