Remix.run Logo
asveikau a day ago

I was at Microsoft during the Windows 8 cycle. I remember hearing about a kernel feature I found interesting. Then I found linux had it for a few years at the time.

I think the reality is that Linux is ahead on a lot of kernel stuff. More experimentation is happening.

mycall a day ago | parent | next [-]

Linux is behind Windows wrt (Hybrid) Microkernel vs Monolith, which helps with having drivers and subsystems in user mode and support multiple personalities (Win32, POSIX, OS/2 and WSL subsystems). Linux can hot‑patch the kernel, but replacing core components is risky and drivers and filesystems cannot be restarted independently.

wmf a day ago | parent | prev | next [-]

I was surprised to hear that Windows just added native NVMe which Linux has had for many years. I wonder if Azure has been paying the SCSI emulation tax this whole time.

stackskipton a day ago | parent | next [-]

Probably, most of stuff you see in Windows Server these days is backported from Azure improvements.

athoneycutt a day ago | parent | prev | next [-]

It was always wild to me that their installer was just not able to detect an NVMe drive out of the box in certain situations. I saw it a few times with customers when I was doing support for a Linux company.

pantalaimon a day ago | parent | prev [-]

Afaik Azure is mostly Linux

ndiddy a day ago | parent [-]

The user VMs are mostly Linux but Azure itself runs on a stripped down version of Windows Server and all the VMs are hosted inside Hyper-V. See https://techcommunity.microsoft.com/blog/windowsosplatform/a...

b00ty4breakfast a day ago | parent | prev | next [-]

when the hood is open for anyone to tinker, lots of little weirdos get to indulge their ideas. Sometimes those are ideas are even good!

ethbr1 a day ago | parent [-]

Never underestimate the efficiency and amazing results of autistic focus.

"Now that's curious..."

newsclues a day ago | parent [-]

Passion over paycheques

pjmlp 12 hours ago | parent | prev | next [-]

And behind in anything related to kernel security, sandboxing, user space drivers, and 3D graphics drivers.

Without Proton there would be no "Linux" games.

It would be great if Valve actually continued Loki Entertainment's work.

7bit a day ago | parent | prev | next [-]

And behind on a lot of stuff. The Microsoft's ACLs are nothing short of one of the best designed permission systems there are.

On the surface, they are as simple as Linux UOG/rwx stuff if you want it to be, but you can really, REALLY dive into the technology and apply super specific permissions.

nunez a day ago | parent | next [-]

The file permission system on Windows allows for super granular permissions, yes; administrating those permissions was a massive pain, especially on Windows file servers.

torginus a day ago | parent | prev | next [-]

And they work on everything. You can have a mutex, a window handle or a process protected by ACL.

jandrese a day ago | parent | prev | next [-]

> The Microsoft's ACLs are nothing short of one of the best designed permission systems there are.

You have a hardened Windows 11 system. A critical application was brought forward from a Windows 10 box but it failed, probably a permissions issue somewhere. Debug it and get it working. You can not try to pass this off to the vendor, it is on you to fix it. Go.

fooker 21 hours ago | parent | next [-]

Is this a trick question, because you run it as administrator in a sandboxed account.

7bit a day ago | parent | prev | next [-]

Procmon.exe. Give me 2 minutes. You make it sound like it's such a difficult thing to do. It literally will not take me more than 2 minutes to tell you exactly where the permission issue is and how to fix it.

roblabla a day ago | parent [-]

Procmon won't show you every type of resource access. Even when it does, it won't tell you which entity in the resource chain caused the issue.

And then you get security product who have the fun idea of removing privileges when a program creates a handle (I'm not joking, that's a thing some products do). So when you open a file with write access, and then try to write to the file, you end up with permission errors durig the write (and not the open) and end up debugging for hours on end only to discover that some shitty security product is doing stupid stuff...

Granted, thats not related to ACLs. But for every OK idea microsoft had, they have dozen of terrible ideas that make the whole system horrible.

