in Japan - University : Open University of Japan - Currently enrolled at 42Tokyo, a franchise school of 42. - My Open-Source Activities - Japan openSUSE User Group (2 ~ 3 years) - Open Source Summit Japan Volunteer (2023, 2024)
BSD, compilers, compiler’s type system (especially interested in programming language theory as a student) Today, I’ll be presenting on openSUSE MicroOS, focusing on aspects that piqued my interest through daily use.
of transactional-update Tukit, libtukit in transactional-update Snapper in transactional-update Figure of transactional-update The Benefits of Atomic Updates for Desktop Use with MicroOS Conclusion Agenda
the openSUSE distribution. It comes with desktop environments, including: openSUSE Aeon → GNOME Desktop on MicroOS openSUSE Kalpa → KDE Plasma Desktop on MicroOS
the openSUSE distribution. It comes with desktop environments, including: openSUSE Aeon → GNOME Desktop on MicroOS openSUSE Kalpa → KDE Plasma Desktop on MicroOS
the openSUSE distribution. It comes with desktop environments, including: openSUSE Aeon → GNOME Desktop on MicroOS openSUSE Kalpa → KDE Plasma Desktop on MicroOS
directories except /home and /var —such as /, /usr, /lib, /etc, and others , under the root—are mounted as read-only. This setup allows changes only via transactional-update, making update management more secure.
directories except /home and /var —such as /, /usr, /lib, /etc, and others , under the root—are mounted as read-only. This setup allows changes only via transactional-update, making update management more secure. For this reason, MicroOS is often referred to as an "immutable" OS.
directories except /home and /var —such as /, /usr, /lib, /etc, and others , under the root—are mounted as read-only. This setup allows changes only via transactional-update, making update management more secure. For this reason, MicroOS is often referred to as an "immutable" OS.
leverages certain package manager functions to capture update deltas and create backups. And MicroOS terminology, these update deltas are treated as atomic transactions for update operations.
leverages certain package manager functions to capture update deltas and create backups. And MicroOS terminology, these update deltas are treated as atomic transactions for update operations. In this presentation, we’ll provide an overview of the package manager’s functionality in MicroOS and explore scenarios where the MicroOS update strategy is particularly advantageous.
in MicroOS, let’s review how it works in Leap and Tumbleweed. In openSUSE, system updates are typically managed via the “zypper” command (though “YaST” users may have a different experience).
follows: (please check manpage for details) - zypper in <package name> # shorthand for `zypper install` - zypper re <package name> # shorthand for `zypper remove` - zypper se # shorthand for `zypper search` - zypper up # shorthand for `zypper update` - zypper dup # performs a full system dist-upgrade
follows: (please check manpage for details) - zypper in <package name> # shorthand for `zypper install` - zypper re <package name> # shorthand for `zypper remove` - zypper se # shorthand for `zypper search` - zypper up # shorthand for `zypper update` - zypper dup # performs a full system dist-upgrade
managed not directly by zypper but through a wrapper command called transactional-update. This transactional-update command combines zypper with several openSUSE tools to create a new "generation" of the system after each update. A generation is treated as an update transaction.
follows: (please check manpage) - transactional-update # updates the system - transactional-update pkg in <package name> # installs a package from available repositories via zypper - transactional-update apply # mounts the next generation with system changes applied - transactional-update shell # chroots into the next generation
follows: (please check manpage) - transactional-update # updates the system - transactional-update pkg in <package name> # installs a package from available repositories via zypper - transactional-update apply # mounts the next generation with system changes applied - transactional-update shell # chroots into the next generation
follows: (please check manpage) - transactional-update # updates the system - transactional-update pkg in <package name> # installs a package from available repositories via zypper - transactional-update apply # mounts the next generation with system changes applied - transactional-update shell # chroots into the next generation
follows: (please check manpage) - transactional-update # updates the system - transactional-update pkg in <package name> # installs a package from available repositories via zypper - transactional-update apply # mounts the next generation with system changes applied - transactional-update shell # chroots into the next generation
stores the system update deltas, enabling rollbacks by restoring these changes. In the following section, we’ll introduce the tools used to create and restore these deltas.
privileges. After running a command, a system reboot or `transactional- update apply` is necessary. This is because updates create a new environment, which then needs to be mounted by the system to apply the update deltas.
transactional- update? A. No. Within transactional-update, functionalities are effectively separated to handle different aspects of the update process.
libtukit and a tool named tukit. This tool primarily handles the creation and application of transactions. transactional-update hooks the functions available in libtukit into the package manager.
libtukit and a tool named tukit. This tool primarily handles the creation and application of transactions. transactional-update hooks the functions available in libtukit into the package manager. The transaction creation functionality in tukit dependencies on snapper, a backup tool in openSUSE, for managing snapshots.
a helper tool that simplifies snapshot creation on filesystems like LVM-managed ext4 and CoW-based filesystems like btrfs, which support subvolume management.
a helper tool that simplifies snapshot creation on filesystems like LVM-managed ext4 and CoW-based filesystems like btrfs, which support subvolume management. tukit uses Snapper to create each "generation" with every update operation, defining the transactional units of updates.
delta images created by Snapper. Specifically, transactional-update performs update operations and uses the abstract interface(c library) tukit to handle pre- and post-processing steps, calling Snapper to create generations.
delta images created by Snapper. Specifically, transactional-update performs update operations and uses the abstract interface(c library) tukit to handle pre- and post-processing steps, calling Snapper to create generations. These filesystem images can then be applied or rolled back as needed (and there are also cleanup subcommand for removing old generations).
MicroOS I've overviewed the components of the MicroOS package management system and introduced the update mechanisms in MicroOS. Finally , I’ll share insights from the perspective of a general end- user of openSUSE MicroOS (typically using Aeon) on cases where the transactional-update system provides noticeable benefits.
with a minimal environment, managing only essential packages and tracking updates across generations. - In the case of Aeon, this begins with a minimal GNOME setup. - Separation of concerns between package updates and desktop applications: transactional-update’s manage packages with rollback capabilities, while Flatpak keeps desktop apps up-to-date, allowing for streamlined management. The Benefits of Atomic update transaction for Desktop Use with MicroOS
to a wide range of up-to-date packages, as it leverages package resources from the Tumbleweed codebase repository. This can be a key differentiator from Leap Micro (not covered in this presentation). The Benefits of Atomic update transaction for Desktop Use with MicroOS
distributions, with its unique system and update strategy. - The transactional-update tool plays a key role, supported by libraries like libtukit and linked with snapper for effective snapshot management.
distributions, with its unique system and update strategy. - The transactional-update tool plays a key role, supported by libraries like libtukit and linked with snapper for effective snapshot management. - MicroOS leverages filesystem features to enable system rollbacks and robust update handling.
distributions, with its unique system and update strategy. - The transactional-update tool plays a key role, supported by libraries like libtukit and linked with snapper for effective snapshot management. - MicroOS leverages filesystem features to enable system rollbacks and robust update handling. - I shared personal insights on using MicroOS for desktop use cases.