🔥 A critical Linux kernel vulnerability, CVE-2026-98432, has exposed a very uncomfortable reality for Ubuntu Server users.

In this video I go over the timeline of the vulnerability, how serious it is, when Debian patched it, when the exploit became public, and why I am no longer comfortable recommending Ubuntu Server in this situation.

The microphone which I use: https://brandstore.rode.com/products/interview-pro?sca_ref=11332840.bJ2JT8WboA&sca_source=LinuxRenaissance

Debian patched quickly. Ubuntu LTS did not. For a distribution that sells enterprise support and security confidence, that is a very bad look. If you run Ubuntu servers, this is the kind of incident you should pay close attention to.

Dates of patches:

  • 16.10. Debian 13
  • 17.10. Debian 12
  • 01.11. RHEL 8/9/10
  • 02.11. AlmaLinux 8/9/10
  • 03.11. Rocky Linux 8/9/10

Sources

If you enjoy Linux, self-hosting and open source commentary, subscribe to the channel.

👀 Watch my entire MAIN playlist here https://www.youtube.com/playlist?list=PL3KVgwMTWoO0wKgJWk3BBtB20okJvu_6q

📍 Timestamps 0:00 Upgrade your Ubuntu now to Debian 0:21 Intro 0:35 What is CVE-2026-98432? 1:26 Timeline of the vulnerability 2:17 Patch came before public disclosure 3:05 Debian patched in 24 hours 3:34 Why I was not too worried personally 5:03 Remote root exploit revealed 6:05 Ubuntu LTS still waiting for regular updates 7:18 Why this changed my view of Ubuntu Server 8:19 I can no longer recommend Ubuntu Server 8:47 My advice: move to Debian or another alternative 9:16 Outro

❤️ Help Keep This Content Going Memberships: https://youtube.com/@LinuxRenaissance/join Patreon: https://patreon.com/LinuxRenaissance Ko-fi: https://ko-fi.com/darth GitHub: https://github.com/sponsors/LinuxRenaissance Merch: https://shop.linuxrenaissance.com Zorin Pro: https://zorin.com/linuxrenaissance Keychron: https://www.keychron.com/?ref=LINUX Rode: https://brandstore.rode.com?sca_ref=11332840.bJ2JT8WboA

📢 Join The Linux Renaissance Community On Matrix Chat Matrix v12 Space: https://matrix.to/#/%23space:fosshq.org Recommended Matrix client is "Element" from Flathub and Element X on Smartphones

🌐 Follow Linux Renaissance everywhere

🎵 Music By H0ffman: https://soundcloud.com/h0ffman/sets/protracker-amiga

🙏 Linux Renaissance is supported by OPNsense: https://opnsense.org

Links within this video may contain affiliate links that I receive a small commission from. #linux #ubuntu #debian

 

In Lesson 14 of Learn C With Me, we begin Chapter 12 — Manual Memory Allocation from Beej's Guide to C Programming.

This time, we explore how C programs can request memory dynamically, work with that memory through pointers, and release it when it's no longer needed.

We cover:

  • What manual memory allocation means
  • The difference between automatic and dynamically allocated storage
  • Introducing malloc()
  • Allocating memory for integers and arrays
  • Using sizeof to calculate allocation sizes
  • Why malloc() returns a pointer
  • Checking allocation failures against NULL
  • Accessing dynamically allocated memory through pointers
  • Using array notation with allocated memory
  • Understanding the relationship between pointers and arrays
  • Releasing allocated memory with free()
  • Why accessing freed memory causes undefined behavior
  • Understanding memory leaks
  • Introducing calloc()
  • The difference between malloc() and calloc()
  • Zero-initialized allocated memory
  • Understanding allocation sizes and element counts
  • A brief look at integer overflow in allocation calculations
  • Revisiting pointer declarations and dereferencing
  • Understanding memory addresses and pointer values
  • How passing pointers to functions allows modification of original data
  • A discussion about CPU registers and assembly language

One of the main challenges in this lesson is understanding how a pointer relates to the memory allocated by malloc(). We spend time experimenting with the examples, inspecting values, and revisiting earlier pointer concepts.

