diff options
author | mms <michal@sapka.me> | 2024-05-01 21:58:05 +0200 |
---|---|---|
committer | mms <michal@sapka.me> | 2024-05-01 21:58:05 +0200 |
commit | 58cea08d14f1f6a58bc3333bc8282d30984f44d0 (patch) | |
tree | 7555f49735e7988921f833877069cc51dd0d73fc /content-org/bsd.org | |
parent | 71c2db745ad1edd84833ddf613156dfe24073227 (diff) |
feat: why BSD
Diffstat (limited to 'content-org/bsd.org')
-rw-r--r-- | content-org/bsd.org | 189 |
1 files changed, 144 insertions, 45 deletions
diff --git a/content-org/bsd.org b/content-org/bsd.org index 77c2786..70b5ddd 100644 --- a/content-org/bsd.org +++ b/content-org/bsd.org @@ -46,40 +46,38 @@ No /Hardcore History/ in sight. History of BSD #+end_menu -** DONE Why you should run a BSD on a PC :@bsd: -CLOSED: [2024-04-27 Sat 22:29] +** DONE Why I run a BSD on a PC :@bsd: +CLOSED: [2024-05-01 Wed 21:48] :PROPERTIES: :EXPORT_FILE_NAME: why-bsd :EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract Reasons why BSD may be the best OS for you :EXPORT_HUGO_PAIRED_SHORTCODES: img-r -:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :menu_item_override "Why you should run BSD on a PC" +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :menu_item_override "Why I run BSD on a PC" :EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :menu_item_override_start_li true -:EXPORT_HUGO_MENU_OVERRIDE: :post " or perhaps " +:EXPORT_HUGO_MENU_OVERRIDE: :post "but" :END: There's multitude of Operating Systems to choose from. -You use something like Windows or MacOS and be perfectly happy with it. +You may have been using something like Windows or MacOS and be perfectly happy with it. You can step up and use Linux, Haiku or even Amiga OS. -So, why do I think a BSD system may be the best choice? +So, why do I think a BSD system may be a great choice? -*** FOSS +*** Freedom -The most popular systems out there are propietery. +The most popular systems out there are proprietary. This has the small downside of having to pay, but there's another one. Closed systems have tendency to limit the user. -It's visible much more with MacOS than in Windows, but the user is always blocked from doing what the user wants to do. +It's much more visible with MacOS than in Windows, but the user is always blocked from doing what the user wants to do. Are you following the product manager's ideal path? Is web browser everything you need to run? -If so - getting something from Sillicon Valey may enough. +If so - getting something from Silicon Valley may enough. But a lot of us are hungry for more; we want to be in control instead of being controlled. -Only be having the system be, not only Open Source, but also Free, our desires may be fullfilled. - -FreeBSD gives the user a huge power to adjust itself to the needs and wims. +FreeBSD and GNU/Linux give the user a huge power to adjust itself to the needs and wins. *** License -One of the reasons is the legal term under which all BSDs are provided - the BSD license. +One of the reasons for choosing BSD are the legals term under which all BSDs are provided - the BSD license. It differs strongly from what GNU and others propose. While also being "freedom respecting", it does not limit anyone. Want to create a closed source fork of FreeBSD and stop giving anything back after few short years? @@ -88,88 +86,178 @@ Are you Apple? Because that's how MacOS X started. BSD licenses are amongst the most liberal one. -The most popular, "[[https://opensource.org/license/bsd-3-clause][3-Clause BSD License]]" limits only the liability of the code provider. +The standard "[[https://opensource.org/license/bsd-3-clause][3-Clause BSD License]]" limits only the liability of the code provider. Some say that BSD License are a problem as companies may take and never give up (like Sony did for PS4), but it's as close to the idea of "Free software" as it gets. *** No BigTech As a result of this, there is very little interference from Big Tech. -While Linux is happily in bed with the likes of Microsoft or Google or who are able to steer the development, BSDs are still very much a niche product. -Just look at list of sponsrs of [[https://www.linuxfoundation.org/about/members][Linux Foundation!]] +While Linux is happily in bed with the likes of Microsoft, Google, who are able to steer the development, BSDs are still very much a niche and independent product. +Just look at list of sponsors of [[https://www.linuxfoundation.org/about/members][Linux Foundation!]] -In BSD-land we've got some big players, with Netflix being the most promiment one. +In BSD-land we've got some big players, with Netflix being the most prominent one. But the cooperation is very much on partner terms. +Netflix gives back, but it does not dictate the direction. *** A designed OS But the biggest differential factor between BSDs and GNU/Linux is the way it is structured. -In Linux, all components are designed to work together but are completely separate. -You've got the kernel, init systems, multimedia daemons, userland, bootloader, virtualization and contenerization mechanisms, or package managers. -They are all separate project with their own goals operated by separate entities. -This is why we've got different Linux Distrubitions instead of Operating System. -Everyone can take the kernel, start adding components above it and a few minutes lated the distrowatch is even harder to keep up with. +#+attr_shortcode: "run-bsd.png" +#+begin_img-r +RunBSD +#+end_img-r -Each BSD on the other hand is designed as single environment. -Each component is created and developed together. -While this makes the landscape a bit boring, it also makes it extremely coharent. +In Linux, all components are designed to work together, but are completely separate. +You've got the kernel, init systems, multimedia daemons, userland, bootloader, virtualization and containerization mechanisms, package managers, and so on. +They are all separate projects with their own goals and are operated by separate entities. +This is why we've got different Linux Distributions instead of Operating System. +Everyone can take the kernel, start adding components on top of it, and a few minutes later the distrowatch is even harder to keep up with. + +Each BSD on the other hand is designed as single system. +All components are created and developed together. Things work together perfectly, because they are designed, coded, tested and released as one. +When you install any BSD you are getting the complete package. + *** Build-in technology To give just two examples here: - 1. OpenBSD comes with complete web stack built in. - We've got a firewall (best in class), reverse proxy and http server. + We've got a pocket filter (best in class), reverse proxy and http server. We've even got a TLS certificate manager. + The configuration of all those use similar format, whish is fully explained in man pages. + You don't need any external packages. And the security of each of those is as high as rest of the OS. - All things work together in perfect harmony, it is designed as such. + All things work together in perfect harmony, as it is designed as such. 2. FreeBSD comes with ZFS. - One thing this file system provides are efficent and bullet-proof snapshots. - The developers of FreeBSD used it to create the idea of boot environments - a snapshots of OS. + One thing this file system provides are efficient and bullet-proof snapshots. + The developers of FreeBSD used it to create the idea of boot environments - a snapshot of OS. The user can easily boot from any of those in any moment. Even the standard update process creates a new boot env, just in case something goes wrong. Such integration would be very hard to achieve without up-front design. -And the list goes on: Jails, Beehive, Vnet, Dtrace, Ports system, OpenSSHm Libre SSl. -The crazy folks over at OpenBSD are even working on their own version control system called Game of Trees. +And the list goes on: Jails, Beehive, Vnet, Dtrace, Ports system, OpenSSH, or Libre SSL. +The crazy folks over at OpenBSD are even working on their own version control system called [[https://gameoftrees.org/index.html][Game of Trees]]. +You can find a great deep-dive into FreeBSD tech on [[https://vermaden.wordpress.com/2020/09/07/quare-freebsd/][Vermaden's site]]. -This has the added benefit of having it all in a single place. -One needs to follow only a few repositories to be up to date and informed. +This has the added benefit of having the entire system codebase in a single place. +One needs to follow only a few repositories to be up-to-date and informed. Mind you, those are /gigantic/ repositories, but if you are smart enough[fn:src] - it's there. -*** Stability +*** Documentation -being there +Speaking of documentation, all BSDs have amazing docs. +In GNU world a lot of people were discouraged from man pages, as the quality is not there. +In BSD land the manuals are top-notch and are treated as integral component of each program, and therefore the OS. +Just take a look at the aforementioned [[https://man.openbsd.org/httpd.conf.5][Httpd configuration]]. +The man pages don't end here. +You can compare how termios is described in [[https://man.freebsd.org/cgi/man.cgi?query=termios&apropos=0&sektion=4&manpath=FreeBSD+14.0-RELEASE+and+Ports&arch=default&format=html][FreeBSD]] and in [[https://man7.org/linux/man-pages/man3/termios.3.html][Linux]]. +Quite often I am finding that the provided offline manual are more than enough. -*** Dedicated uses-cases +You can also check the amazing [[https://docs.freebsd.org/en/books/handbook/][FreeBSD Guidebook.]] -*** Documentation +FreeBSD has a dedicated [[https://www.freebsd.org/internal/doceng/][Documentation Engineering Team]] and their work add immeasurable value. *** Community and culture +And not only them. +Occasionally when I wrote something dumb, instead of being screamed at, some maintainer reached out to me and gathered feedback or explained the thing I was missing. +When the people developing the OS have such attitude, BSD community is also infected by this positivity. +Yes, like everywhere, there are some bad eggs, but its nowhere near the OS wars we're seeing in GNU/Linux or proprietary systems. +This may be a result of the fact, that BSD users tend to be much more experienced - it's not the type of OS which people randomly install. +More often than not, using BSD is just a next phase after being involved in Linux. +Also, it seems hard to be /only/ focused on BSD, so people being paid to do BSD work tend to do the same with GNU/Linux. +All in all, I found the crowd to be very welcoming of new people. -*** History +#+attr_shortcode: "openbsd.png" +#+begin_img-r +RunBSD +#+end_img-r +You can find amazing people over at [[https://wiki.bsd.cafe/][bsd.cafe]] or [[https://bsd.network/][bsd.network]]. +The oldest public UNIX system, [[https://sdf.org/][SDF]] is running on NetBSD and quite a few of it's members are active in BSD community. +There's also [[https://mwl.io][Michael W. Lucas]] who makes a living writing AMAZING technical BSD-related books. +And we've got a great dedicated podcast, [[https://www.bsdnow.tv/][BSD Now]]. *** POSIX and widening perspective -ccc + +The one thing that is not welcomed, however, is change for the sake of change. +All BSDs take portability very seriously and follow POSIX closely. +You won't find craziness in the base install, like ZSH or even Bash. +FreeBSD only recently migrated root shell to Bourne Shell sh(1) from tsch(1). +I'm sure a lot of people have never used those despite living in a POSIX-compatible (or even certified) OS. + +Only after daily driving BSD, I started to appreciate following POSIX and not using bashisms. *** OSes, not distributions - [fn:src] I am not; just barely licking C for now. +However, one thing which took me some time to understand was: why do we have those different BSDs instead of a single one. +Well, OpenBSD, FreeBSD, NetBSD, and DragonFly BSD are separate operating systems that have forked from each other[fn:hist]. +They are developed separately and have separate teams. +And even though the code very often migrates between them, they are not the same. + +Just an example: PF, the great pocket filter was developed as part of Open BSD. +It was then ported to FreeBSD. +It worked great, but with time, it diverged from the OpenBSD's one quite significantly, and all those changes had to be ported again, just recently. +Since OpenBSD and FreeBSD grew out of Unix, they are binary compatible, but their kernels differ significantly. +FreeBSD and OpenBSD have different goals, and therefore are diverging more and more. +Pocket Firewall needs to be fast, so it needs to interact closely with the kernel. +This means that all attempts to align PF on these systems requires significant effort. + +Another example: ZFS. +It's a staple of FreeBSD, it's integrated deeply into everything. +But it was never ported to OpenBSD. +In fact, it may never be forked, since it's not aligned with OpenBSD's ideology. + +*** Linux's software availability + +But what good is an OS without software? +Luckly, you've most of Linux has to offer. +Most popular programs are already ported, and those not may not be that difficult to port yourself. +FreeBSD even comes with Linux compatibility layer called [[https://freebsdfoundation.org/blog/update-on-freebsd-foundation-investment-in-linuxulator/][Linuxulator]] -** DONE Why you shouldn't run a BSD on a PC :@bsd: +Not having Microsoft or Adobe is, at least for me, meaningless. +I run a FOSS software in my personal life. + +*** Dedicated uses-cases + +But why do we care about all those systems? +Well, since they have different goals and visions they have different appliances where they shine. +You can use any BSD on a PC (with great successes!0, but when you get comfortable with the system you may want to go deeper. + +FreeBSD with ZFS is a perfect system for a NAS. +OpenBSD with its security focus is often used for homegrown routes (and the site is hosted on OpenBSD VM). +NetBSD is known to run on anything, and therefore is often used of embedded devices - like a [[https://blog.embeddedts.com/netbsd-toaster-powered-by-the-ts-7200-arm9-sbc/][toaster]]. + +*** History + +But still share the Unix lineage and can be traced to *that huge computer in Bell Labs*. +This is very personal, but for me, it was one the factors driving me towards BSD. +Linux is Posix-like, so it looks like Unix, but it not one. +BSD are direct descendants of Unix. + +This is also one the reasons BSDs follow Unix philosophy so closely. + +*** RunBSD + +Those are /mine/ reasons, but everyone has different. +You can read more testimonials on [[https://runbsd.info/][RunBSD]] site, or random blogs like [[https://web.jessups.org/jhjessup/posts/2023-01-30_openbsd-laptop][Jonathan's]] or [[https://rubenerd.com/its-worth-running-a-freebsd-or-netbsd-desktop/][Ruben's]]. + +[fn:src] I am not; just barely licking C for now. +[fn:hist] vide: [[/bsd/history ][BSD History]] on this site. + +** DONE BSDs may not be a system for you :@bsd: CLOSED: [2024-04-20 Sat 22:13] :PROPERTIES: :EXPORT_FILE_NAME: why-not-bsd :EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract Reasons why BSD may not be the best OS for you :EXPORT_HUGO_PAIRED_SHORTCODES: img-r -:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :menu_item_override "why you shouldn't" +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :menu_item_override "perhaps you shouldn't" :EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :menu_item_override_end_li true :END: @@ -177,6 +265,9 @@ Changing GNU/Linux distribution can be done on a whim, as underneath all of that 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. +*** Hardware + + All BSD are much less popular than GNU/Linux[fn:otheros], 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. @@ -197,6 +288,8 @@ 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:gnukernel][fn:closedlicense]. +*** Software availability + 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. @@ -210,11 +303,13 @@ Those programs may be essential for your work or evening. 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:ports] 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. +Firefox on FreeBSD is a huge pile of patches layered over each other. 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. +*** Help + 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:kagi] it and nothing. Nada. @@ -242,6 +337,8 @@ 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. +*** Pace of change + 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. @@ -252,6 +349,8 @@ Even good old /ifconfig/ is being deprecated. At the same time BSDs still use technology from decades ago[fn:slow]. There was never a need to replace them, so no one did it. +*** It's Linux, right? + 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. |