For several years of my professional life, I’ve lived between worlds – Linux for development, Windows for daily comfort and gaming, and macOS when the polish and ecosystem just made things feel… nice. But I’ve always felt like I was cheating on one platform with another. No single environment ever gave me the full stack of everything I needed – from low-level OS debugging to high-end gaming, from container-based database development to creative workflows like astrophotography and live streaming. That changed the day I finally built a robust, stable, and deeply satisfying dual-boot setup with Ubuntu 24.04 and Windows 11.
This wasn’t a whim. It was a deliberate move. A reclamation of control. A challenge to the idea that I needed to make do with whatever ecosystem I happened to boot into. I didn’t just want to run two operating systems – I wanted to run both of them well, side-by-side, with full hardware access, shared data, native performance, and zero compromises.
The machine I’m running is a bit of a beast: an AMD Ryzen 9 3900XT CPU with 12 cores and 24 threads, 128 GB of DDR4 RAM, a GeForce RTX 3080 Ti GPU, and multiple high-speed NVMe disks. This isn’t a laptop you sneak into a café. It’s a workstation. A development lab. A launchpad.

The Installation
I began by installing Windows 11. I wanted it to live on its own NVMe partition (on a 2 TB Samsung 990 Pro NVMe SSD disk), fully up to date, with BitLocker disabled to avoid any bootloader headaches down the line. I set the Windows partition to a size of 1 TB, which leaves me another 1 TB free space for the Ubuntu 24.04 installation. After setting up the usual essentials – 1Password, Steam, Visual Studio Code, the usual suspects – I rebooted into a USB stick loaded with the Ubuntu 24.04 ISO.
I have already done a lot of virtual Linux installs in my life. But the physical Ubuntu 24.04 installation surprised me. The installer was sleek, fast, and detected everything – my GPU, my high-refresh-rate displays, and my NVMe disks. I chose the “Install alongside Windows” option, which created a dedicated ext4 partition on the remaining free space of 1 TB on the NVMe SSD disk.
GRUB, the Linux bootloader, went into the EFI partition, and just like that – I had a dual-boot system. No bloat, no third-party boot managers. Clean, elegant, and booting into either system with a single keystroke.

Daily Life on Both Sides
I expected Ubuntu to be good – but I didn’t expect it to be this good. The GNOME desktop has come a long way. With fractional scaling, and buttery-smooth animations on my displays, it looked every bit as modern as Windows 11. And I got to customize it just how I like – keyboard shortcuts, theming, workspace behaviour.
One of the first tests was 1Password. I use it everywhere – on macOS, Windows, on my iPhone. And the fact that the Linux version supports seamless browser integration, and cross-platform sync felt like a victory. No hacks. No web-only interface. The same 1Password I trust on every other platform – working perfectly on Ubuntu.

Next, I installed Docker, because for me, containers are essential. I regularly spin up environments for SQL Server, PostgreSQL, and various other development stacks. It was nice to see that both Microsoft’s SQL Server 2022 containers and the latest PostgreSQL 17 images ran without a hitch. Performance was perfect, startup times were fast, and I no longer had to deal with the overhead of WSL2, Hyper-V, or hidden layers between me and the kernel.

Cross-Platform Storage and File Access
One of my biggest concerns was data sharing. I didn’t want to live in silos. I wanted to access my files from either OS without jumping through hoops or mounting remote drives. I formatted a few additional NVMe SSD disks as NTFS, and both Ubuntu and Windows mount it automatically at boot. Ubuntu 24.04 ships with excellent NTFS support, so I can read and write files from either side without worrying about corruption, permission issues, or strange metadata problems. I use these partitions for everything – from Git repositories and documents to OBS recordings and astrophotography image stacks. And it just works.

Debugging My Own Operating System
One of the most important workflows for me involves working on my own x64 operating system. I write most of it in C and Assembly. This means I need low-level access, advanced debugging tools, and the ability to interface with hardware-like environments. And Ubuntu delivers. Using Visual Studio Code, QEMU, and GDB, I’ve set up a complete debugging loop. I can launch my kernel inside QEMU, pause execution, inspect page tables, follow control flow across ring transitions, and even attach symbol files at runtime. The integration between VS Code and GDB feels fluid. I can watch variables, step through disassembled code, and even trace interrupt handlers.

Gaming and Steam
Of course, no story about dual-booting would be complete without a word about gaming. For years, Linux was the underdog here, but things have changed. On Windows 11, I run games like Anno 1800, or Cities: Skylines with everything maxed out. My RTX 3080 Ti has no problem handling it. But I was curious – what about Steam on Linux? The results blew me away. The games are launching in a matter of seconds. No tinkering. Just click, play. The FPS was consistent, the graphics sharp, and there were no strange bugs.

Work and Creativity
When it comes to productivity, I had to made a hard decision: no Microsoft Office, because it is not available on Linux. Instead, I installed LibreOffice. It opened all my old .docx, .pptx, and .xlsx files without issues. The UI has matured, and the performance is excellent.

For streaming and recording, I use OBS Studio, and it works equally well on both systems. It leverages my NVIDIA GPU for encoding, which gives me silky-smooth recordings with minimal CPU usage. Whether I’m recording technical screencasts or live streaming, OBS on Ubuntu feels just as stable and capable as its Windows counterpart.

And then there’s my astrophotography. This one was personal. I’ve spent years capturing narrowband and broadband images of galaxies, nebulae, and star clusters using a cooled monochrome camera mounted on a precision telescope. The software I rely on is called PixInsight, and thankfully, it runs natively on Linux. Once I installed it, I loaded up some old data sets – M51, the Whirlpool Galaxy, and ran through my usual preprocessing pipeline. Dynamic crop, DBE, channel combination, histogram transformation. Everything worked. Everything flew.

Summary
After some time of living inside this dual-boot setup, I can honestly say: I don’t want to go back. I don’t feel like I’m “missing” anything on either system. Instead, I feel empowered. If I want to code, debug, compile, or run containers, I boot into Ubuntu. If I want to game or use proprietary software, I reboot into Windows. And in between? They share files, respect each other’s existence, and give me full access to the hardware I paid for.
I’ve always believed that good engineering is about trade-offs. But sometimes – just sometimes – you build something that gives you the best of everything. That’s what this system is. A place where my ideas, tools, and passions coexist.
Thanks for your time,
-Klaus