jandrese a day ago | parent | next [-]

Especially when the permission issue is up the chain from the application. Sure it is allowed to access that subkey, but not the great great grandparent key.

lmz 12 hours ago | parent | prev | next [-]

Shitty security products being inscrutable isn't limited to Windows. "Disable SELinux" anyone?

7bit 17 hours ago | parent | prev [-]

At this point you're just arguing for the sake of bashing on Microsoft. You said it yourself, that's not related to ACL, so what are you doing, mate? This is not healthy foundation for a constructive discussion.

butlike a day ago | parent | prev [-]

and why is it not on the vendor of the critical application?

jandrese a day ago | parent [-]

Because they aren't allowed on the system where it is installed, and also they don't deal with hardened systems.

Eggpants 7 hours ago | parent | prev | next [-]

And yet, it requires kernel extension anti-cheat to stop a game mod from reading and writing memory locations in a running process. It’s a toy operating system if it can’t even prevent that. It’s why corporate machines are so locked down. Then there is the fact video drivers run in ring 0 and are allowed to phone home… but hey you can prevent notepad++ from running FTW.

bbkane a day ago | parent | prev | next [-]

Do you have any favorite docs or blogs on these? Reading about one of the best designed permissions systems sounds like a fun way to spend an afternoon ;)

trueismywork a day ago | parent | prev | next [-]

You have ACLs on linux too

Arainach a day ago | parent | next [-]

ACLs in Linux were tacked on later; not everything supports them properly. They were built into Windows NT from the start and are used consistently across kernel and userspace, making them far more useful in practice.

Also, as far as I know Linux doesn't support DENY ACLs, which Windows does.

onraglanroad a day ago | parent [-]

Yes it does.

112233 a day ago | parent [-]

since when?

onraglanroad a day ago | parent [-]

Since some of us could be bothered reading docs. Give it a try and see how it works out for you.

112233 a day ago | parent [-]

Some of us can! I certainly enjoy doing it, and according to "man 5 acl" what you assert is completely false. Unless you have a particular commit or document from kernel.org you had in mind?

opello a day ago | parent [-]

> Each of these characters is replaced by the - character to denote that a permission is absent in the ACL entry.

Wouldn't the o::--- default ACL, like mode o-rwx, deny others access in the way you're describing?

112233 18 hours ago | parent [-]

See 6.2.1 of RFC8881, where NFSv4 ACLs are described. They are quite similar to Windows ACLs.

Here is kernel dev telling they are against adding NFSv4 ACL implementation. The relevant RichAcls patch never got merged: https://lkml.org/lkml/2016/3/15/52

opello 11 hours ago | parent [-]

https://www.rfc-editor.org/rfc/rfc8881#section-6.2.1

I see what I misunderstood, even in the presence of an ALLOW entry, a DENY entry would prohibit access. I am familiar with that on the Windows side but haven't really dug into Linux ACLs. The ACCESS CHECK ALGORITHM[1] section of the acl(5) man page was pretty clear, I think.

[1] https://man7.org/linux/man-pages/man5/acl.5.html#ACCESS_CHEC...

a day ago | parent | prev | next [-]
[deleted]
112233 a day ago | parent | prev | next [-]

Haha, sure. Sorry, it's not you, it's the ACLs (and me nerves). Have you tried configuring NFSv4 ACLs on Linux? Because kernel devs are against supporting them, you either use some other OS or have all sorts of "fun". Also, not to be confused with all sorts of LSM based ACLs... Linux has ACLs in the most ridiculous way imaginable...

7bit a day ago | parent | prev [-]

Not by default. Not as extensive as in Windows. What's your point?

dabockster a day ago | parent | prev [-]

Oh yeah for sure. Linux is amazing in a computer science sense, but it still can't beat Windows' vertically integrated registry/GPO based permissions system. Group/Local Policy especially, since it's effectively a zero coding required system.

