theme: override: footer: style: template center: "Introduction to footer styling" right: "{current_slide} / {total_slides}"


Open Source and Linux Desktop

Open Source for your "Computers"


About Me - Shawn Wang

  • 3 years EFI in Quanta Inc.

  • 5 years OEM / Infra in Canonial

  • 6 years distro in EasyStack

  • KaLUG - Kaohsiung Linux User Group


Open Source Era

https://gitnux.org/open-source-software-statistics/

  • 78% of businesses are using open-source software.
  • Over 70% of developers said that working on open-source software projects helped improve their skills.
  • More than 90% of developers rely on open-source components in their proprietary applications.
  • 96% of applications have at least one open-source component.
  • Open-source maintains a 33% lower organizational cost in the long run compared to proprietary software.

My opinions how open source dominate the world:

  • linux / container / ...
  • git / github / ...
  • big company join - google / M$ / Apple / Facebook / IBM / ...

A World Without Linux

Linux Foundation 2015

https://149366088.v2.pressablecdn.com/wp-content/uploads/2015/10/linux-animated-series.jpg

By W3Cook's analysis of Alexa's data, 96.3 percent of the top 1 million web servers are running Linux. The remainder is split between Windows, 1.9 percent, and FreeBSD, 1.8 percent. (2015)


recent security issues

  • xz, ssh backdoor
    • Backdoor found in widely used Linux utility targets encrypted SSH connections
  • rust, windows cmd
    • https://www.theregister.com/2024/04/10/rust_critical_vulnerability_windows/

Why Open Source ?

  • price
  • not just customize, you can patch / fork it
  • even leak of documents, go for source code directly
  • your own upgrade strategy
  • easy to get packages / repos

personal or small company

  • as career records
    • https://openprofile.dev/ / github / ...
  • let people help you improve your code
  • public repos can have more free resource (CI/CD / pages / repos)

big company examples

  • RHEL / Canonical - support
  • gitlab / mattermost - core services
  • meta: systemd - not core services
  • mysql: Michael Widenius https://www.youtube.com/watch?v=krcKkiKBKms

What kind of Open Source good for you?

The Cathedral and the Bazaar (1999)

https://upload.wikimedia.org/wikipedia/en/c/c4/Cathedral-and-the-Bazaar-book-cover.jpg


Linux has a little over 4% (actually 4.03%) of the desktop OS market.

https://gs.statcounter.com/os-market-share/desktop/worldwide

  • Win
  • Mac OS / IOS
  • Linux / Android / ChromeOS
  • Other - BSD / ...

Microsoft has a majority market share

https://bugs.launchpad.net/bugs/1

  • 2004 created

  • 2013 marked fixed

  • Microsoft ♥ Linux https://www.microsoft.com/en-us/windows-server/blog/2015/05/06/microsoft-loves-linux/


Why has Linux failed in dominating desktops?

https://en.wikipedia.org/wiki/Criticism_of_desktop_Linux

  • Choice and fragmentation

    • upwards of 300 distributions
  • Third-party application development

  • (*) Cross-device like ipad + MacOS / android + chromebook

  • Ubuntu Edge (2013) / ubuntu touch

    • ubuntu gnome -> unity -> unity8 (17 failed) -> gnome

https://linuxgizmos.com/files/ubuntu_convergence5-sm.jpg


Why Linux is good as your PC OS?

  • Rich Open Source resources - linux / containers
  • Network native
    • ssh / tunnel

Not so good about

  • Many application like office
    • cloud version or android version
  • chinese input

others

  • Windows: WSL
  • Mac M1/M2/M3: Asahi Linux

Linux kernel

  • modules
  • eBPF
  • rust for linux
  • abi (application binary interface)
    • https://opensource.com/article/22/12/linux-abi
    • LTS - 6.6 / 6.1 / 5.15 / 5.10 / 5.4 / 4.19
    • dkms
    • RHEL kernel
      • 7.x 3.10 2014 (kernel-3.10.0-1160)
      • 8.x 4.18 2019
      • 9.x 5.14 2022

