diff options
author | mms <michal@sapka.me> | 2024-03-09 23:21:07 +0100 |
---|---|---|
committer | mms <michal@sapka.me> | 2024-03-09 23:21:07 +0100 |
commit | 1bcf8c19d7966829fe3fcb25c0a37fa500e2de87 (patch) | |
tree | 47a82f26cff8c9bcca2a21b28c70f54b76354de8 /content-org/bsd.org | |
parent | 23f8686162a631215f274dba0fb1c8dc1635b4cf (diff) |
fix: english:
g
Diffstat (limited to 'content-org/bsd.org')
-rw-r--r-- | content-org/bsd.org | 140 |
1 files changed, 132 insertions, 8 deletions
diff --git a/content-org/bsd.org b/content-org/bsd.org index 8b9a809..22ea5d2 100644 --- a/content-org/bsd.org +++ b/content-org/bsd.org @@ -1021,14 +1021,14 @@ CLOSED: [2024-03-09 Sat 21:03] *** 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 are accused to companies selling devices with a loss, as all the money comes from software subscriptions. +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 creation of /time-sharing/. +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 @@ -1037,15 +1037,15 @@ IBM 360 in an official photoshoot. 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 multitasking processing. +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 /mainframe/. +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 different combine signals into a shared medium. +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/" @@ -1058,9 +1058,9 @@ EDSAC, the "first computer". 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 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 terns 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, and designed by trial and error. +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" @@ -1085,6 +1085,130 @@ This has not stopped them from designing the system on black blackboards and pap [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-09 Sat 22:20] +:PROPERTIES: +:EXPORT_FILE_NAME: 02_unix +:EXPORT_HUGO_CUSTOM_FRONT_MATTER: abstract BSD history starts with Multics +:EXPORT_HUGO_MENU: :menu bsd-history :name "Unix" +:EXPORT_HUGO_PAIRED_SHORTCODES: img-c +:END: + +*** Bell Labs +Let's pause here and discuss explain 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 was the telephone company in the USA. +It had the /de facto/ monopoly for most of the 20th century. +It led to a consent decree with US Government under which AT&T was forbidden to branch out other markets. +This agreement happened in 1956 and will be very important for our story\cite{losh: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 usable for presenting information back to the user. +The monitor was a separate machine and an /assembly/. code to light up individual pixels would need to be sent 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 finance department. + +*** Getting a computer +So here we are, 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. + +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 user were paying for time they used. +A single game of /Space Travel/ could cost Ken USD 50-75. +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 a refrigerator size 18bit monstrosity[fn:hiddenunix]. +It was a leftover from an ended research into audio-psychology. +It was at the time a 5-year-old and obsolete[fn:earlylin]. +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 the system for PDP-6 to make developing of the game easier. +This was how /PDP UNIX/ was born. +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. +So they allow 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. +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. +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 we are in November 1971 and /UNIX 1/ for /PDP-11/ is released. +The 50th anniversary of this event was very big for a small group of fans. + +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.'' + +[fn:unix2ed] 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 due to licensing of /UNIX/ (or rather lack of thereof), each installation would be accomplished by full source code. +Administrators were able to modify the system. +Crazy times. + +Still, in June 1972 a 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, so first user groups started forming under the /USENIX/ name[fn:hiddenunix]. +It's worth to mention that this version was rewritten in C, as compared to 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 is also presented by Ken and Denis during the /4th Symposium on Operating System Principles/ the same year, +and a year later they 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/. + +[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)]] + * Varia :@bsd: ** DONE FreeBSD: Early thoughts CLOSED: [2023-02-15 Mon 21:12] |