[フレーム]
TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
Breaking Data Team Silos Is the Key To Getting AI to Production
Dec 17th 2025 2:00pm, by Frederic Lardinois
A Frontier Model Built Like a Brain with Python and Rust
Dec 16th 2025 3:03pm, by Alex Williams
The Rise of the Cognitive Architect
Dec 10th 2025 1:00pm, by Frederic Lardinois
How To Create an AI Use Policy
Dec 9th 2025 9:00am, by Jennifer Riggins
The Smart Path to MISRA C++:2023 Compliance
Dec 18th 2025 11:00am, by Robert Curlee
An End-to-End Cloud Native Observability Framework
Dec 18th 2025 8:00am, by Khushboo Nigam
Async Programming in Rust: Understanding Futures and Tokio
Dec 17th 2025 9:00am, by Zziwa Raymond Ian
How a Component-First Approach Fixes Figma-to-Code
Dec 16th 2025 1:30pm, by Temitope Oyedele
Google Launches Managed Remote MCP Servers for Its Cloud Services
Dec 10th 2025 12:30pm, by Frederic Lardinois
AWS, Google Build a Multicloud Bridge
Dec 2nd 2025 9:00am, by Joab Jackson
3-Hour Cloudflare Outage Knocks Out AI Chatbots, Shopify
Nov 20th 2025 7:00am, by Steven J. Vaughan-Nichols
How to Wrangle Cloud Bursting Costs
Nov 13th 2025 1:00pm, by Idan Yalovich
DevOps Is Still Waiting for Its Cursor Moment
Dec 5th 2025 7:00am, by Zafar Abbas
The New Role of Enterprise Architecture in the AI Era
Nov 27th 2025 10:00am, by Ankush Dhar and Minav Suresh Patel
Platform Engineering’s True Value Is in Application Development
Nov 27th 2025 6:00am, by Massimiliano Bianchessi
Tutorial: Add TLS to Nginx Gateway Fabric
Dec 19th 2025 6:00am, by Janakiram MSV
How Nutanix Is Taming Operational Complexity
Dec 18th 2025 2:00pm, by Heather Joslyn
An End-to-End Cloud Native Observability Framework
Dec 18th 2025 8:00am, by Khushboo Nigam
5 Incident Management Lessons To Carry Into 2026
Dec 19th 2025 7:00am, by Cristina Dias
An End-to-End Cloud Native Observability Framework
Dec 18th 2025 8:00am, by Khushboo Nigam
How Capital One Cut Tracing Data by 70% With OpenTelemetry
Dec 5th 2025 2:00pm, by B. Cameron Gain
When To Log, and When To Shut Up
Dec 3rd 2025 9:00am, by Mike Shi
Your New AI Workforce Requires a 'Digital HR' Department
Dec 20th 2025 10:00am, by Venky Veeraraghavan
5 Incident Management Lessons To Carry Into 2026
Dec 19th 2025 7:00am, by Cristina Dias
How Nutanix Is Taming Operational Complexity
Dec 18th 2025 2:00pm, by Heather Joslyn
The Smart Path to MISRA C++:2023 Compliance
Dec 18th 2025 11:00am, by Robert Curlee
How Nutanix Is Taming Operational Complexity
Dec 18th 2025 2:00pm, by Heather Joslyn
Three Core Principles for Sustainable Platform Design
Dec 13th 2025 10:00am, by Abby Bangser
A Guide To Building Scalable AI Agents
Dec 8th 2025 11:00am, by Doug Sillars
The Platform PM: Building an Ecosystem, Not Just a Product
Dec 5th 2025 11:00am, by Kateryna Korotieieva
Rust vs. C++: a Modern Take on Performance and Safety
Oct 22nd 2025 2:00pm, by Zziwa Raymond Ian
Building a Real-Time System Monitor in Rust Terminal
Oct 15th 2025 7:05am, by Tinega Onchari
SQL vs. Python: Frenemies of the Data World
Oct 14th 2025 7:00am, by Ivan Novick
AI Coding Tools in 2025: Welcome to the Agentic CLI Era
Dec 17th 2025 6:00am, by David Eastman
Coding With the Gemini CLI Tool
Dec 12th 2025 6:00am, by Jack Wallen
AWS Tackles AI's 'Too Much Information' Problem
Dec 7th 2025 9:00am, by Darryl K. Taft
Trae IDE Auto-Installs Python Libraries as You Code
Dec 5th 2025 1:00pm, by Jack Wallen
Why Bloomberg Chose Vendor-Neutral Java Over Big Tech
Oct 2nd 2025 5:00pm, by Darryl K. Taft
Vibe Coding Fails Enterprise Reality Check
Sep 10th 2025 4:00pm, by Darryl K. Taft
New Tool Ends Java Configuration Nightmare in K8s
Aug 21st 2025 3:00pm, by Darryl K. Taft
TanStack Adds Framework-Agnostic AI Toolkit
Dec 20th 2025 7:00am, by Loraine Lawson
When Should JavaScript Devs Use the Power of WebAssembly?
Dec 20th 2025 6:00am, by Jessica Wachtel
Why Next.js Co-Creator Tony Kovanen Prefers the Sidelines
Dec 12th 2025 8:00am, by Loraine Lawson
CSS-in-JS: The Great Betrayal of Frontend Sanity
Nov 28th 2025 8:00am, by Alexander T. Williams
Build Your First HTTP Server in Python
Nov 4th 2025 3:00pm, by Jessica Wachtel
Rust vs. C++: a Modern Take on Performance and Safety
Oct 22nd 2025 2:00pm, by Zziwa Raymond Ian
Trae IDE Auto-Installs Python Libraries as You Code
Dec 5th 2025 1:00pm, by Jack Wallen
Combining Rust and Python for High-Performance AI Systems
Dec 3rd 2025 1:00pm, by Zziwa Raymond Ian
Get Started With NLP Using Hugging Face and Python
Dec 1st 2025 8:00am, by Jessica Wachtel
Async Programming in Rust: Understanding Futures and Tokio
Dec 17th 2025 9:00am, by Zziwa Raymond Ian
Rust Goes Mainstream in the Linux Kernel
Dec 10th 2025 12:00pm, by Steven J. Vaughan-Nichols
Combining Rust and Python for High-Performance AI Systems
Dec 3rd 2025 1:00pm, by Zziwa Raymond Ian
Debian Mandates Rust for APT, Reshaping Ubuntu and Other Linux Distros
Nov 11th 2025 12:00pm, by Steven J. Vaughan-Nichols
Go Power: Microsoft's Bold Bet on Faster TypeScript Tools
Mar 12th 2025 1:00pm, by Darryl K. Taft and Loraine Lawson
Oracle Won’t Release ‘JavaScript’ Without a Fight
Jan 11th 2025 5:00am, by Loraine Lawson
2025年12月21日 07:00:16
ObsidianOS, a Challenging but Reliable Linux Distribution
tutorial,
Linux