https://opensource.com/sites/default/files/2022-11/1cooperation.png


Linux Distro - packages and dependencies

  • binary package / repos
    • debian / Ubuntu (deb) / termux
    • REHL / CentOS
    • alpine
  • source based
    • gentoo
    • arch
  • Declarative builds and deployments.
    • Nix
    • guix
  • upstream packages

RHEL

  • Fedora / CentOS Stream / RHEL
    • Fedora - Rawhide / half year release, one year maintain
    • CentOS Stream - rolling preview
    • RHEL - 10 year maintain
  • others
    • RockyLinux / AlmaLinux
  • major / minor release

https://media.licdn.com/dms/image/D4D12AQGBjsyMD20pMA/article-inline_image-shrink_1500_2232/0/1688147280169?e=1718236800&v=beta&t=zKbOtKgo7xyAUwBnJyOsVf21HjNNNmEE9L0Y6M8MoYI


debian / ubuntu

  • debian
    • unstable
    • testing
    • stable (sid) - LTS 5 years , ELTS 10 years

ubuntu LTS

  • 2304 / 2310 / 2404 (LTS) / 2410 / 2504

Dependency hell

  • binary packages
  • library dependency

Nix

  • Nix is a purely functional package manager.
    • /nix/store/b6gvzjyb2pg0kjfwrjmg1vfhh54ad73z-firefox-33.1/

Nix pkgs

  • Multiple versions
  • Complete dependencies
  • Multi-user support
  • Atomic upgrades and rollbacks
  • Garbage collection
  • Functional package language
  • Transparent source/binary deployment
  • Nix Packages collection
  • Portability

NixOS

  • Declarative system configuration model
  • Reliable upgrades
  • Atomic upgrades
  • Rollbacks
  • Reproducible system configurations
  • Safe to test changes

Linux container

  • LXC (machine container)
  • docker / podman
  • flatpak / snap

GNU/Linux

GNU / Richard Stallman

  • shell
  • libc
  • gcc
  • gnome
  • hurd (*)

freedesktop

  • Xorg, Wayland Protocol, PulseAudio are all freedesktop project. Mesa a big part of Desktop Linux is also Freedesktop project.

Systemd

  • Linux is not Unix

  • not just pid 0

  • journalctl / udev / dbus

  • adopted by major distros

    • fedora / debian / ubuntu / arch / nix
  • non-systemd

    • android / ChromeOS / alpine / ...

Libc

  • glibc - most linux distro
  • musl - apline
  • bionic (android)
    • BSD-licensed
    • Small size
    • speed

LTS / release schedule

  • Ubuntu 5 years / 12+
  • RHEL 10 year

Debian Developer

  • Debian Organization
  • gpg
  • gpg party

There are basically two options:

  • Debian Maintainer (DM): This is the first step – as DM you can upload your own packages to the Debian archive (with some restrictions)
  • Debian Developer (DD): This is the traditional full membership role in Debian.

package vs image

  • deb
  • rpm
  • nix
  • snap

PackageKit


immutable / atomic

  • container (OCI) image
  • ostree
    • rpm-ostree
  • systemd
    • portable services
  • snap - squashfs

version & release cycle


Gui

gnome

  • GPL
  • gtk

kde

  • qt
  • KDE Slimbook
  • Plasma 6 (QT6)
  • Plasma mobile
  • KDE neon is a Linux distribution built on top of the latest Ubuntu LTS release

Cosmic

  • created by system76
  • rust

Andriod Desktop Mode

  • tablet
  • foldable devices

others

  • samsung dex
  • motorola ready for

console / cli / tui

old school but fashion and cool

  • light
  • remotable / scriptable / ssh
  • colorful / auto-complete

examples

  • fish
  • editor
  • zellij
  • history - atuin

web ui

  • config / maintain
  • monitor / health check
  • co-operate

Windows Subsystem for Linux (WSL)

