Learning Linux Diversity

Dive into Linux Subsystem
for Personal Educational Purpose.


Click download in: [PDF], [Impress]

All slides in: [slides]

About Me πŸ™‹πŸ»β€β™‚οΈ!

my photo

Yet, another underachiever πŸ‘».

But hey, I have my own blog πŸŽ‰.

About This Material 🀠

After watching this, you will understand:

  • A more systematic steps to learn GNU/linux.
  • How to make your own learning plan (syllabus).

πŸ™πŸ½

This material is not really comprehensive.
I still have so much to learn.

After first linux install πŸ€”?

You might desire to

  • Join linux community.
  • Read documentation (statistically rare person).
  • Update system.
  • Install a bunch of application.
  • Get busy with command line terminal.
  • Surfing wiki and search engine.

And then what ?

After first linux install 🀠

Where to go from here πŸ€”?

  • Should I try other distro?
  • What other distro should I try?
  • So many distro, so little differences!
  • Should I use VM or multiboot?

Learn part of system!
Instead of just switching distro.

How Modular is Linux πŸ€”?

  • Package Manager:
    APT, ALPM, DNF, XBPS, Zypper, Portage.
  • Init:
    SysV, systemd, openRC, runit, S6.
  • Filesystem:
    ext4, XFS, Reiserfs, BTRFS, ZFS.
  • Standard C library in OS:
    glibc or musl.
  • DE (Desktop Environment):
    GTK+ based, QT based, enlightenment.
  • WM (Window Manager):
    Stacking, Tiling, Dynamic, Compositor.

Modular Linux πŸ™ˆ

You still need to Switch distro.

by considering these three diversity

Package Manager, File system, Init.

Modular Linux πŸ™ˆ

When do I need a physical OS πŸ€”?

  • You can learn Package Manager using Docker.
  • You can also learn Init using Docker.
  • But you cannot learn Filesystem using Docker.

File system experience require long time examination.
Thus you have to live with baremetal (physical) OS.

Desktop Environment/ Window Manager

Most beginner start from switching DE/WM πŸ™ˆ:

[Desktop Customization]
Yet Another Presentation.

Common Subsystem πŸ€”?

A few must have knowledge!

Package Manager with DockerπŸ€”?

You can utilize docker to learn other package manager.

Learn Different Package Management Using LXC

[Docker - Package Management Summary]

Package Manager with Docker 🀠

Docker Test Bed:
APT, ALPM, DNF, XBPS, Zypper, Portage

Examine Gentoo Portage in Docker: Getting Started

Docker is suitable for
old notebook with low resources.

Package Manager with Docker 🀠

More Articles about Docker Test Bed

Package Manager Feature πŸ€”?

Be Aware of Package Manager Advantage/Issue

Deep knowledge require long time experience.
Most of issues comes months after install.

Init πŸ€”?

Who use what.

  • OpenRC:
    Gentoo, Artix, Devuan
  • runit:
    Void, Artix
  • s6:
    Obarun, Artix
  • SysV:
    Slackware, Devuan
  • systemd:
    Most Major Distro

Init 🀠

Civil War

The systemd Controversy

Still debating in 2020 between:
systemd+gnome versus linux+diversity.

Elements 🀠

The four elements of an init system:

  • /sbin/init
  • pid 1
  • Process Supervision
  • Service Management

Reference: s6_lightning_talk.pdf

Init 🀠

Example Usage

Setup LAMP stack with Manjaro OpenRC

File System πŸ€”?

ext4, XFS, Reiserfs, BTRFS, ZFS.

Deep knowledge require long time experience.
Most of issues comes months after install.
You cannot just install, and just understand file system instantly.

File System 🀠

  • ext4: most common in linux
  • ZFS: common in BSD
  • UFS: common in BSD
  • BRTRFS: Default in openSUSE /
  • XFS: can be installed in most linux

File System 🀠

Example Issues and Workarounds:

Standard C library in OS πŸ€”?

glibc or musl.

I must admit,
I do not have any experiece with musl.

Switching Distro πŸ€”?

While you are young and still have time.
Get yourself quarterly (three months) curriculum/plan.

Just get pass through it.
No need to go deep with coding.
Be an ordinary user.

After this one year,
you are already mature enough with broader view
to choose whatever linux you want.

If you want to get more wisdom.
Learn BSD land in the second year.

Switching Distro 🀠

Example Syllabus (learning plan):
Make a target of first year with linux.

  • Q1: ubuntu/mint/manjaro
    learn the DE universe: gnome-shell, plasma, xfce4
    learn basic command line.
  • Q2: opensuse
    learn filesystem: btrfs, xfs
    also learn yast2
  • Q3: arch
    know your system,
    dive into the world of cli/terminal shell
  • Q4: gentoo
    learn init other than systemd
    learn patience πŸ™ˆ

Switching Distro πŸ€”?

Example Q1: Ubuntu/ Mint/ Manjaro

  • Basic Terminal Command
    ls, cat, grep, ps, top, man, info, su, sudo
    always use $ man for documentation before google.
  • Also learn about basic linux briefly
    Examine Filesystem Hierarchy Standard (FHS)
    Examine boot process.
    Solving audio or wireless issue.
  • Read The Fine Manual
    [ubuntu-manual] (GUI)
    [debian-handbook] (hertzog)
  • More Terminal Command
    nmcli, ncdu, ntop, cfdisk
    lspci, lsusb, lsmod, dmesg, ip, iw

Switching Distro πŸ€”?

Example Q3: Arch: Leverage yourself to Arch

  • Install with command line only
    add driver manually, add username manually, add DE manually, use pacman
  • Read the holy arch wiki
    there is a lot of good material here
  • Use packer, cower, or other AUR Helper
    automatic compilation, try any unofficial application from AUR
  • Dare to use minimalis WM, rather than eyecandy DE
    openbox, awesome, i3, bspwm
  • Penetration Testing Application
    add and install repo: BlackArch or maybe ArchStrike

Philosophy: Knowing Your System

Switching Distro πŸ€”?

Install Log/ Post Install Log

Multiboot πŸ€”?

For linux enthusiast.

Multiboot: KDE Partition Manager

Multiboot 🀠

Partition Schema using MBR (old example)

  • Primary: Windows
  • Extended: Linux
    Swap
    Shared Partition
    First Distro
    Second Distro
    Third Distro
  • Extended: BSD

[Multiboot - Partition Schema]

Multiboot 🀠

fstab

  • Learn to make shared partition.
  • BTRFS subvolume is interesting.

[Multiboot - /etc/fstab]

Multiboot 🀠

chroot

  • Some OS is comfortably installed using chroot:
    such as: Gentoo, LFS.
  • Other OS can be updated using chroot:
    beware of small issues.

[Multiboot - chroot]

Multiboot 🀠

Tips: Keep your samba's network share
persistence along multiboot.

[Multiboot - Samba]

Multiboot 🀠

Tips: Linux Multiboot with BSD,
can be done using UFS, instead of ZFS.

[GhostBSD: Multiboot]

Kernel πŸ€”?

make menuconfig

Interesting Diversity πŸ€”?

Project Trident
runit + zol + xbps + musl

Alpine Linux
Busybox (no GNU tools)

NixOS
Exotic Package Manager

LFS
No comment.

And many more
You name it!

What is Next πŸ€”?

More Wisdom!

πŸ™πŸ½

Learn BSD land!

Questions πŸ€”?

Don't be shy πŸ™‹πŸ»β€β™‚οΈ!

The End

πŸ™‡πŸ»

Thank You for Your Time.