Linux kernel bits which I feel excited about…
Here are some comparisions between:
Linux (2.6.23) versus Windows (Server 2008)…
I compiled these here so that, next time if I want to check the scheduler latency of linux kernel, I should not go for googling.
—-
Performance
| Scheduler (performance) | Linux | Windows |
| scheduling latency (average) | 0.009mS | 2mS |
| scheduling latency (worse) | 0.3mS | 16mS |
.
.
Interrupt Performance
| Interrupt (performance) | Linux | Windows |
| interrupt latency (average) | 11uS
5uS (custom) |
36uS |
| interrupt latency (maximum) | 1000uS | 45000uS |
.
.
Stack
| Stack (kernel) | Linux | Windows |
| kernel stack size | 8KB | 12KB |
.
.
Uniprocessor Boot Image
| Boot Image (uniprocessor, no PAE) | Linux | Windows |
| filesizes – kernel mode (no drivers) | 1.7MB | 6.9MB (3.3+0.5+2.0+2.0MB) |
| filesizes – user mode (no drivers) | - | 3.0MB (0.7+1.0+0.6+0.7MB) |
| filesizes – total (no drivers) | 1.7MB | 9.9MB |
.
.
Hardware Clock
| Hardware Clock | Linux | Windows |
| tickless | Y |
N |
| timer interrupt frequency default – uniprocessor | 250Hz | 100Hz |
| timer interrupt frequency build time configurable – uniprocessor | unlimited | N |
| timer interrupt frequency – multiprocessor | 250Hz | 66.6Hz |
| timer interrupt frequency build time configurable – multiprocessor | unlimited | N |
.
.
Memory Hardware Limits
| Memory Limits (Hardware Support) | Linux | Windows |
| Maximum RAM – 32bit, no PAE | <4GB | 1GB (Starter)
<4GB (others) |
| Maximum RAM – 32bit, PAE | 64GB | 1GB (Starter)
<4GB (others) |
| Maximum RAM – 64bit | 1024GB-8589934592GB | - (Starter)
8GB (Home Basic) 16GB (Home Premium) 128GB (others) |
.
.
Multiprocessor Limits
| Multiprocessor (limits) | Linux | Windows |
| Maximum number of CPUs – 32bit SMP | 32 (logical) | 1 (Starter, Basic, Premium)
2 (Business, Ultimate, Enterprise) |
| Maximum number of CPUs – 32bit NUMA | 32 or 1024? | 1 (Starter, Basic, Premium)
2 (Business, Ultimate, Enterprise) |
| Maximum number of CPUs – 64bit SMP | 255 (AMD64/Intel64)
1024 (IA-64) |
0 (Starter)
1 (Basic, Premium) 2 (Business, Ultimate, Enterprise) |
| Maximum number of CPUs – 64bit NUMA | >1024 | 0 (Starter)
1 (Basic, Premium) 2 (Business, Ultimate, Enterprise) |
.
.
Device Limits
| Device (limits) | Linux | Windows |
| Block device limit 32bit | 16TB | 16TB |
| Block device limit 64bit | 8EB | 256TB |
| Major/minor numbers | 4k/1M | - |
.
.
Kernel Source Code
| Kernel Language (no drivers) | Linux | Windows |
| source | open source | closed source
partly open source (WAP access WRK) |
| language – C | Y | Y |
| language – Assembly | Y | Y |
| language - SEH | N | Y |
| language - VEH | N | Y |
| language – C++ | N | Y |
| language – C proportion | 94% ±3%y | 60% ±25% |
| kernel – size Source_lines_of_code | 3.5M ±0.5M | 10M ±5M |
.
.
Kernel + Drivers Source Code
| Source Code (kernel + drivers) | Linux | Windows |
| language – C proportion | 94% ±3% | 70% ±25% |
| language – C++ | N | Y |
| total Source_lines_of_code | 7M ±2M | 17M ±9M |
| estimated bug error rate per line | 0.02% | 0.2% |
| i.e. estimated bugs total | 1400 | 34000 |
.
.
Kernel Development
| Development (kernel) | Linux | Windows |
| development model | open source | closed source |
| development cycle time -major release | 35 months | 63 months |
| development cycle time -minor release | 3 months | 31 months |
| development cycle time -patch release | ongoing | ongoing |
| development process – simple | Y | N |
| modularity – high | Y | N |
.
.
Hardware Form
| Hardware (PC) | Linux | Windows |
| Desktop | Y | Y |
| Laptop | Y | Y |
| Media Center | Y | Y |
| Tablet | Y | N (Starter, Basic)
Y (others) |
| Rack, Server etc | Y | Y (see limits) |
| Wearable | Y | Y |
| Hardware (other) | ||
| PDA | Y | N |
| mobile phone (cell phone) | Y | N |
| router | Y | N |
| internet tablet | Y | N |
| watch | N
Y |
N |
| coffee machine | N | N
Y (XP) |
| embedded (other) | Y | N |
.
.
Hardware Architecture
| Hardware Architecture Support (PC) | Linux | Windows |
| x86 (Intel) | Y | Y
N (Starter not all) |
| AMD64/Intel64 (AMD/Intel) | Y | Y
N (Starter) |
| IA-64 (Intel) | Y | N |
| Hardware Architecture Support (current) | ||
| PPC64 – PowerPC-64 (AIM) | Y | N |
| SPARC64 (Sun) | Y | N |
| ARM (ARM) | Y | N |
| PA-RISC (HP) | Y | N |
| Cell (STI) | Y | N |
| AVR32 (Atmel) | Y | N |
| Blackfin (Analog Devices) | Y | N |
| MN10300/AM33 (MEI/Panasonic) | Y |
N |
| Orion Feroceon (Marvell) | Y |
N |
| System i (AS/400) – POWER (IBM) | Y | N |
| Cray – Opteron (Cray/AMD) | Y | N |
| z/Architecture (IBM) | Y | N |
| ETRAX CRIS (Axis) | Y | N |
| H8 (Renesas/Hitachi) | Y | N |
| SH – SuperH (Renesas/Hitachi) | Y | N |
| SH64 - (Renesas/Hitachi) | Y | N |
| V850 (NEC) | Y | N |
| MIPS-64 (MIPS) | Y | N |
| MIPS-64 (Cavium OCTEON) | N
Y (patch) |
N |
| MIPS (MIPS) | Y | N |
| Hardware Architecture Support (non-current) | ||
| PPC – PowerPC (AIM) | Y | N |
| SPARC32 (Sun) | Y | N |
| Alpha (DEC) | Y | N |
| Cray – pre-Opteron (Cray) | N | N |
| System i (AS/400) – IMPI (IBM) | N | N |
| System i (AS/400) – RS64 (IBM) | Y | N |
| m68k (Motorola) | Y | N |
| m88k (Motorola) | N
Y (branch) |
N |
| S/390x (IBM) | Y | N |
| S/390 (IBM) | Y | N |
| MIPS (DEC) | Y | N |
| Hardware Architecture Support (game consoles) | ||
| Wii (Nintendo) | Y | N |
| Xbox 360 (Microsoft) | Y | N
Y (branch) |
| Xbox (Microsoft) | Y | N
Y (branch) |
| PS3/Playstation 3 (Sony) | Y | N |
| PS2/Playstation 2 (Sony) | Y | N |
| Gamecube (Nintendo) | Y | N |
| Hardware Architecture Support (other) | ||
| others | Y | N |
.
.
Virtualization
Guest
| Virtualization (Guest) | Linux | Windows |
| Can be run as guest | Y | N (illegal Starter, Basic, Premium)
Y (+1 licence Business, Ultimate) Y (Enterprise) |
| maximum number of guests (RHEL, Microsoft Virtual Server) | unlimited | 512 (with Virtual Server 2005 R2 SP1, for free) |
.
.
These comparision are blindly copied from this link.
Many thanks to the author of this comparision, for his hard work and for enlightening us.
-