diff options
author | mms <michal@sapka.me> | 2024-05-28 22:54:14 +0200 |
---|---|---|
committer | mms <michal@sapka.me> | 2024-05-28 22:54:14 +0200 |
commit | 12b576d58e143b0eabdcb2fde6ec08afa7485878 (patch) | |
tree | 116ecf34709fba44ca7dc7191c55d7a0a63c646e /content-org/bsd.org | |
parent | 5ed3c0a18535270e0dd9a1afa6b120f486203562 (diff) |
feat: unix hist as single art
Diffstat (limited to 'content-org/bsd.org')
-rw-r--r-- | content-org/bsd.org | 258 |
1 files changed, 5 insertions, 253 deletions
diff --git a/content-org/bsd.org b/content-org/bsd.org index 76fb19e..6d3b9fc 100644 --- a/content-org/bsd.org +++ b/content-org/bsd.org @@ -1,6 +1,6 @@ -#+TITLE: BSD +#+TITLE: bsd #+AUTHOR: Michał Sapka -#+URL: https://michal.sapka.me/bsd/ +#+URL: https://michal.sapka.me/unix-history/ #+STARTUP: show2levels indent logdone #+HUGO_BASE_DIR: ~/ghq/vcs.sapka.me/michal-sapka-me/ @@ -21,30 +21,6 @@ CLOSED: [2024-03-06 Wed 14:45] :EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd :EXPORT_HUGO_MENU: :menu bsd :END: -** DONE History of BSD and Unix -CLOSED: [2024-04-08 Mon 09:37] -:PROPERTIES: -:EXPORT_HUGO_SECTION: bsd/history -: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_OVERRIDE: :post " from Multics to OpenBSD" -: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 Why I run a BSD on a PC :@bsd: CLOSED: [2024-05-01 Wed 21:48] @@ -378,6 +354,7 @@ They are supported by volunteers, so your mileage may vary. [fn:slow] Not going on breakneck speed is one of huge driving factors towards BSD. It's a good thing, I promise! + * OpenBSD :@bsd: :PROPERTIES: :EXPORT_HUGO_MENU: :menu bsd :parent "openbsd" @@ -840,6 +817,7 @@ In reality, I'm test-driving it on my laptop and have much fewer problems than w [fn:aws]: notice the lack of Amazon Web Services. Screw them. They have almost all of the interwebs in their server farm, but they will not have this blog! + * FreeBSD :@bsd: :PROPERTIES: :EXPORT_HUGO_CUSTOM_FRONT_MATTER: :primary_menu bsd @@ -1533,10 +1511,6 @@ 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/ @@ -1572,226 +1546,4 @@ prosodyctl check connectivity - terminal - android - ios -*** Modern XMPP -** TODO BSD and Linux - - :@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 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. - +*** Modern XMPP: |