Ubuntu just recently got a way to automate its installer (recently being during covid). I think you can do the same on RHEL too. But that's largely it on Linux right now. If you need to admin 10,000+ computers, Windows is still the king.

Elv13 a day ago | parent | next [-]

Debian (and thus Ubuntu) has full support for automated installs since the 90's. It's built into `dpkg` since forever. That include saving or generating answer to install time questions, PXE deployment, ghosting, CloudInit and everything. Then stuff like Ansible/Puppet have been automating deployment for a long time too. They might have added yet another way of doing it, but full stack deployment automation has been there for as long as Ubuntu existed.

cactacea a day ago | parent | prev | next [-]

> Ubuntu just recently got a way to automate its installer (recently being during covid).

Preseed is not new at all:

https://wiki.debian.org/DebianInstaller/Preseed

RH has also had kickstart since basically forever now.

I've been using both preseeds and kickstart professionally for over a decade. Maybe you're thinking of the graphical installer?

benterix a day ago | parent | prev | next [-]

> Ubuntu just recently got a way to automate its installer (recently being during covid). I think you can do the same on RHEL too. But that's largely it on Linux right now. If you need to admin 10,000+ computers, Windows is still the king.

What?! I was doing kickstart on Red Hat (want called Enterprise Linux back then) at my job 25 years ago, I believe we were using floppies for that.

m4rtink a day ago | parent [-]

Yeah, I have been working on the RHEL and Fedora installer since 2013 and already back then it had a long history almost lost to time - the git history goes all the way back to 1999 (the history was imported from CVS, as it predates Git) and that actually only cover the first graphical interface - it had automated installation support via kickstart and a text interface long before that, but the commit history has been apparently lost. And there seems to have been even some earlier distict installer before Anaconda, that likely also supported some sort of automated install.

BTW, we managed to get the earlies history of the project written down here by one of the earliest contributors for anyone who might be interested:

https://anaconda-installer.readthedocs.io/en/latest/intro.ht...

As for how the automated installation on RHEL, Fedora and related distros works - it is indeed via kickstart:

https://pykickstart.readthedocs.io/en/latest/

Note how some commands were introduced way back in the single digit Fedora/Fedora Core age - that was from about 2003 to 2008. Latest Fedora is Fedora 43. :)

LeSaucy a day ago | parent | prev | next [-]

Still the king but developing/testing/debugging group policy issues is a miserable experience.

bigstrat2003 21 hours ago | parent | next [-]

I disagree. Group policies are extremely straightforward to administer in my experience.

UltraSane 15 hours ago | parent [-]

That depends on how fine grained your targeting rules are. They can get insane.

7bit a day ago | parent | prev [-]

I always found it straight forward. Never had an issue and I've implemented my fair share on thousands on devices and servers.

lll-o-lll a day ago | parent [-]

Not an implementer of group policy, more of a consumer. There are 2 things that I find extremely problematic about them in practice.

- There does not seem to be a way to determine which machines in the fleet have successfully applied. If you need a policy to be active before doing deployment of something (via a different method), or things break, what do you do?

- I’ve had far too many major incidents that were the result of unexpected interactions between group policy and production deployments.

7bit 17 hours ago | parent [-]

That's not a problem with group policy. You're just complaining that GPO is not omnipotent. That's out of scope for group policies mate. You win, yeah yeah.... Bye

esseph a day ago | parent | prev | next [-]

> Ubuntu just recently got a way to automate its installer (recently being during covid). I think you can do the same on RHEL too. But that's largely it on Linux right now. If you need to admin 10,000+ computers, Windows is still the king.

1. cloud-init support was in RHEL 7.2 which released November 19, 2015. A decade ago.

2. Checking on Ubuntu, it looks like it was supported in Ubuntu 18.04 LTS in April 2018.

