From owner-freebsd-chat Wed Jul 12 10:19:42 2000 Delivered-To: freebsd-chat@freebsd.org Received: from smtp02.primenet.com (smtp02.primenet.com [206.165.6.132]) by hub.freebsd.org (Postfix) with ESMTP id 1B45D37BF62 for ; Wed, 12 Jul 2000 10:19:07 -0700 (PDT) (envelope-from tlambert@usr07.primenet.com) Received: (from daemon@localhost) by smtp02.primenet.com (8.9.3/8.9.3) id KAA07901; Wed, 12 Jul 2000 10:17:55 -0700 (MST) Received: from usr07.primenet.com(206.165.6.207) via SMTP by smtp02.primenet.com, id smtpdAAAH1aiup; Wed Jul 12 10:17:44 2000 Received: (from tlambert@localhost) by usr07.primenet.com (8.8.5/8.8.5) id KAA20548; Wed, 12 Jul 2000 10:18:51 -0700 (MST) From: Terry Lambert Message-Id: <200007121718.KAA20548@usr07.primenet.com> Subject: Re: No port of Opera? (Was: ((FreeBSD : Linux) :: (OS/2 : Windows))) To: jcwells@nwlink.com (Jason C. Wells) Date: Wed, 12 Jul 2000 17:18:51 +0000 (GMT) Cc: brett@lariat.org (Brett Glass), chat@FreeBSD.ORG In-Reply-To: from "Jason C. Wells" at Jul 08, 2000 01:44:41 PM X-Mailer: ELM [version 2.5 PL2] MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > The FreeBSD ABI was your idea, though I predict it was merely a > rhetorical device. You develop it! It was my idea, from 1994. The actual idea was called "FABIO", for "Free Applicabtion Binary Interface Objective"; yes, I know that it's a stretch to fit the acronym. The intent of the idea was not necessarily to have the FreeBSD ABI everywhere, but was to have the same x86 UNIX ABI everywhere. The IBCS2, SVID III, POSIX, Spec 1170 (now Single UNIX Specification) are all inadequate to this task, as evidenced by the fragmentation of the UNIX market. The main driving force behind this fragmentation is, IMO, the fact that vendors all attempt to "add value", which is, to translate from marketspeak into English, it "introduce binary incompatability which will allow programs from other platforms to run on theirs, but not vice versa". Linux and FreeBSD have both been guilty of this sin, though FreeBSD less so, since it is (compared to Linux) fairly stable. To combat this would require, in my opinion, a commitment similar to that outlined in my original FABIO posting to usenet: 1) One of the commercial UNIX systems, SCO, SVR4, or Solaris, will be chosen as the reference "Level 2 compliant FABIO platform". This platform will dictate all manifest constants for signal handlers, ioctl() calls, etc.. Since commercial platforms are relatively frozen in their ABI, these values are unlikely to change, unlike trying to track the various Linux and BSD moving targets. 2) We accept the following definitions: Level 2 Compliant FABIO platform: A level 2 compliant platform implements all FABIO ABIs, dynamic linking, packaging and installation technologies, shared libraries, etc.. This guarantees that programs written to the FABIO standard _will_ run on _all_ FABIO platforms. Level 1 Compliant FABIO platform: A level 1 compliant platform is level 2 compliant. In addition to level 2 compliance, a level 1 compliant platform _SHALL_ have the ability to _turn off_ acccess to all non-FABIO ABIs. This guarantees that, if a developer utilizes a level 1 compliant platform, they will not accidently incorporate vendor private extensions to the OS as dependencies. 3) Clearly, sane vendors will only choose level 1 compliant platforms, since it will guarantee the highest degree of portability for the resulting binary applications, for the lease amount of effort. 4) Clearly, sane OS developers will fall in line with the standard. This will commoditize x86 UNIX, for better or for worse, but that is rather the point of the exercise. I believe this proposal is as valid today as when it was first presented. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message