5 ms·
What special about NT kernel that's not in linux kernel ?
by john4532452 6y ago
What special about NT kernel that's not in linux kernel ?
- dijit 6y agoIOCP! https://en.wikipedia.org/wiki/Input/output_completion_port https://en.wikipedia.org/wiki/Input/output_completion_port
- bitcharmer 6y agoYou mean like epoll on Linux?
- tobias3 6y agoNo, like io_uring which Linux got in 2019 and still doesn't cover everything yet (e.g. currently mkdirat() is being added). It also often falls back to a kernel-level thread pool, since many e.g. file systems don't implement async IO.
- scaladev 6y ago>since many e.g. file systems don't implement async IO If we're picking on Linux here we should also mention that this issue cannot exist on Windows because it doesn't support anything else besides NTFS and a couple of options dating back to the 18th century or so. Oh, and WinFS, of course, F being short for future which is like the horizon, or the communism, always out there just a month or two away.
- tinus_hn 6y agoYou can actually for example get drivers for APFS for Windows from third party vendors.
- scaladev 6y agoSure, and there are third party drivers for ext* and btrfs and god knows what else… but we're talking about official support here, I think. You can find all sorts of craziness in out-of-tree patches for the Linux kernel.
- vl 6y agoThey also have ReFS - new filesystem in NT Server.
- deleted 6y ago[deleted]
- vl 6y agoAnnoyingly IOCP didn’t cover everything as well - for example, CreateFile of all things!
- deleted 6y ago[deleted]
- marcodiego 6y agoAlmost every time I talked to pseudo nt gurus, IOCP was mentioned as something nt did and linux don't. Now, io_uring seems to have finally closed the gap.
- muststopmyths 6y agoio_uring is more like RIO, which is better than IOCP if your packet rates are high.
- bayindirh 6y agoIt's a whole different paradigm and a popular one too. Just being able to look into it and get inspired is enough to be excited TBH.
- dmitrygr 6y agoProper support for paged kernel memory? Async-by-default I/O? Must better power management (compare win vs linux battery life on same hardware).
- pjc50 6y agoThe latter is definitely because the hardware manufacturers QA with it.
- marcodiego 6y agoBad power management is really manufacturers fault. See android phones or chromebooks that can last days without recharging.
- cheph 6y ago> Async-by-default I/O? What? Can you elaborate? I mean if you want non blocking IO from an fd in Linux, you can just do that. Not sure what defaults have to do with anything. Your code will still have to be written appropriately.
- dmitrygr 6y agoDefault in linux is read()/write() and be blocked. Doing async is a lot more work and until relatively (to NT timelines) recently quite limited (select). On NT the standard way is async, and doing things in the block-and-wait way is abnormal and unusual. Defaults matter. Because that's what most people will do.
- cheph 6y agoLinux use read(2)/write(2) for both blocking and non-blocking. Still don't understand what you mean by how NT does it. Either your code is written to accomodate Async IO or not.
- pjmlp 6y agoObject based instead of file handles, with capabilities on everything you can do with them. Since Vista, official support for a C++ subset. In kernel IPC, namely LPC, to mimic micro-kernels architectures.
- tinus_hn 6y ago* It is (with a lot of ifs and buts) a microkernel * it is optimized for integration with third party software from people who don’t have the source, so for instance the driver model is interesting * the built in configuration system (the registry) and how it’s used throughout * the (underused) personalities system you can use to show different apis to different binaries * the security model is much more interesting, while in Linux you have ‘root’ and everything else, on Windows this is much more granular (unfortunately it’s so complex it’s basically impossible to use). The architecture is really quite interesting, even though Microsoft didn’t make a lot of use of a large part of it.
- scaladev 6y ago>in Linux you have ‘root’ and everything else Well, you do have: - capabilities (which are so coarse-grained as to be practically useless) - 8 types of namespaces - seccomp-bpf - LSM (AppArmor, SELinux, TOMOYO, etc)
- raverbashing 6y agoYes though a lot of this came "long after" the NT kernel (at least after NT 4.0) A lot of innovations on NT are late as well to be fair, like the whole Application Views (?) of the system (basically an FS/Registry app sandboxing)
- tinus_hn 6y agoThis is more like LD_PRELOAD. I’m not sure this is a kernel level feature.
- pjc50 6y agoThe big difference is when you're in a multi-computer (Active Directory / NIS / LDAP) environment. On UNIX all the IDs are smallish integers, so you have to be careful to ensure they're unique and non-overlapping. On Windows you have a "SID" which is variable length and (for users) usually a big random number. https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/security-identifiers-in-windows https://docs.microsoft.com/en-us/troubleshoot/windows-server... Windows also differentiates between the human ADMINISTRATOR account and machine "root" accounts like "LOCALSYSTEM". User accounts are also disambiguated by "domain"; ADMINISTRATOR on the local machine is not automatically the same as the domain-wide ADMINISTRATOR.
- acomjean 6y agoMy os book in college had an appendies on various OS. Online the oldest is the 7th edition appendies which has details on A)Unix bsd B)Mach and c)windows 2000. Windows 2000 was the next version of NT. Interesting if long reads about OS architecture. http://bcs.wiley.com/he-bcs/Books?action=resource&itemId=0471694665&bcsId=2217&resourceId=5005 http://bcs.wiley.com/he-bcs/Books?action=resource&itemId=047... “ n the mid-1980s, Microsoft and IBM cooperated to develop the OS/2 operating system, which was written in assembly language for single-processor Intel 80286 systems. In 1988, Microsoft decided to make a fresh start and to develop a “new technology” (or NT) portable operating system that supported both the OS/2 and POSIX application programming interfaces (APIs). In October 1988, Dave Cutler, the architect of the DEC VAX/VMS operating system, was hired and given the charter of building this new operating system.”
- thesuitonym 6y agoIs the fact that it's a very stable and robust kernel that evolved over different means, with different priorities and expectations not enough? The kernel itself is very interesting, regardless of what happened in the Linux world. If all you ever look at is Linux, you get stuck in Linux ideas of how things should, or even can, be done.