We also discuss why memory management is the programmer's responsibility in C. Allocated memory must eventually be released, and using memory after freeing it is undefined behavior.

Later, we explore calloc() and how it differs from malloc(), especially when it comes to initialization and allocation size calculations.

The lesson also takes an extended detour back into pointer fundamentals, including addresses, dereferencing, and how pointers relate to the actual contents of memory. We even explore some assembly language concepts to better understand what's happening at a lower level.

As usual, we read the book, experiment with code, ask questions, make mistakes, and work through difficult concepts together with help from the live chat.

This is Part One of Manual Memory Allocation. We'll return to the remaining material in the next lesson.

This is an interactive, follow-along live course. I am learning C alongside you, so expect questions, mistakes, experiments and plenty of discussion. No passive watching here — participate in the chat and work through the examples with us.

00:00:00 Starting the stream 00:12:48 Chapter 12 — Manual Memory Allocation 00:16:36 Automatic vs manual memory management 00:18:49 Memory leaks and freeing memory 00:20:40 Introducing malloc() 00:22:24 Allocating and freeing our first integer 00:27:09 Checking allocation failures 00:38:47 Experimenting with malloc() and pointers 01:13:39 Why understanding pointers matters 01:33:00 Allocating memory for arrays 01:38:14 Introducing calloc() 01:44:24 calloc(), zero initialization and allocation sizes 02:01:14 Changing allocation sizes — what's next? 02:10:00 Revisiting pointers from the beginning 02:35:45 Memory addresses and the address-of operator 02:44:40 Pointer declarations and types 02:50:14 Dereferencing pointers 02:55:00 Why are pointers useful? 03:19:06 Pointers and assembly language 03:25:00 CPU registers and low-level programming 03:40:00 Exploring generated assembly 03:55:00 Post-lesson discussion

📅 We go live every Sunday at 19:00 CEST — interactive, follow-along C programming sessions.

📚 Course materials: Linux Renaissance C Programming Course

💬 Homework & discussion: Linux Renaissance Forum

📺 All C Programming lessons: C Programming playlist

🔴 This stream is proudly sponsored by OPNsense — the open source firewall and routing platform trusted by professionals worldwide. OPNsense

Support Linux Renaissance

🛒 Shop: Linux Renaissance Shop ☕ Ko-fi: Ko-fi 🎖️ Patreon: Patreon ▶️ YouTube membership: YouTube Membership

Find me elsewhere

🌐 Blog: Linux Renaissance 🎥 PeerTube: Linux Renaissance on PeerTube 📺 Odysee: Linux Renaissance on Odysee 🎮 Twitch: Linux Renaissance on Twitch 💬 Matrix: Linux Renaissance Matrix space

 

🔥 How to Install NVIDIA Open Drivers on Debian 13 (2026 Edition)

Installing NVIDIA drivers on Debian 13 (Trixie) in 2026? This step-by-step guide covers NVIDIA Open GPU kernel modules, the official NVIDIA repository, driver version pinning and UEFI Secure Boot.

NVIDIA's Linux driver packages and repositories have changed since my previous tutorial. Here's an updated installation on a freshly installed Debian 13 system, from APT configuration to a working KDE Plasma desktop.

Discuss: https://forum.linuxrenaissance.com Like and subscribe to support more Linux tutorials!

📝 Quick Summary of the Video

In this video, you'll learn how to:

  • Check NVIDIA GPU compatibility (Turing and newer, including GTX 16-series and RTX)
  • Install extrepo and enable NVIDIA's CUDA APT repository
  • Install build tools, DKMS dependencies and Linux kernel headers
  • Compare NVIDIA Production, New Feature and Beta driver branches
  • Pin a driver branch with nvidia-driver-pinning
  • Install the nvidia-open driver package
  • Import a Machine Owner Key (MOK) for UEFI Secure Boot
  • Reboot, enroll the key and start KDE Plasma

