What are the significant technical features the Linux kernel has that the Windows does not?

Something that I might find on a kernel feature list, which is conceptually an advantage, or significantly different to, Windows. Perhaps something from access policies, networking, file management, etc...?

I'm not looking for speed or memory benchmarks, but technical or architectural features that underpin the major difference between the two operating systems.

EDIT: Yes. The Wikipedia comparison mentioned in the comment gives answers like I'm looking for. It seems fairly technical and maybe someone can write a small comment if the differences have practical implications to the user (or performance). Here is a summary from the article:

(why does Linux have many modules, while Windows only mentions one solution?)

                     Linux                                   Windows
Virtualization:      cgroups, chroot, KVM, ...               Hyper-V
Security:            POSIX ACL                               ACL
Profiling:           OProbe, kprobe, ...                     Event tracing
Soft/Hard-Realtime:  Yes                                     No

Moreover the site mentions that Linux has the following while it's not sure if Windows can do it:

  • Capability-based security
  • In-kernel key management keyctl
  • Audit-API fanotify
  • Sandbox SELinux, KVM, seccomp
  • Synflood protection Syncookies

Does it matter if Linux has more filesystems supported? Can you not have a Windows module? What does it mean that Linux has more ciphers and hash algorithms supported? Is it superior in performance as compare to a "Windows addon solution"?

That's the summary I see in the Wiki. It's too technical for me to understand :/ Do you see something with implications for the user here? :)


Your question is difficult to answer because the Windows kernel source code is proprietary. But one structural difference between them is that Linux kernel is monolithic and the Windows kernel is a mixture of microkernel and monolithic kernel. Another difference is the "execution unit", in Linux is the process but in Windows is the thread.

  • 3
    Actually the unit of execution in Linux is usually referred to as a task in kernel code. From the kernel point view, a thread is merely a task which just happens to share certain resources with its parent (namely the address space, filesystem resources, file descriptors and signal handlers), whereas a process is a task which doesn't share those resources with its parent. This is radically different from the approach to threads taken in for instance Windows, where threads and processes are entirely different kinds of beasts. – Thomas Nyman Sep 20 '13 at 20:49
  • Interesting. That partly answers my question. I'll try to Google the details, but I'd be grateful for a good link recommendation regarding this topic :) (thread/process/linux task) – Gerenuk Sep 22 '13 at 15:46

Not the answer you're looking for? Browse other questions tagged or ask your own question.