diff options
Diffstat (limited to 'content')
-rw-r--r-- | content/bsd/_index.md | 9 | ||||
-rw-r--r-- | content/bsd/why-not-bsd.md | 118 |
2 files changed, 127 insertions, 0 deletions
diff --git a/content/bsd/_index.md b/content/bsd/_index.md index e69de29b..e618214e 100644 --- a/content/bsd/_index.md +++ b/content/bsd/_index.md @@ -0,0 +1,9 @@ ++++ +title = "Berkeley Software Distribution" +author = ["Michał Sapka"] +date = 2024-03-06T14:45:00+01:00 +categories = ["bsd"] +draft = false +weight = 2001 +abstract = "A site dedicated to BSD family of systems" ++++ diff --git a/content/bsd/why-not-bsd.md b/content/bsd/why-not-bsd.md new file mode 100644 index 00000000..b78bbfa1 --- /dev/null +++ b/content/bsd/why-not-bsd.md @@ -0,0 +1,118 @@ ++++ +title = "Why you shouldn't run a BSD on a PC" +author = ["Michał Sapka"] +date = 2024-04-20T22:13:00+02:00 +categories = ["bsd"] +draft = false +weight = 2001 +abstract = "A site dedicated to BSD family of systems" +[menu] + [menu.bsd] + weight = 2001 + identifier = "why-you-shouldn-t-run-a-bsd-on-a-pc" ++++ + +Changing GNU/Linux distribution can be done on a whim, as underneath all of that you've got the same basic operating systems. +With BSDs it's not the same. +One should try to understand the downsides, as not to waste the next 20 years exploring an OS that simply is not a good fit. + +All BSD are much less popular than BSD/Linux[^fn:1], and with this comes the most pressing downsides. +The support from hardware vendors is, at the very least, problematic. +You will have problems with recently released components; most likely your WiFi card will not work. +Your graphic card may have drivers, but they may work much slower. +One needs to deeply examine hardware at hand and make sure it is supported by the chosen OS. +As an example, my laptop has an NVIDIA card hardwired to HDMI-out, so if I want to use an external monitor, I need to use this card. +While this works on FreeBSD, there is no support on OpenBSD. +Another example would be the Intel wireless NIC which I had to physically replace[^fn:2] to not get constant Kernel Panics. +It goes without saying that power management is also a problem, but it's a problem on GNU/Linux as well. + +The lackluster support from vendors is handled by volunteers who try to reverse-engineer the hardware. +And here comes another problem - it's **very** hard to back port anything from GNU/Linux kernel. +There is a huge difference between what GPL and BSD license allows. +And even if that wasn't the problem, the GNU/Linux driver land is full of closed blobs. +You could have thought that if something is supported there, it has a beautiful open-sourced drivers. +Nothing further from the truth. +Ever wondered why GNU's GUIX doesn't support Nvidia? +That's because the drivers are provided as blobs, and therefore closed-source. +As a result, the work needed for BSD support is difficult and slow[^fn:3]<sup>, </sup>[^fn:4]. + +But let's assume this is not a problem in your case. +You have been blessed by the Gods of Hardware Support. +You've installed the system: your GPU is calculating pixels, your air is full of bits and waves. +Next step? +Software! +And hello to another problem: software support. +Most popular software is not compiled against BSD operating systems. +VS Code? Steam? Microsoft Office? Firefox? +Those programs may be essential for your work or evening. +_BSDs on desktop_ crowd is not significantly large enough for companies to want to deal with us. +We are not completely lost here, as BSD is POSIX-compliant, so it's possible to compile everything that's running on GNU/Linux. +It requires changes and a bit of luck[^fn:5] but any open-source application can be run. +Unfortunately, since we are not using GNU/Linux, all hacks that make software run fast there may now work here, or even create huge problems. +Firefox on FreeBSD is a hack layered over a hack running slowly. +I have no idea how much work is required to support it, but it's somewhere between "big" and "have mercy". +About that closed-source ones? +No Office for you. + +Let's once again allow our imagination run wild and assume all software you use is there, but you have a problem. +You try to Kagi[^fn:6] it and nothing. +Nada. +GNU/Linux has plethora of sites, blogs, and vlogs. +Any problem you may encounter, someone else already solved and documented. +In BSD you are expected to read the manual. +But wait, you may ask, RTFM? +That's rude! +It is, however, true. +Since all BSDs have best in class documentation, it is assumed that you will look for help there first. +This also means that trivial problems may not ever find themselves a subject of any blog post. +Unfortunately, non-trivial ones are also often not documented. +The community is friendly and will help you, but you need to do the homework. +Since the community is small, it may take some time/luck, but someone will help you help yourself. +When GUN/Linux may be used by someone who has zero knowledge about the inner workings of the OS, BSD will not be so kind. + +Notice how I, like a gentleman, always mention GNU when mentioning Linux? +Well, BSD teaches you why you should. +Since BSD and Linux use different userland software, they are not compatible. +And while yes, basic usages of such programs like ls, cat, awk is the same, GNU likes to add a lot of custom extensions. +You can assume that **only POSIX** requirements are met. +As a result you will find answers for your question on the interwebs which will not work for you, as they are written for GNU-flavored tooling. +Unfortunately, POSIX is a weapon for a more civilized age. +Folks these days assume _a lot_ and BSDs don't even come with ZSH out of the box. +Ever used the basic _Shell_? +Too bad, as _Shell_ is what you should assume in all your scripts. + +Next: do you like to call yourself an _early adopter_? +Being in the _bleeding edge_ is what gets you going? +BSD are evolving slowly by design. +If something works, let's leave it alone. +That's the mantra. +GNU/Linux is changing rapidly - Pipewire, Wayland, SystemD. +Even good old _ifconfig_ is being deprecated. +At the same time BSDs still use technology from decades ago[^fn:7]. +There was never a need to replace them, so no one did it. + +And lastly, prepare for a lot of raised brows. +Younger folks may have never even heard of BSD. +Rocking their MacBooks they don't know (nor care) about its FreeBSD roots. +Very few people I have contact in the meatsphere have ever seen a BSD system, and it's not that easy to explain that it's not Linux. + +You can think of the problems as something one may have had trying to run RedHat on a computer with a winmodem back in 1999. +It's not an OS that gets out of the way allowing you to get stuff done. +You need to _enjoy_ making it work for you. +Otherwise, all you will find is annoyance and a swift OS change. + +[^fn:1]: I won't even mention proprietary OS, as they are irrelevant here. +[^fn:2]: I tried to record my fight with having my Thinkpad working under FreeBSD [here](https://michal.sapka.me/bsd/thinkpad/). +[^fn:3]: I won't pretend to understand it, but as to the best of my knowledge: + those closed blobs are part of Linux kernel. + They are not strictly _drivers_, as drivers are how the OS communicated with the device. + Instead, they are _firmware_ which run on the device itself. + Both of those parts need to work together as to not fry the device. +[^fn:4]: As a sidenote: having _closed_ standards is my definition of a dick move. + Not only the way the device is hidden, but also how something like WiFI is. + It's very hard to read the exact spec of modern WiFi standard, and it's most definitely illegal to use that knowledge without a paying a crazy amount of money. +[^fn:5]: BSDs have collection of such converted software called _ports_. + They are supported by volunteers, so your mileage may vary. +[^fn:6]: Are people still using Google? +[^fn:7]: Not going on breakneck speed is one of huge driving factors towards BSD. + It's a good thing, I promise! |