I know people like to make fun of niche operating systems, but for the five years I was at Microsoft I used Windows (10 then 11) as my daily driver. It’s much less stable than a professional OS, but it does kind-of work. I wouldn’t say it’s ready for the desktop. The UI is inconsistent and changes randomly between releases, a load of common software is basically useable only in a VM, it lags and freezes periodically (unlike an OS designed for interactive use, random drivers run a load of things directly in interrupt handlers, so you get latency spikes that you wouldn’t see in a more mainstream desktop OS) and the update process can hose the system, so it’s mostly of interest to people who like tinkering with their machines than people who actually want to get work done. Oh and a load of random bits of the OS have ads, but that’s what you get from a free ad-supported system instead of one developed by an active open-source community.

I don’t think I’d recommend anyone use it as their daily driver or in a work setting, but it’s not totally unusable. It’s not at the level of maturity than you’d expect from, say, Linux or FreeBSD, especially not for client workloads. If you do have to use it, I recommend that you install FreeBSD in a Hyper-V VM for real work. That’s what I did and it works quite well.

@david_chisnall Amiga OS 3.1 and NT4 / Win2000 worked faster than taht bullshit....
@divzilla @david_chisnall NT was written by the same guy who wrote VAX/VMS. Apparently a lot of enshittification happened since.
@david_chisnall i know this is a joke post but after 4 years of Uni i legitimately had to learn Windows again at my first "real" job

@silhouette The last version of Windows I used before going to Microsoft was 2000. I gave up when XP came out and was worse than 2000 or NT4 and switched to a mix of OS X and FreeBSD. A few years later, when everyone was saying how much worse the new versions of Windows were than XP, I knew I’d made the right choice.

I decided to give it a fair go at MS, but they haven’t really fixed any of the things that made me leave in the first place and they’ve made a load of things worse,

@silhouette @david_chisnall My last version was XP. Than and now - Debian...

@silhouette @david_chisnall

I have to admit I have these thoughts completely seriously whenever I fix my mum something on her machine (no, I won't switch her to Linus; she is over eighty, she managed to learn using Windows once and I don't want to torture her by learning anything new). Why do people do it to themselves to use system like that? It is just a horrible user experience!

@david_chisnall This sarcasm is extremely charitable towards windows.
@david_chisnall wow, man, you throw a great shade. Kudos.

@david_chisnall yeah, the only metric I still have for OSes is "does it just work, or do I have to tend to the problems of the OS before being able to work?".

Several Windowses and a couple of Linux distros fail this very important metric.

@david_chisnall @a1ba Even without getting into freedom issues, it really makes for a poor showing, doesn't it?
@david_chisnall how do you even tinker with Windows?

@wolf480pl @david_chisnall

This happens by itself if you try to use it as daily driver.

Most of the time, doing simple tasks like e.g. finding a string in a file requires you to search the internet for a program that supports this special purpose, then install it.

When that more or less works, you can get into the advanced stuff: Finding and trying out drivers until you find a combination that works for you.

I think one major problem is that those Microsoft operating system people try to solve everything with a GUI, making even simple tasks needlessly complicated.

@wakame @david_chisnall
right, but none of that changes how the system works. I heard there aren't even config files, instead there's this weird global persistent memory-mapped data structure called "the registry" where different components of the OS store their configuration. But I haven't heard of any documentation for it, or any heuristic to find the settings related to the part of the OS you're interested in - most guides online seem to be just magical strings someone guessed?

@wolf480pl @david_chisnall

Yep, that happens when you have a bunch of teenage developers who think that documentation is "not cool".

And this "registry" is simply "singleton pattern, meet god object".

@wakame @david_chisnall
I'm usually not deterred by lacking documentation - most of the time you can just grep the source code for the name of the config option and quickly find what values are allowed and how they affect the program's behaviour.

But I couldn't find any official source packages for parts of Windows, and I couldn't find those strings on github either (except for some scripts that people use to modify the registry).

Does Windows have its own gitlab / forgejo or something?

@wolf480pl @david_chisnall windows uses a complex and largely undocumented database you can change through a legacy tool called regedit
this gives you access to a multitude of settings and system properties that are not exposed to users, even with administration privilege
then there is another even more cursed layer of control called policies that can change behaviours and permissions
finally, dedicated people have made replacements for parts of the subsystems, like I remember having intalled a desktop manager called blackbox that was originally developed for linux
it made the desktop actually responsive and I was enamoured, but it is no longer updated, so even on windows 7 it's no longer an option
@efi @wolf480pl @david_chisnall but regedit is documented!
Yes, but worse than a middle schooler would document on their high school earth science lab report homework.
@david_chisnall Drivers doing too much in interrupt handlers answers a lot of questions I had about windows..