ObsidianOS, a Challenging but Reliable Linux Distribution

This Linux distribution uses on A/B partitioning on a standard Linux file system to improve reliability, though installation of the desktop is a trial.
Dec 21st, 2025 7:00am by
[画像:Featued image for: ObsidianOS, a Challenging but Reliable Linux Distribution]

Before we get into the review of ObsidianOS, let’s talk about A/B partitioning. It is essential to everything about ObsidianOS.

What Is A/B Partitioning?

A/B partitioning is a method to make seamless software updates a reality. Essentially, you are assured you will always have a working system, even though this distro isn’t immutable.

Here’s how A/B partitioning works:

You have a device with two “slots” — let’s call them A and B.

While you’re running Slot A, Slot B receives new updates in the background (so you are not interrupted).

When the update is complete, you reboot and select Slot B to be used. You log into Slot B, and then the entire process happens again, only with the background updates going to Slot A.

This update process always ensures that you won’t wind up with a brick on your desk or lap. You will always have a working partition to boot to, which means you can rest assured your PC will always work.

It’s kind of rare to use A/B partitioning on a standard Linux file system. Most often, this kind of system uses VirtualBox VM for the OS in question. In order for ObsidianOS to boot, I had to enable UEFI from within the Settings window. Once that was taken care of, I logged into the Live desktop (username user and an empty password) and began the installation process.

The installer was a bit flaky, with certain text unreadable (which caused me to have to guess a few times), and then it crashed on me. I ran the installer a second time. Again, the installation failed, so I rebooted the virtual machine to give it one more try.

Third time was not the charm, so I opted to go with the minimal option, which uses a text-based installer (Figure 1).

Figure 1: Using the ObsidianOS text-based installer.

Turns out, there was a question I answered incorrectly using the GUI (because the pop-up window wasn’t legible). When prompted to Unmount slot “a” to slot “b” accept the default N and not Y. Do that, and the installation will work like a charm.

However, if you go this route, you’ll wind up with a text-based only system. On top of that, the installation didn’t give you the option to create a new user.

The installation of a Linux distribution should not be this hard. Ever.

I then had to install both sudo and nano. First, I logged into the console-based system with user root and no password. Create a new user with:

1
useradd-mUSERNAME


Where USERNAME is the user you want to add.

Set a password for that user with:

1
passwd USER


Then, I ran:

1
pacman-Ssudo nano


Open the sudoers file with:

1
EDITOR=nano visudo


In that file, add the following:

1
USERNAME ALL=(ALL)ALL


Where USERNAME is the username you added earlier.

Save and close the file.

Update everything with:

1
pacman-Syu


Instead of installing KDE Plasma, I went with GNOME because it’s more straightforward to install. That can be accomplished with:

1
pacman-Sxorg


Next, install GNOME with:

1
pacman-Sgnome


When that completes, enable the login manager with:

1
sudo systemctl enable--now gdm.service


When the login window appears, type your username and password, and GNOME is ready to use (Figure 2).

[画像:Screenshot.]

Figure 2: Finally, I have a desktop.

Once on the desktop, you can install apps with pacman or Flatpak.

ObsidianOS Control Center

Remember me mentioning A/B partitioning? Here’s where things get interesting. Open the ObsidianOS Control Center from the Application Overlay. In the Slots tab (Figure 3), you can switch the current active slot or switch once (during the next boot). Once you’ve switched slots, it’ll take effect on the next boot.

[画像:screenshot]

Figure 3: Managing A/B partition with a handy GUI.

Before you do that, however, you should download an update. For that, click the System Updates tab and click Download update (Figure 4).

[画像:Ssccreenshot.]

Figure 4: Make sure to select either slot a or b for the download. If you’re using slot a, download the update to target slot b.

With the update taken care of, go back to the Slots tab and make the switch.

Who Is ObsidianOS For?

This is a tough question, but I believe the answer is that ObsidianOS is for users who want an operating system that will always work. But this means that ObsidianOS is best used by those with plenty of Linux experience.

If you’re new to Linux, and you choose ObsidianOS as your first distribution, you’ll find yourself in a world of confusion.

However, for those with plenty of Linux skills, ObsidianOS is a real treat.

If I’ve piqued your interest,

AltStyle によって変換されたページ (->オリジナル) /

TRENDING STORIES
Group Created with Sketch.
SHARE THIS STORY
TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.