<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IT Fundamentals on Software Engineering Learning Paths</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/</link><description>Recent content in IT Fundamentals on Software Engineering Learning Paths</description><generator>Hugo</generator><language>en</language><atom:link href="https://kyngo.github.io/learning-paths/paths/it-fundamentals/index.xml" rel="self" type="application/rss+xml"/><item><title>Computer Architecture</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/01-computer-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/01-computer-architecture/</guid><description>&lt;h2 id="the-von-neumann-model"&gt;The Von Neumann Model&lt;a class="anchor" href="#the-von-neumann-model"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;All modern computers follow this architecture: a processor fetches instructions from memory, decodes them, executes them, and stores results.&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart LR
 subgraph CPU[&amp;#34;CPU&amp;#34;]
 CU[&amp;#34;Control Unit&amp;#34;]
 ALU[&amp;#34;ALU&amp;#34;]
 REG[&amp;#34;Registers&amp;#34;]
 Cache[&amp;#34;Cache&amp;#34;]
 end
 
 CPU &amp;lt;--&amp;gt;|&amp;#34;Bus&amp;#34;| RAM[&amp;#34;RAM (Memory)&amp;#34;]
 CPU &amp;lt;--&amp;gt;|&amp;#34;Bus&amp;#34;| IO[&amp;#34;I/O (Disk, Network, Display)&amp;#34;]&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="cpu-central-processing-unit"&gt;CPU (Central Processing Unit)&lt;a class="anchor" href="#cpu-central-processing-unit"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Role&lt;/th&gt;
					&lt;th&gt;Speed&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Registers&lt;/td&gt;
					&lt;td&gt;Tiny storage inside CPU&lt;/td&gt;
					&lt;td&gt;1 cycle&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L1 Cache&lt;/td&gt;
					&lt;td&gt;Per-core cache (32-64KB)&lt;/td&gt;
					&lt;td&gt;~4 cycles&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L2 Cache&lt;/td&gt;
					&lt;td&gt;Per-core (256KB-1MB)&lt;/td&gt;
					&lt;td&gt;~12 cycles&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;L3 Cache&lt;/td&gt;
					&lt;td&gt;Shared across cores (8-64MB)&lt;/td&gt;
					&lt;td&gt;~40 cycles&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RAM&lt;/td&gt;
					&lt;td&gt;Main memory (8-128GB)&lt;/td&gt;
					&lt;td&gt;~200 cycles&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SSD&lt;/td&gt;
					&lt;td&gt;Persistent storage&lt;/td&gt;
					&lt;td&gt;~100,000 cycles&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;HDD&lt;/td&gt;
					&lt;td&gt;Spinning disk&lt;/td&gt;
					&lt;td&gt;~10,000,000 cycles&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="the-instruction-cycle"&gt;The Instruction Cycle&lt;a class="anchor" href="#the-instruction-cycle"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre class="mermaid"&gt;flowchart LR
 F[&amp;#34;Fetch&amp;#34;] --&amp;gt; D[&amp;#34;Decode&amp;#34;]
 D --&amp;gt; E[&amp;#34;Execute&amp;#34;]
 E --&amp;gt; S[&amp;#34;Store&amp;#34;]
 S --&amp;gt; F&lt;/pre&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Fetch&lt;/strong&gt; — read next instruction from memory (pointed to by Program Counter)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decode&lt;/strong&gt; — interpret what the instruction means&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Execute&lt;/strong&gt; — perform the operation (ALU for math, load/store for memory)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Store&lt;/strong&gt; — write result to register or memory&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Modern CPUs execute billions of cycles per second (GHz = billion cycles/sec).&lt;/p&gt;</description></item><item><title>Operating Systems</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/02-operating-systems/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/02-operating-systems/</guid><description>&lt;h2 id="what-is-an-operating-system"&gt;What is an Operating System?&lt;a class="anchor" href="#what-is-an-operating-system"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;An OS is the software layer between hardware and applications. It manages resources (CPU, memory, disk, I/O) and provides abstractions so programs don&amp;rsquo;t need to interact with hardware directly.&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart TD
 Apps[&amp;#34;Applications (browser, editor, server)&amp;#34;]
 Apps --&amp;gt; OS[&amp;#34;Operating System&amp;#34;]
 OS --&amp;gt; HW[&amp;#34;Hardware (CPU, RAM, Disk, Network)&amp;#34;]&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="core-responsibilities"&gt;Core Responsibilities&lt;a class="anchor" href="#core-responsibilities"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Function&lt;/th&gt;
					&lt;th&gt;What It Does&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Process management&lt;/td&gt;
					&lt;td&gt;Create, schedule, and terminate processes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Memory management&lt;/td&gt;
					&lt;td&gt;Allocate RAM, virtual memory, paging&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;File system&lt;/td&gt;
					&lt;td&gt;Organize and access persistent data&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;I/O management&lt;/td&gt;
					&lt;td&gt;Interface with devices (disk, network, display)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Security&lt;/td&gt;
					&lt;td&gt;User permissions, process isolation&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="process-management"&gt;Process Management&lt;a class="anchor" href="#process-management"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="what-is-a-process"&gt;What is a Process?&lt;a class="anchor" href="#what-is-a-process"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A process is a running program — it has its own memory space, file descriptors, and execution state.&lt;/p&gt;</description></item><item><title>File Systems</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/03-file-systems/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/03-file-systems/</guid><description>&lt;h2 id="what-is-a-file-system"&gt;What is a File System?&lt;a class="anchor" href="#what-is-a-file-system"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A file system organizes data on storage devices into a hierarchy of files and directories. It manages how data is stored, retrieved, and updated on disk.&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart TD
 Root[&amp;#34;/&amp;#34;]
 Root --&amp;gt; etc[&amp;#34;/etc (config)&amp;#34;]
 Root --&amp;gt; home[&amp;#34;/home (users)&amp;#34;]
 Root --&amp;gt; var[&amp;#34;/var (variable data)&amp;#34;]
 Root --&amp;gt; usr[&amp;#34;/usr (programs)&amp;#34;]
 Root --&amp;gt; tmp[&amp;#34;/tmp (temporary)&amp;#34;]
 
 home --&amp;gt; alice[&amp;#34;/home/alice&amp;#34;]
 var --&amp;gt; log[&amp;#34;/var/log&amp;#34;]&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="linux-directory-structure"&gt;Linux Directory Structure&lt;a class="anchor" href="#linux-directory-structure"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Path&lt;/th&gt;
					&lt;th&gt;Purpose&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Root — everything starts here&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/bin&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Essential binaries (ls, cp, cat)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/etc&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;System configuration files&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/home&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;User home directories&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/var&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Variable data (logs, databases, mail)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/tmp&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Temporary files (cleared on reboot)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/usr&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;User programs and libraries&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opt&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Optional/third-party software&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/proc&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Virtual filesystem — process info&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/dev&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Device files (disks, terminals)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/mnt&lt;/code&gt;, &lt;code&gt;/media&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Mount points for external storage&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="file-system-types"&gt;File System Types&lt;a class="anchor" href="#file-system-types"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;FS&lt;/th&gt;
					&lt;th&gt;OS&lt;/th&gt;
					&lt;th&gt;Features&lt;/th&gt;
					&lt;th&gt;Use Case&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;ext4&lt;/td&gt;
					&lt;td&gt;Linux&lt;/td&gt;
					&lt;td&gt;Journaling, mature, reliable&lt;/td&gt;
					&lt;td&gt;Default Linux FS&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;XFS&lt;/td&gt;
					&lt;td&gt;Linux&lt;/td&gt;
					&lt;td&gt;High performance, large files&lt;/td&gt;
					&lt;td&gt;Enterprise, databases&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Btrfs&lt;/td&gt;
					&lt;td&gt;Linux&lt;/td&gt;
					&lt;td&gt;Snapshots, compression, RAID&lt;/td&gt;
					&lt;td&gt;Advanced Linux&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;NTFS&lt;/td&gt;
					&lt;td&gt;Windows&lt;/td&gt;
					&lt;td&gt;ACLs, encryption, journaling&lt;/td&gt;
					&lt;td&gt;Windows default&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;APFS&lt;/td&gt;
					&lt;td&gt;macOS&lt;/td&gt;
					&lt;td&gt;Snapshots, encryption, SSD-optimized&lt;/td&gt;
					&lt;td&gt;macOS/iOS&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;FAT32&lt;/td&gt;
					&lt;td&gt;Cross-platform&lt;/td&gt;
					&lt;td&gt;Simple, universal&lt;/td&gt;
					&lt;td&gt;USB drives, boot partitions&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ZFS&lt;/td&gt;
					&lt;td&gt;Linux/BSD&lt;/td&gt;
					&lt;td&gt;Checksums, snapshots, RAID-Z&lt;/td&gt;
					&lt;td&gt;Storage servers&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="key-concepts"&gt;Key Concepts&lt;a class="anchor" href="#key-concepts"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="inodes"&gt;Inodes&lt;a class="anchor" href="#inodes"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Every file has an inode — metadata about the file (NOT the filename):&lt;/p&gt;</description></item><item><title>Linux Basics</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/04-linux-basics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/04-linux-basics/</guid><description>&lt;h2 id="why-linux"&gt;Why Linux?&lt;a class="anchor" href="#why-linux"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Linux runs ~96% of cloud servers, all Android phones, most IoT devices, and the world&amp;rsquo;s top supercomputers. For software engineers, Linux fluency is non-negotiable.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="essential-commands"&gt;Essential Commands&lt;a class="anchor" href="#essential-commands"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="navigation-and-files"&gt;Navigation and Files&lt;a class="anchor" href="#navigation-and-files"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt; &lt;span class="c1"&gt;# print working directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ls -la &lt;span class="c1"&gt;# list all files with details&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /path/to/dir &lt;span class="c1"&gt;# change directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~ &lt;span class="c1"&gt;# go to home directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; - &lt;span class="c1"&gt;# go to previous directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir -p path/to/dir &lt;span class="c1"&gt;# create directories (with parents)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;touch file.txt &lt;span class="c1"&gt;# create empty file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp -r source/ dest/ &lt;span class="c1"&gt;# copy (recursive)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mv old new &lt;span class="c1"&gt;# move/rename&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -r directory/ &lt;span class="c1"&gt;# remove (recursive)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="viewing-files"&gt;Viewing Files&lt;a class="anchor" href="#viewing-files"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat file.txt &lt;span class="c1"&gt;# print entire file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;less file.txt &lt;span class="c1"&gt;# paginated viewer (q to quit)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;head -20 file.txt &lt;span class="c1"&gt;# first 20 lines&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tail -20 file.txt &lt;span class="c1"&gt;# last 20 lines&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tail -f /var/log/app.log &lt;span class="c1"&gt;# follow (live updates)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wc -l file.txt &lt;span class="c1"&gt;# count lines&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="searching"&gt;Searching&lt;a class="anchor" href="#searching"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find . -name &lt;span class="s2"&gt;&amp;#34;*.py&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# find files by name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grep -r &lt;span class="s2"&gt;&amp;#34;pattern&amp;#34;&lt;/span&gt; dir/ &lt;span class="c1"&gt;# search file contents&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;which &lt;span class="nb"&gt;command&lt;/span&gt; &lt;span class="c1"&gt;# find command location&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;locate filename &lt;span class="c1"&gt;# fast search (uses index)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="users-and-permissions"&gt;Users and Permissions&lt;a class="anchor" href="#users-and-permissions"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="user-management"&gt;User Management&lt;a class="anchor" href="#user-management"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;whoami &lt;span class="c1"&gt;# current user&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;id &lt;span class="c1"&gt;# user ID, groups&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo &lt;span class="nb"&gt;command&lt;/span&gt; &lt;span class="c1"&gt;# run as root&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;su - username &lt;span class="c1"&gt;# switch user&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="file-permissions"&gt;File Permissions&lt;a class="anchor" href="#file-permissions"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-rwxr-xr-- 1 alice devs 4096 Jan 1 12:00 script.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │││ │││ │││
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │││ │││ └── Others: read only
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │││ └──── Group: read + execute
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └────── Owner: read + write + execute&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;755&lt;/span&gt; script.sh &lt;span class="c1"&gt;# rwxr-xr-x&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;644&lt;/span&gt; file.txt &lt;span class="c1"&gt;# rw-r--r--&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chown alice:devs file &lt;span class="c1"&gt;# change owner:group&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="package-management"&gt;Package Management&lt;a class="anchor" href="#package-management"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Distro Family&lt;/th&gt;
					&lt;th&gt;Tool&lt;/th&gt;
					&lt;th&gt;Commands&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Debian/Ubuntu&lt;/td&gt;
					&lt;td&gt;apt&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;apt update&lt;/code&gt;, &lt;code&gt;apt install pkg&lt;/code&gt;, &lt;code&gt;apt remove pkg&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RHEL/CentOS/Amazon&lt;/td&gt;
					&lt;td&gt;yum/dnf&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;yum install pkg&lt;/code&gt;, &lt;code&gt;dnf update&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Alpine&lt;/td&gt;
					&lt;td&gt;apk&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;apk add pkg&lt;/code&gt;, &lt;code&gt;apk del pkg&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Debian/Ubuntu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update &lt;span class="c1"&gt;# refresh package index&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install nginx &lt;span class="c1"&gt;# install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt remove nginx &lt;span class="c1"&gt;# remove&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt upgrade &lt;span class="c1"&gt;# upgrade all packages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# RHEL/Amazon Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo yum install nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo yum update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="service-management-systemd"&gt;Service Management (systemd)&lt;a class="anchor" href="#service-management-systemd"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Service control&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl start nginx &lt;span class="c1"&gt;# start service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl stop nginx &lt;span class="c1"&gt;# stop service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl restart nginx &lt;span class="c1"&gt;# restart&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl status nginx &lt;span class="c1"&gt;# check status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; nginx &lt;span class="c1"&gt;# start on boot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl disable nginx &lt;span class="c1"&gt;# don&amp;#39;t start on boot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# View logs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;journalctl -u nginx &lt;span class="c1"&gt;# logs for a service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;journalctl -u nginx --since today
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;journalctl -f &lt;span class="c1"&gt;# follow all logs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="process-management"&gt;Process Management&lt;a class="anchor" href="#process-management"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ps aux &lt;span class="c1"&gt;# all processes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ps aux &lt;span class="p"&gt;|&lt;/span&gt; grep nginx &lt;span class="c1"&gt;# find specific process&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;top &lt;span class="c1"&gt;# real-time process monitor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;htop &lt;span class="c1"&gt;# better process monitor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;kill&lt;/span&gt; PID &lt;span class="c1"&gt;# graceful stop (SIGTERM)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;kill&lt;/span&gt; -9 PID &lt;span class="c1"&gt;# force kill (SIGKILL)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pkill -f &lt;span class="s2"&gt;&amp;#34;pattern&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# kill by name pattern&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="networking-commands"&gt;Networking Commands&lt;a class="anchor" href="#networking-commands"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ip addr show &lt;span class="c1"&gt;# show IP addresses&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ip route show &lt;span class="c1"&gt;# show routing table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ss -tlnp &lt;span class="c1"&gt;# listening TCP ports&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -v http://localhost &lt;span class="c1"&gt;# HTTP request&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ping host &lt;span class="c1"&gt;# test connectivity&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dig domain.com &lt;span class="c1"&gt;# DNS lookup&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="environment-variables"&gt;Environment Variables&lt;a class="anchor" href="#environment-variables"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$PATH&lt;/span&gt; &lt;span class="c1"&gt;# view variable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;MY_VAR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;value&amp;#34;&lt;/span&gt; &lt;span class="c1"&gt;# set for current session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;env &lt;span class="c1"&gt;# list all env vars&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Persistent (add to ~/.bashrc or ~/.profile)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;export MY_VAR=&amp;#34;value&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc &lt;span class="c1"&gt;# reload&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="ssh-secure-shell"&gt;SSH (Secure Shell)&lt;a class="anchor" href="#ssh-secure-shell"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Connect to remote server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh user@hostname
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh -i ~/.ssh/key.pem user@host &lt;span class="c1"&gt;# with private key&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Copy files&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;scp file.txt user@host:/path/ &lt;span class="c1"&gt;# local → remote&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;scp user@host:/path/file.txt . &lt;span class="c1"&gt;# remote → local&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# SSH key generation&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh-keygen -t ed25519 -C &lt;span class="s2"&gt;&amp;#34;email@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Public key → ~/.ssh/id_ed25519.pub (share this)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Private key → ~/.ssh/id_ed25519 (keep secret, chmod 600)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="key-takeaways"&gt;Key Takeaways&lt;a class="anchor" href="#key-takeaways"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Learn the core commands&lt;/strong&gt; — ls, cd, grep, find, chmod, ps, systemctl&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Everything is a file&lt;/strong&gt; in Linux — config, devices, processes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;systemd&lt;/strong&gt; manages services — &lt;code&gt;systemctl&lt;/code&gt; and &lt;code&gt;journalctl&lt;/code&gt; are essential&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SSH&lt;/strong&gt; is how you access remote servers — use key-based auth, never passwords&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Package managers&lt;/strong&gt; vary by distro — apt (Debian), yum/dnf (RHEL), apk (Alpine)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Environment variables&lt;/strong&gt; configure applications — &lt;code&gt;export&lt;/code&gt; for the session, &lt;code&gt;.bashrc&lt;/code&gt; for persistence&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Virtualization and Containers</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/05-virtualization-containers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/05-virtualization-containers/</guid><description>&lt;h2 id="the-problem-works-on-my-machine"&gt;The Problem: &amp;ldquo;Works on My Machine&amp;rdquo;&lt;a class="anchor" href="#the-problem-works-on-my-machine"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Applications depend on specific OS versions, libraries, and configurations. Virtualization and containers solve this by packaging the environment with the application.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="virtualization-virtual-machines"&gt;Virtualization (Virtual Machines)&lt;a class="anchor" href="#virtualization-virtual-machines"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A hypervisor creates virtual hardware — each VM runs its own complete OS:&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart TD
 subgraph Physical[&amp;#34;Physical Server&amp;#34;]
 HV[&amp;#34;Hypervisor&amp;#34;]
 subgraph VM1[&amp;#34;VM 1&amp;#34;]
 OS1[&amp;#34;Guest OS (Ubuntu)&amp;#34;]
 App1[&amp;#34;App A&amp;#34;]
 end
 subgraph VM2[&amp;#34;VM 2&amp;#34;]
 OS2[&amp;#34;Guest OS (RHEL)&amp;#34;]
 App2[&amp;#34;App B&amp;#34;]
 end
 end&lt;/pre&gt;&lt;h3 id="hypervisor-types"&gt;Hypervisor Types&lt;a class="anchor" href="#hypervisor-types"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Type&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
					&lt;th&gt;Examples&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Type 1 (bare-metal)&lt;/td&gt;
					&lt;td&gt;Runs directly on hardware&lt;/td&gt;
					&lt;td&gt;VMware ESXi, KVM, Xen, Hyper-V&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Type 2 (hosted)&lt;/td&gt;
					&lt;td&gt;Runs on top of a host OS&lt;/td&gt;
					&lt;td&gt;VirtualBox, VMware Workstation&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="vm-characteristics"&gt;VM Characteristics&lt;a class="anchor" href="#vm-characteristics"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Aspect&lt;/th&gt;
					&lt;th&gt;Value&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Isolation&lt;/td&gt;
					&lt;td&gt;Full (separate kernel)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Boot time&lt;/td&gt;
					&lt;td&gt;Minutes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Size&lt;/td&gt;
					&lt;td&gt;Gigabytes (full OS)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Overhead&lt;/td&gt;
					&lt;td&gt;High (duplicate OS per VM)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Use case&lt;/td&gt;
					&lt;td&gt;Different OS requirements, strong isolation&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="containers"&gt;Containers&lt;a class="anchor" href="#containers"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Containers share the host kernel but isolate the application&amp;rsquo;s filesystem, processes, and network:&lt;/p&gt;</description></item><item><title>Security Fundamentals</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/06-security-fundamentals/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/06-security-fundamentals/</guid><description>&lt;h2 id="the-cia-triad"&gt;The CIA Triad&lt;a class="anchor" href="#the-cia-triad"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;All security aims to protect three properties:&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart TD
 C[&amp;#34;Confidentiality&amp;lt;br/&amp;gt;(only authorized access)&amp;#34;]
 I[&amp;#34;Integrity&amp;lt;br/&amp;gt;(data not tampered with)&amp;#34;]
 A[&amp;#34;Availability&amp;lt;br/&amp;gt;(accessible when needed)&amp;#34;]&lt;/pre&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Property&lt;/th&gt;
					&lt;th&gt;Threat&lt;/th&gt;
					&lt;th&gt;Protection&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Confidentiality&lt;/td&gt;
					&lt;td&gt;Data breach, eavesdropping&lt;/td&gt;
					&lt;td&gt;Encryption, access control&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Integrity&lt;/td&gt;
					&lt;td&gt;Tampering, corruption&lt;/td&gt;
					&lt;td&gt;Hashing, digital signatures&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Availability&lt;/td&gt;
					&lt;td&gt;DDoS, hardware failure&lt;/td&gt;
					&lt;td&gt;Redundancy, backups&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="encryption"&gt;Encryption&lt;a class="anchor" href="#encryption"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="symmetric-encryption"&gt;Symmetric Encryption&lt;a class="anchor" href="#symmetric-encryption"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Same key encrypts and decrypts — fast, used for bulk data:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Algorithm&lt;/th&gt;
					&lt;th&gt;Key Size&lt;/th&gt;
					&lt;th&gt;Use Case&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;AES-256&lt;/td&gt;
					&lt;td&gt;256 bits&lt;/td&gt;
					&lt;td&gt;Data at rest, TLS data transfer&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ChaCha20&lt;/td&gt;
					&lt;td&gt;256 bits&lt;/td&gt;
					&lt;td&gt;Mobile, TLS alternative&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="asymmetric-encryption"&gt;Asymmetric Encryption&lt;a class="anchor" href="#asymmetric-encryption"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Key pair (public + private) — slower, used for key exchange and signatures:&lt;/p&gt;</description></item><item><title>Authentication and Authorization</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/07-authentication-authorization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/07-authentication-authorization/</guid><description>&lt;h2 id="authn-vs-authz"&gt;AuthN vs AuthZ&lt;a class="anchor" href="#authn-vs-authz"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Concept&lt;/th&gt;
					&lt;th&gt;Question&lt;/th&gt;
					&lt;th&gt;Example&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Authentication (AuthN)&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Who are you?&lt;/td&gt;
					&lt;td&gt;Login with username/password&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Authorization (AuthZ)&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;What can you do?&lt;/td&gt;
					&lt;td&gt;Can this user delete records?&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Authentication always comes first — you must know WHO before deciding WHAT they can access.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="authentication-methods"&gt;Authentication Methods&lt;a class="anchor" href="#authentication-methods"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Method&lt;/th&gt;
					&lt;th&gt;How It Works&lt;/th&gt;
					&lt;th&gt;Security&lt;/th&gt;
					&lt;th&gt;Use Case&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Password&lt;/td&gt;
					&lt;td&gt;User provides secret string&lt;/td&gt;
					&lt;td&gt;Low (phishing, reuse)&lt;/td&gt;
					&lt;td&gt;Legacy, with MFA&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;MFA&lt;/td&gt;
					&lt;td&gt;Password + second factor&lt;/td&gt;
					&lt;td&gt;High&lt;/td&gt;
					&lt;td&gt;All production systems&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;API Key&lt;/td&gt;
					&lt;td&gt;Static token in header&lt;/td&gt;
					&lt;td&gt;Medium&lt;/td&gt;
					&lt;td&gt;Service-to-service (simple)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OAuth 2.0 + OIDC&lt;/td&gt;
					&lt;td&gt;Token-based delegation&lt;/td&gt;
					&lt;td&gt;High&lt;/td&gt;
					&lt;td&gt;Web apps, SSO&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;mTLS&lt;/td&gt;
					&lt;td&gt;Both sides present certificates&lt;/td&gt;
					&lt;td&gt;Very high&lt;/td&gt;
					&lt;td&gt;Service mesh, zero-trust&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SSH Keys&lt;/td&gt;
					&lt;td&gt;Public/private key pair&lt;/td&gt;
					&lt;td&gt;High&lt;/td&gt;
					&lt;td&gt;Server access&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="multi-factor-authentication-mfa"&gt;Multi-Factor Authentication (MFA)&lt;a class="anchor" href="#multi-factor-authentication-mfa"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Combines two or more factors:&lt;/p&gt;</description></item><item><title>Version Control: Git Concepts</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/08-version-control-git/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/08-version-control-git/</guid><description>&lt;h2 id="what-is-version-control"&gt;What is Version Control?&lt;a class="anchor" href="#what-is-version-control"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Version control tracks changes to files over time, enabling collaboration, history, and rollback. Git is the industry standard — used by virtually every software team.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="gits-data-model"&gt;Git&amp;rsquo;s Data Model&lt;a class="anchor" href="#gits-data-model"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Git stores snapshots, not diffs. Each commit is a complete snapshot of all tracked files:&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart LR
 C1[&amp;#34;Commit A&amp;lt;br/&amp;gt;(snapshot)&amp;#34;] --&amp;gt; C2[&amp;#34;Commit B&amp;lt;br/&amp;gt;(snapshot)&amp;#34;]
 C2 --&amp;gt; C3[&amp;#34;Commit C&amp;lt;br/&amp;gt;(snapshot)&amp;#34;]
 C3 --&amp;gt; C4[&amp;#34;Commit D&amp;lt;br/&amp;gt;(snapshot)&amp;#34;]&lt;/pre&gt;&lt;h3 id="key-objects"&gt;Key Objects&lt;a class="anchor" href="#key-objects"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Object&lt;/th&gt;
					&lt;th&gt;Contains&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Blob&lt;/td&gt;
					&lt;td&gt;File content (any version)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Tree&lt;/td&gt;
					&lt;td&gt;Directory listing (blobs + subtrees)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Commit&lt;/td&gt;
					&lt;td&gt;Tree pointer + parent + author + message&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Tag&lt;/td&gt;
					&lt;td&gt;Named pointer to a commit&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="the-three-areas"&gt;The Three Areas&lt;a class="anchor" href="#the-three-areas"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre class="mermaid"&gt;flowchart LR
 WD[&amp;#34;Working Directory&amp;lt;br/&amp;gt;(your files)&amp;#34;] --&amp;gt;|&amp;#34;git add&amp;#34;| SA[&amp;#34;Staging Area&amp;lt;br/&amp;gt;(index)&amp;#34;]
 SA --&amp;gt;|&amp;#34;git commit&amp;#34;| Repo[&amp;#34;Repository&amp;lt;br/&amp;gt;(.git/)&amp;#34;]
 Repo --&amp;gt;|&amp;#34;git checkout&amp;#34;| WD&lt;/pre&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Area&lt;/th&gt;
					&lt;th&gt;Purpose&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Working Directory&lt;/td&gt;
					&lt;td&gt;Files you see and edit&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Staging Area (Index)&lt;/td&gt;
					&lt;td&gt;Changes selected for next commit&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Repository (.git/)&lt;/td&gt;
					&lt;td&gt;Complete history of all commits&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="branching"&gt;Branching&lt;a class="anchor" href="#branching"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Branches are lightweight pointers to commits — creating a branch is instant:&lt;/p&gt;</description></item><item><title>Software Development Lifecycle</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/09-software-development-lifecycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/09-software-development-lifecycle/</guid><description>&lt;h2 id="what-is-the-sdlc"&gt;What is the SDLC?&lt;a class="anchor" href="#what-is-the-sdlc"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Software Development Lifecycle is the process of planning, creating, testing, deploying, and maintaining software. Different methodologies organize these phases differently, but the activities are universal.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="sdlc-phases"&gt;SDLC Phases&lt;a class="anchor" href="#sdlc-phases"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre class="mermaid"&gt;flowchart LR
 Plan[&amp;#34;Plan&amp;#34;] --&amp;gt; Design[&amp;#34;Design&amp;#34;]
 Design --&amp;gt; Build[&amp;#34;Build&amp;#34;]
 Build --&amp;gt; Test[&amp;#34;Test&amp;#34;]
 Test --&amp;gt; Deploy[&amp;#34;Deploy&amp;#34;]
 Deploy --&amp;gt; Operate[&amp;#34;Operate&amp;#34;]
 Operate --&amp;gt; Plan&lt;/pre&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Phase&lt;/th&gt;
					&lt;th&gt;Activities&lt;/th&gt;
					&lt;th&gt;Outputs&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Plan&lt;/td&gt;
					&lt;td&gt;Requirements, prioritization, estimation&lt;/td&gt;
					&lt;td&gt;User stories, backlog&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Design&lt;/td&gt;
					&lt;td&gt;Architecture, API contracts, data models&lt;/td&gt;
					&lt;td&gt;Design docs, ADRs&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Build&lt;/td&gt;
					&lt;td&gt;Write code, unit tests, code review&lt;/td&gt;
					&lt;td&gt;Working software&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Test&lt;/td&gt;
					&lt;td&gt;Integration tests, QA, UAT&lt;/td&gt;
					&lt;td&gt;Test reports, bug fixes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Deploy&lt;/td&gt;
					&lt;td&gt;Release to production&lt;/td&gt;
					&lt;td&gt;Running service&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Operate&lt;/td&gt;
					&lt;td&gt;Monitor, maintain, support&lt;/td&gt;
					&lt;td&gt;Metrics, incident responses&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="methodologies"&gt;Methodologies&lt;a class="anchor" href="#methodologies"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="waterfall"&gt;Waterfall&lt;a class="anchor" href="#waterfall"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Sequential phases — each completes before the next begins:&lt;/p&gt;</description></item><item><title>Hardware</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/10-hardware/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/10-hardware/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Understanding computer hardware is the foundation of IT literacy. Every piece of software ultimately runs on physical components — processors, memory, storage, and interconnects. Knowing how these parts work, interact, and fail gives you a mental model for performance tuning, troubleshooting, and system design.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-central-processing-unit-cpu"&gt;The Central Processing Unit (CPU)&lt;a class="anchor" href="#the-central-processing-unit-cpu"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The CPU executes instructions. It&amp;rsquo;s the brain of the computer, but a very specific kind of brain — one that does billions of simple operations per second.&lt;/p&gt;</description></item><item><title>Assembling a Computer</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/11-assembling-a-computer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/11-assembling-a-computer/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a class="anchor" href="#overview"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Building a computer from components is one of the most practical IT skills. It demystifies the hardware, teaches you how everything connects, and gives you the ability to diagnose failures at the physical level. This section covers the full process from planning to first boot and troubleshooting.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="planning-the-build"&gt;Planning the Build&lt;a class="anchor" href="#planning-the-build"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="compatibility-checklist"&gt;Compatibility Checklist&lt;a class="anchor" href="#compatibility-checklist"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Before purchasing components, verify compatibility:&lt;/p&gt;
&lt;pre class="mermaid"&gt;flowchart TD
 CPU[&amp;#34;1. Choose CPU&amp;#34;] --&amp;gt; MB[&amp;#34;2. Motherboard&amp;lt;br/&amp;gt;(matching socket + chipset)&amp;#34;]
 MB --&amp;gt; RAM[&amp;#34;3. RAM&amp;lt;br/&amp;gt;(DDR4 or DDR5, match MB spec)&amp;#34;]
 MB --&amp;gt; CASE[&amp;#34;4. Case&amp;lt;br/&amp;gt;(ATX, mATX, ITX — match MB)&amp;#34;]
 MB --&amp;gt; STORAGE[&amp;#34;5. Storage&amp;lt;br/&amp;gt;(M.2 slots? SATA ports?)&amp;#34;]
 CPU --&amp;gt; COOLER[&amp;#34;6. CPU Cooler&amp;lt;br/&amp;gt;(socket compatibility, TDP)&amp;#34;]
 CPU --&amp;gt; PSU[&amp;#34;7. PSU&amp;lt;br/&amp;gt;(wattage for CPU + GPU + rest)&amp;#34;]
 MB --&amp;gt; GPU[&amp;#34;8. GPU&amp;lt;br/&amp;gt;(PCIe slot, case clearance, PSU connectors)&amp;#34;]&lt;/pre&gt;&lt;h3 id="key-compatibility-points"&gt;Key Compatibility Points&lt;a class="anchor" href="#key-compatibility-points"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Must Match&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CPU ↔ Motherboard&lt;/td&gt;
					&lt;td&gt;Socket type (LGA 1700, AM5, etc.)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RAM ↔ Motherboard&lt;/td&gt;
					&lt;td&gt;DDR generation, speed support, number of slots&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Motherboard ↔ Case&lt;/td&gt;
					&lt;td&gt;Form factor (ATX, Micro-ATX, Mini-ITX)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;GPU ↔ Case&lt;/td&gt;
					&lt;td&gt;Physical length clearance&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;GPU ↔ PSU&lt;/td&gt;
					&lt;td&gt;Power connectors (8-pin, 12VHPWR) and wattage&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CPU Cooler ↔ Case&lt;/td&gt;
					&lt;td&gt;Height clearance (tower coolers) or radiator mount points (AIO)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CPU Cooler ↔ CPU&lt;/td&gt;
					&lt;td&gt;Socket mounting bracket included&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="tools-required"&gt;Tools Required&lt;a class="anchor" href="#tools-required"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Tool&lt;/th&gt;
					&lt;th&gt;Purpose&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Phillips #2 screwdriver&lt;/td&gt;
					&lt;td&gt;90% of all PC screws&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Phillips #1 screwdriver&lt;/td&gt;
					&lt;td&gt;M.2 screws, small standoffs&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Anti-static wrist strap&lt;/td&gt;
					&lt;td&gt;Prevent ESD damage (or touch case metal frequently)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Cable ties / velcro straps&lt;/td&gt;
					&lt;td&gt;Cable management&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Flashlight / headlamp&lt;/td&gt;
					&lt;td&gt;See inside the case&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Thermal paste&lt;/td&gt;
					&lt;td&gt;Usually pre-applied on cooler; have backup&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Magnetic screw tray&lt;/td&gt;
					&lt;td&gt;Don&amp;rsquo;t lose screws&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="step-by-step-assembly"&gt;Step-by-Step Assembly&lt;a class="anchor" href="#step-by-step-assembly"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="step-1-prepare-the-workspace"&gt;Step 1: Prepare the Workspace&lt;a class="anchor" href="#step-1-prepare-the-workspace"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Work on a large, clean, non-carpeted surface (table, desk)&lt;/li&gt;
&lt;li&gt;Ground yourself: wear an anti-static strap clipped to the case, or touch bare metal frequently&lt;/li&gt;
&lt;li&gt;Keep components in anti-static bags until ready to install&lt;/li&gt;
&lt;li&gt;Read the motherboard manual — it&amp;rsquo;s the most important document&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="step-2-install-the-cpu"&gt;Step 2: Install the CPU&lt;a class="anchor" href="#step-2-install-the-cpu"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Intel (LGA — Land Grid Array):&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Linux Administration</title><link>https://kyngo.github.io/learning-paths/paths/it-fundamentals/12-linux-administration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/it-fundamentals/12-linux-administration/</guid><description>&lt;h2 id="going-deeper-with-linux"&gt;Going Deeper with Linux&lt;a class="anchor" href="#going-deeper-with-linux"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://kyngo.github.io/learning-paths/paths/it-fundamentals/04-linux-basics/"&gt;Linux Basics&lt;/a&gt; section introduced essential commands and concepts. This section dives deeper into the structures and tools that make Linux administration possible: the filesystem hierarchy, permission model, process control, systemd, and power-user commands.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-filesystem-hierarchy"&gt;The Filesystem Hierarchy&lt;a class="anchor" href="#the-filesystem-hierarchy"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Linux organises everything into a single tree rooted at &lt;code&gt;/&lt;/code&gt;. There are no drive letters — devices, processes, and configuration are all mounted into this tree.&lt;/p&gt;
&lt;h3 id="standard-directories"&gt;Standard Directories&lt;a class="anchor" href="#standard-directories"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Directory&lt;/th&gt;
					&lt;th&gt;Purpose&lt;/th&gt;
					&lt;th&gt;Examples&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Root of the entire filesystem&lt;/td&gt;
					&lt;td&gt;Everything branches from here&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/etc&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;System-wide configuration files&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt;, &lt;code&gt;/etc/hosts&lt;/code&gt;, &lt;code&gt;/etc/passwd&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/var&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Variable data (changes at runtime)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/var/log/&lt;/code&gt;, &lt;code&gt;/var/lib/docker/&lt;/code&gt;, &lt;code&gt;/var/mail/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/home&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;User home directories&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/home/alice/&lt;/code&gt;, &lt;code&gt;/home/bob/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/usr&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;User system resources (programs, libraries)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/usr/bin/&lt;/code&gt;, &lt;code&gt;/usr/lib/&lt;/code&gt;, &lt;code&gt;/usr/share/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/tmp&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Temporary files (cleared on reboot)&lt;/td&gt;
					&lt;td&gt;Scratch space for any process&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/bin&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Essential command binaries&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;cp&lt;/code&gt;, &lt;code&gt;cat&lt;/code&gt; (often symlinked to &lt;code&gt;/usr/bin&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/sbin&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;System administration binaries&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;fdisk&lt;/code&gt;, &lt;code&gt;iptables&lt;/code&gt;, &lt;code&gt;systemctl&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/opt&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Optional/third-party software&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/opt/datadog-agent/&lt;/code&gt;, &lt;code&gt;/opt/terraform/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/dev&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Device files&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/dev/sda&lt;/code&gt; (disk), &lt;code&gt;/dev/null&lt;/code&gt;, &lt;code&gt;/dev/random&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/proc&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Virtual filesystem — running processes&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/proc/cpuinfo&lt;/code&gt;, &lt;code&gt;/proc/meminfo&lt;/code&gt;, &lt;code&gt;/proc/1/status&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/sys&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Virtual filesystem — kernel/hardware info&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/sys/class/net/&lt;/code&gt;, &lt;code&gt;/sys/block/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/mnt&lt;/code&gt;, &lt;code&gt;/media&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Mount points for external filesystems&lt;/td&gt;
					&lt;td&gt;USB drives, network shares&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/root&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Home directory for the root user&lt;/td&gt;
					&lt;td&gt;Not under &lt;code&gt;/home&lt;/code&gt; — root is special&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="key-principles"&gt;Key Principles&lt;a class="anchor" href="#key-principles"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Everything is a file&lt;/strong&gt; — devices (&lt;code&gt;/dev/sda&lt;/code&gt;), processes (&lt;code&gt;/proc/PID&lt;/code&gt;), and even kernel parameters (&lt;code&gt;/sys/&lt;/code&gt;) are exposed as files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration is text&lt;/strong&gt; — almost all config lives in &lt;code&gt;/etc&lt;/code&gt; as plain-text files you can read, edit, and version-control&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logs accumulate in &lt;code&gt;/var/log&lt;/code&gt;&lt;/strong&gt; — &lt;code&gt;syslog&lt;/code&gt;, &lt;code&gt;auth.log&lt;/code&gt;, &lt;code&gt;kern.log&lt;/code&gt;, application logs&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/tmp&lt;/code&gt; is ephemeral&lt;/strong&gt; — never store anything important there; it&amp;rsquo;s wiped on reboot and often mounted as tmpfs (RAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# See disk usage per top-level directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;du -sh /* 2&amp;gt;/dev/null &lt;span class="p"&gt;|&lt;/span&gt; sort -rh &lt;span class="p"&gt;|&lt;/span&gt; head -15
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Find the largest files in /var/log&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find /var/log -type f -exec du -h &lt;span class="o"&gt;{}&lt;/span&gt; + &lt;span class="p"&gt;|&lt;/span&gt; sort -rh &lt;span class="p"&gt;|&lt;/span&gt; head -10
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Check what&amp;#39;s mounted where&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;df -hT&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="file-permissions-in-depth"&gt;File Permissions In Depth&lt;a class="anchor" href="#file-permissions-in-depth"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="the-permission-model"&gt;The Permission Model&lt;a class="anchor" href="#the-permission-model"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Every file and directory has three sets of permissions for three entities:&lt;/p&gt;</description></item></channel></rss>