Important: NVIDIA Open kernel modules require Turing-generation GPUs or newer. Older cards need different drivers. The NVIDIA 615 branch shown in this video is an example; choose the appropriate currently available version.

Commands demonstrated:

sudo apt update
sudo apt install extrepo
extrepo search nvidia
sudo extrepo enable nvidia-cuda
sudo apt update
sudo apt install build-essential linux-headers-amd64
sudo apt install nvidia-driver-pinning-615
sudo apt install nvidia-open

Optional Secure Boot commands:

sudo apt install mokutil
sudo mokutil --import /var/lib/dkms/mok.pub

After rebooting, complete key enrollment in MOK Manager.

Documentation:

NVIDIA Unix drivers: https://www.nvidia.com/en-us/drivers/unix/ NVIDIA installation guide: https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/615/debian.html Debian NVIDIA drivers: https://wiki.debian.org/NvidiaGraphicsDrivers Debian Secure Boot: https://wiki.debian.org/SecureBoot

👀 Watch my entire MAIN playlist here

https://www.youtube.com/playlist?list=PL3KVgwMTWoO0wKgJWk3BBtB20okJvu_6q

📍 Timestamps

00:00 Installing NVIDIA Open Drivers on Debian 13 (2026) 00:43 NVIDIA GPU Compatibility: GTX 16-Series and RTX 01:24 Fresh Debian 13 Trixie Installation 01:55 Installing extrepo on Debian 02:22 Enabling the Official NVIDIA CUDA Repository 03:02 Verifying the NVIDIA Debian 13 APT Repository 04:08 Installing Build Tools and Linux Kernel Headers 05:35 NVIDIA Driver Branches: Production vs New Feature vs Beta 07:58 Selecting NVIDIA Driver Versions with APT Pinning 09:33 Installing NVIDIA Open Kernel Drivers (nvidia-open) 10:25 How NVIDIA Driver Updates and Version Pinning Work 12:18 NVIDIA Drivers with Secure Boot Enabled 13:54 Signing NVIDIA DKMS Modules with mokutil and MOK 15:26 Rebooting and Enrolling the Secure Boot MOK Key 16:30 Checking the NVIDIA Driver Installation 16:48 Starting the KDE Plasma Desktop with SDDM 17:09 Final Thoughts

❤️ Help Keep This Content Going

Memberships: https://youtube.com/@LinuxRenaissance/join Patreon: https://patreon.com/LinuxRenaissance Ko-fi: https://ko-fi.com/darth GitHub: https://github.com/sponsors/LinuxRenaissance Merch: https://shop.linuxrenaissance.com Zorin Pro: https://zorin.com/linuxrenaissance Keychron: https://www.keychron.com/?ref=LINUX

📢 Join The Linux Renaissance Community On Matrix Chat

Matrix v12 Space: https://matrix.to/#/%23space:fosshq.org Recommended Matrix client: Element (Flathub) or Element X (smartphones).

🌐 Follow Linux Renaissance Everywhere

Discuss: https://forum.linuxrenaissance.com PeerTube: https://watch.linuxrenaissance.com Odysee: https://odysee.com/@LinuxRenaissance:1 Telegram: https://t.me/LinuxRenaissance Mastodon: https://silversword.online/@darth Twitter/X: https://x.com/darthchillash

🎵 Music By

H0ffman: https://soundcloud.com/h0ffman/sets/protracker-amiga

🙏 Linux Renaissance is supported by

OPNsense: https://opnsense.org

Links in this video may contain affiliate links that earn me a small commission.

#Debian13 #NVIDIADrivers #Linux

 

🔥 I upgraded Debian Stable to Debian Testing because I wanted newer software. Then I learned why I had chosen Debian Stable in the first place.

Discuss: https://forum.linuxrenaissance.com

Like the video and consider joining the channel to support more content!

📝 Quick Summary of the Video

After more than a year of relying on Debian 13 (Trixie), I gave in to FOMO — the fear of missing out — and upgraded to Debian Testing (Forky).

I wanted newer desktop environments, but experimenting with GNOME 50, Wayland, NVIDIA drivers and desktop portals came at a price. While recording a long-awaited second video with my daughter, OBS failed to capture her desktop.

