diff options
author | mms <michal@sapka.me> | 2024-04-24 20:00:47 +0200 |
---|---|---|
committer | mms <michal@sapka.me> | 2024-04-24 20:00:47 +0200 |
commit | 06a78ff287d3fc51cb8f5d04dfdc751379fa10ff (patch) | |
tree | 926326f1dd7243405114af72eb65bd72f4446ca2 /content-org/bsd.org | |
parent | 1c29765a2b4cb5d2702d2476cdc8985a6870d541 (diff) |
chore: add bottom nav to BSD
Diffstat (limited to 'content-org/bsd.org')
-rw-r--r-- | content-org/bsd.org | 554 |
1 files changed, 281 insertions, 273 deletions
diff --git a/content-org/bsd.org b/content-org/bsd.org index 542a8dc..ced656f 100644 --- a/content-org/bsd.org +++ b/content-org/bsd.org @@ -7,22 +7,263 @@ #+HUGO_WEIGHT: auto #+HUGO_SECTION: bsd -** DONE Berkeley Software Distribution :@bsd: +* DONE Berkeley Software Distribution CLOSED: [2024-03-06 Wed 14:45] :PROPERTIES: :EXPORT_FILE_NAME: _index -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract A site dedicated to BSD family of systems +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract A site dedicated to BSD family of systems :EXPORT_HUGO_PAIRED_SHORTCODES: recent-updates menu img-r :END: -* BSD + +* BSD :@bsd: +:PROPERTIES: +:EXPORT_HUGO_MENU: :menu bsd +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd +:END: +** Unix history :@bsd: +:PROPERTIES: +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd-history +:EXPORT_HUGO_SECTION: bsd/history +:EXPORT_HUGO_MENU: :menu bsd-history +:END: +*** DONE History of BSD and Unix +CLOSED: [2024-04-08 Mon 09:37] +:PROPERTIES: +:EXPORT_FILE_NAME: _index +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract the long and turbolent history +:EXPORT_HUGO_PAIRED_SHORTCODES: menu img-r +:EXPORT_HUGO_MENU: :menu bsd +:END: + +Does computer history have any real appliance? +Not really. +Does it explain certain, potentially baffling things? Certainly. +But does it make great beer talk? +Absolutely! +Especially when discussing systems with such rich history as BSD. +I will be gentle here, I promise. +No /Hardcore History/ in sight. + + +#+attr_shortcode: "bsd-history" +#+begin_menu +History of BSD +#+end_menu + +*** DONE History of BSD part I: Multics +CLOSED: [2024-03-09 Sat 21:03] :PROPERTIES: -:EXPORT_HUGO_MENU: :menu bsd +:EXPORT_FILE_NAME: 01_multics +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract BSD history starts with Multics +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :shortname Part I: Multics +:EXPORT_HUGO_MENU: :menu bsd-history :name "Multics" +:EXPORT_HUGO_PAIRED_SHORTCODES: img-c :END: + +**** Origins of time-sharing + +Let's start our journey back when dinosaurs roamed the earth, engineers wore ties, and Barbie was first gaining popularity - the 60s. +Nowadays, we have grown accustom to companies selling devices at lower profit margins - with most profit coming from software subscriptions. +But 70 years ago it was the complete opposite. +Companies bought expensive computers, huge machines, and what was running on them was of lesser value. +And I really mean /expensive/. +An IBM System/360 Model 20, presented in 1964, could have been bought starting from USD 62,710 (USD 622,626 adjusted for inflation) or rented for USD 1280 (USD 12,708 adjusted)[fn:IBM360]. +Sellers earned a lot from the devices. +But, naturally, companies making all those investments wanted a nice return. +This led to the creation of /time-sharing/. + +#+attr_shortcode: "ibm-360.jpg" "https://www.nbcnews.com/tech/gadgets/5-reasons-love-mad-mens-new-star-ibm-360-n101716" +#+begin_img-c +IBM 360 in an official photoshoot. +#+end_img-c + +This concept seems natural now: multiple processes were able to share computer resources, so multiple applications could run at the same time. +Applications could even run for different users. +Ergo, time-sharing allowed for multi-user multitask processing. +This is in stark contrast to batch-processing, where only a single program would be able to compute at any particular time. +An example of such processing would be EDSAC, the first electronic computer[fn:root]. +I won't go into detail of time-sharing, but you can read more in "Time sharing in large computers", C. Strachey, 1959. +But what is important here is how it was used. +All computation happened on a single, large server. +End users would use /computer terminals/ which were /multiplexed/ into that server, called a /mainframe/. +What is multiplexing you ask? +Simply said, it's a way to combine different signals into a shared medium. +It was used extensively for land-line telephony, where all signals were transferred over shared wires. + +#+attr_shortcode: "edsac.jpg" "https://www.datacenterdynamics.com/en/analysis/rebuilding-edsac-the-first-real-computer/" +#+begin_img-c +EDSAC, the "first computer". +#+end_img-c + +**** Multics + +Let's jump to 1969. + +/Multics (MULTiplexed Information and Computing)/ was an early time-sharing operating system developed by /MIT/, /General Electrics/ and /Bell Labs/. +It pioneered many of innovations which are still widely used in the computing systems of today: hierarchical file system, redirection as interprocess communication, or the existence of a shell[fn:wiki], as well as memory pages, memory protection, or the ability for a single machine to use multiple CPUs and memory[fn:allen]. +It was however also huge, both in terms of memory usage (the resident kernel could occupy a huge part of memory living not enough for applications) and code size (it consisted of about 1,5k source modules)[fn:wiki]. +/Multics/ was experimental and therefore ambitious, complex - designed by trial and error. +It was delivered late, early on had performance problems, and in 1969 /Bell Labs/ withrew from the project[fn:earlylin]. + +#+attr_shortcode: "multics-login.png" "https://en.wikipedia.org/wiki/Multics#/media/File:Multics-Login.png" +#+begin_img-c +Multics login screen. +#+end_img-c + +#+attr_shortcode: "thompson-ritchie.jpg" "https://computerhistory.org/blog/discovering-dennis-ritchies-lost-dissertation/" +#+begin_img-c +Ken Thompson and Denis Ritchie. +#+end_img-c + +Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna, frustrated with their experiences with /Multics/ Operating System are starting to work on their own alternative. +Their work will become one of the most beloved computer products of all time - /UNIX/. +The team armed with previous experience set up to create simple, manageable OS that would still fulfill all the requirements /Multics/ was to fulfill. + +Currently, however, they have problems convincing /Bell Labs/ management to get them a new computer. +This has not stopped them from designing the system on black blackboards and paper. + +[fn:IBM360] [[https://ibms360.co.uk/?p=902][IBM 360 Model 20 Rescue and Restoration: Machine Overview]] +[fn:root] [[http://blog.wovenmemories.net/2023/10/30/First.Operating.System_Part.1.html][First Operating System -- Part One]] +[fn:wiki] [[https://en.wikipedia.org/wiki/Multics][Multics --- {W}ikipedia{,} The Free Encyclopedia]] +[fn:allen] [[https://www.youtube.com/watch?v=UYb6WqWBTE0][Mark Allen - Before Unix: An Early History of Timesharing Systems]] +[fn:earlylin] [[https://www.youtube.com/watch?v=ECCr_KFl41E][The early days of Unix at Bell Labs - Brian Kernighan (LCA 2022 Online)]] +*** DONE History of BSD part II: Unix +CLOSED: [2024-03-16 Sat 21:00] +:PROPERTIES: +:EXPORT_FILE_NAME: 02_unix +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract How Unix came to be? +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :shortname Part II: Unix +:EXPORT_HUGO_MENU: :menu bsd-history :name "Unix" +:EXPORT_HUGO_PAIRED_SHORTCODES: img-c +:END: + +**** Bell Labs +Let's pause here and discuss a few things. + +/Bell Labs/ was a research institute founded by no other, but the famous Alexander Graham Bell in 1876. +It is known as one of the most innovative places ever conceived. +It was the birthplace of radio astronomy, the transistor, the laser, the photovoltaic cell, the charge-coupled device (CCD), information theory, and the programming languages B, C, C++, S, SNOBOL, AWK, AMPL, and the UNIX operating system. +The work completed there was awarded 10 times with a Nobel Prize[fn:wikibell]. + +But it wasn't all pretty. +AT&T (owner of the lab) was /the/ telephone company in the USA. +It had the /de facto/ monopoly for most of the 20th century. +This led to a consent decree with US Government under which AT&T was forbidden to branch out to other markets. +This agreement happened in 1956 and will be very important for our story[fn:hiddenunix]. + +Another cool tidbit: back then computer screens as we know them now were yet to be invented. +There were ways for computer to present information on a screen, but it was not feasable to present information back to the user in real time. +The monitor was a separate machine and an /assembly/ code to light up individual pixels would need to be sent every time to it. +If the user wanted to see what the edited document looked like, the only way to achieve that was via a printer. +Try to print a page every few lines - let alone every character. +Even the bravest of the brave would not escape the anger of the finance department. + +**** Getting a computer + +After this short intermission, let's return to /UNIX/. + +The popular history of /UNIX/ goes as follows: +Ken Thompson finds a PDP-7 microcomputer, starts playing with it and suddenly realizes that he has created a new operating system. + +What he actually wanted to do, was to play a damn game. +A completely reasonable reason to revolutionize the industry if you ask me. + +Ken was a huge fan of /Space Travel/, but it was only available on mainframes. +And since those costed an arm and a leg, end users were paying for time they used. +A single game of /Space Travel/ could cost Ken USD 50-75[fn:uvlist]. +Luckily, he was able to find a discarded PDP-7 from another department[fn:hiddenunix]. + +#+attr_shortcode: "space-travel.png" "https://www.uvlist.net/game-164857-Space+Travel" +#+begin_img-c +Space Travel +#+end_img-c + +What the PDP-7 was, was a refrigerator size 18bit monstrosity[fn:hiddenunix]. +It was at the time a 5-year-old and obsolete[fn:earlylin] leftover from an ended research into audio-psychology. +No one cared what would happen to this particular machine. +Have I mentioned just how stinky rich the /Bell Lab/ was? +So, Ken started rewriting the game for that PDP-7 as /GECOS Space Travel/. + +Porting the game proved challenging and difficult to debug, so they developed a system for PDP-7 to make developing the game easier. +This was how /PDP UNIX/ was born[fn:lcm]. +A guy wanted to play a god-damn game and now bankrupt in the process[fn:hiddenunix] + +Labs management was very happy with this turn of events as /UNIX/ was something to show after the /Multics/ fiasco. +They allowed Ken to get himself a /PDP-11/ and port /UNIX/ to it. +It was a cheaper machine compared to /PDP-7/, but it was also 16bit - which was a nice change. +Officially, the new system would allow for document preparation for patent applications[fn:earlylin]. +The biggest benefit however was the popularity of this machine - over the next decades it could be seen everywhere across enterprise America. +You can buy a working one from /eBay/ today. +It won't be easy nor cheap, but definitely possible. + +#+attr_shortcode: "pdp-7.jpeg" "https://en.wikipedia.org/wiki/PDP-7#/media/File:Pdp7-oslo-2005.jpeg" +#+begin_img-c +PDP-7 +#+end_img-c + +#+attr_shortcode: "thompson-ritchie-pdp11.jpg" "https://www.bell-labs.com/institute/blog/invention-unix/" +#+begin_img-c +Ken Thompson and Denis Ritchie working on the legendary PDP-11. +#+end_img-c + +**** Unix 1 + +So here we are, November 1971, and /UNIX 1/ for /PDP-11/ is released[fn:50] + +A year later Ken notes: +#+begin_quote + +[...]the number of UNIX installations has grown to 10, with +more expected. None of these has exactly the same complement of +hardware or software. Therefore, at any particular installation, +it is quite possible that this manual will give inappropriate +information. [...] Also, not all installations have the latest versions of all the software.'' + +-- Unix Programmers Manual, Second Edition. Thompson Ken, Ritchie Denis, 1972 +#+end_quote + +Note, that this is 10 mainframes across /Bell Labs/, so user count was significantly higher. + +It's also worth to talk about release cycle. +UNIX was in constant development, and each installation would use current snapshot at the moment of installation. +This is why Ken notes that each part of /UNIX/ could differ between installations. +What is also important is that due to licensing of /UNIX/ (or rather lack of thereof), each installation would be accompanied by full source code. +Administrators were able to modify the system. +Crazy times. + +Still, in June 1972 the 2nd Edition of /UNIX/ was released and every 7–8 months a new release was out. + +In November 1973, a 4th Edition was released, and it was the first one released to Universities. +It made quite the buzz, and first user groups started forming under the /USENIX/ name[fn:hiddenunix]. +It's worth to mention that this version was rewritten in C, as previous versions which were created in Assembly +This made it the first portable /UNIX/, as it could be recompiled to any compared, as long as it also had a C compiler[fn:earlylin]. + +The system was presented by Ken and Denis during the /4th Symposium on Operating System Principles/ the same year, +and a year later Ken and Dennis publish the first paper on /UNIX/ - "The UNIX Time-Sharing System" in the /Communications/ journal of ACM. + +#+attr_shortcode: "unix-tech-journal.jpg" "https://leancrew.com/all-this/2011/10/dennis-ritchie-unix-and-clarity/" +#+begin_img-c +Bell System Technical Journal cover. +#+end_img-c + +The word was out and /UNIX/ became known outside of /Bell Labs/. + +In the next episode of History of BSD: the scariest creature of them all. +Lawyers. + +[fn:wikibell] [[https://en.wikipedia.org/wiki/Bell_Labs][Bell Labs --- {W}ikipedia{,} The Free Encyclopedia]] +[fn:hiddenunix] [[https://www.youtube.com/watch?v=xuzeagzqwrs][The hidden early history of unix the forgotten history of early unix]] +[fn:earlylin] [[https://www.youtube.com/watch?v=ECCr_KFl41E][The early days of Unix at Bell Labs - Brian Kernighan (LCA 2022 Online)]] +[fn:uvlist] [[https://www.uvlist.net/game-164857-Space+Travel][UVL]] +[fn:50] The 50th anniversary of this event was very big for a small group of fans. +[fn:lcm] [[https://livingcomputers.org/Blog/Restoring-UNIX-v0-on-a-PDP-7-A-look-behind-the-sce.aspx][Living Computer Museum]] has a real PDP-7 running /PDP Unix/ if want to chek it. + ** DONE Why you shouldn't run a BSD on a PC :@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_CUSTOM_FRONT_MATTER+: :abstract Reasons why BSD may not be the best OS for you :EXPORT_HUGO_PAIRED_SHORTCODES: img-r :END: @@ -134,12 +375,13 @@ It's a good thing, I promise! * OpenBSD :@bsd: :PROPERTIES: :EXPORT_HUGO_MENU: :menu bsd :parent "openbsd" +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd :END: ** DONE OpenBSD webstack: Relayd, Httpd and Acme-client CLOSED: [2023-07-19 Mon 19:08] :PROPERTIES: :EXPORT_FILE_NAME: open-bsd-web-stack -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract How to setup the web server stack work? +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract How to setup the web server stack work? :EXPORT_HUGO_MENU_OVERRIDE: :identifier "obsdweb" :name "Webstack: Relayd, Httpd and Acme-Client" :END: OpenBSD comes with three great tools out of the box: @@ -374,7 +616,7 @@ I also can't recommend enough "Httpd and Relayd Mastery" by Michael W. Lucas[fn: CLOSED: [2023-12-11 Mon 19:08] :PROPERTIES: :EXPORT_FILE_NAME: blocking-bad-bots-openbsd -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract How do I fight bad crawlers? +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract How do I fight bad crawlers? :EXPORT_HUGO_MENU_OVERRIDE: :parent "obsdweb" :name "Blocking bad bots using Relayd" :END: @@ -440,7 +682,7 @@ Therefore, my "https" protocol now has a series of blocks: CLOSED: [2023-07-19 Mon 19:30] :PROPERTIES: :EXPORT_FILE_NAME: relayd-custom-webserver -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract How to forward request to webserver? +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract How to forward request to webserver? :EXPORT_HUGO_MENU_OVERRIDE: :parent "obsdweb" :name "Forwarding requests from Relayd to a custom webserver" :END: One thing that OpenBSD doesn't provide (yet?) is an HTTP proxy. @@ -503,7 +745,7 @@ LSP for Java/Scala is still a joke, and I refuse to pollute my system with Intel CLOSED: [2023-07-19 Mon 22:47] :PROPERTIES: :EXPORT_FILE_NAME: moved-to-openbsd -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract A short info on OpenBSD Amsterdam +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract A short info on OpenBSD Amsterdam :EXPORT_HUGO_MENU_OVERRIDE: :name "Moved to OpenBSD" :EXPORT_HUGO_PAIRED_SHORTCODES: img-r :END: @@ -593,14 +835,15 @@ In reality, I'm test-driving it on my laptop and have much fewer problems than w Screw them. They have almost all of the interwebs in their server farm, but they will not have this blog! * FreeBSD :@bsd: - :PROPERTIES: +:PROPERTIES: +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd :EXPORT_HUGO_MENU: :menu bsd :parent "freebsd" :END: ** DONE FreeBSD: examples of Jail usage CLOSED: [2023-12- Mon 21:29] :PROPERTIES: :EXPORT_FILE_NAME: jails-usage-examples -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract How can we use FreeBSD Jails? +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract How can we use FreeBSD Jails? :EXPORT_HUGO_MENU_OVERRIDE: :name "Some examples of using Jails" :END: Creating Jails in FreeBSD is very easy. @@ -742,23 +985,25 @@ And boom. We've got machine language grammar checking which is completely offlin Our tinfoil friends will be proud of us. [this article will be expanded with more examples in the near future] -* Thinkpad :@bsd: +** Thinkpad :@bsd: :PROPERTIES: :EXPORT_HUGO_SECTION: bsd/thinkpad -:EXPORT_HUGO_MENU: :menu bsd-thinkpad +:EXPORT_HUGO_MENU: :menu bsd-thinkpad +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd-thinkpad :END: -** DONE FreeBSD on Thinkpad X1 Extreme G2 +*** DONE FreeBSD on Thinkpad X1 Extreme G2 CLOSED: [2024-04-10 Wed 22:42] :PROPERTIES: :EXPORT_FILE_NAME: _index -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract My my laptop on FreeBSD +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract My my laptop on FreeBSD :EXPORT_HUGO_PAIRED_SHORTCODES: img-c img-r menu :EXPORT_HUGO_MENU: :menu bsd :parent freebsd :name "Thinkpad X1 Extreme G2 support" +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd :END: This is my personal machine, where I run FreeBSD-release daily. -*** Current status of components: +**** Current status of components: | Name | Comment | Status | |--------------------+--------------------------------------------------------+----------------------------| @@ -782,7 +1027,7 @@ This is my personal machine, where I run FreeBSD-release daily. [fn:wifi] I have replaced my WiFi card -*** Articles +**** Articles Some articles I've written about trying to get it to a usable state: @@ -790,11 +1035,11 @@ Some articles I've written about trying to get it to a usable state: #+begin_menu History of BSD #+end_menu -** DONE FreeBSD: Review of Thinkpad Extreme G2 +*** DONE FreeBSD: Review of Thinkpad Extreme G2 CLOSED: [2023-02-25 Mon 22:30] :PROPERTIES: :EXPORT_FILE_NAME: freebsd-on-thinkpad-x1-extreme-g2 -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract it works, but there are drawbacks +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract it works, but there are drawbacks :EXPORT_HUGO_MENU_OVERRIDE: :name "Impressions, Instalation and problems" :EXPORT_HUGO_PAIRED_SHORTCODES: img-c img-r :END: @@ -803,7 +1048,7 @@ My wife got a new computer, so I can easily break my laptop whenever I want - so *All this applies to FreeBSD 13.1 at the time of publishing. I'll add links to any additions and errata in the future* -*** Installation +**** Installation The installation process is great. It's more involved than something like Fedora, and some concepts were foreign to me. @@ -818,7 +1063,7 @@ Partitioning Many things worked out of the box, but not all of them. -*** Hardware +**** Hardware Setting X-Org was a breeze. Nvidia drivers are [[https://docs.freebsd.org/en/books/handbook/x11/#x-configuration-nvidia][available and ready to go]] no additional configuration is necessary. @@ -873,17 +1118,17 @@ And even if I get fed up with the state of hardware support, I'll keep FreeBSD a For personal servers, however, I see no way of abandoning BSD. -*** Updates +**** Updates - 2023-02-27: [[/2023/fixing-resume-on-thinkpad-x1-extreme-g2-on-freebsd][Fixing resume due to graphic drivers]] - 2023-02-04: [[/2023/freebsd-configuring-nvidia-and-xorg-on-thinkpad-x1-extreme-g2][Configuring NVIDIA]]. - 2023-03-15: [[/2023/freebsd-on-modern-intel-wifi-cards-and-resume][Problems with WiFi after resume]] -** DONE FreeBSD: Fixing ThinkPad X1 Wifi +*** DONE FreeBSD: Fixing ThinkPad X1 Wifi CLOSED: [2023-08-03 Mon 21:40] :PROPERTIES: :EXPORT_FILE_NAME: fixing-thinkpad-x1-wifi-on-freebsd -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract replacing a wificard fixes everything +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract replacing a wificard fixes everything :EXPORT_HUGO_MENU_OVERRIDE: :name "Fixing WiFi for good" :EXPORT_HUGO_PAIRED_SHORTCODES: img-c :END: @@ -941,11 +1186,11 @@ I will break the system so ZFS will be a great addition. And having more applic [fn:systemd] Which is one of the few good things about [systemd](https://michal.sapka.me/2023/systemd-is-fast/) [fn:golang] I could have learned to Go, but I chose a totally unmarketable skill for a programmer. I think it makes it even cooler. [fn:pf] I am currently reading /[[https://nostarch.com/pf3][[The Book of PF]]/ so I can have any benefit. Great book. Would recommend. -** DONE FreeBSD: Switching Between Speakers and Headphones +*** DONE FreeBSD: Switching Between Speakers and Headphones CLOSED: [2023-03-16 Mon 23:02] :PROPERTIES: :EXPORT_FILE_NAME: switching-between-speakers-and-headphones-on-freebsd -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract How to change the audio sevices? +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract How to change the audio sevices? :EXPORT_HUGO_MENU_OVERRIDE: :name "Switching beteen headphnes and speakers" :END: I want my laptop to switch to wired headphones when I attach them. @@ -990,11 +1235,11 @@ Some apps (khem khem, Firefox) not native to FreeBSD come configured with PulseA This creates a level of indirection, and changing system output may not work instantly. In the case of Firefox, I need to reload the tab. Some apps, as I've heard, require a restart. -** DONE FreeBSD: Fixing Resume on ThinkPad X1 Extreme G2 due to integrated graphic card +*** DONE FreeBSD: Fixing Resume on ThinkPad X1 Extreme G2 due to integrated graphic card CLOSED: [2023-03-16 Mon 23:02] :PROPERTIES: :EXPORT_FILE_NAME: fixing-resume-on-thinkpad-x1-extreme-g2-on-freebsd -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract you need to load the driver +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract you need to load the driver :EXPORT_HUGO_MENU_OVERRIDE: :name "Fixing resume due to Intel driver" :END: *This applies to FreeBSD 13.1* @@ -1027,11 +1272,11 @@ reboot Now the computer can sleep and resume without any problems. At least when using [[https://man.freebsd.org/cgi/man.cgi?acpiconf(8)][sleep mode 3]]. The 4th doesn't work for me at all. -** DONE FreeBSD: configuring Nvidia and Xorg +*** DONE FreeBSD: configuring Nvidia and Xorg CLOSED: [2023-03-16 Mon 23:02] :PROPERTIES: :EXPORT_FILE_NAME: freebsd-configuring-nvidia-and-xorg-on-thinkpad-x1-extreme-g2 -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract A tutorial on making Nvidia work +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract A tutorial on making Nvidia work :EXPORT_HUGO_MENU_OVERRIDE: :name "Setting up Nvidia" :END: First, the bad news: I could not make FreeBSD work with Hybrid Graphics, so I use only the discrete one. @@ -1100,252 +1345,11 @@ Notes: I learned the BUS trick from [[https://nudesystems.com/how-to-fix-no-screen-found-xorg-error-on-freebsd/][Nude Systems]]. -* Unix history :@bsd: -:PROPERTIES: -:EXPORT_HUGO_SECTION: bsd/history -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :hasNavSection bsd-history -:END: -** DONE History of BSD and Unix -CLOSED: [2024-04-08 Mon 09:37] -:PROPERTIES: -:EXPORT_FILE_NAME: _index -:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: abstract the long and turbolent history -:EXPORT_HUGO_PAIRED_SHORTCODES: menu img-r -:EXPORT_HUGO_MENU: :menu bsd -:END: - -Does computer history have any real appliance? -Not really. -Does it explain certain, potentially baffling things? Certainly. -But does it make great beer talk? -Absolutely! -Especially when discussing systems with such rich history as BSD. -I will be gentle here, I promise. -No /Hardcore History/ in sight. - - -#+attr_shortcode: "bsd-history" -#+begin_menu -History of BSD -#+end_menu - -** DONE History of BSD part I: Multics -CLOSED: [2024-03-09 Sat 21:03] -:PROPERTIES: -:EXPORT_FILE_NAME: 01_multics -:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: abstract BSD history starts with Multics -:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :shortname Part I: Multics -:EXPORT_HUGO_MENU: :menu bsd-history :name "Multics" -:EXPORT_HUGO_PAIRED_SHORTCODES: img-c -:END: - -*** Origins of time-sharing - -Let's start our journey back when dinosaurs roamed the earth, engineers wore ties, and Barbie was first gaining popularity - the 60s. -Nowadays, we have grown accustom to companies selling devices at lower profit margins - with most profit coming from software subscriptions. -But 70 years ago it was the complete opposite. -Companies bought expensive computers, huge machines, and what was running on them was of lesser value. -And I really mean /expensive/. -An IBM System/360 Model 20, presented in 1964, could have been bought starting from USD 62,710 (USD 622,626 adjusted for inflation) or rented for USD 1280 (USD 12,708 adjusted)[fn:IBM360]. -Sellers earned a lot from the devices. -But, naturally, companies making all those investments wanted a nice return. -This led to the creation of /time-sharing/. - -#+attr_shortcode: "ibm-360.jpg" "https://www.nbcnews.com/tech/gadgets/5-reasons-love-mad-mens-new-star-ibm-360-n101716" -#+begin_img-c -IBM 360 in an official photoshoot. -#+end_img-c - -This concept seems natural now: multiple processes were able to share computer resources, so multiple applications could run at the same time. -Applications could even run for different users. -Ergo, time-sharing allowed for multi-user multitask processing. -This is in stark contrast to batch-processing, where only a single program would be able to compute at any particular time. -An example of such processing would be EDSAC, the first electronic computer[fn:root]. -I won't go into detail of time-sharing, but you can read more in "Time sharing in large computers", C. Strachey, 1959. -But what is important here is how it was used. -All computation happened on a single, large server. -End users would use /computer terminals/ which were /multiplexed/ into that server, called a /mainframe/. -What is multiplexing you ask? -Simply said, it's a way to combine different signals into a shared medium. -It was used extensively for land-line telephony, where all signals were transferred over shared wires. - -#+attr_shortcode: "edsac.jpg" "https://www.datacenterdynamics.com/en/analysis/rebuilding-edsac-the-first-real-computer/" -#+begin_img-c -EDSAC, the "first computer". -#+end_img-c - -*** Multics - -Let's jump to 1969. - -/Multics (MULTiplexed Information and Computing)/ was an early time-sharing operating system developed by /MIT/, /General Electrics/ and /Bell Labs/. -It pioneered many of innovations which are still widely used in the computing systems of today: hierarchical file system, redirection as interprocess communication, or the existence of a shell[fn:wiki], as well as memory pages, memory protection, or the ability for a single machine to use multiple CPUs and memory[fn:allen]. -It was however also huge, both in terms of memory usage (the resident kernel could occupy a huge part of memory living not enough for applications) and code size (it consisted of about 1,5k source modules)[fn:wiki]. -/Multics/ was experimental and therefore ambitious, complex - designed by trial and error. -It was delivered late, early on had performance problems, and in 1969 /Bell Labs/ withrew from the project[fn:earlylin]. - -#+attr_shortcode: "multics-login.png" "https://en.wikipedia.org/wiki/Multics#/media/File:Multics-Login.png" -#+begin_img-c -Multics login screen. -#+end_img-c - -#+attr_shortcode: "thompson-ritchie.jpg" "https://computerhistory.org/blog/discovering-dennis-ritchies-lost-dissertation/" -#+begin_img-c -Ken Thompson and Denis Ritchie. -#+end_img-c - -Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna, frustrated with their experiences with /Multics/ Operating System are starting to work on their own alternative. -Their work will become one of the most beloved computer products of all time - /UNIX/. -The team armed with previous experience set up to create simple, manageable OS that would still fulfill all the requirements /Multics/ was to fulfill. - -Currently, however, they have problems convincing /Bell Labs/ management to get them a new computer. -This has not stopped them from designing the system on black blackboards and paper. - -[fn:IBM360] [[https://ibms360.co.uk/?p=902][IBM 360 Model 20 Rescue and Restoration: Machine Overview]] -[fn:root] [[http://blog.wovenmemories.net/2023/10/30/First.Operating.System_Part.1.html][First Operating System -- Part One]] -[fn:wiki] [[https://en.wikipedia.org/wiki/Multics][Multics --- {W}ikipedia{,} The Free Encyclopedia]] -[fn:allen] [[https://www.youtube.com/watch?v=UYb6WqWBTE0][Mark Allen - Before Unix: An Early History of Timesharing Systems]] -[fn:earlylin] [[https://www.youtube.com/watch?v=ECCr_KFl41E][The early days of Unix at Bell Labs - Brian Kernighan (LCA 2022 Online)]] -** DONE History of BSD part II: Unix -CLOSED: [2024-03-16 Sat 21:00] -:PROPERTIES: -:EXPORT_FILE_NAME: 02_unix -:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract How Unix came to be? -:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :shortname Part II: Unix -:EXPORT_HUGO_MENU: :menu bsd-history :name "Unix" -:EXPORT_HUGO_PAIRED_SHORTCODES: img-c -:END: - -*** Bell Labs -Let's pause here and discuss a few things. - -/Bell Labs/ was a research institute founded by no other, but the famous Alexander Graham Bell in 1876. -It is known as one of the most innovative places ever conceived. -It was the birthplace of radio astronomy, the transistor, the laser, the photovoltaic cell, the charge-coupled device (CCD), information theory, and the programming languages B, C, C++, S, SNOBOL, AWK, AMPL, and the UNIX operating system. -The work completed there was awarded 10 times with a Nobel Prize[fn:wikibell]. - -But it wasn't all pretty. -AT&T (owner of the lab) was /the/ telephone company in the USA. -It had the /de facto/ monopoly for most of the 20th century. -This led to a consent decree with US Government under which AT&T was forbidden to branch out to other markets. -This agreement happened in 1956 and will be very important for our story[fn:hiddenunix]. - -Another cool tidbit: back then computer screens as we know them now were yet to be invented. -There were ways for computer to present information on a screen, but it was not feasable to present information back to the user in real time. -The monitor was a separate machine and an /assembly/ code to light up individual pixels would need to be sent every time to it. -If the user wanted to see what the edited document looked like, the only way to achieve that was via a printer. -Try to print a page every few lines - let alone every character. -Even the bravest of the brave would not escape the anger of the finance department. - -*** Getting a computer - -After this short intermission, let's return to /UNIX/. - -The popular history of /UNIX/ goes as follows: -Ken Thompson finds a PDP-7 microcomputer, starts playing with it and suddenly realizes that he has created a new operating system. - -What he actually wanted to do, was to play a damn game. -A completely reasonable reason to revolutionize the industry if you ask me. - -Ken was a huge fan of /Space Travel/, but it was only available on mainframes. -And since those costed an arm and a leg, end users were paying for time they used. -A single game of /Space Travel/ could cost Ken USD 50-75[fn:uvlist]. -Luckily, he was able to find a discarded PDP-7 from another department[fn:hiddenunix]. - -#+attr_shortcode: "space-travel.png" "https://www.uvlist.net/game-164857-Space+Travel" -#+begin_img-c -Space Travel -#+end_img-c - -What the PDP-7 was, was a refrigerator size 18bit monstrosity[fn:hiddenunix]. -It was at the time a 5-year-old and obsolete[fn:earlylin] leftover from an ended research into audio-psychology. -No one cared what would happen to this particular machine. -Have I mentioned just how stinky rich the /Bell Lab/ was? -So, Ken started rewriting the game for that PDP-7 as /GECOS Space Travel/. - -Porting the game proved challenging and difficult to debug, so they developed a system for PDP-7 to make developing the game easier. -This was how /PDP UNIX/ was born[fn:lcm]. -A guy wanted to play a god-damn game and now bankrupt in the process[fn:hiddenunix] - -Labs management was very happy with this turn of events as /UNIX/ was something to show after the /Multics/ fiasco. -They allowed Ken to get himself a /PDP-11/ and port /UNIX/ to it. -It was a cheaper machine compared to /PDP-7/, but it was also 16bit - which was a nice change. -Officially, the new system would allow for document preparation for patent applications[fn:earlylin]. -The biggest benefit however was the popularity of this machine - over the next decades it could be seen everywhere across enterprise America. -You can buy a working one from /eBay/ today. -It won't be easy nor cheap, but definitely possible. - -#+attr_shortcode: "pdp-7.jpeg" "https://en.wikipedia.org/wiki/PDP-7#/media/File:Pdp7-oslo-2005.jpeg" -#+begin_img-c -PDP-7 -#+end_img-c - -#+attr_shortcode: "thompson-ritchie-pdp11.jpg" "https://www.bell-labs.com/institute/blog/invention-unix/" -#+begin_img-c -Ken Thompson and Denis Ritchie working on the legendary PDP-11. -#+end_img-c - -*** Unix 1 - -So here we are, November 1971, and /UNIX 1/ for /PDP-11/ is released[fn:50] - -A year later Ken notes: -#+begin_quote - -[...]the number of UNIX installations has grown to 10, with -more expected. None of these has exactly the same complement of -hardware or software. Therefore, at any particular installation, -it is quite possible that this manual will give inappropriate -information. [...] Also, not all installations have the latest versions of all the software.'' - --- Unix Programmers Manual, Second Edition. Thompson Ken, Ritchie Denis, 1972 -#+end_quote - -Note, that this is 10 mainframes across /Bell Labs/, so user count was significantly higher. - -It's also worth to talk about release cycle. -UNIX was in constant development, and each installation would use current snapshot at the moment of installation. -This is why Ken notes that each part of /UNIX/ could differ between installations. -What is also important is that due to licensing of /UNIX/ (or rather lack of thereof), each installation would be accompanied by full source code. -Administrators were able to modify the system. -Crazy times. - -Still, in June 1972 the 2nd Edition of /UNIX/ was released and every 7–8 months a new release was out. - -In November 1973, a 4th Edition was released, and it was the first one released to Universities. -It made quite the buzz, and first user groups started forming under the /USENIX/ name[fn:hiddenunix]. -It's worth to mention that this version was rewritten in C, as previous versions which were created in Assembly -This made it the first portable /UNIX/, as it could be recompiled to any compared, as long as it also had a C compiler[fn:earlylin]. - -The system was presented by Ken and Denis during the /4th Symposium on Operating System Principles/ the same year, -and a year later Ken and Dennis publish the first paper on /UNIX/ - "The UNIX Time-Sharing System" in the /Communications/ journal of ACM. - -#+attr_shortcode: "unix-tech-journal.jpg" "https://leancrew.com/all-this/2011/10/dennis-ritchie-unix-and-clarity/" -#+begin_img-c -Bell System Technical Journal cover. -#+end_img-c - -The word was out and /UNIX/ became known outside of /Bell Labs/. - -In the next episode of History of BSD: the scariest creature of them all. -Lawyers. - -[fn:wikibell] [[https://en.wikipedia.org/wiki/Bell_Labs][Bell Labs --- {W}ikipedia{,} The Free Encyclopedia]] -[fn:hiddenunix] [[https://www.youtube.com/watch?v=xuzeagzqwrs][The hidden early history of unix the forgotten history of early unix]] -[fn:earlylin] [[https://www.youtube.com/watch?v=ECCr_KFl41E][The early days of Unix at Bell Labs - Brian Kernighan (LCA 2022 Online)]] -[fn:uvlist] [[https://www.uvlist.net/game-164857-Space+Travel][UVL]] -[fn:50] The 50th anniversary of this event was very big for a small group of fans. -[fn:lcm] [[https://livingcomputers.org/Blog/Restoring-UNIX-v0-on-a-PDP-7-A-look-behind-the-sce.aspx][Living Computer Museum]] has a real PDP-7 running /PDP Unix/ if want to chek it. - -* Varia :@bsd: -:PROPERTIES: -:EXPORT_HUGO_MENU: :menu bsd :parent "varia" -:END: ** DONE FreeBSD: Early thoughts CLOSED: [2023-02-15 Mon 21:12] :PROPERTIES: :EXPORT_FILE_NAME: early-freebsd-thoughts -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract I've been using FreeBSD on my server for the last few weeks and I like it! +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract I've been using FreeBSD on my server for the last few weeks and I like it! :EXPORT_HUGO_MENU_OVERRIDE: :name "FreeBSD: early thoughts" :EXPORT_HUGO_PAIRED_SHORTCODES: img-r img-c :END: @@ -1419,7 +1423,7 @@ I am **this** close to installing FreeBSD on my personal computer. My work-issue CLOSED: [2023-03-29 Mon 22:09] :PROPERTIES: :EXPORT_FILE_NAME: desktop-freebsd-wont-improve-unless-people-are-using-it -:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract I have hits from /r/bsd, but almost none of those people are using BSD +:EXPORT_HUGO_CUSTOM_FRONT_MATTER+: :abstract I have hits from /r/bsd, but almost none of those people are using BSD :EXPORT_HUGO_MENU_OVERRIDE: :name "Desktop FreeBSD won't improve unless people are using it" :EXPORT_HUGO_PAIRED_SHORTCODES: img-r img-c :END: @@ -1523,6 +1527,10 @@ It's a great system, just needs a lot of work on hardware support :-) It's more than I anticipated. That post was small and written without any deeper research. But the discussion around it makes me believe that I hit something real. + + + + * WIP ** TODO OpenBSD: XMPP (Jabber) server /intro/ |