The thing that annoys me most on Windows is Windows itself. After using Linuxes for almost two decades now, the notion of the OS taking tens of minutes to self update when all I wanted was to quickly reboot it is unbearable.
> I don't know how/if they're going to handle freeing memory again -- here the NT kernel really needs to communicate with the Linux kernel
Usually "free" memory only happens when a Linux machine starts. During normal usage most of the memory is being used to cache things and, when some large app frees its own memory (such as when Slack quits) it'll eventually be used for other things.
Not sure how that would work. Memory doesn't stay unused in Linux for long - whatever programs free will end up being used to cache information that's slow to access.
This is definitely a problem especially considering that the shotgun approach to some Windows updates actually hurt the performance of some machines, even breaking Windows on occasion [0]. However, in fairness I would say that I've spent just as much or more time fixing rolling release issues on Arch/Manjaro, or troubleshooting the package stopping me from sudo apt upgrade. The worst experience for me was having to reformat after the update from Ubuntu 14.04 crashed.
What annoys me most about Microsoft's overarching paternalistic philosophy is is how creepy their telemetry initiatives are. Granted plenty of companies do this now, for the same profit-driven motivations, but Microsoft goes above and beyond in terms of disabling or even ignoring opt out options [1]. I've found the Winaero blog [2] to be a good source of tools to stop some of the Windows telemetry shenanigans.
[0]: https://www.forbes.com/sites/daveywinder/2019/05/19/microsof...
[1]: https://www.reddit.com/r/Windows10/comments/a4lpg0/windows_1...
[2]: https://winaero.com/
That doesn't even matter much to me. Obviously, less time spent is better, but what really matters is the timing.
When I have to spend time upgrading my linux box, I have set time aside. I decide that I have a bit of time, and if it turns out to be a bigger job than expected, I can decide to abort and continue some other time.
On Windows the upgrade is always inconvenient, because you have no way of controlling it. Microsoft decides when the best time for you to upgrade is, and once it starts you have no means of punting on it.
Although the telemetry is certainly a problem too.
That too. When I update MacPorts, it can, sometimes, take ages. I don't care - I just continue working.
True, very good point in favor of user control. Linux has the added benefit of teaching the discipline and foresight to understand that "Hey... maybe I shouldn't run sudo pacman -Syu and reboot until I have some time set aside". Though in recent years I've found Arch to be way more stable with very few updates causing major problems.
Can confirm. I've had the same Arch install for nearly 6 years now. I've borked it only once in that time, and that one was my fault for not reading the news first. Fixed it in < 5 minutes.
And I've made considerable changes in that time, including moving the entire installation from one hard disk to another.
Fantastic - so if any of the fstab entries are missing, the entire system effectively bricks itself. The only way to fix it was to remove the SD card, put it in another machine, and manually remove the offending entries from the fstab file. Fantastic. I Don't think I have ever managed to get windows to self-brick itself with something so simple.
--no-preserve-root
do not treat '/' specially
--preserve-root
do not remove '/' (default)
https://manpages.debian.org/stretch/coreutils/rm.1.en.htmlMind that if your rm comes from elsewhere (say, Busybox), it may not have that protection.
Very careful use of rm as root is an excellent habit to cultivate.
As are backups.
If you can't properly start the OS, that's correct behavior. You don't want the OS to start writing things to /var when it can't mount the filesystem that should be mounted to /var.
In any case, the fix with an RPi is easy - pop out the microSD, mount it on the other computer and fix whatever is broken (which should be in the logs). If the RPi is the only computer, put a microSD with a plain install of the OS, mount the other microSD through an USB dongle and fix it the same way you'd do with a laptop.
And no, I'm sorry but I hate the argument of "you should have known better" - the system first and foremost shouldn't have defaults set up in such a way that not only the SSH server doesn't come up in case of an issue during boot, but the local console is entirely disabled for any access. That's a crazy default.
But not all annoyances are created equal
I find the same thing with electric cars. Eight hours to charge when I've spent two decades filling in minutes is absurd.
A tangential point but a relevant one nonetheless. I owe most of my tech. skills to the fact that it was hard to get a Linux distribution running on a cheap PC. I had to read up about hardware, learn how to fix installation issues, sometimes recompile the kernel with different options (and hence study them) and a number of other things simply because it didn't "just work". It gave me an intimate comfort with Linux that I just don't have with any other system (including MacOS which I used for about 2.5 years).
I completely get the notion that when one is a professional he or she shouldn't need to meddle with system level quirks to get a productive environment and a desktop and thankfully, modern Linux is more or less there. I haven't had any major trouble in a long time with it. However, during college or early years, having a system that demands some amount of work to get it working has, atleast to me, be crucial in honing my skills. I wouldn't change that even if I could. I'd vigourously defend it.
It is effectively their way to have an "integrated Linux virtual machine" inside of Windows. The WSL1 on Windows was relatively similar (but not enough for me) to Wine on Linux. The WSL2 is in some ways "more integrated" than the typical VM would be, but otherwise still similar to that.
Not enough: my greatest disappointment up to now is that the "VM-like" behavior was present even in WSL1, if I understood correctly, the files "inside" were more special than the files inside Cygwin folders would be.
Another disappointment was: it was not easy to install WSL on previous Windows 10 versions. Specifically, it was "in app store" but you weren't supposed to "click to install" -- it resulted in something weird. There were recipes what to do from the command line with hoops to take care of, so at the end... I've installed Cygwin, which I knew will work. Does anybody know, did WSL get better now?
(Edit: in the last sentence: s/ it / WSL /)
Yesterday I:
1. Enabled the Windows Subsystem for Linux option from the control panel
2. Downloaded Ubuntu from the windows store
3. Open Ubuntu and it worked.
https://www.reddit.com/r/bashonubuntuonwindows/comments/7smf...
Regarding the problems between the "different filesystems" it was like:
https://www.reddit.com/r/bashonubuntuonwindows/comments/9dkl...
Which was especially bad: what's the point in having it "there" if you aren't allowed to access the files inside.
Also problems with making a backup of that etc. In that aspects using a real VM (e.g. VirtualBox) the situation was much clearer.
So from my perspective it was both worse than Cygwin and worse (or at least not better) than real VMs... I would really like to read if/how WSL improved.
The similar experience was when I've tried to "just install ssh server". The things I've expected to "just work" didn't. Again at the end I've just used Cygwin.
I'm disappoint to "VM-like" behavior too, so I don't expect they would be totally replaced by WSL.
But this is similar in the other direction. Many applications just rely on such "VM-like" behavior, even though they can be (re)built for Win32 and/or they do not need a real VM for functionality. Note WSL1 can already do something more, e.g. hosting programs as X clients working with VcXsrv. I don't think WSL2 will be necessarily better than WSL1 in many of such cases. (In particular, when I have to reserve VT-x for some other hypervisors, I have no other choice.)
I really like Cygwin. With the MinTTY terminal, it was very nice. Slower than native Linux (or Windows), but enough of an environment to make me happy and productive.
No we do not.
There's not much Windows can do about this, which causes tons of issues with e.g. git clone. Erick Smith is ludicrously smart, he just couldn't squeeze better FS perf out of WSL1 due to these issues.
Cygwin really helped me with the Windows part of that for many years. I switched to a Powerbook about a year before the Intel switch & haven't looked back since. Linux has never been a good enough desktop all-rounder to make me switch to it as a desktop OS. Maybe I should take another look.
nit picking but it was more of a good enough bsd/unix than linux.
Who are you to claim this?
The closed off nature of Apple is very dangerous to trust, and I don't know any 'hackers' who are willing to risk unchecked/vulnerable OSes.
I have no idea if Apple has a backdoor to the FBI. We do know on Linux there is no hidden backdoor.
In the mid 2000's the Mac really took off due to being a good-enough Linux replacement on the command line, while taking care of all the hardware integration and providing a sleek desktop experience. This really helped the Mac take off among hackers. This system wasn't as open-source as Linux, but it was good enough: Most of us don't want to mess about with the desktop stack. If the stack we care about is open-source and runs across many systems, then we still have the freedom. I find it fairly easy to work on both Mac OS X, Linux and WSL2 -- but not pre-WSL Windows.
The inclusion of a Linux kernel really seems to cause a lot of confusion. No, Microsoft is not about to remove the NT kernel. No, they're not about to supplant Linux. WSL1 did what the guys from Illumos and FreeBSD have also done: since the Linux syscall interface is quite stable, the NT kernel can simply implement these syscalls and handle them appropriately. The was that the NT kernel was still sufficiently different that the filesystem performance was quite poor and complex applications like Docker required more kernel features than was provided by just the syscall API.
Including a Linux kernel is really the nuclear option: rather than trying to fit Linux applications in Windows, they're running in their own world and providing integrations into this world. This means you can now run Docker on WSL2 for instance, but it's also complicated: Kernels really like to think that they own the world, for instance they keep memory around to use for later. WSL2 dynamically grows the amount of RAM allocated to the VM, which is quite clever, but I don't know how/if they're going to handle freeing memory again -- here the NT kernel really needs to communicate with the Linux kernel.
Anyways, the upshot is that no, Microsoft is not going to take over the world, but perhaps it will be easier to use a Windows laptop which supports all the stupid Enterprise software I need but still have a Linux shell for actual work.