@amy I learned that accidentally. I was discussing how to adopt a security feature in NT and someone on that team casually mentioned third-party drivers (including antivirus) running things in interrupt handlers. The more I learned, the more horrified I was. On FreeBSD and XNU, interrupt handlers do one thing: wake a thread (or some work-queue equivalent). The thread is then preemptive. A small number of things run with interrupts disabled but it’s very rare in drivers or subsystems outside the very core parts of the OS. In Windows, the driver model seems to encourage people to just do the real work in interrupt handlers. So your USB camera is stalling a core (and whatever thread is currently trying to run there) for ms at a time, and so are a load of other kernel things.

Even FreeRTOS discourages this kind of thing, and it’s designed for a use case where it isn’t a terrible idea.

In CHERIoT RTOS we formalise it and bind interrupts to futexes, so the only thing that happens in an interrupt handler is that one or more futexes get woken and then we may make a scheduling decision if any of the woken threads are higher priority than the one that woke (on our chips, we have designed the interrupt controller so that it can avoid raising an interrupt if it wouldn’t result in a scheduling decision).

@david_chisnall That's fascinating! It is just a consequence of API design making it difficult to pass work off into a another tread or are the interrupt handlers actually more capable in some way?

@amy I think it’s still possible to do the right thing, but no one has actively discouraged driver vendors from doing it. Most other systems have a trivial API that is some variant of ‘wake this work queue when this interrupt fires’. Windows may have such a thing (it has a lot of kernel APIs) but it doesn’t seem to be the one that fires.

I suspect it’s also an artefact of the fact that the vast majority of device drivers on Windows are third-party. Other systems went through a process of dramatically limiting the stuff that ran in ISRs around the time they did SMP support, because holding a lock while interrupted causes scalability problems when the interrupt doesn’t finish quickly. If MS did this, it wouldn’t make a difference because most of the things that hook interrupt handlers are third-party drivers. And if they don’t start doing it, the example drivers don’t get updated, so the new third-party drivers do the same thing, and so on.

@david_chisnall this reminds me of a thing I find really cute: FreeBSD still has (last time I checked) the giant kernel lock, but it's just been removed from every single subsystem that matters for performance, one at a time.

@david_chisnall @amy
> So your USB camera is stalling a core (and whatever thread is currently trying to run there) for ms at a time, and so are a load of other kernel things.

I found that out about the OS9 adaptation/perversion for the Dragon 64: the disc driver turned off interrupts for the whole disc read/write operation, not just sector read/write. I fixed it (it was easy to fix! The folks who wrote this were dumb, lazy or both) and the keyboard became responsive again...

@david_chisnall @amy

it can avoid raising an interrupt if it wouldn’t result in a scheduling decision

That's gorgeous. Does that get you interrupt coalescing for free as a side effect?

@0x2ba22e11 @amy Yes, I’m really happy with the design. It’s taken a bit of scheduler refactoring to make it work but we’ll write up the details soon. It doesn’t interrupt coalescing, lets you move between interrupt-driven and polling modes in a uniform way across devices, unifies the way that you wait for hardware and software events, and avoids unnecessary transitions to the scheduler.
@david_chisnall @amy A proper OS shouldn't even have a way to do things from interrupt handlers, or a concept of interrupt handlers (plural). There should be one interrupt handler that maps the interrupt to a list of hardware devices associated with it and fires a wake event for any drivers attached to each of them, then immediately returns, with no way to override that.
@david_chisnall Oh how tables have turned!
@david_chisnall Between Windoze 11 being such a piece of crap and the Chinese government dumping M$ for KylinOS on its PCs and servers, I expect M$ collaboration with LE and Israel to become their profit center. Eventually, I also expect M$ to start leveraging GitHub to try and lock in devs, but that will blow up in their face.
@david_chisnall Honestly, it shows potential, but I think we are still far away from the year of the Windows desktop.
@Sylvhem @david_chisnall
For a couple of weeks I had found Windows 7 stable but it did not last.

@david_chisnall

A couple of decades ago, my buddy and I parted ways. He was a Windows sysadmin who went to Microsoft and got assigned a Linux system. I was a Linux sysad who went into civil service and got assigned a Linux system.

@david_chisnall

