2 ms·
Linux has a ACL's too. And consider SDL/Pango/Cairo the counterparts for DWrite/DDraw.
by anthk 2y ago
Linux has a ACL's too. And consider SDL/Pango/Cairo the counterparts for DWrite/DDraw.
- blacklion 2y agoLinux (and FreeBSD, too) has ACLs for FS. NT has ACLs for everything. Each handle (read: descriptor) has associated ACLs. Also, each handle can be waited ("selected") with same system call. No select()/epoll() vs wait() distinctions. Nw Linux has timerfd and procfd and others, but NT had these from birth. In some way NT is more UNIX ("everything is a file") than UNIX itself.
- feldrim 2y agoWell, for NT -almost- everything is an object.
- mort96 2y agoHm which things are protected by ACLs on NT but not on Linux? Even though the "everything is a file" thing breaks down quite quickly on Linux, with lots of drivers just using ioctls for everything, you still have to open pretty much everything through their device node in /dev, which is affected by ACLs AFAIK. The only real exception I can think of is network sockets. But I'm probably thinking in a very UNIX-centric way, so there may be classes of things I'm missing
- Const-me 2y agoHere’s some of the Windows things which have these ACLs applied, except obvious ones i.e. files and sockets. • Disk volumes and physical disks • Pipes • Registry keys • Processes and threads • Inter-process synchronization primitives like mutexes, semaphores, and mailslots • Shared memory sections • Desktops; you need to pass access check before interacting with a desktop. The OS has multiple of them, used for fast user switching, concurrent remote desktop sessions, UAC prompt, logon screen. • Other, more exotic things like job objects, windows stations, and ALPC ports. To be fair, some of them are protected with ACLs on Linux because they are mapped into the file system. For example, physical disks are visible in the file system and the kernel does apply these security things to them.
- mort96 2y agoInteresting, thank you.
- Const-me 2y ago> consider SDL/Pango/Cairo the counterparts for DWrite/DDraw I’m not sure Cairo is comparable to Direct2D, the ecosystem is too different. On Windows, Direct3D 11.0 is guaranteed to be available. Even on computers without any GPU (like most cloud VMs) the OS uses a decently performing software emulation called WARP. For this reason, Direct2D is designed from the ground up to use these shaders as much as possible, and it shows because hardware GPUs deliver way more gigaflops than CPUs. For example, on my computer D2D implements anti-aliasing on top of MSAA hardware. Cairo is cross-platform, and Linux doesn’t have a universally available GPU API. Some Linux computers have GL 4.5+, some have GLES 3.1+ (both GPU APIs have approximate feature parity with D3D11) some others have none of them. For this reason, Cairo renders vector graphics on CPU. Some computers, with slow CPUs and high resolution displays, don’t have the performance to render complicated 2D scenes in realtime on CPU. This may change some day once Vulkan support on Linux is ubiquitous, but that day is yet to come.
- anthk 2y agoLinux had XRender and similar.
- Const-me 2y agoLinux XRender is functionally similar to Windows DirectComposition Linux does not have anything similar to Direct2D, despite it’s technically possible to make it. Here’s a proof of concept for ARMv7 Debian (Raspberry Pi4), on top of GLES 3.1: https://github.com/Const-me/Vrmac/?tab=readme-ov-file#2d-graphics https://github.com/Const-me/Vrmac/?tab=readme-ov-file#2d-gra...
- kelnos 2y ago> Linux does not have anything similar to Direct2D Sure it does: WINE. Not only is it similar, but it's the exact same API & ABI.
- mort96 2y agoThese days, MESA provides llvmpipe as a fallback software implementation of OpenGL. But your point absolutely stands, the various graphics APIs are much less consistently available on Linux than DirectX is on Windows, and the split between OpenGL and OpenGL ES hurts a lot, with a lot of systems (especially ARM Mali based ones) only providing OpenGL ES drivers.