This isn't about blaming Debian Testing, GNOME or Wayland. It's about the difference between experimenting with your computer and depending on it as a reliable workstation.

I've returned to Debian Stable and KDE Plasma. Here's what the experience taught me about chasing the latest software.

👀 Watch my entire MAIN playlist here

https://www.youtube.com/playlist?list=PL3KVgwMTWoO0wKgJWk3BBtB20okJvu_6q

📍 Timestamps

00:00 Don't Rush for the Latest Software 00:18 My Problem With FOMO 01:08 Why I Wanted Newer Desktop Software 01:50 Wayland, NVIDIA and Desktop Regressions 03:29 Upgrading Debian Trixie to Forky 05:00 Trying GNOME 50 05:39 The OBS Recording Disaster 06:38 What a Reliable Workstation Should Be 08:15 Returning to Debian Stable 08:50 Experimentation vs. Reliability 10:01 My Final Decision

❤️ Help Keep This Content Going

Memberships: https://youtube.com/@LinuxRenaissance/join Patreon: https://patreon.com/LinuxRenaissance Ko-fi: https://ko-fi.com/darth GitHub: https://github.com/sponsors/LinuxRenaissance Merch: https://shop.linuxrenaissance.com Zorin Pro: https://zorin.com/linuxrenaissance Keychron: https://www.keychron.com/?ref=LINUX

📢 Join The Linux Renaissance Community On Matrix Chat

Matrix v12 Space: https://matrix.to/#/%23space:fosshq.org Recommended Matrix client is "Element" from Flathub and Element X on smartphones.

🌐 Follow Linux Renaissance everywhere

🎵 Music By

H0ffman: https://soundcloud.com/h0ffman/sets/protracker-amiga

🙏 Linux Renaissance is supported by OPNsense: https://opnsense.org

Links within this video may contain affiliate links that I receive a small commission from. #linux #debian #debiantesting #linuxdesktop #fomo

 

In Lesson 13 of Learn C With Me, we continue Chapter 11 — Pointers II from Beej's Guide to C Programming, this time exploring one of C's most interesting features: void pointers.

We learn how a pointer can refer to data without specifying its type, why generic pointers are useful, and how standard library functions such as memcpy() and qsort() can work with different kinds of data.

We cover:

  • What void * means in C
  • The difference between typed pointers and generic pointers
  • Why void * can point to different data types
  • Understanding generic functions
  • Using memcpy() to copy memory
  • Source and destination pointers
  • Understanding byte counts and size_t
  • Copying character arrays and other data
  • Why void * cannot be dereferenced directly
  • Why standard C doesn't support arithmetic on void *
  • Converting generic pointers to typed pointers
  • Using casts when working with pointers
  • Understanding pointer types and memory representation
  • Returning pointers from functions
  • Why library functions often return void *
  • Introducing qsort()
  • Sorting arrays containing structs
  • Writing a comparison function
  • Why comparison functions receive const void * arguments
  • Converting those arguments to the appropriate pointer type
  • Sorting structs by one of their fields
  • Understanding the arguments passed to qsort()
  • How comparison results determine sorting order
  • Compiler errors, debugging and reading manual pages

One of the biggest challenges in this lesson is understanding how void * makes generic programming possible in C. A function such as memcpy() doesn't need to know whether it is copying characters, integers or other data. It works with memory and a specified number of bytes.

We also discover the limitations of generic pointers. Since a void * doesn't specify the pointed-to object's type, we cannot simply dereference it or perform ordinary pointer arithmetic on it.

Later, we experiment with qsort(), sorting an array of animal structs by their number of legs. This introduces another important concept: passing a comparison function to a library function so it knows how to order our data.

As usual, we read the book, experiment, make mistakes, consult the manual pages, get help from the live chat, and try to understand why C works the way it does.

This stream completes our exploration of Pointers II.

This is an interactive, follow-along live course. I am learning C alongside you, so expect questions, mistakes, experiments and plenty of discussion. No passive watching here — participate in the chat and work through the examples with us.

