FreeBSD: A Successful Failure - Linux: A Failing Success

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
FreeBSD a Successful Failure or Linux a failing success hey there I'm Vince welcome to Circuit rewind [Music] and now that I've insulted both open source operating system communities welcome to my series and comparing the two here's the tldr that's right I'm giving you the conclusion firstly so you can turn off this video and be on your Merry way for the rest of your day the series is to explain how Linux is harder to use than FreeBSD and thus more successful wait how does it even work Linux distributions are just complex enough that you'll initially struggle to figure something out and then when you do you'll get a little boost of dopamine from the excitement of learning something new each thing in Linux is just different enough they each want their own tutorial or article Blog video etc etc freebuskey on the other hand has opted for a more stable consistent concise do one thing and do it right mentality inherited from the Unix ecosystem today specifically I'm talking about compiling third-party software from source I'm going to cover three applications in particular just to give a quick example but know that what I described for FreeBSD works well and nearly exactly the same for over 30 000 packages first on the table is a text editor this way I can go in and quickly modify any files that I need to them emacs nope you both lose I'm going with Nano today for this demonstration I'm going to install FreeBSD 13.2 from scratch I'll get into the significance of why I'm doing this here in a bit pausing here for a moment these are the only changes I'm making beyond the default FreeBSD installation configuration I've added the ports tree and system Source tree options to the installation and we'll soon see why now let's continue with the installation let's log in as root change director to user ports editors Nano and then run make the build process will ask us which optional features we want enabled or disabled with a simple menu for now I'm turning everything off to limit compiling dependencies since I only need the application itself now run make install to well install the application and we have a functional nanotext editor let's switch from simple to complex and compile MySQL server 8.0 next the process is oddly the same CD into user ports databases mysql80 server and once again run make L has a lot of dependencies these days many of which have optional configuration dialogs you can set batch equals yes when running make to avoid these dialogues which will assume default values for each and with all that a complex database server program is compiled and ready to be installed like before run make install we can run service MySQL Dash server one start to bootstrap the initial database and run the application and now run the MySQL command to enter the MySQL console let's take a look at Beyond Linux from scratches documentation on compiling the Nano text editor they have the URL but no instructions on how to download the file know where to place it on the file system or extract that compressed archive there is also no information on any dependencies or setting up the compile environment this also requires running a complicated configure command that a user wouldn't know without documentation such as this okay that's a bit cheating let's go to Nano's actual documentation themselves and see what they say compiling from Source what the heck do I do now right off the bat they don't say where or how to actually download the archive however they do show how to extract the archive using two different methods they don't say where these files should be placed on the file system at all though they just expect you to know how all this works at least in this environment we can see that configuring making and installing our simpler commands however there's still no information on dependencies or setting up the compile environment mariadb is a fork of my Sequel and they have done some work to simplify the build process but it is still not intuitive without documentation they start off by showing how to install dependencies however part of this is adding a new repository and there is no way somebody's going to remember the repository key off the top of their head there are also complicated said lines for setting this up as well the way that they show it at least it's easy for copy pasting when it comes time to actually building Marie DB after pulling the dependencies they show how to actually download the code using a git clone however they don't say where a good location would be on the file system to put the files one good thing is that they show to use parallel building so you can use multiple CPU cores to do the compilation faster instead of their code base they've included shell scripts for each of the operating systems to build them all in one step now let's continue with mySQL 8. once again there is no compiler information at all there is no dependency information at all there is no references on where to download The Source archive where to place on the file system but they do show at least how to extract it they also show creating users configuring making and installing the MySQL application for Linux distributions running NFD there is also an instruction on how to install the service file for that FreeBSD ports are most certainly easier there is no need to set up your compile environment it is already done for you there is no need to manually download and extract source files this is all handled automatically by the build Scripts and same goes for the files there's no worry about where to place them on the file system because again the build scripts handle all of that for you and Sam goes for dependencies once again the build scripts handle all of this for you there's no need to worry about them all of this is automated if you can CD into a directory and run make you can compile thousands of programs using the FreeBSD ports collections build Scripts but was that always the case I tried out FreeBSD 5.4 just to check and well that didn't go so well it turns out that FreeBSD 5.4 shipped before MySQL 5.0 so I didn't have anything to use there instead I switched to FreeBSD 5.5 which came out right after my SQL 5.0 did for reference I've never used a FreeBSD version before 9.0 which came out in 2012 before recording this video this test is going back another six years to 2006 to see how FreeBSD 5.5 behaves trying to do the same thing we just did so let's do a quick previous D 5.5 release install with the same options I used for 13.2 release the installer looks a little different but it is functionally the same now I'm going to log in as root and try to compile the nanotext editor and it doesn't work turns out the website hosting the Nano source code that this version of free ebsd is referencing no longer exists fancy that nearly two decades later and websites changed right in the error message however it says where to put the source code tarball if we were to manually download it ourselves and thankfully Nando's website has an archive of old code tarballs trying again and everything works exactly as expected this time Nano install dependencies are compiling perfectly now let's install it and it doesn't work this is an Old Shell let's log out log back in oh and now it's working as expected next let's try the same and build my SQL 5.0 from source here we run into the same issue again old source files are no longer on the referenced mirrors the source files do exist on the MySQL website however in oracle's Infinite Wisdom they're blocking downloads from freebsd's Fetch command really guys I downloaded the source files myself using my desktop and placed them on my local mirror after this everything continued as normal and go figure my SQL 5.0 has significantly less dependencies compiling in much less time than 8.0 like before make install to well install now let's start the MySQL server and log into the MySQL console stability in a system is usually measured whether it crashes or not but I'm here to argue that stability also means predictability the simple instructions on how to compile software on FreeBSD today were the same 17 years ago putting aside the fact that the mirrors today didn't have the files that we needed so we had to go download a couple things manually it would have worked 17 years ago when it was released but who cares about 17 year old software today quite honestly this argument is the exact opposite what about 17 years from now in the year 2040 do you think these instructions will still hold true then as they do today probably yes do you think the Linux instructions presented today will hold true even five years from now press X to doubt as third party software changes in the Linux ecosystem new blog articles need to be written documentation updated people asking questions to one another to figure out how things work going on forums going on Reddit going on social media and then the instructions are different for each and individual application like we just saw with these examples and then there are organizations like red hat and canonical which have a financial vested interest to keep things just hard enough so they can sell you support contracts and sell Engineers on certifications in contrast with FreeBSD when third-party software changes instead of writing new articles or updating documentation the engineers go and update the ports collection build scripts the end user experience Remains the Same not only from time to time as we saw but also from software project to software project and this holds true for over 30 000 other software packages as well and these consistencies remain stable for decades there is no need for tutorials or updated documentation there is no need to go on a forum and post asking questions there's no need to go on social media to see what people are saying this leads to less articles less discussion less promotion less search engine rankings and ultimately less visibility for the FreeBSD project as a whole FreeBSD is engineering success overall is one of the key reasons for its overall industry failures and conversely linux's engineering failures is one of the key reasons to its Global success a little side note I wasn't looking at the date and didn't realize that today was freebsd's 30th birthday what a great way to celebrate this day by publishing this video the whole premise of this video at the end as you saw is that we need more people talking about FreeBSD which I'm doing right now and it's hard to do that because it is so stable so hopefully you like this video you'll give it a share thumbs up whatever and I will leave you with some birthday fireworks
Info
Channel: Circuit Rewind
Views: 28,824
Rating: undefined out of 5
Keywords:
Id: f2e4FNMzyto
Channel Id: undefined
Length: 13min 42sec (822 seconds)
Published: Tue Jun 20 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.