From f6f189ab34b3f258adae2d50bd3364ff88c4e5bd Mon Sep 17 00:00:00 2001 From: bfahrenfort Date: Sun, 16 Jun 2024 08:49:39 -0500 Subject: [PATCH] Quartz sync: Jun 16, 2024, 8:49 AM --- content/Essays/law-school.md | 2 +- content/Misc/shell.md | 23 ++++++++++++++++++++ content/Projects/home.md | 2 +- content/Projects/my-cloud.md | 3 ++- content/Projects/nvidia-linux.md | 5 ++++- content/Projects/vfio-pci.md | 1 + content/Projects/zotero-lexis-plus.md | 2 +- content/Resources/learning-linux.md | 30 ++++++++++++++++++++++----- content/Updates/2024/jun.md | 2 ++ content/bookmarks.md | 1 + 10 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 content/Misc/shell.md diff --git a/content/Essays/law-school.md b/content/Essays/law-school.md index d56554da4..ee6111b87 100755 --- a/content/Essays/law-school.md +++ b/content/Essays/law-school.md @@ -16,7 +16,7 @@ Law school is a concept that deserves scrutiny, both as an institution and for t I don't have a central thesis for this entry, and there isn't really anything profound about the content. I just want to point out what law school does wrong and suggest some alternatives that do or should improve the experience for students. > [!hint] Law school as a process *usually* looks like this: -> Take the [[Misc/lsat|entrance exam]] $\rightarrow$ apply $\rightarrow$ first semester $\rightarrow$ 1L job offer $\rightarrow$ Second semester $\rightarrow$ 1L summer job $\rightarrow$ 2L job offer $\rightarrow$ second year $\rightarrow$ 2L summer job $\rightarrow$ career offer $\rightarrow$ third year $\rightarrow$ career. +> Take the [[Misc/lsat|entrance exam]] -> apply -> first semester -> 1L job offer -> Second semester -> 1L summer job -> 2L job offer -> second year -> 2L summer job -> career offer -> third year -> career. > > Sometimes, the timing of job offers will be delayed, as it depends on the type of employment pursued. I talk about this more in the [[#Job Prospects]] section. ## Applying diff --git a/content/Misc/shell.md b/content/Misc/shell.md new file mode 100644 index 000000000..da9b98a8a --- /dev/null +++ b/content/Misc/shell.md @@ -0,0 +1,23 @@ +--- +title: UNIX Shell +tags: + - linux + - resources + - misc +date: 2024-06-08 +lastmod: 2024-06-08 +--- +> [!info] +> This is a separate entry to the normal [[Misc/linux-isms|misc Linux page]] because I don't think I can make it concise enough for a few bullet points. + +The UNIX shell is a layer in between you and the operating system kernel (page on that todo!). Through shell programs, you can navigate, edit, and manipulate the files and peripherals on your computer. It's like a portal to what's really happening behind all the graphics. + +## Shell and Shell Accessories +It's important to note that the shell is, at its core, just another user program. You can run multiple shells at once, including shells of different types. Shells *inside* shells are also fair game. +## The Terminal +This is also a shell accessory, but it's the main one. It's a graphical program or window that displays some information about the state of the current shell and lets you interact with that shell. Typically, it starts a new shell inside its window when it opens. + +Historically, terminals were a hardware component of a computer. They were just keyboard and monitor combos that could display text printed out to them over serial from the real computer (think WarGames style) or feed text and commands back in from the keyboard. In most consumer cases the computer was just a circuit board inside a case, but a terminal could be hooked up to a room-sized supercomputer as well. Modern day terminals serve much the same purpose, just printing out what the shell wants to tell you. +- Sidebar: and even further back, terminals were "teletype" instead of being a monitor: a typewriter plus a machine that could click the typewriter keys to output from the computer. [The original UNIX was written on teletype](https://flickr.com/photos/9479603@N02/3311745151). + +When you open a terminal, you'll see a **terminal prompt** on the left side. This tells you information like the current **directory**. \ No newline at end of file diff --git a/content/Projects/home.md b/content/Projects/home.md index 4ff0ca364..c08cf8f64 100755 --- a/content/Projects/home.md +++ b/content/Projects/home.md @@ -16,5 +16,5 @@ I assign each project a difficulty level out of the following list: ## Other Open-Source Contributions - [[Projects/zotero-lexis-plus|A Lexis+ translator for Zotero.]] -- [[Projects/rss-foss|Advancing the development of RSS/Atom]] +- [[Projects/rss-foss|Advancing the development of RSS and Atom]] - [[Projects/rsgistry|rsgistry]], a Rustlang full-stack registry generator for your ecosystem's community extensions \ No newline at end of file diff --git a/content/Projects/my-cloud.md b/content/Projects/my-cloud.md index ffa96f40b..2d8f6ced3 100755 --- a/content/Projects/my-cloud.md +++ b/content/Projects/my-cloud.md @@ -5,7 +5,8 @@ tags: - essay - difficulty-moderate - seedling -date: 9-08-23 + - linux +date: 2023-08-23 --- A list of things that I do with cloud servers. diff --git a/content/Projects/nvidia-linux.md b/content/Projects/nvidia-linux.md index 69b429de3..5fef04e54 100755 --- a/content/Projects/nvidia-linux.md +++ b/content/Projects/nvidia-linux.md @@ -1,6 +1,9 @@ --- title: NVIDIA on Linux -tags: +tags: + - linux + - difficulty-easy + - foss date: 2024-03-26 lastmod: 2024-05-19 draft: false diff --git a/content/Projects/vfio-pci.md b/content/Projects/vfio-pci.md index a8d6166ad..bd734cedc 100755 --- a/content/Projects/vfio-pci.md +++ b/content/Projects/vfio-pci.md @@ -4,6 +4,7 @@ tags: - project - seedling - difficulty-advanced + - linux date: 2024-03-17 lastmod: 2024-03-18 draft: false diff --git a/content/Projects/zotero-lexis-plus.md b/content/Projects/zotero-lexis-plus.md index f2d7c99d8..beae8bd60 100755 --- a/content/Projects/zotero-lexis-plus.md +++ b/content/Projects/zotero-lexis-plus.md @@ -5,7 +5,7 @@ tags: - productivity - project - difficulty-moderate -date: 9-08-23 +date: 2023-08-23 --- This is one of the first open source contributions I made that I felt proud of. I think it genuinely solves a problem that I and hundreds of others have. ## I am faced with a problem: diff --git a/content/Resources/learning-linux.md b/content/Resources/learning-linux.md index a9bfa0605..f35c8b23a 100755 --- a/content/Resources/learning-linux.md +++ b/content/Resources/learning-linux.md @@ -5,7 +5,7 @@ tags: - resources - difficulty-moderate date: 2023-09-28 -lastmod: 2024-05-24 +lastmod: 2024-06-08 --- > [!info] Help me out! > I'm looking to expand this article. Comment your suggestions for what newcomers to Linux should take a look at below! @@ -20,12 +20,28 @@ Microsoft has left many in search of an alternative operating system that doesn' Traditionally, the Linux community is known for being hostile to newcomers. But in response to this event, I've seen a lot of people commit to being much more open with their knowledge. I'd love to also share my knowledge on the subject. > [!info] Need [[digital-garden#Using this Site|help navigating]] my site? + ## Scope I've been daily driving Linux for a combined total of 1.5 years, chronicled [[Essays/on-linux|here]]. I want this entry to serve as a starting point that explains Linux from zero, but I'll try to avoid reinventing the wheel. Many people have written or produced content on . It'll be updated over time. If anything is confusing or if I miss an important topic, please let me know! A [[Misc/what-is-a-garden|digital garden]] is an iterative process. ## Basic knowledge -Linux is designed for someone already familiar with one variant to be able to make certain assumptions about any other Linux system. This is more of a guideline to modern design choices than an actual rule. It's in place because Linux grew out of a collection of operating system standards called POSIX. Most of those standards pertain to how the system behaves when you interact with it through a **terminal**. - +Linux is designed for someone already familiar with one variant to be able to make certain assumptions about any other Linux system. This is more of a guideline to modern design choices than an actual rule. ### What the operating system is +A wise internet user once said, "**what you're referring to as Linux is in fact GNU/Linux, or as I've recently taken to calling it, GNU 'plus' Linux**..." + +Jokes aside, there's a grain of truth in that statement. Linux—the operating system as a whole—is a collection of moving parts that all work alongside each other to display what you see on the screen. These include: +- The Kernel (the Linux in "GNU + Linux") +- A shell +- A graphical interface +- Device drivers +- A filesystem +- Networking +- Processes running in the background to keep all of the above updated or responsive +- Representations of your hardware components to the system in software +- The actual programs you (the **user**) run, like web browsers and terminals + +Many of these are compartmentalized and can only interact with each other in well-defined ways. This document is going to focus on the parts you'll touch the most as an everyday user: primarily userspace + +Linux grew out of a collection of operating system standards called POSIX. Most of those standards pertain to how the system behaves when you interact with it through a [[Misc/shell#The Terminal|terminal]]. But when the open source community got involved with its development, its design had to evolve in a way that could satisfy group "consensus," and could handle many groups developing all its different facets asynchronously. ### Installing programs @@ -33,10 +49,14 @@ Linux is designed for someone already familiar with one variant to be able to ma { *more currently in the works -ed.* } ## Additional Resources +### Further Reading +The No Starch Press books on Linux are extremely good resources on the formal design of the operating system in the modern day. I based a lot of the content in this entry on How Linux Works by Brian Ward. + +Please seek out other independent bloggers who document their own linux journeys and learn from them. Chances are they're a lot more articulate about the subject than me. But if you'd like to hear my continued thoughts, I've written many miscellaneous pages on [linux](/tags/linux). And if you want to do what I do, you could start with the [more beginner-friendly projects I've undertaken](/tags/difficulty-easy). I wish you the best in becoming a Linux power user! ### Youtubers -**Check most popular videos on these channels for the most informative content.** +**Check "most popular" on these channels for the most informative content.** - [DistroTube](https://www.youtube.com/@DistroTube/videos): Covers a variety of small topics within linux, as well as lots of top-10 style content for distros and programs. - [The Linux Experiment](https://www.youtube.com/@TheLinuxEXP/videos): Great weekly news source on the state of Linux and open source projects. Also publishes comparison videos for sets of programs, and the occasional distro tier list. - [Chris Titus Tech](https://www.youtube.com/@ChrisTitusTech/): Goes pretty in-depth on specific programs (web browsers, code editors, etc) and makes the occasional tutorial. Also tier lists, but his opinions on tier lists are not really suited to new users. -- [Brodie Robertson](https://www.youtube.com/@BrodieRobertson): Reviewer on the bleeding edge. Don't take his advice if you want a daily driver (and ensure to actually explore the controversies that he makes you aware of), but he keeps on top of everything major in the Linux community. Good podcasting channel at [Tech Over Tea](https://www.youtube.com/@TechOverTea). \ No newline at end of file +- [Brodie Robertson](https://www.youtube.com/@BrodieRobertson): Reviewer on the bleeding edge. Don't take his advice if you want a daily driver (and ensure to actually explore the controversies that he makes you aware of), but he keeps on top of everything major in the Linux community. Good **podcast** channel at [Tech Over Tea](https://www.youtube.com/@TechOverTea). \ No newline at end of file diff --git a/content/Updates/2024/jun.md b/content/Updates/2024/jun.md index 072de49b6..8db3972d4 100644 --- a/content/Updates/2024/jun.md +++ b/content/Updates/2024/jun.md @@ -11,6 +11,8 @@ lastmod: 2024-06-30 ## Pages - Content Update: [[Essays/why-i-garden|Why I Garden]]; less wordy. - **Content Update**: [[Essays/no-ai-fraud-act|No AI FRAUD Act]] +- Content update: [[Resources/learning-linux|Learning Linux]] +- Bugfix: [[Essays/law-school|Law School is Broken]] ## Status Updates - I'm using a new section on the updates pages. See below. ## Helpful Links diff --git a/content/bookmarks.md b/content/bookmarks.md index 1fd89d6b9..6ba9d68e1 100755 --- a/content/bookmarks.md +++ b/content/bookmarks.md @@ -9,6 +9,7 @@ lastmod: 2024-03-07 --- One of the core philosophies of digital gardening is that one should document their learning process when trying new things. As such, here's my very disorganized to-dos and to-reads in the form of a public bookmark list. This page will change very often. +- [Nix Flakes: An Introduction](https://xeiaso.net/blog/nix-flakes-1-2022-02-21/) - [Passkey Support](https://www.passkeys.io/who-supports-passkeys) - [Academish Voice](https://inkandswitch.notion.site/Academish-Voice-0d8126b3be5545d2a21705ceedb5dd45)