Every time I try to use some Debian reskin I'm quickly reminded why I never use Linux on my main system when I have to use some dogshit package manager that then immediately fails on the first attempt to install something basic and all the help you search online is just a bunch of guys listing meaningless spaghetti of acronyms and secondary apps with non-descript names like "ChunkBerry" and "Derp Turtle".

Linux insists upon itself too much to be a serious daily OS.

@contrasocial @david_chisnall you didn't catch the joke. 
@vandorb12 @contrasocial @david_chisnall I think the joke is he was using debian the worst distro if you want to have anything else as a rock solid system. Even thought well tested the packages tent to be quite a bit out of date in the debian repos. I myself been a distro that runs the pacman package manger and it has been atleast 2 years ive had problems with installing stuff. Tho ive had some dependency conflicts recently but those were dune to the repos dooing wired stuff.
@vandorb12 @contrasocial @david_chisnall And finxing those is just removing the conflicting packages.
@david_chisnall Translated your post to Persian:

می‌دونم مردم عادت دارن سیستم‌عامل‌های خاص رو مسخره کنن، ولی باید بگم من پنج سالی که توی مایکروسافت بودم از ویندوز (۱۰ و بعدش ۱۱) برای کارهای روزمرهٔ خودم بهره بردم. پایداریش خیلی از سیستم‌عامل‌های حرفه‌ای کم‌تره، ولی کار رو انجام می‌ده. نمی‌گم برای دسکتاپ آماده‌ست. رابط کاربری متناقضی داره که هر نسخه به شکل تصادفی تغییر می‌کنه، کلی از نرم‌افزارهای محبوب فقط داخل ماشین مجازی قابل استفاده‌ان، لگ و فریزهای دوره‌ای داره (برخلاف سیستم‌عامل‌هایی که حول تعامل با کاربر طراحی شدن، درایورهای رندوم کلی خرت و پرت می‌ریزن تو interrupt handlerها، در نتیجه دچار تأخیرهایی می‌شین که توی سیستم‌عامل‌های واقعاً mainstream دسکتاپ مشاهده نمی‌شه) و پروسهٔ بروزرسانی هی سیستم رو درگیر می‌کنه، پس بیشتر به درد افرادی می‌خوره که می‌خوان دستگاهشون رو انگولک کنن نه کسی که می‌خواد فقط کارش رو انجام بده. راستی هر گوشه‌ای از سیستم رو که نگاه کنید تبلیغات به چشم می‌خوره، که البته قابل انتظاره، سیستم‌عامل‌های رایگان مجبورن با تبلیغ کسب درآمد کنن؛ پشتشون که به جامعهٔ فعالان متن‌باز گرم نیست.

فکر نمی‌کنم برای استفادهٔ روزمره یا توی محیط کار به دیگران پیشنهادش کنم، ولی کاملاً هم به‌دردنخور نیست. هنوز به اون سطح از بلوغ نرسیده که توی مثلاً، لینوکس یا فری‌بی‌اس‌دی می‌بینید، به خصوص تو بحث ظرفیت کار کلاینت‌ها. اگه مجبورید ازش استفاده کنید، پیشنهاد می‌کنم برای کارهای جدی فری‌بی‌اس‌دی رو تو ماشین مجازی Hyper-V نصب کنید تا کارتون رو زمین نمونه. خودم هم همین کار رو کردم و جوابگو بوده.
@david_chisnall Having used Linux and Windows alongside each other as a sysadmin and support tech for more than 20 years, I have seen both slowly improving in both usage and stability.
Until Windows XP.
Since then Linux has continued to improve.
@wyliecoyoteuk @david_chisnall I've been using windows since 3.1
Windows peaked at XP UI wise.
Feature wise, windows peaked at 7
I'm slowly transitioning to Linux. With the massive improvements to Wine and Proton over the past 5 years, I'm pretty certain I can eventually go full time Linux in the next few years. Only thing that's really holding me back is VR support and work needs me to use a remote program the devs dropped Linux support for a long time ago.
@vandorb12 @david_chisnall I dropped Windows altogether in 2023, when I finally retired and returned the company Laptop.
I still do charity work, Web and DTP mainly..

@wyliecoyoteuk @vandorb12 Technically, I still have a Windows machine: an Xbox. Its value is mostly that it doesn’t have a keyboard or email client so I can’t accidentally do work on it when I want to relax.

Handing back my work laptop and going back to the Xbox being the only Window machine in the house when I resigned from Microsoft was a happy experience.

