summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
Diffstat (limited to 'content')
-rw-r--r--content/bsd/_index.md9
-rw-r--r--content/bsd/why-not-bsd.md118
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!