Date: Tue, 28 Mar 2006 23:42:00 +1100 From: Andrew Reilly <andrew-freebsd@areilly.bpc-users.org> To: Poul-Henning Kamp <phk@phk.freebsd.dk> Cc: Jason Evans <jasone@freebsd.org>, freebsd-arch@freebsd.org Subject: Re: Proposed addition of malloc_size_np() Message-ID: <20060328124200.GB90303@gurney.reilly.home> In-Reply-To: <61879.1143544316@critter.freebsd.dk> References: <20060328105833.GE87799@gurney.reilly.home> <61879.1143544316@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 28, 2006 at 01:11:56PM +0200, Poul-Henning Kamp wrote: > The traditional UNIX way had two or three segments, all of the code > in one and all of the data (+/- the stack) in another. > > What Rekursiv did was to put each single variable or object > in its own segment. > > int i; > int j; > > would take two objects (or segments if you like). Aah. OK. Ick. I'm pretty sure that the segmentation practiced by AS/400 and Burroughs A-series is almost this flavour, though. Every allocated chunk of memory gets it's own segment. That probably means that individual machine words don't, but arrays and structs would, including stack frames (activation records) most of the time. > This is not merely segmentation, this is object oriented memory. I really think that this is something better handled in software, as is done by JVM and CLI, these days. Hardware can't strength-reduce the necessary descriptor loads and checks, whereas software can. Obviously that probably has it's own attractions to the paranoid/banking/military crowd, but not to the go fast at low cost and low power crowd, which I count myself among... Cheers, -- Andrew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060328124200.GB90303>