<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 09/23/2016 08:57 AM, Brian Miller
wrote:<br>
</div>
<blockquote
cite="mid:d602f522-c0a7-c903-6696-415dbec4a56d@gmail.com"
type="cite">
<pre wrap="">Well, personnally, if I were doing something like that for BSD, I would
build a script,
pkg install XXXX
pkg install YYY
because I can't image any software you need that isn't already in their
package repositories. Then maybe a couple of HEREDOCS with the
configuration you want. Why re-engineer something that's already
working well?</pre>
</blockquote>
<br>
Thanks for the reply and feedback. <br>
<br>
Yeah, I like what you describe. <br>
I've been building-up install/setup scripts for differing platforms
in recent years. <br>
Used to be that "Unix is Unix", but that was never as completely
true as for Linux. But one can reasonably substitute '<font
face="Courier New, Courier, monospace">pkg install</font>' where
we otherwise do '<font face="Courier New, Courier, monospace">zypper
in</font>'. (or YUM or APT) So that helps. <br>
<br>
The rest gets long. (cut here if TL;DR) <br>
<br>
To supplement getting all the comfy packages that I want, there is
also a growing collection of pre-compiled stuff. (see below) <br>
<br>
What I still don't quite see, and haven't found in internet
searching, is where certain kernels support <a
href="https://en.wikipedia.org/wiki/Application_binary_interface">common
ABIs</a>. For example, <a
href="https://en.wikipedia.org/wiki/FreeBSD">FreeBSD</a>
explicitly supports the Linux ABI. A statically linked <a
href="https://en.wikipedia.org/wiki/FreeBSD#OS_compatibility_layers">Linux
executable should run as-is on FreeBSD</a>. Nice! A Linux program
wanting shared libraries probably also runs (I haven't tried; the
doco I have found hints that it works). But would a program compiled
from source on FreeBSD run on NetBSD? or vice versa? <br>
<br>
This requires he same hardware architecture, of course, so it'd be
32-bit PC programs from one operating system running on a different
32-bit PC kernel. Contrast with <a
href="https://en.wikipedia.org/wiki/Wine_%28software%29">WINE</a>,
which has to intercept the Windows system calls and convert them
into Linux equivalents. The pearl I'm after is to <u>identify which
Unix variants</u> let you run executables from other compadres <u><i>without</i>
magical syscall intercept</u>. <br>
<br>
Side note: <br>
When mainframe Linux was new, I remember some people asking on the
forum how they could run PC Linux executables on it. We're not
talking about HW variants here. <br>
<br>
<a href="https://en.wikipedia.org/wiki/MINIX">Minix</a> is an
interesting hack. It's been around for decades and was part of the
motivation for Linux. At some point, Minix embraced the ABI from one
of the BSDs (I forget which), so user-land Minix is now really just
user-land *BSD. So you get the Minix micro-kernel, which is cool,
but the shell side is more "normal". (for varying values of
"normal") <br>
Dunno if Minix still supports old Minix programs built for its
previous ABI. <br>
<br>
It's not entirely theoretical. I'd like to reduce the number of
"left side" items in the following list-o-platforms: <br>
<br>
<br>
<blockquote><font face="Courier New, Courier, monospace">Linux-alpha<br>
<br>
Linux-arm (hopefully normalizing "armv6l", "armv7l", and others)<br>
FreeBSD-arm<br>
Minix-arm (really)<br>
<br>
Linux-i386 (for all variants of "i486", "i586", and "i686")<br>
FreeBSD-i386 (is this compatible with next two?)<br>
OpenBSD-i386 (is this compatible with previous and next?)<br>
NetBSD-i386 (is this compatible with previous two?)<br>
Minix-i386<br>
Solaris-i386<br>
CYGWIN-i386 (is this compatible with next?)<br>
MinGW-i386 (is this compatible with previous?)<br>
<br>
Linux-x86_64<br>
FreeBSD-amd64 (which is "x86_64" for Linux and the others)<br>
OpenBSD-*64<br>
NetBSD-*64<br>
Darwin-x86_64<br>
Solaris-x86_64<br>
CYGWIN-x86_64<br>
<br>
Linux-ppc<br>
AIX-powerpc<br>
<br>
Linux-ppc64<br>
<br>
Linux-ppc64le<br>
<br>
Linux-s390<br>
<br>
Linux-s390x<br>
<br>
Linux-sparc<br>
Solaris-sparc<br>
<br>
Linux-sparc64<br>
Solaris-sparc64<br>
<br>
HPUX-ia64 (that's Itanium, 64-bit PC but not compatible w/
32-bit)<br>
Linux-ia64</font><br>
</blockquote>
<br>
<br>
-- R; <><<br>
<br>
<br>
<br>
</body>
</html>