On 9/26/06, Ben Scott <[EMAIL PROTECTED]> wrote:


> And how dumb I'd been to ever credit "2X".  An old wives' tale...

  From what I remember, there was a time where this number wasn't
arbitrary, but rather, had something to do with how memory management
was implemented in the Linux kernel.  (Details I have forgotten, if I
ever knew them.)  This "rule of thumb" dates back to at least 2.2,
possibly 2.0.  The memory manager in 2.6 has practically no
resemblance to the one in 2.0, or so I understand.  So the old rules
are no longer valid.


2X dates before Linux.  That was the  "rule" for SunOS and other BSD OSes.  Your virtual memory was the size of swap.  So if you had 16MB or RAM + 32MB of swap (hey, this is '92) the OS had 32MB of virtual.  16MB + 16MB = 16MB to work with.  And, if you had 16 + 8, you had 8MB of virtual!  Yep, less then RAM.

Solaris and later versions of Linux and BSD changed it to additive.  16 + 8 == 24MB of virtual.



 

  There are two lessons here: (1) Rules are only valid for as long as
their preconditions remain unchanged.  (2) "Common knowledge" is
commonly wrong.


One of the reasons Linux kicked Solaris' 9 butt (and earlier) in web benchmarks was the TCP stack.  It was optimized for a 16MB system.  Solaris 10 revamped it for modern archetectures and now it's faster according to Sun.

It important to keep evolving the OS, etc for modern systems to take advantage.  Linux, with it's non fixed kernel API has an advantage here.  Solaris and Windows must keep compatibility with existing APIs.

This evolution is also why a 16MB 486 can't really run current distributions.


Reply via email to