3. For admining tens of thousands of servers, if you're in the RHEL ecosystem you use Satellite and it's ansible integration. That's also been going on for... about a decade. You don't need much integration though other than a host list of names and IPs.

There are a lot of people on this list handling tens of thousands or hundreds of thousands of linux servers a day (probably a few in the millions).

max-privatevoid a day ago | parent | prev [-]

I'm surprised no one has said NixOS yet.

IshKebab a day ago | parent | prev | next [-]

Yeah and Linux is waaay behind in other areas. Windows had a secure attention sequence (ctrl-alt-del to login) for several decades now. Linux still doesn't.

roblabla a day ago | parent | next [-]

Linux (well, more accurately, X11), has had a SAK for ages now, in the form of the CTRL+ALT+BACKSPACE that immediately kills X11, booting you back to the login screen.

I personally doubt SAK/SAS is a good security measure anyways. If you've got untrusted programs running on your machine, you're probably already pwn'd.

eqvinox a day ago | parent | next [-]

That's not a SAK, you can disable it with setxkbmap. A SAK is on purpose impossible to disable, and it exists on Linux: Alt+SysRq+K.

Unfortunately it doesn't take any display server into consideration, both X11 and Wayland will just get killed.

roblabla a day ago | parent [-]

There are many a ways to disable CTRL+ALT+DEL on windows too, from registry tricks to group policy options. Overall, SAK seems to be a relic of the past that should be kept far away from any security consideration.

IshKebab 17 hours ago | parent [-]

There shouldn't be any non-privileged ways to disable ctrl-alt-del.

TeMPOraL a day ago | parent | prev | next [-]

The "threat model" (if anyone even called it that) of applications back then was bugs resulting in unintended spin-locks, and the user not realizing they're critically short on RAM or disk space.

dangus a day ago | parent | prev [-]

This setup came from the era of Windows running basically everything as administrator or something close to it.

The whole windows ecosystem had us trained to right click on any Windows 9X/XP program that wasn’t working right and “run as administrator” to get it to work in Vista/7.

marcodiego a day ago | parent | prev | next [-]

Please check the relates wikipedia article. Updated to reflect recent secure attention key in the linux world: https://en.wikipedia.org/wiki/Secure_attention_key

ttctciyf a day ago | parent | prev | next [-]

Well, there is: https://en.wikipedia.org/wiki/Magic_SysRq_key

IshKebab a day ago | parent [-]

That's not the same thing at all.

ttctciyf a day ago | parent | next [-]

No, it's not. It has various functionality, as shown by the built-in help:

> Example output of the SysRq+h command:

> sysrq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(v) show-blocked-tasks(w) dump-ftrace-buffer(z) dump-sched-ext(D) replay-kernel-logs(R) reset-sched-ext(S)

But note "sak (k)".

IshKebab 17 hours ago | parent | next [-]

That kills X! Hardly useful.

tmtvl a day ago | parent | prev [-]

How's it go again, 'raising all elephants is utterly boring'?

eqvinox a day ago | parent | prev [-]

Like the GP says in sibling, Alt+SysRq+K is SAK on Linux. But it doesn't work with graphical environments.

dangus a day ago | parent | prev | next [-]

Is that something Linux needs? I don’t really understand the benefit of it.

ethbr1 a day ago | parent | next [-]

The more powerful form is the UAC full privilege escalation dance that Win 7+(?) does, which is a surprisingly elegant UX solution.

   1. Snapshot the desktop
   2. Switch to a separate secure UI session
   3. Display the snapshot in the background, greyed out, with the UAC prompt running in the current session and topmost
It avoids any chance of a user-space program faking or interacting with a UAC window.

Clever way of dealing with the train wreck of legacy Windows user/program permissioning.

thewebguyd a day ago | parent | next [-]

One of the things Windows did right, IMO. I hate that elevation prompts on macOS and most linux desktops are indistinguishable from any other window.

