22 ms·
What I think what we need to do to keep FreeBSD relevant (2019)
- ggm 7y agoYes. That list is pretty good. LXC or Docker Integrated with jail and bhyve would be awesome. Even just finishing BBR would be awesome. ZFS is totally awesome. Iscsi can't yet do dual path and dual controller magic well I believe which is a bit of a shame.
- justincormack 7y agoVarious people have said they want to work on Docker for FreeBSD over the years but nothing has come of it. There was a port years ago but it was just before a major change (containerd split) so it didnt get merged. It is not an enormous amount of work, but it is non trivial.
- ggm 7y agoThe fine-grained distinction between easy and simple personified in this comment: Understood how to do thing, but too much for anyone to come at doing absent a strong drive
- jtotheh 7y agoI've been running Docker containers in freebsd using a bhyve debian VM. seems to work pretty well. That's the same way you can run docker in windows and mac.
- mnd999 7y agoI was a FreeBSD desktop user for many years, but lack of Docker support was one of my drivers for switching to Linux. Being able to run containers without a random Linux VM is just so much easier. Linuxulator sort-of did that on FreeBSD for a while but it just wasn't maintained and just rotted.
- 1over137 7y agoWhy not use FreeBSD jails? Is it because your starting point is some pre-prepared docker format container?
- magicalhippo 7y agoWell I'm just a regular joe user, but jails were a PITA and still is even with iocage. Sure getting a jail up and running with nothing in it is simple, but anything useful will need networking and then it's not so fun anymore. With Docker even a Windows schmuck like me could get a networked container up and running in a few minutes.
- ggm 7y agoBecause a huge amount of the world (tm) ships things in Docker, and a lot of dayjob work targets Kubernetes in GCP which demands builds to docker. on OSX this is "solved" by hosting Docker in virtualbox. It is possible this actually is the right method.
- mnd999 7y agoYes, this was my problem. OSX ish solves it, you still have to split the machine memory between docker and OSX manually. For example, if you want to run for example a big integration test that needs lots of ram you have to tweak it and then put it back. With Linux it's automatically managed.
- pnako 7y agoIt seems to me like a list of things the Linux community is working on; and I think that's a bit of the problem with FreeBSD. For a long time, it was known as the "high-reliability / high-performance server OS". But Linux has mostly taken that crown now, for quite a few years. Where does that leave FreeBSD? I wouldn't be able to define FreeBSD's identity at the moment; but granted I'm more a OpenBSD user. It's easier to define OpenBSD, beyond the obvious stuff (security). It's a system that does not really want to deviate too much from old-school Unix, and a community that firmly rejects any fad or fashion and embraces simple, and indeed sometimes simplistic solutions. That doesn't make it the best system for everything, but at least we know where it stands: the best old-school Unix OS. It's almost as if it lives in a parallel universe where time has stopped in 1990, and the OpenBSD developers are asymptotically converging to the perfect Unix system of that era. I'm not saying that as a criticism at all. And NetBSD and Dragonfly BSD are also, more or less explicitly, research operating systems where individual developers can come and try stuff. FreeBSD is still a very impressive project but I think they can do better than being just-like-Linux-but-five-years-later.
- pimeys 7y agoI found that FreeBSD has its use in NAS builds with its nicely integrated ZFS. Otherwise I'm all in for OpenBSD or Arch Linux.
- JdeBP 7y ago1988. OpenBSD does not have the waitid() library function.
- tedunangst 7y agoI think this is the first time I've heard of waitid.
- deleted 7y ago[deleted]
- trasz 7y agoIn some cases it's linux-but-ten-years-earlier - think ZFS, or even trivial stuff like NFSv4 ACL support ;-) I think the result for what you're seeing is that both are similar in purpose and architecture, and thus it's not surprising that they are converging on a similar set of functionality.
- ncmncm 7y agoFreeBSD could get a boost by switching to building with a C++ compiler, beginning to modernize their ancient codebase (red-black trees, really?), and inviting people with modern ideas to implement them. The exokernel people know how to write good kernel-grade C++. Much of the code just needs to go; kernels can't keep up with the I/O needs of user-space programs, and need to learn to get out of the way. Linux has its io_uring thing which is vastly overcomplicated. FreeBSD could lead the way with universal kernel bypass, with only authentication, resource allocation, and permissions handled in ring zero. Much more likely, though, is that somebody new will need to start from scratch.
- wjakob 7y agoWhat's wrong with red-black trees? :) Since you mention C++: you do realize that std::map will typically be implemented with one?
- _wldu 7y agostd::set too, which really is just a map where the key and value are the same.
- fluffything 7y agoHorrible cache utilization.
- The_rationalist 7y agoCompared to what?
- Polyisoprene 7y agoI believe Splay trees are usually mentioned as an alternative.
- cesarb 7y agoAren't splay trees terrible because they turn all reads into writes? (Which means the cache lines bounce between readers, instead of being shared as they would be with pure reads.)
- hd4 7y agoIn that list, nothing strikes me as a killer feature that I would leave either Linux or Windows for. I've actually gone from Windows (about 10 years) -> Ubuntu (6 years) -> Clear Linux (a few months if that) -> Windows 10 in the last week or so because I realized that I value convenience and performance over whatever else is on offer from Linux, even though there are a few good tools I immediately missed from Linux (grep firstly, but at some point I'm going to setup WSL anyway). There's nothing compelling enough to even bring me back to Linux any time soon, why would I bother with FreeBSD? I develop software, and just want to get things done and the OS to stay out of my way. Windows 10 LTSC does that amazingly well. Sorry if I sound like a shill, I'm really not, I just grew tired of fighting silly little fights to get Ubuntu/x-distro to do what I want.
- papermachete 7y agoWhat workloads offer better performance in windows 10 than linux?
- The_rationalist 7y agoWeb browsers are 20% faster for example. OpenGL/Vulkan performance (the gap is closer than before but still exist) But the biggest gap is openCL.
- mushufasa 7y agocan you elaborate on CUDA? My understanding is that the NVIDIA drivers are a hassle to setup on linux, but once you do, the performance is just as good. Are you saying the performance is still worse if you can properly configure the cards? I am considering a rig from System76 whose selling point is that their Pop!_OS fixes the driver config issues.
- The_rationalist 7y agoActually my statement was baseless. After a few googling, I can't find any evidence. Still, this hold for openCL.
- papermachete 7y agoFreeBSD can hold its own well against Linux. You can now use it as a fully functional desktop OS, no worries (GhostBSD for the uninitiated). Best part is the ports tree, works better and easier than the AUR. Take your pick: https://www.phoronix.com/scan.php?page=search&q=FreeBSD https://www.phoronix.com/scan.php?page=search&q=FreeBSD tl;dr optimised freeBSD performs as well as and even faster than Clear Linux on lots of benchmarks - easily faster than most distros then.
- hd4 7y agoNot sure which of those specifically you're referring but from a benchmark done in Jan 2019, Clear Linux has a decent lead over *BSD https://www.phoronix.com/scan.php?page=article&item=dfly-freebsd-tyanamd&num=4 https://www.phoronix.com/scan.php?page=article&item=dfly-fre...
- trasz 7y agoThere's a number of fundamental problems with Phoronix benchmarks; one of them is building software in a wrong way (using vanilla sources, without neccessary patches), and often simply measuring compiler and not the operating system itself.
- csdreamer7 7y ago> using vanilla sources, without neccessary patches Why is that a problem? From a 3rd benchmark point of view testing the official tarball is the most relevant point to test for a Linux using audience. Different distros has different patches. Some don't even patch the software.
- trasz 7y agoBecause upstream often uses defaults that are fine for Linux, but not necessarily anything else. That’s why one should use official ports/packages, instead of hacking things together like its ‘90s.
- 7y ago
- trasz 7y agoIt's a good TODO, and it's worth pointing out that those things are being gradually put into place. Great example is the Continuous Integration, https://ci.freebsd.org/ https://ci.freebsd.org/. (Shameless plug: it actually runs Linux Test Project Linux binaries too!)
- ksec 7y agoAs long as FreeBSD has sustainable interest among cooperate usage it should be fine, but I am not sure if the number of FreeBSD client / cooperate user are growing or shrinking. WhatsApp moved away from FreeBSD to Linux. And last time there were a few Netflix employees mentioned FreeBSD were used on Open Appliance for historical reason, not technical. So I would not be surprised if someday they move to linux as well. ( Once it offer similar performance ) Mellanox loves FreeBSD, but I am not sure if the same could be said for their new owner Nvidia. OpenBSD and NetBSD are both an easy sell, one focus on Security and the other on Embedded. I am not sure how to sell FreeBSD, and it needs focus and direction. May be aiming for Network Appliance which is what the majority of its cooperate customer are using it for, where it could offer greater value.
- trasz 7y agoLast time there were Netflix employees claiming Linux can't do more than 60% of FreeBSD's performance in their workloads. Pretty good technical reason if you ask me.
- a012 7y agoNetflix has modified FreeBSD networking stacks to serve 100 Gbps at edge. But it's just their secret juice.
- drewg123 7y agoNothing is secret. AFAIK, everything is upstream in 13-current EDIT: The above applies mostly to the kernel. I've run a vanilla FreeBSD kernel on one of our appliances and gotten good performance (and served at 100Gb/s). In terms of userspace, openssl support for KTLS is only available in OpenSSL's master tree. We'd like to bring them back into the stable OpenSSL that's in FreeBSD's contrib, but we're not sure that's going to happen. And there are some patches to support kTLS with ngninx that are floating around in various forms; I'm pretty sure Mellanox has been giving out a version that should work for FreeBSD as well as Linux ktls.
- trasz 7y ago
- frankharv 7y agoI noticed that Alexander had to grind his axe on his rejected bikeshed project.Re:Sensors. PHK is one of the developers who have made FreeBSD great. The more you grind your axe the more you get discounted.
- mlyle 7y ago> I noticed that Alexander had to grind his axe on his rejected bikeshed project.Re:Sensors. "Bikeshed" project? Who exactly is bikeshedding when functionality is lacking on FreeBSD 10+ years later because we don't like the configuration mechanism chosen for the previous work? > PHK is one of the developers who have made FreeBSD great. That doesn't mean there hasn't been dubious moments like this, or that they don't cause harm. > The more you grind your axe the more you get discounted. Menacing responses to criticism are not exactly indicative of good culture.
- alexhutcheson 7y agoQuick summary: - Port several container and virtualization systems (OpenStack, OpenNebula, oVirt, CloudStack, Kubernetes, Docker, Podman, …) to FreeBSD. - Improve linuxolator, and run Linux tests on linuxolator as part of FreeBSD CI. - Make kerberos work. - Port more SDN software to FreeBSD and improve the documentation for it. - Add interfaces to hardware sensors (fans, voltage, temperature, etc.) - Add an implementation of Multipath TCP. - Make SecureBoot work. - Support writing kernel modules in C++ or Rust. - Improve end-user HOWTO docs on how to use specific 3rd party software (mail server, web server, display server, etc.) with FreeBSD. - Review existing docs and remove outdated information. - Add a "cloud" section to end-user docs. - Use doxygen or a similar system to generate additional developer docs from source code. - Polish and improve DTrace. - Make default options for ports packages consistent. - Create "meta-ports" for specific use-cases (webserver, database, etc.) - Revise default settings to target improved performance on modern machines. - Add fuzzers and Clang sanitizers to FreeBSD CI. - Make the CI system more visible. [I'm not the author, just a guy reading the post. Add a comment if I missed anything important]
- uncle_j 7y ago> Improve linuxolator, and run Linux tests on linuxolator as part of FreeBSD CI. This is the worst thing they could actually do because people will just run the Linux versions and there would be even less demand for anyone to bother with a FreeBSD version.
- im_down_w_otp 7y agoThat was my thought as well. Thinking back to OS/2 Warp's similar approach. Unless FreeBSD has really, really strong differentiating capabilities that are in super high demand _already_, and insufficient Linux interop is a switching impediment, then focusing on Linux interop with otherwise low differentiation/demand seems likely to further lower FreeBSD differentiation & demand. Were I them, I'd pick a couple really strong niches to try to dominate for a little while to drastically differentiate. Maybe in SDN or SSI clustering or something. Create the absolute best platform in that regard while still having familiar tools available for general purpose use cases... and _then_ work to trivialize the on-ramp to FreeBSD from Linux et. al. FreeBSD needs to find some way to be a part of the meme, "Nobody ever got fired for going with..."
- GordonS 7y agoI'm a veteran of Windows and Linux, but I've never used a *BSD (unless you tenuously count MacOS). Why or when would I want to use BSD over Linux? Is it more performant? Does it use less resources? What real differences are there? I've tried to find out myself, but it mostly seems to come down to philosophical reasoning and personal preference.
- uncle_j 7y agoI am a OpenBSD / Windows user (all the VMs server I am running are OpenBSD). I haven't used FreeBSD a whole lot. 1) You get an operating system. One of the problems with Linux is the number of distros. If you want to know how to do something you've got to google around and look for a guide. In the BSDs it is just reading the man pages and figuring things out from there. 2) I've found with OpenBSD things either are documented and work or they don't work at all. The system is easy to understand whereas with Linux I tend to get overwhelmed with one distro doing it one way and another distro doing it another way. 3) Things are a bit difficult to setup (lots of reading docs) but it doesn't change once you've got it running which is my major gripe with Windows since Windows 7.
- GordonS 7y agoHah, that's a good point! I mainly work with CentOS and Ubuntu, but also sometimes Debian, RHEL and SLES. Not only do firewalls, init systems etc differ between distros, they also vary between versions - I often have to consult personal cheatsheets or Google.
- petre 7y agoIt just works, you don't have to deal with systemd, things are kept simple, it's rock solid, works quite well under load, the networking layer is performant, PF is a well designed firewall, the base system is very well integrated, the ports tree is very extensive, only Debian offers more packages I think. PostgresSQL also used to run a bit better on FreeBSD. Nowadays thanks to pkg installing and upgrading packages is easy. I have 11.3R instalations that were incrementaly upgraded from 8.0R. It fells like the OS is designed by greybeards that don't care too much about the latest and greatest hype, hence this article.
- insulanian 7y ago> Another item we should have a look at is to provide means to write kernel code in different languages. Not in the base system, but at least in ports. If someone wants to write a kernel module in C++ or Rust, why not? Having the development of OS modules in a safe language like Rust as one of the strategic goals, would likely attract some eyeballs and dev hands. Long term it would result in a more stable and safe system and possibly lead to increase in the market share.
- Ericson2314 7y agoHeh I just had a chance to mention this in another thread but I think the biggest thing holding the BSDs back is they repackage all the solver. Who said 1 distro, 1 kernel?! I fully believe NixOS/Nixpkgs should be able to support non-linux kernels, and the philosophies of their communities. We are always trying to bake in future assumptions, this is a great opportunity to do that. Coalition without compromise. Truely.
- Ericson2314 7y agoIf someone is interested, please do reach out. I'm really serious about seeing this happen. We got cross compilation done distro wide, now we need more things to drive us forward.
- pdimitar 7y agoDo I get you correctly? You are looking for Nix[OS] being able to work with FreeBSD?
- Ericson2314 7y agoYes. Nix runs on FreeBSD so first step is cross compile pure stdenv with BSD libc. Next step is native builds and kernel. Final step is make NixOS work with multiple init systems. Shouldn't be too bad!
- delduca 7y agoio_uring
- macdice 7y agoWill be interesting to see how kqueue systems respond.
- glintik 7y agoGood article, but FreeBSD top-managers don’t want(or can) to change anything. So, where FreeBSD can be used nowadays: 1) Desktop/Mobile - no, drivers/sensors problem. 2) Network/Web service in SOHO? Linux is much way better. 3) Network/Web in medium/large company? May be, for special network services. Well-tuned FreeBSD can beat well-tuned Linux easily, but requires skilled staff. There is a very little chance for FreeBSD to come up Linux and be useful for the masses. P.S. Worked with FreeBSD since 1996 as default OS, in 2008 switched to Linux(RH/Debian/Ubuntu).
- morning_gelato 7y ago> Well-tuned FreeBSD can beat well-tuned Linux easily, but requires skilled staff. This doesn't seem obvious to me, there are a lot of tech companies with skilled staff that choose Linux and also deeply care about performance.
- jeffatfreebsd 7y agoFreeBSD doesn't have 'top-managers'. It is more democratic than the linux organization. It means that people and companies contribute what they need or what they are personally motivated to work on. I also don't think there is a general consensus that we want or need to be as popular as linux. FreeBSD supports products making in excess of 100bn a year. It is likely a much smaller number than linux but hardly irrelevant and enough to keep the community active.
- guenthert 7y ago> Well-tuned FreeBSD can beat well-tuned Linux easily, but requires skilled staff. This must be why 100% of the TOP500 sites use FreeBSD instead of Linux. Oh, wait ... Sorry, didn't mean to come off as a Linux-fanboi (which I might be) or rekindling a flame-war (in fact I have little experience, but lots of sympathy for FreeBSD), but above was just too tempting.
- rsync 7y agoI, personally, and my businesses, have a tremendous amount of time and money invested in FreeBSD as a platform. JohnCompanies[1] was started on FreeBSD, rsync.net runs FreeBSD exclusively, and Oh By[2] runs on FreeBSD. FreeBSD is an operating system by, and for, the FreeBSD developers. You may choose to deploy, and invest in, FreeBSD for your own purposes (as I have) but you need to understand what the development process is and how FreeBSD is "released" if you want to make meaningful investments of actual money into adopting it. In short: the official position of FreeBSD is that -RELEASE is the only production release of FreeBSD and, technically, -STABLE and -CURRENT are not production ready. Yet at the same time all investment and development of FreeBSD by the actual developers is done with -CURRENT. The result is your legal, contractual, fiduciary, and even moral obligations to the customers you serve demands that you run only -RELEASE. And yet, any issues you have with -RELEASE will be difficult to resolve because the entire community is already 1-2 major versions ahead of you in their development, their workspaces, and even their personal machines. You will be met with incredulity when you insist that you need to run only production code and your "current" problems with the "current" -RELEASE will not be addressed. This makes it very difficult (although not impossible) to make any kind of long-term investments in FreeBSD. Pointing to the big name firms that run FreeBSD, like Netflix, is a bit disingenuous as only they have the resources to, essentially, run their own forks of FreeBSD (which they do). I have written about this in detail, twice: First, in 2012[3] and then later in 2014[4]. The 2014 posting is probably more succinct and relevant here, but if you really want a deep dive in the culture and tendencies of FreeBSD development, read the 2012 thread. [1] JohnCompanies, started in fall of 2001, was possibly the first "VPS" provider as we now think of it, although we called them "Server Instances" and did not coin the term "Virtual Private Server". [2] https://0x.co https://0x.co [3] https://lists.freebsd.org/pipermail/freebsd-hackers/2012-January/037294.html https://lists.freebsd.org/pipermail/freebsd-hackers/2012-Jan... [4] https://lists.freebsd.org/pipermail/freebsd-hackers/2014-June/045319.html https://lists.freebsd.org/pipermail/freebsd-hackers/2014-Jun...
- morning_gelato 7y agoGiven your current frustrations with the project, could you also describe the benefits of using FreeBSD in your company that offset these problems?
- pdimitar 7y agoGod damn, I wish I read more articles like that one. That guy is objective and not a fanboy even with him working on FreeBSD. We need more such critical thinking and insight. Kudos to him.
- sitkack 7y agoCame to say the same thing, clear writing and a great voice. Definitely something to emulate.
- mixmastamyk 7y agoFirst thing I would do is to merge the bsd distros and have an installer that could pick configurations like hardened or not. Add a cool name. No reason so few folks should be pulling in different directions.