From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrey Romanenko Subject: Re: EDE - Personal Suggestions and Ideas Date: Fri, 28 May 2004 14:23:50 +0300 Sender: linux-8086-owner@vger.kernel.org Message-ID: <40B72146.4080202@i.com.ua> References: <20040526115733.GQ12951@vega.vega.lgb.hu> <40B6F3D7.7050009@codito.com> <20040528081028.GX15905@vega.vega.lgb.hu> <200405281111.50735.dg@cowlark.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <200405281111.50735.dg@cowlark.com> List-Id: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: Cc: linux-8086@vger.kernel.org David Given wrote: >But if you're not programming in C, you don't have this limitation. Unix >traditionally is programmed in C, so people don't think about this much, but >it would be really nice if the kernel would manage all the segment registers >and not just CS and DS. So that, if you like, you could load a binary that >allocated all four segments. This would allow nice features such as a Basic >interpreter that stored its byte-code in ES, its working stack in SS, and >used DS for workspace. > > You propose to maintain two or more pointers that points to same memory location but to different areas that may cross over. That means that if you have (pointer == pointer2) it is not enough to say that they are poining to the same object. I think this situation is COMPLETE NIGHTMARE that gives us no value but only troubles. Yes I understand that 8086 architecture alredy support it but this is not a reason to bring this to C compiler. I belive C programmer does not need to know about all this 8086's xxxx:xxxx memory structure at all. It is job of compiler to convert 32bit pointers to xxxx:xxxx addresses. So ideally there would be two types of executables: old (that we have now) and new with multi segments where compiler using kernel manages all segments allocation and converts 32bit pointers to apropriate locations. Andrey