00:00:00 Starting the stream 00:25:00 Beginning the C lesson 00:28:22 Understanding void pointers 00:34:01 Generic functions and void * 00:35:05 Introducing qsort() 00:37:32 Understanding memcpy() 00:40:56 Experimenting with generic pointers 00:55:00 Copying memory in practice 01:20:00 Understanding memory sizes 01:23:34 Why generic pointers are useful 01:28:05 Limitations of void pointers 01:33:00 Why pointer arithmetic needs a type 01:44:58 Converting void pointers 02:12:36 Final section of the chapter 02:15:42 Sorting with qsort() 02:18:09 Comparison functions 02:22:31 Sorting an array of structs 02:27:34 Calling qsort() 02:30:05 Debugging compiler errors 02:38:02 Reading the qsort manual 02:45:16 Understanding comparison results 02:48:02 Homework discussion 02:55:00 Post-lesson chat

📅 We go live every Sunday at 19:00 CEST — interactive, follow-along C programming sessions.

📖 Study material: Beej's Guide to C

📚 Course materials: Linux Renaissance C Programming Course

💬 Homework & discussion: Linux Renaissance Forum

📺 All C Programming lessons: C Programming playlist

🔴 This stream is proudly sponsored by OPNsense — the open source firewall and routing platform trusted by professionals worldwide. OPNsense

Support Linux Renaissance

🛒 Shop: Linux Renaissance Shop ☕ Ko-fi: Ko-fi 🎖️ Patreon: Patreon ▶️ YouTube membership: YouTube Membership

Find me elsewhere

🌐 Blog: Linux Renaissance 🎥 PeerTube: Linux Renaissance on PeerTube 📺 Odysee: Linux Renaissance on Odysee 🎮 Twitch: Linux Renaissance on Twitch 💬 Matrix: Linux Renaissance Matrix space

#clanguage #programming #linux

 

In Lesson 12 of Learn C With Me, we return to one of the most important concepts in C programming: pointers.

Using Beej's Guide to C, we begin Chapter 11 — Pointers II: Arithmetic, exploring how pointer arithmetic works, how pointers relate to arrays, and why seemingly different expressions can access exactly the same data in memory.

We cover:

  • Pointer arithmetic in C
  • Adding integers to pointers
  • Why p + 1 doesn't necessarily mean adding one byte
  • How pointer arithmetic depends on the pointed-to type
  • Using sizeof to understand memory offsets
  • Accessing array elements through pointers
  • Dereferencing expressions such as *(p + 1)
  • Changing pointers with p++
  • Moving through arrays without using indexes
  • Using a sentinel value to terminate a loop
  • Subtracting pointers
  • Finding the distance between two pointers
  • Using pointer subtraction to calculate string lengths
  • Why pointer subtraction requires pointers into the same array
  • Array/pointer equivalence
  • Understanding a[b] and *(a + b)
  • Accessing arrays using both pointer and array notation
  • Why a pointer variable can move but an array name cannot
  • Passing arrays and pointers to functions
  • Understanding char * function parameters
  • Experimenting with incorrect parameter types
  • Compiler warnings and incompatible arguments

One of the most interesting discoveries is that pointer arithmetic operates in elements, not individual bytes. When we add one to an int *, the resulting pointer advances by the size of an integer.

We also experiment with pointer subtraction and discover how it can be used to calculate the length of a string by finding the difference between two pointers.

Later, we explore array/pointer equivalence, including the relationship between a[i] and *(a + i). We revisit function parameters and experiment with what happens when we remove the pointer from a char * parameter.

As usual, we don't just read the examples. We make predictions, write code, get confused, inspect compiler diagnostics, and work through the problems together with the live chat.

This is Part One of Pointers II. We continue the chapter in the next lesson, including void pointers.

This is an interactive, follow-along live course. I am learning C alongside you, so expect questions, mistakes, experiments and plenty of discussion. No passive watching here — participate in the chat and work through the examples with us.

