summaryrefslogtreecommitdiff
path: root/content-org/bsd.org
diff options
context:
space:
mode:
authormms <michal@sapka.me>2024-04-24 20:00:47 +0200
committermms <michal@sapka.me>2024-04-24 20:00:47 +0200
commit06a78ff287d3fc51cb8f5d04dfdc751379fa10ff (patch)
tree926326f1dd7243405114af72eb65bd72f4446ca2 /content-org/bsd.org
parent1c29765a2b4cb5d2702d2476cdc8985a6870d541 (diff)
chore: add bottom nav to BSD
Diffstat (limited to 'content-org/bsd.org')
-rw-r--r--content-org/bsd.org554
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/