Questions about windows support

H. S. Teoh hsteoh at quickfur.ath.cx
Tue Feb 21 12:05:35 PST 2012


On Tue, Feb 21, 2012 at 01:48:35PM -0500, Nick Sabalausky wrote:
[...]
> Another issue with it is that to make a binary work on both an older
> and newer Linux, you have to actually compile it *on* an older Linux.
> I've heard that, in theory, you can use a newer Linux to create
> binaries that work on older systems, but in practice, nobody actually
> knows how.

Oh, there are ways to do that, sure.

You can always make a chroot and install an old version in it, then do
your compilation there. Disadvantage: it's a major pain to move files
back and forth and get the compiler to be installed properly in the
chroot. You can't (easily) just build everything in your source tree,
since the build has to be run under the chroot.

Or you could build a cross-compiler and fiddle with gcc path settings to
coax it to link to old libraries instead. Or if you're brave, build a
multi-target compiler. But you still have to deal with coaxing the
linker to find older libs instead of new ones. This is arcane black
magic that will explode in your face if you don't know what you're
doing, unfortunately.


[...]
> Eeeww. I had no idea the shell did the expansion. That's just awful.

Awful in some ways, powerful in others. Shell expansion allows you to do
stuff like:

	mv myfilena{e,}me.ext

to correct a misspelt filename, for example.

But shell expansion also forces you to write \\\\0000 instead of \00, so
I can't say with a straight face that it's definitely a good thing.

Me, I personally wished that instead of shoving all that functionality
into the shell, they would've just provided a library that did these
standard things so that programs could use them as needed.

IIRC, glob() was originally only implemented in the shell; it was only
later that it actually became a library usable by other programs.


[...]
> Maybe I don't understand the way the package/dep managers work well
> enough, but it always seemed bad to me that you can't do:
> 
> $sudo apt-get install [url to an apt-compatible package]

If you filed a bug on bugs.debian.org and ask nicely, somebody may
implement that for you.  :)


> Or whatever the yum equivalent would be.
> 
> Erm, at least, I don't *think* you can...Maybe I'm wrong? In any case,
> having to mess with the sources list sucks.

For isolated packages I find online, I usually just do this:

	wget http://server.com/path/to/package.deb
	dpkg -i package.deb

Mission accomplished.

Well, provided there are no nasty dependencies. :) If there are, there's
currently no choice but to edit /etc/apt/sources.list.


> Linux is definitely groing on me more and more, but you're right, it
> does have it's quirks.
[...]

The thing is, the *concepts* behind the OS are rock solid, but the
implementation suffers from decades of historical accidents that led to
a working but sometimes quite counterintuitive system. For example, what
on earth does "grep" mean anyway?! (Yes I know what it means. I'm just
saying, it's a totally stupid name for that utility.) And "cat"? It that
supposed to meow? And what on earth does "etc" stand for anyway, and
what has it gotta do with configuration files?!

Or my favorite syscall, creat(). Apparently in the old days there was
only one E on the keyboard. Oh wait... :P

There are also little flaws inherited from decades-old conventions that
nobody dares break, lest existing code fail in new and mysterious ways.
Or not-so-mysterious ways, like if you redesign the terminal protocol to
be more in line with modern computing.

But whine as I may, I still love my Linux systems, both at home and at
work. I know how to sing to their tune and make them dance. Whereas
Windows just stares at me with a blue face.


T

-- 
Only boring people get bored. -- JM


More information about the Digitalmars-d mailing list