00:00:00 Starting the stream 00:05:42 GNOME setup & pre-lesson chat 00:14:44 Revisiting pointers 00:17:20 Pointer arithmetic 00:18:40 Adding to pointers 00:39:17 Arrays and pointer notation 00:49:49 Changing pointers 00:50:46 Sentinel values 00:55:31 Subtracting pointers 00:58:49 Calculating string lengths 01:08:20 Array/pointer equivalence 01:45:00 Arrays and pointers in function calls 01:49:45 Discussing void pointers and lesson progress 01:51:38 Experimenting with function parameters 02:01:58 Compiler warnings and type mismatches 02:05:00 Post-lesson chat

📅 We go live every Sunday at 19:00 CEST — interactive, follow-along C programming sessions.

📖 Study material: Beej's Guide to C

📚 Course materials: Linux Renaissance C Programming Course

💬 Homework & discussion: Linux Renaissance Forum

📺 All C Programming lessons: C Programming playlist

🔴 This stream is proudly sponsored by OPNsense — the open source firewall and routing platform trusted by professionals worldwide. OPNsense

Support Linux Renaissance

🛒 Shop: Linux Renaissance Shop ☕ Ko-fi: Ko-fi 🎖️ Patreon: Patreon ▶️ YouTube membership: YouTube Membership

Find me elsewhere

🌐 Blog: Linux Renaissance 🎥 PeerTube: Linux Renaissance on PeerTube 📺 Odysee: Linux Renaissance on Odysee 🎮 Twitch: Linux Renaissance on Twitch 💬 Matrix: Linux Renaissance Matrix space

 

📝 We are playing Amnesia on

  • OS: Debian GNU/Linux 14
  • Compositor: Gnome 50.5
  • CPU: Ryzen 5800x3D
  • GPU: Nvidia RTX 5070 Ti 16GB
  • Driver version: 615.71.09
  • RAM: 64GB DDR4 3200MT/s
  • Screen resolution: 4K native
  • In Game settings: Max
  • Game engine: HPL Engine 2

❤️ Motivate me for future content:

🌐 Talk to me on federated social media:

 

In Lesson 11 of Learn C With Me, we explore typedef in C, a feature that lets us create alternative names for existing types.

Using Beej's Guide to C, we start with simple type aliases and gradually discover how typedef can make code easier to read, especially when working with structs. We also discuss why hiding type information isn't always a good idea.

We cover:

  • What typedef is and how it works
  • Creating aliases for existing types
  • Why typedef doesn't create a completely new type
  • Using multiple aliases for the same type
  • Scope rules for type aliases
  • Using typedef with structs
  • Avoiding repeated struct keywords
  • Combining struct definitions and typedef declarations
  • Anonymous structs
  • Creating cleaner type names for structs
  • Why grouping related data into a struct makes sense
  • Abstraction and working with objects as a whole
  • Using typedefs to simplify future code changes
  • Changing an underlying type in one place
  • typedef with pointers
  • Why pointer aliases can hide important information
  • The trade-off between convenience and readability
  • Naming conventions and capitalization
  • Using typedef with arrays
  • Why array aliases can also obscure the underlying type

One of the most interesting parts of this lesson is our discussion about structs and abstraction. We spend time figuring out why representing a point as a struct containing two coordinates can be more useful than working with two unrelated integers.

We also look at the downsides of typedef. While it can make code cleaner, it can also hide whether a variable is a pointer or an array. We discuss why readability and consistency matter, particularly when revisiting code months or years later.

As usual, this isn't a polished tutorial. We read the book, ask questions, get confused, experiment, and work through the explanations together with help from the live chat.

With this stream, we finish Chapter 10 — Typedef. Next time, we return to pointers with Pointers II.

This is an interactive, follow-along live course. I am learning C alongside you, so expect questions, mistakes, experiments and plenty of discussion. No passive watching here — participate in the chat and work through the examples with us.

