Secure Coding mailing list archives

Segments, eh Smithers?


From: smb at cs.columbia.edu (Steven M. Bellovin)
Date: Tue, 4 Apr 2006 14:19:48 -0400

On Mon, 03 Apr 2006 09:02:27 -0700, Crispin Cowan <crispin at novell.com>
wrote:


Of particular and critical interest at this juncture is segmented
memory. Graybeards love segmented memory, and modern Linux kidz hate
segmented memory. A close friend has observed to me that 100% of A1
evaluated operating systems (both of them :) used segmented memory. In
stark contrast, all modern operating systems use paged memory instead.
Apparently there was a movement to hack segments into the Linux kernel a
year or so ago, but it was quickly shouted down.

I'll respond more later to the rest of your post, but this merits
comments now.

First, segmentation and paging are not mutually exclusive.  Multics
itself used both; I believe that Pentiums are also capable of both.

Second, the two concepts serve different purposes.  Segments are a
user-visible concept (and the key point is that the hardware address
arithmetic does not have a carry between the high-order bit of the
offset into the low-order bit of the segment number); paging is
(mostly) invisbible to the user and primarily is used to (apparently)
expand physical RAM.

The problem with segmentation, though, is that it does limit the (easy)
size of an object.  Think back to the 286, when segments are much
smaller.  64-bit machines are a great place to use segments, though,
since it's (probably) at least 10 years before we run into the problem
again...

                --Steven M. Bellovin, http://www.cs.columbia.edu/~smb



Current thread: