From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Given Subject: Re: AW: [Fwd: Re: EDE - Personal Suggestions and Ideas] Date: Wed, 26 May 2004 15:17:47 +0100 Sender: linux-8086-owner@vger.kernel.org Message-ID: <200405261517.47059.dg@cowlark.com> References: <20040526115733.GQ12951@vega.vega.lgb.hu> <20040526130618.GY12951@vega.vega.lgb.hu> Mime-Version: 1.0 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: In-Reply-To: <20040526130618.GY12951@vega.vega.lgb.hu> Content-Disposition: inline List-Id: Content-Type: text/plain; charset="iso-8859-1" To: linux-8086@vger.kernel.org On Wednesday 26 May 2004 14:06, G=E1bor L=E9n=E1rt wrote: [...] > In a nutshell: segments should be considered as read-only values afte= r > getting them from the system. Absolutely. Basically, there are two routes you can go. * If you give your application access to segment IDs, then the kernel c= annot=20 change them directly (because it doesn't know where the application's p= ut=20 them). This means that on a 8086, your application is not relocatable, = which=20 means not swappable. * If you *don't* give your application access to segment IDs, then it's= =20 restricted to single code and data segments only. But because the kerne= l=20 knows where the segment IDs are stored --- CS, DS, SS --- then the kern= el can=20 change them whenever it likes and the application doesn't even know. Advantages of the former: applications can be bigger. Disadvantages of = the=20 former: larger code. Slower code. Severe disadvantages on the 8086=20 (basically, the system would be unusable). Less reliable; bad pointers = run a=20 higher risk of corrupting something. Advantages of the latter: smaller and faster. Much simpler. Much cleane= r=20 design. More functionality on the small systems. Poor-man's memory=20 protection, making it more reliable. Disadvantages of the latter:=20 applications can't be as large. I just don't think that the advantages of having multisegment programs=20 outweigh the disadvantages. Anything that needs multiple segments shoul= d be=20 restructured to run as multiple processes. Plus, I should point out tha= t we=20 don't have any compilers that support far pointers anyway... PS. Please don't cc me! I'm subscribed to the mailing list! I don't nee= d more=20 copies of the messages! --=20 +- David Given --McQ-+ "P.S. If you do not receive this, of course it | dg@cowlark.com | must have been miscarried; therefore I beg you t= o | (dg@tao-group.com) | write and let me know." --- Sir Boyle Roche, in = a +- www.cowlark.com --+ letter - To unsubscribe from this list: send the line "unsubscribe linux-8086" i= n the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html