00:00:00 Starting the stream 00:09:57 Introducing today's lesson 00:11:02 Chapter 10 — Typedef 00:11:29 Creating type aliases 00:14:34 Typedef scope and practical uses 00:15:07 Typedef and structs 00:22:46 Combining struct definitions and typedef 00:25:58 Anonymous structs 00:29:24 A practical Point struct example 00:37:41 Understanding structs and abstraction 00:40:41 Typedef with other types 00:43:38 Typedef and pointers 00:50:26 Why pointer aliases can be confusing 00:53:09 Typedef and capitalization 00:59:42 Typedef and arrays 01:03:12 Programming experience and discussion 01:15:02 Lesson finished & post-lesson chat 02:06:47 Next lesson: Pointers II 02:09:10 Homework discussion

📅 We go live every Sunday at 19:00 CEST — interactive, follow-along C programming sessions.

📖 Study material: Beej's Guide to C

📚 Course materials: Linux Renaissance C Programming Course

💬 Homework & discussion: Linux Renaissance Forum

📺 All C Programming lessons: C Programming playlist

🔴 This stream is proudly sponsored by OPNsense — the open source firewall and routing platform trusted by professionals worldwide. OPNsense

Support Linux Renaissance

🛒 Shop: Linux Renaissance Shop ☕ Ko-fi: Ko-fi 🎖️ Patreon: Patreon ▶️ YouTube membership: YouTube Membership

Find me elsewhere

🌐 Blog: Linux Renaissance 🎥 PeerTube: Linux Renaissance on PeerTube 📺 Odysee: Linux Renaissance on Odysee 🎮 Twitch: Linux Renaissance on Twitch 💬 Matrix: Linux Renaissance Matrix space

 

A lot of people still see the Linux command line as something complicated, intimidating, or reserved for hackers.

So I decided to test that idea on my daughter.

She had no idea what I was going to show her. Instead of starting with permissions, filesystems and serious system administration, we started with cows, dragons, fortune tellers, Matrix effects, fake Hollywood hacking, terminal games and a small treasure hunt.

Along the way, she also learned some real Linux fundamentals:

  • navigating directories with cd and ls
  • command history and tab completion
  • pipes and output redirection
  • creating files and directories
  • using cat, echo, touch and chmod
  • running programs from the terminal
  • installing software with apt
  • writing and running a simple shell script
  • looking at the system with htop, whoami and uptime

The point wasn't to turn a child into a system administrator in one evening.

It was to show that the Linux terminal doesn't have to be scary.

You can learn real concepts while playing with cowsay, cmatrix, moon-buggy, ninvaders and ridiculous terminal commands.

And perhaps that's a better introduction to the command line than memorizing a list of commands.

This video is completely unscripted. My daughter didn't know what I had prepared or what I was going to ask her to do.

Linux can be serious.

But it can also be fun.

00:00 Is the Linux command line only for hackers? 01:18 cowsay: Making Linux terminal commands fun 03:14 Tux and dragons with cowsay 04:28 figlet: ASCII art in the Linux terminal 05:44 fortune: Linux fortune cookies 06:39 Linux pipes explained with fortune | cowsay 08:00 cmatrix: The Hollywood hacker terminal 09:04 Writing our first Linux shell script with nano 10:28 ls, chmod and making a script executable 12:25 Running a Linux script with ./ 13:26 cat: Reading files from the command line 15:23 Hollywood: Becoming fake movie hackers 16:06 Installing software with sudo apt install 19:30 Writing a second command line program 21:36 ls vs sl: The famous Linux steam locomotive 23:14 mkdir and creating directories in Linux 24:18 cd and Linux tab completion 26:05 touch: Creating files from the terminal 27:18 echo and Linux output redirection 30:03 Linux command line treasure hunt 31:12 Learning ls, cd and cat through a game 35:50 Was navigating the Linux terminal difficult? 36:06 moon-buggy: A game inside the Linux terminal 38:27 ninvaders: Space Invaders in the terminal 40:41 htop: Watching what your Linux PC is doing 42:08 whoami: Who am I on Linux? 43:28 uptime: How long has Linux been running? 44:04 The wonderfully useless yes command 44:50 Rolling dice with Bash and $RANDOM 46:30 toilet: More ridiculous terminal text effects 48:53 So... was any of this actually hacking? 49:42 Should kids learn the Linux command line? 50:12 Why I still like old-school unscripted YouTube 51:24 Final verdict