https://github.com/microsoft/WSL2-Linux-Kernel

wine


ChromeOS

  • channels: stable / beta / dev

dev mode

  • cros
  • shell

crostini

  • base on LXD
  • https://chromium.googlesource.com/chromiumos/docs/+/master/crostini_developer_guide.md

Your next computer is not a computer, IPad?

Your next computer is in your pocket (?)

Adnroid - Termux

  • Termux app
  • termux-packages https://github.com/termux/termux-packages
    • Main deb https://packages.termux.dev/apt/termux-main/ stable main
    • Root deb https://packages.termux.dev/apt/termux-root/ root stable
    • X11 deb https://packages.termux.dev/apt/termux-x11/ x11 main

waydroid

  • uses Linux namespaces (user, pid, uts, net, mount, ipc) to run a full Android system in a container
  • provide Android applications on any GNU/Linux-based platform (arm, arm64, x86, x86_64).
  • The Android system inside the container has direct access to needed hardware through LXC and the binder interface.

images

  • System OTA: https://ota.waydro.id/system
  • Vendor OTA: https://ota.waydro.id/vendor

scrcpy

  • This application mirrors Android devices (video and audio) connected via USB or over TCP/IP, and allows to control the device with the keyboard and the mouse of the computer. It does not require any root access. It works on Linux, Windows and macOS.

cli

  • fish
    • atuin
  • helix
  • wezterm

Open hardware - from edge to cloud

phone

  • rootable
  • pixel

edge

  • open hardware
    • Arduino
    • Raspberry Pi (not really)

dsektop

  • System76 - uefi
  • puri.sm coreboot
  • framework - not open uefi
    • opensource ec
  • apple M1/M2/M3
    • Asahi-Fedora

system76

  • laptops / desktops / mini / servers / keyboards / components
    • System76 Open Firmware
      • coreboot / EDK2 / System76 Firmware Apps
    • System76 Open EC
      • Keyboard / Touchpad / Power Button
  • pop!_os

https://images.prismic.io/system76/dde270ac-5f7f-4356-ae56-3dc9cd27c311_homepage-section-features-oryxpro.jpg


framework 13 / 16

  • Replace any part / components
  • opensource ec

https://static.frame.work/gscjgiq4hmd1thfgfihwmcu1na9c


opensource native

  • comp lang
    • python / js / go / rust
  • git / git-ops
  • containter / kube
  • android

go lang as example

  • import "github.com/google/uuid"

rust as example

  • crates.rs
    • lib.rs
  • docs.rs
[dependencies]
my-secret-crate = { git = "ssh://git@gitlab.com/rpadovani/my-secret-crate.git", branch = "main" }

opensource organizations

  • Linux Foundation
    • Cloud Native Computing Foundation (CNCF) - kubernetes
  • OpenInfra Foundation / OpenStack Foundation
  • Apache Software Foundation

social media / chat / forum

  • github / gitlab
  • slack / irc / discord
    • cncf 104k / kubernetes 180k
  • youtube
    • meeting
  • dev.to

license

https://upload.wikimedia.org/wikipedia/commons/thumb/8/86/Open-source-license-chart.svg/1200px-Open-source-license-chart.svg.png

  • Strong copyleft licenses - GPL v2 / v3
  • Weak copyleft licenses - MIT / Apache / BSD / Mozilla / LGPL
  • Business Source License

SPDX / SBOM

  • https://github.com/awesomeSBOM/awesome-sbom

grype https://github.com/anchore/grype

  • A vulnerability scanner for container images and filesystems
    • Find vulnerabilities for major operating system packages
  • Find vulnerabilities for language-specific packages
  • OpenVEX

open source related projects

wikimedia

open textbook / open educational resources

Public Money, Public Code


taiwan open source conference

  • coscup - Conference for Open Source Coders, Users, and Promoters
  • SITCON - Students' Information Technology Conference
  • mopcon - Mobile Open Platform Conference

Happy Open Source

Thank you