| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

Notes

This version was saved 16 years, 7 months ago View current version     Page history
Saved by paolod
on September 3, 2007 at 5:48:53 pm
 

Kernel Comparison: Linux (2.6.22) versus Windows (Vista)

 

Notes

0 Most comprehensive kernel comparison - as shown by Kernel Comparisons

1 A pragmatic approach is used to compare the two kernels. Sometimes one kernel has a parallel outside of the kernel domain, or due to the fact that direct comparison is sometimes impossible or practically infeasible. An example of this is the SLOC calculations28.

2 Some of this comparison only applies to 32bit PC x86 systems.

3 This is a kernel comparison. This is not a kernel review, or kernel programming guide, and only involves non-kernel issues/OS issues when related to the kernel in at least one of the compared kernels. As to Apples and oranges - beneath the kernels the hardware is the same (e.g. PC), and above the kernels the software is the same (e.g. browser). The kernel in the middle is the topic, not Macs, or fruit.

4 more importantly Something you now need to know about your kernel (but were afraid to ask)

5 Constant kernel ABI vs having drivers in kernel source tree is controversial. Driver authors favouring building on the constant API, and kernel authors favouring building with the flexibility of no ABI.

6 Y in W2K

7 Monolithic name is used, due to the controversy over the term "Hybrid". Essentially, the term "Hybrid" may be technically correct (by definition) but makes ambiguous the issue of kernel mode versus structure hides the fact that there are more subsystems in kernel mode than most monolithic kernels (graphics GDI/GDI+, printing etc.). Also, although the kernel may be structured in a similar way to a microkernel, it is in no way a microkernel, or contain a microkernel. It simply does no message passing due to kernel mode, just like other monolithic kernels.

8For Linux, Solaris kernel developers C++ in the kernel is seen undesirable due to leaving too much control (e.g. memory management) to the compiler. An argument can be made that the size of modern kernels lend themselves better to C++, that C++ compilers have matured, and that using only restricted parts of C++ it is OK. After reading the MS C++ driver advice, I see this as less controversial.

9Graphic card support in general varies, but at least initially, most graphic cards either have basic Linux support or for instance ATI and NVIDIA provide binary only drivers.

10when there is no alternative, sometimes outdated references must be used - for older OS versions - e.g. NT, old hardware, or benchmarks done with very different criterion, or due to basic difference in OSes. In these cases, no direct comparison should be made, so the comparison is not coloured.

11no restriction on filename. By convention it is called vmlinuz or zImage, bzImage.

12image compiled without PAE support

13image compiled with PAE support

14can cause inconsistencies

15unsubstantiated claim

16estimate, based on #6 W2K 63,000 bugs in total 29million results in 0.2% . Note this is much lower than a general estimate for commercial software 2-3% (20 to 30 bugs for every 1,000 lines) #91 , which might possibly be considered as an upper bound.

17one process at maximum priority vs one at minimum priority (settable with user privileges) competing for single CPU: Linux 10ms / (200ms + 10ms) = 4.8%, Windows 10ms / (120ms + 10ms) = 7.7%

18 with Wine

19 for some comparable equivalent calls to Windows

20 both OS API and Native API

21 some distributions

23 Linux priority level number goes down when priority increases / goes up when decreasing

24 tasks can act like Windows threads by sharing handle table, PID, address space

25 no drivers are included. The drivers will significantly add to the file sizes.

26estimate

27 Some aspects like graphics are not considered primarily as kernel issues in Linux, but are in Windows due to the GDI/GDI+ being inside the kernel, so are included here.

28 Also note that the SLOC calculations are based on data from incompatibly mixed sources - kernel, total OS, drivers, also with a lack of hard data on the Windows side. Also, there are two viewpoints 1. the kernel as a whole (covering all ports, and drivers) 2. a typical kernel (x86 port, typical hardware). Currently, 1. is followed (due to lack of data on 2.) but I think 2. could give more meaningful results for a comparison for real kernel usage, as opposed to theoretical kernel comparison.

29 includes GDI+

30major: Linux 2.4.0 January 2001 -> Linux 2.6 December 2003, minor: Linux 2.6.18 -> Linux 2.6.19

31major: Windows XP October 2001 -> Windows Vista January 2007, minor: Windows Server 2003 April 2003 -> Windows Server 2003 R2 December 2005

32this is the bundled version which might be able to be updated online. Manually installing the latest Linux kernel may not be a supported configuration.

33These customized versions are separately maintained branches / forks of Linux.

34Windows CE based real-time systems have a separate CE kernel, and are not based on the NT kernel.

35see cryptoAPI

36Windows supports natively cryptography since 2000 edition through its Data Protection API. Vista improves cryptography support with Cryptography Next Generation API.

37no default kernel tampering protection, but available by adding a Mandatory Access Control through SELinux, grsecurity/PaX or AppArmor you have not only tampering, but also disclosure protection.

38Windows Vista has integrated tampering protection through securable objects labelling with Mandatory Integrity Control Infrastructure. Linux kernel has not such support as of 2.6 version, whilst adding a Mandatory Access Control through SELinux, grsecurity/PaX or AppArmor you have not only tampering, but also disclosure protection.

39is Windows 2000 derivative, so based on NT 5 not 6. Additionally is a separate kernel branch from Windows.

40note that significantly less RAM than this value will be usable (e.g. less your graphics card memory etc)

41SYSENTER/SYSEXIT SYSCALL/SYSRET

42in this context Linux OS release refers to Linux distribution release

43actual limit reached in practice due to PID limit. That reported PID limit is much lower than the maximum PID limit, so this may not be a current limitation at all. Theoretical limit higher.

44some editions of Server 2003 support more than 2 - see the history of this page for details

45Y (some editions 2003)

46library calls total thousands

472.4 kernel

48You can read about Windows Vista Service Pack 1 improvements here

49Remote Desktop Protocol (RDP) files will be able and be signed in Windows Vista Service Pack 1

50See Tonnesen work and this page from Debian

51See Jfs version 2 for Windows

52Windows Vista family graphic engine, known as Aero, is a completely kernel-separed engine. A Windows Vista version, Windows PE 2.0, is available with no GUI at all, for troubleshooting purposes (it restarts each 24 hours to prevehent using in production)

53Major improvements in TCP/IP have been released in Windows Vista versions (at time, Windows Vista and Windows Server 2008) with Next Generation TCP/IP Stack. See also New Networking Features in Windows Server 2008 and Windows Vista.

 

<-Prev|Next->

 

Johnathon Weare © Johnny Weare 2007

Widefox - the Vertical Tab Firefox

 

Comments (0)

You don't have permission to comment on this page.