❤️ Help Keep This Content Going Memberships: https://youtube.com/@LinuxRenaissance/join Patreon: https://patreon.com/LinuxRenaissance Ko-fi: https://ko-fi.com/darth GitHub: https://github.com/sponsors/LinuxRenaissance Merch: https://shop.linuxrenaissance.com Zorin Pro: https://zorin.com/linuxrenaissance Keychron: https://www.keychron.com/?ref=LINUX StartMail 50% off: https://www.startmail.com/partner/?ref=mwq0ywj

📢 Join The Linux Renaissance Community On Matrix Chat Matrix v12 Space: https://matrix.to/#/%23space:fosshq.org Recommended Matrix client is "Element" from Flathub and Element X on Smartphones

🌐 Follow Linux Renaissance everywhere

🎵 Music By H0ffman: https://soundcloud.com/h0ffman/sets/protracker-amiga

🙏 Linux Renaissance is supported by OPNsense: https://opnsense.org

Links within this video may contain affiliate links that I receive a small commission from. #Linux #LinuxTerminal #LearnLinux

 

How do we get more people interested in Linux and free software?

For years, Linux users have tried to convince people by explaining why Linux is better, why software freedom matters, or why privacy is important. But if someone needs Photoshop, Fortnite, or something else their current platform provides, those arguments may mean very little to them.

Maybe there's another approach.

My daughter has been using Debian for years. When she first got her ThinkPad, I didn't give her a "Linux computer." I simply gave her a computer. Linux was normal because it was all she needed to know.

Years later, a conversation about the restrictions on her smartphone led us somewhere unexpected: for the first time, we really discussed why her Linux computer is different.

And suddenly, software freedom wasn't an abstract philosophical argument anymore. It was something she already had — and didn't want to give up.

In this video, I talk about introducing people to Linux without becoming the annoying Linux evangelist, why beginner-friendly distributions matter, and why giving young people the opportunity to experience free software may be more valuable than trying to convince adults to switch.

The goal shouldn't be to force anyone to use Linux.

Give people the opportunity to experience freedom, let them understand the alternatives, and let them make their own choice.

CHAPTERS

00:00 How do we get more people to use Linux? 01:38 Why selling people on Linux often doesn't work 02:04 “Can Linux run Photoshop and Fortnite?” 02:52 Richard Stallman and promoting software freedom 03:40 Don't become the annoying Linux evangelist 05:35 Which Linux distro should beginners use? 06:37 Want more Linux users? Start with kids 07:49 How my daughter became a Linux user 09:19 When school requires Windows 10:48 Why her phone has restrictions but Linux doesn't 12:20 Explaining Linux privacy and software freedom 13:48 I offered to install Windows 14:24 “I'm not giving up my freedom” 15:34 Let kids experience Linux before choosing 16:49 Freedom vs convenience 17:18 Let them think for themselves

❤️ Help Keep This Content Going Memberships: https://youtube.com/@LinuxRenaissance/join Patreon: https://patreon.com/LinuxRenaissance Ko-fi: https://ko-fi.com/darth GitHub: https://github.com/sponsors/LinuxRenaissance Merch: https://shop.linuxrenaissance.com Zorin Pro: https://zorin.com/linuxrenaissance Keychron: https://www.keychron.com/?ref=LINUX StartMail 50% off: https://www.startmail.com/partner/?ref=mwq0ywj

📢 Join The Linux Renaissance Community On Matrix Chat Matrix v12 Space: https://matrix.to/#/%23space:fosshq.org Recommended Matrix client is "Element" from Flathub and Element X on Smartphones

🌐 Follow Linux Renaissance everywhere

🎵 Music By H0ffman: https://soundcloud.com/h0ffman/sets/protracker-amiga

🙏 Linux Renaissance is supported by OPNsense: https://opnsense.org

Links within this video may contain affiliate links that I receive a small commission from. #linux #foss #kids

view more: next ›