It's not just visual either. The secure desktop is in protected memory, and no other process can access it. Only NTAUTHORITY\System can initiate showing it and interact with it any way, no other process can.

You can also configure it to require you to press CTRL+ALT+DEL on the UAC prompt to be able to interact with it and enter credentials as another safeguard against spoofing.

I'm not even sure if Wayland supports doing something like that.

opello a day ago | parent | prev | next [-]

My only experience with non-UAC endpoint privilege management was BeyondTrust and it seemed to try to do what UAC did but with a worse user experience. It looks like the Intune EPM offering also doesn't present as clear a delineation as UAC, which seems like a missed opportunity.

lawlessone a day ago | parent | prev [-]

>Display the snapshot in the background, greyed out,

Is there an offset. I could have sworn things always seemed offset to the side a little.

mikkupikku a day ago | parent | prev | next [-]

It made a lot more sense in the bygone years of users casually downloading and running exe's to get more AIM "smilies", or putting in a floppy disk or CD and having the system autoexec whatever malware the last user of that disk had. It was the expected norm for everybody's computer to be an absolute mess.

These days, things have gotten far more reasonable, and I think we can generally expect a linux desktop user to only run software from trusted sources. In this context, such a feature makes much less sense.

IshKebab a day ago | parent | prev [-]

It's useful for shared spaces like schools, universities and internet cafes. The point is that without it you can display a fake login screen and gather people's passwords.

I actually wrote a fake version of RMNet login when I was in school (before Windows added ctrl-alt-del to login).

https://www.rmusergroup.net/rm-networks/

I got the teacher's password and then got scared and deleted all trace of it.

fleroviumna a day ago | parent | prev [-]

[dead]

dijit a day ago | parent | prev [-]

yeah, but you have IO Completion Ports…

IO_Uring is still a pale imitation :(

asveikau a day ago | parent | next [-]

io_uring does more than IOCP. It's more like an asynchronous syscall interface that avoids the overhead of directly trapping into the kernel. This avoids some overheads IOCP cannot. I'm rusty on the details but the NT kernel has since introduced an imitation: https://learn.microsoft.com/en-us/windows/win32/api/ioringap...

loeg a day ago | parent | prev | next [-]

IOCP is great and was ahead of Linux for decades, but io_uring is also great. It's a different model, not a poor copy.

torginus a day ago | parent [-]

I think they are a bit different - in the Windows kernel, all IO is asynchronous on the driver level, on Linux, it's not.

io_uring didn't change that, it only got rid of the syscall overhead (which is still present on Windows), so in actuality they are two different technical solutions that affect different levels of the stack.

In practice, Linux I/O is much faster, owing in part to the fact that Windows file I/O requires locking the file, while Linux does not.

senderista a day ago | parent [-]

io_uring makes synchronous syscalls async simply by offloading them to a pool of kernel threads, just like people have done for decades in userspace.

layla5alive a day ago | parent [-]

It's not the async part, it's the not invoking the function part - io_uring replaces syscalls with producer consumer ring buffers.

senderista a day ago | parent | prev [-]

If that were true then presumably Microsoft wouldn't have ported it to Windows:

https://learn.microsoft.com/en-us/windows/win32/api/ioringap...

Although Windows registered network I/O (RIO) came before io_uring and for all I know might have been an inspiration:

https://learn.microsoft.com/en-us/previous-versions/windows/...

dijit a day ago | parent [-]

That argument holds no water. IOUring is essential for the performance of some modern POSIX programs.

You can see shims for fork() to stop tanking performance so hard too. IOUring doesnt map at all onto IOCP, at least the windows subtitute for fork has “ZwCreateProcess“ to work from. IOUring had nothing.

IOCP is much nicer from a dev point of view because your program can be signalled when a buffer has data on it but also with the information of how much data, everything else seems to fail at doing this properly.

senderista a day ago | parent [-]

The CQE for e.g. a successful read(2) operation will have the number of bytes read in the `res` field.