1 |
Simon Stelling posted <42F9FD31.4050307@g.o>, excerpted below, on |
2 |
Wed, 10 Aug 2005 15:12:17 +0200: |
3 |
|
4 |
> Well, the problem is, even if you have two different directories for each |
5 |
> bitness, the binaries will still collide, because of $PATH: How do you |
6 |
> decide whether you want the 32bit or 64bit player? There's no real |
7 |
> solution other than having suffixes like e.g. mplayer32 and mplayer64. You |
8 |
> could reset PATH each time you launch a binary of other bitness, but |
9 |
> that's just an ugly workaround and it may not always do what you want. So |
10 |
> you have to use suffixes. But then, you don't need two directories, as the |
11 |
> binaries won't collide anymore... Additionally, what do you do about |
12 |
> scripts? PATH doesn't work there, and so you'd have to first edit the |
13 |
> #!-line before executing it. |
14 |
|
15 |
As I've imagined it here, altho I admit there are likely huge holes in it |
16 |
that I'm not aware of given I haven't had to be concerned with the actual |
17 |
implementation process... |
18 |
|
19 |
$PATH would include $PREFDIR:$DEFAULTBIN:$SECONDARYBIN. $DEFAULTBIN would |
20 |
be the normal system default, presumably bin64. $PREFDIR would contain |
21 |
symlinks to individual executables in $SECONDARYBIN, where they are |
22 |
preferred over those in $DEFAULTBIN, allowing a system default, with |
23 |
individual application defaults differing from the system default, as |
24 |
necessary. |
25 |
|
26 |
In addition, $PREFDIR could contain suffixed or otherwise identified |
27 |
symlinks to both bitness versions specifically. Thus, applications could |
28 |
be referred to by general name to get the locally preferred default in |
29 |
$PREFDIR, suffixed name to get the specific bitness version, or by |
30 |
absolute path, getting the specific bitness version or the locally |
31 |
preferred default as specified in $PREFDIR, as desired/appropriate. |
32 |
|
33 |
There'd be a similar config dir setup, with a system default config, and a |
34 |
secondary config dir for those apps that are configured differently |
35 |
between the bitnesses. Again, a general symlink dir could be used to |
36 |
coordinate things, or compliant apps could do the usual mult-dir search |
37 |
until they found a config, searching first their specific bitness |
38 |
config-dir then the system default config-dir. |
39 |
|
40 |
Presumably, the suffixed symlinks would be created in $PREFDIR at |
41 |
installation. There's be a helper script similar to *-config that could |
42 |
be used to select between them, or the sysadmin could set the symlinks |
43 |
manually if desired. |
44 |
|
45 |
Each distribution could set up its own system, but again, LSB/FHS or the |
46 |
like standardization would be a pretty big benefit, here, such that at |
47 |
least the standard dir locations to search were agreed. Some |
48 |
distributions would then go with the more or less simple symlink |
49 |
infrastructure as outlined above, others may replace the symlinks with |
50 |
more complex wrapper scripts that would "do the right thing" for that |
51 |
specific distribution. |
52 |
|
53 |
I don't see scripts as being a huge problem, particularly if the dirs were |
54 |
standardized. Those scripts that needed specific bitness versions would |
55 |
call them, presumably by suffix; those that didn't would call the |
56 |
unsuffixed version, which would automatically find the appropriate |
57 |
default, either picking it up from $PREFDIR, or falling thru to the global |
58 |
system default in $DEFAULTBIN if a prefdir symlink or wrapper wasn't |
59 |
defined, presuming of course, that path was set appropriately. Where such |
60 |
path presumptions couldn't be relied upon, for security or other reasons, |
61 |
absolute paths could be used, using the already common in scripts |
62 |
if-executable type tests except in the case of the #! lines, which would |
63 |
still need tweaked by distributions or sysadmins in some instances. |
64 |
|
65 |
Like I said, there's probably huge holes in all that, due to the fact that |
66 |
I've never been in the position of someone having to worry about such |
67 |
implementation details at a distribution level... |
68 |
|
69 |
|
70 |
> On the other hand, multilib will never be a permanent solution, I see it |
71 |
> as a nice way to keep compatibility with old stuff, but as soon as |
72 |
> companies are starting to provide 64bit binaries, it will slowly |
73 |
> disappear from amd64's sight. |
74 |
> |
75 |
> So the final question is: Is it really worth the effort? |
76 |
|
77 |
Well... I suppose it depends on just how "slow" reality defines "slowly" |
78 |
to be. |
79 |
|
80 |
We have the precedent of the 16 -> 32-bit transition. I'm not familiar |
81 |
with *ix from back then, but know at least on the proprietaryware aka MS |
82 |
side, the practical transition took a decade or longer, and there are |
83 |
still 16-bit binaries in use today, altho very often run under software, |
84 |
if not hardware, emulation. Think about how long it was before 32-bit |
85 |
virtual 386 mode became common. Then consider how much more society |
86 |
depends on 32-bit x86 today, as compared to 16-bit x86 back then, and the |
87 |
fact that 32-bit is far closer to "good enough" for most folks using it |
88 |
today than 16-bit was back then -- the improvements are more incremental |
89 |
now, because the percentage improvement on the established base is |
90 |
smaller, even if the improvement in the absolute sense is the same or |
91 |
even greater. |
92 |
|
93 |
Given that, I think a decade is a realistic estimate. Admittedly, there |
94 |
are quite a few different factors this time around, the far higher degree |
95 |
of computer use in society, and the "good enough" factor, on the one hand, |
96 |
against the possible paradigm shift to FLOSS, and what that might mean to |
97 |
the whole debate, on the other. Still, a decade seems reasonable, and |
98 |
that's a /very/ long time, in computer evolution terms. |
99 |
|
100 |
Then there's the whole question as to where to start counting. Where is |
101 |
day zero in that decade? I'd contend that it's in the past, certainly, |
102 |
but do we call the introduction of the Opteron day zero, or do we call the |
103 |
introduction on the desktop, the Athlon 64, day zero, or do we call |
104 |
Intel's introduction day zero? Are we already a couple years into that |
105 |
decade, or only a few months? If it's a couple years, you are correct, by |
106 |
the time we get multilib fully implemented, we may have already passed the |
107 |
half-way mark, and the actual need for multilib, let alone multibin, will |
108 |
be on the decline. If day zero is taken to be when the Intel version |
109 |
actually became available on the streets, it's still fairly early in the |
110 |
game, yet, and it may well be worthwhile considering multibin, even now, |
111 |
particularly since the bulk switch from x86(32) definitely remains ahead, |
112 |
and if the decade timeline proves optimistic. Also throw into that the |
113 |
whole proprietary/open thing. Certainly, those with more freedom to |
114 |
modify the software they run, aren't going to be needing such drastic |
115 |
compatibility measures as those without. (It's for that reason that the |
116 |
entire debate is mostly an intellectual exercise, for me, as I personally |
117 |
come down far closer to the freedom end of things, than, say, those |
118 |
willing to run even proprietary video drivers and games, let alone entire |
119 |
proprietary OSs, and most of the apps on them.) |
120 |
|
121 |
So... I'm /definitely/ of the opinion that multilib is worthwhile. I |
122 |
think multibin /could///would/ have been as well, were the momentum for it |
123 |
at the same level as multilib is today. However, I think most will agree |
124 |
that it's definitely rather late to start worrying about multibin at this |
125 |
point, however nice it /might/ have been to have it. |
126 |
|
127 |
IOW, as a practical matter, I don't see multilib disappearing from sight |
128 |
any time soon. If anything, its importance is likely to increase |
129 |
DRAMATICALLY over the next few years (three at least), as the mainline x86 |
130 |
computing public switches over, bringing with them all that 32-bit |
131 |
binary-only cruft they'll invariably have. That is, after all, one of the |
132 |
big reasons x86_64 has become the success it has, even in the face of |
133 |
Intel's pushing ia64 as the "preferred" alternative. By 2008, |
134 |
multilib importance may begin to decrease, tho I don't see it |
135 |
dropping to something that can really be ignored (unless deliberately so), |
136 |
until 2010 at the earliest. |
137 |
|
138 |
Then again, what's this "Joe Blow" know? =8^) |
139 |
|
140 |
-- |
141 |
Duncan - List replies preferred. No HTML msgs. |
142 |
"Every nonfree program has a lord, a master -- |
143 |
and if you use the program, he is your master." Richard Stallman in |
144 |
http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html |
145 |
|
146 |
|
147 |
-- |
148 |
gentoo-amd64@g.o mailing list |