@david_chisnall Free ad-supported? I thought Windows was one of those "we make it paid until it's profitable" products that have been popular lately.
@david_chisnall I tried Hyper-V and Virtualbox, and heard about WSL, but they're all inconvenient (also, behaving weirdly if Windows goes to sleep). I ended up with an n100 mini-pc running xrdp, and I connect to it from my Windows PC. I still have to use Windows for a bunch of crap my customers are utilizing, like MS Teams and other stuff. Also, my travel laptop is a fanless Ubuntu laptop, and nobody is making new fanless ones, sadly. Also, Intel and AMD don't have the chips with low TDP any longer.
@bonkers Hyper-V running FreeBSD with vcXsrv for the display worked well for me. When Windows went to sleep the time would get out of sync, but changing the local NTP update frequency fixed that quickly.
@david_chisnall I also like that I can return to the virtual desktop anytime, and it keeps all the terminals open where I left them.
@bonkers That’s one of the things that keeps me on macOS. The Apple Terminal (as well as using the same keyboard shortcut as every other app for copy and paste because they didn’t copy the idiocy of using control) restarts with windows in the same position and with the same UUID in an environment variable. I SSH via a wrapper script that drops the connection info in a file named with that UUID in a directory under my home and my .profile then checks for the existence of such a file and reconnects. If I reboot the machine, all of my ssh sessions resume automatically after the reboot (this also works if the OS crashes, though that’s pretty rare) and are in exactly the same place on my screen as where I left them.
@david_chisnall I just wish that larger game developers would take Linux more seriously. I like daily driving Zorin OS (and previously Kubuntu) on my previous main machine.
@littlebit670 @david_chisnall there is still too much fragmentation in the Linux gaming space for binaries. Proton and DXVK are like the Rosetta stones of translation layer goodness that will continue keeping everything together for all the *nix flavors out there.
Anticheat is its own hell, and yes that needs more serious consideration.

@vandorb12 @littlebit670 @david_chisnall Anticheat are simply kernel-level rootkits. No one with a sane mind would sacrifice kernel integrity and stability just to run a game.

There are some native games, but the majority requires Proton. https://www.protondb.com/explore

ProtonDB | Explore | Most Steam Followers

A list of games related to Most Steam Followers. Discover games for sale or in your library and view their compatibility with Proton and the Steam Deck. You can also filter by user tags, sort by ProtonDB rating, popularity, or user score.

@nakal @vandorb12 @david_chisnall After hearing about some of the technicalities of kernel anticheat, I wonder why game developers use it instead of detecting cheaters using gameplay data. Won’t stop a cheater before they actually cheat, but they would still get detected and banned.
@vandorb12 @david_chisnall I know that Proton exists and I’ve successfully run some games on it, but most multiplayer games have an anticheat that the game developers didn’t explicitly enable the Proton/Wine mode on.
@david_chisnall this made me think of "Some Viking Warriors Were Probably Men"
https://margaretkilljoy.substack.com/p/some-viking-warriors-were-probably
Some Viking Warriors Were Probably Men

or: history is more complex than we think

Birds Before the Storm

@david_chisnall windows is still is development phase. Give it another 20 or 30 years to fix the bugs.

Also there is not yet a good support for multi core processors. It's all pretty new anyways. In the meanwhile I also recommend using Linux.

@david_chisnall
> If you do have to use it, I recommend that you install FreeBSD in a Hyper-V VM for real work.

WSL proves that even Microsoft themselves have accepted that you need a proper operating system on the side when using Windows

@david_chisnall

First time I’ve read someone recommend hyper-v in ages! Made me assume you were kidding about this whole piece

@johno The Hyper-V architecture is quite nice (and I say this as the author of the Xen book). It’s one of the nicest operating systems on the market. It’s a shame Microsoft bundles it with Windows (the parts that run in the Hyper-V equivalent of dom0 are not great).

@david_chisnall I haven’t used it much TBH but every time I’ve tried it over the years, I’ve regretted it.

Most recently last month: the day 1 experience on win11 was just rubbish: couldn’t get Ubuntu or Fedora VMs to reliably boot. Stuff like missing config files I had to manually create after lots of googling & just felt untested by MS

Went back to VMware and once I’d finally found the download link, had my VMs running in minutes

@david_chisnall I appreciate the humor, of course, but, damn, I have to agree, the list of use cases I have for Windows keeps shrinking, making it harder and harder to justify the annoyances, I use a variety of Linux distros as my daily driver and that makes me happy and productive.

Now, MacOS: Apple didn't manage to build portable development tools for iOS, so they build computers with phone chips, put a desktop-like UI on top of iOS, and ran their IDE from inside that.