Linux-Misc Digest #735, Volume #20 Tue, 22 Jun 99 03:13:09 EDT
Contents:
PPP problems (Egg J. LeFume)
Re: Newbie question about source code (Frederic L. W. Meunier)
Re: Run in background (mlw)
Re: GCC Compiler - RH 6.0 (Peter Rodriguez)
Re: open systems?!? Re: Why does Apple not cooperate with Be? ("William Edward
Woody")
----------------------------------------------------------------------------
From: [EMAIL PROTECTED] (Egg J. LeFume)
Crossposted-To: comp.os.linux
Subject: PPP problems
Reply-To: [EMAIL PROTECTED]
Date: Tue, 22 Jun 1999 05:21:32 GMT
Hi.
I have a few misc. problems/questions, and I'm wondering if
anybody can help. I'm running Redhat 6.0 (after upgrading from 5.1), with
the kernel recompiled (primarily for proper ftape support).
First, I want to configure pppd so that it disconnects after a
certain idle time. I have "idle 600" in both .ppprc in my home directory,
and in /etc/ppp/options, but it has no effect. I use wmppp to start and
stop my connection. wmppp runs
/sbin/ifup /etc/sysconfig/network-scripts/ifcfg-ppp1-sunlink2 and
/sbin/ifdown /etc/sysconfig/network-scripts/ifcfg-ppp1-sunlink2 .
I'm not sure if those are the best commands to run, though.
Second, every now and then, I'm unable to close my PPP connection
in any way other than rebooting; he ifdown command (called from wmppp)
won't work, killing the pppd process won't work, deleting
/var/lock/LCK..modem does nothing, I can't echo to /dev/modem from the
shell. Only a reboot will close the connection (Yes, this is an internal
modem I'll get an external when I can afford it.) Here's a portion of
my /var/log/messages. Apparently, the problem starts right after the
connection...
Jun 21 15:02:45 sunlink chat[2679]: PPP session from (199.234.175.4) to
199.234.
175.129 beginning....~
Jun 21 15:02:45 sunlink chat[2679]: -- got it
Jun 21 15:02:45 sunlink chat[2679]: send (^M)
Jun 21 15:02:45 sunlink pppd[2677]: Serial connection established.
Jun 21 15:02:45 sunlink pppd[2677]: Using interface ppp0
Jun 21 15:02:45 sunlink pppd[2677]: Connect: ppp0 <--> /dev/modem
Jun 21 15:02:48 sunlink modprobe: can't locate module ppp-compress-21
Jun 21 15:02:48 sunlink modprobe: can't locate module ppp-compress-26
Jun 21 15:02:48 sunlink modprobe: can't locate module ppp-compress-24
Jun 21 15:02:48 sunlink pppd[2677]: local IP address 199.234.175.129
Jun 21 15:02:48 sunlink pppd[2677]: remote IP address 199.234.175.4
Jun 21 15:02:48 sunlink PAM_pwdb[2686]: (su) session opened for user egg
by (uid
=0)
Jun 21 15:02:48 sunlink PAM_pwdb[2686]: (su) session closed for user egg
Jun 21 15:02:48 sunlink PAM_pwdb[2701]: (su) session opened for user egg
by (uid
=0)
Jun 21 15:02:48 sunlink PAM_pwdb[2701]: (su) session closed for user egg
Jun 21 15:02:48 sunlink PAM_pwdb[2717]: (su) session opened for user egg
by (uid
=0)
Jun 21 15:02:48 sunlink PAM_pwdb[2717]: (su) session closed for user egg
Jun 21 15:02:52 sunlink ifup-ppp: pppd started for ppp1 on /dev/modem at
57600
Jun 21 15:02:52 sunlink pppd[2766]: pppd 2.3.7 started by root, uid 0
Jun 21 15:02:52 sunlink pppd[2766]: Device modem is locked by pid 2677
Jun 21 15:02:52 sunlink pppd[2766]: Exit.
Jun 21 15:02:54 sunlink identd[2772]: Connection from localhost
Jun 21 15:02:54 sunlink identd[2772]: from: 127.0.0.1 ( localhost ) for:
1458, 2
5
Jun 21 15:03:22 sunlink ifup-ppp: pppd started for ppp1 on /dev/modem at
57600
Jun 21 15:03:23 sunlink pppd[2817]: pppd 2.3.7 started by root, uid 0
Jun 21 15:03:23 sunlink pppd[2817]: Device modem is locked by pid 2677
Jun 21 15:03:23 sunlink pppd[2817]: Exit.
Jun 21 15:03:53 sunlink ifup-ppp: pppd started for ppp1 on /dev/modem at
57600
Jun 21 15:03:55 sunlink pppd[2825]: pppd 2.3.7 started by root, uid 0
Jun 21 15:03:55 sunlink pppd[2825]: Device modem is locked by pid 2677
Jun 21 15:03:55 sunlink pppd[2825]: Exit.
Jun 21 15:04:25 sunlink ifup-ppp: pppd started for ppp1 on /dev/modem at
57600
Jun 21 15:04:25 sunlink pppd[2831]: pppd 2.3.7 started by root, uid 0
Jun 21 15:04:25 sunlink pppd[2831]: Device modem is locked by pid 2677
Jun 21 15:04:25 sunlink pppd[2831]: Exit.
Jun 21 15:04:55 sunlink ifup-ppp: pppd started for ppp1 on /dev/modem at
57600
Jun 21 15:04:55 sunlink pppd[2837]: pppd 2.3.7 started by root, uid 0
Jun 21 15:04:55 sunlink pppd[2837]: Device modem is locked by pid 2677
Jun 21 15:04:55 sunlink pppd[2837]: Exit.
etc. ad nauseum, ad infinitum. This goes on through the entire PPP
session. Any advice?
Lastly (for now); trn is my newsreader of preference. Does
anynody know if there's a way to access a server that requires a password
using trn?
I'd appreciate any help with these. Thanks.
Jamie Kufrovich
--
Egg, [EMAIL PROTECTED]
FMS3amr A- C- H+ M+ P+++ R+ T Z+ Sp#
RL->CT a cu++ e++ f h+ iw+ j p- sm#
------------------------------
From: Frederic L. W. Meunier <[EMAIL PROTECTED]>
Subject: Re: Newbie question about source code
Date: 22 Jun 1999 05:10:34 GMT
If they're not doing that, they're violating the GNU cat(1) copyright.
This matters because this particular copyright is the brilliant invention
that enables the Linux phenomenon.
---
They DO that. But sometimes you buy a non official cd (like from cheapbytes) and
they don't include the SRPMS.
--
+------------------------------------------------------------------------+
|Frederic L. W. Meunier running Linux marseille 2.2.9 |
|Contact - mailto:[EMAIL PROTECTED] or [EMAIL PROTECTED]|
|Tel: +55-21-620-7173 (Brazil) Site: http://olympiquedemarseille.org/ |
|IRC: uptime!pedophile@* | This tagline is for the idiot who say WHAT? |
|Frames, Javascript, mail with HTML, Spam and the idiot -> /dev/null |
------------------------------
From: mlw <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.development.apps,comp.os.linux.development.system
Subject: Re: Run in background
Date: Tue, 22 Jun 1999 05:31:42 +0000
vineet wrote:
>
> How do I make my C program to run in background after getting initialised.
> I mean that the program should detach from the terminal and should run in
> background like a daemon.
super simple.
endlessloop(int argc, char **argv)
{
// Do something creative.
}
main(int argc, char **argv)
{
if(!fork())
{
endlessloop(argc, argv);
}
}
--
Mohawk Software
Windows 95, Windows NT, UNIX, Linux. Applications, drivers, support.
Visit http://www.mohawksoft.com
------------------------------
Date: Tue, 22 Jun 1999 17:31:09 +1200
From: Peter Rodriguez <[EMAIL PROTECTED]>
Subject: Re: GCC Compiler - RH 6.0
Floyd Davidson wrote:
> Jon Skeet <[EMAIL PROTECTED]> wrote:
> >[EMAIL PROTECTED] wrote:
> >> I am running RedHat 6.0. I am also trying to learn a bit about C
> >> programming. When I try to compile - "gcc -g -ofilename filename.c", I
> >> get the error messages as follows:-
> >>
> >> /usr/bin/ld: cannot open crt1.o: No such file or directory
> >> collect2: ld returned 1 exit status
> >>
> >> I don't recall having this trouble with RH 5.2
> >
> >I've seen problems with gcc recently too, on various systems. Using egcs
> >to do the linking seemed to solve my problems though...
>
> If you run gcc with the -v option it will tell you a great deal
> about what it is doing. For example, the command
>
> gcc -v -o foo foo.o
>
> produces output like this (with line wraps indicated by a '\'
> character added at the end),
>
> tanana:floyd /home/floyd/tst >gcc -v -g foo.o -o foo
> Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2.3/specs
> gcc version 2.7.2.3
> ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.1 -o foo \
> /usr/lib/crt1.o \
> /usr/lib/crti.o \
> /usr/lib/gcc-lib/i486-linux/2.7.2.3/crtbegin.o \
> -L/usr/lib/gcc-lib/i486-linux/2.7.2.3 \
> -L/usr/i486-linux/lib \
> foo.o -lgcc -lc -lgcc \
> /usr/lib/gcc-lib/i486-linux/2.7.2.3/crtend.o
> /usr/lib/crtn.o
>
> That shows my gcc is finding crt1.o in the /usr/lib directory.
> A quick look with ls -l shows it is owned by root and has
> permissions for any user to read it. So... su to root and
> change that to allow only root to read it, and run the same gcc
> command as above... and we get,
>
> tanana:floyd ~/tst >gcc -v -g foo.o -o foo
> Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2.3/specs
> gcc version 2.7.2.3
> ld -m elf_i386 -dynamic-linker /lib/ld-linux.so.1 -o foo \
> crt1.o \
> /usr/lib/crti.o \
> /usr/lib/gcc-lib/i486-linux/2.7.2.3/crtbegin.o \
> -L/usr/lib/gcc-lib/i486-linux/2.7.2.3 \
> -L/usr/i486-linux/lib foo.o \
> -lgcc -lc -lgcc \
> /usr/lib/gcc-lib/i486-linux/2.7.2.3/crtend.o \
> /usr/lib/crtn.o
> ld: cannot open crt1.o: No such file or directory
>
> Hmmm... if /usr/lib/crt1.o is not readable for the user
> executing gcc, that is exactly the error message which appears.
>
> One might expect to find that your /usr/lib/crt1.o file is
> either missing or does not have the correct permissions. If you
> find that it is there, su to root and do
>
> chmod 644 /usr/lib/crt1.o
>
> and all should be fine. If it is not there at all you might use
> find to see if it is somewhere else, as root do,
>
> find / -name crt1.o -print
>
> One thing which is not clear from the above is that there are other
> directories where it could be and ld will find it, for example it
> could also be in directory /lib and all would be just as well.
>
> Where ever you find it, move it to /usr/lib and do
>
> chmod 644 /usr/lib/crt1.o
>
> to give it correct permission.
>
> If you can't find it, download the distribution if necessary,
> and reinstall it.
>
> Floyd
>
> --
> Floyd L. Davidson [EMAIL PROTECTED]
> Ukpeagvik (Barrow, Alaska) [EMAIL PROTECTED]
> North Slope images: <http://www.ptialaska.net/~floyd>
Thanks very much for the pointers. Of course, as usual, I didn't do a decent
search before shooting off my mouth. I found crt1.so located in
/usr/i386-glibc20-linux/lib. Also I found stdio.h located in
/usr/i386-glibc20-linux/include. I assume the new directories are a feature
of RH 6.0.
Although I was a bit hasty, I can't help thinking it would help if
distributors would at least make sure that things like egcs and gcc know
where to find important files like these when they have been re-located. In
light of your posting, do you suggest that I should move all the files in
these new directories to /usr/lib and /usr/include or use symlinks?
I am very much a beginner as far as programming is concerned and would
appreciate your advice.
--
Peter Rodriguez
136, Kolmar Road, Papatoetoe
Auckland, NEW ZEALAND
------------------------------
From: "William Edward Woody" <[EMAIL PROTECTED]>
Crossposted-To: comp.sys.mac.programmer.misc,comp.sys.be.misc,comp.unix.misc
Subject: Re: open systems?!? Re: Why does Apple not cooperate with Be?
Date: Mon, 21 Jun 1999 11:31:51 -0700
Lawrence D�Oliveiro <[EMAIL PROTECTED]> wrote in message...
> "William Edward Woody" <[EMAIL PROTECTED]> wrote:
> >The recent innovation I was refering to, by the way, is the
> >Microsoft "HAL" layer (Hardware Abstraction Layer) which Apple
> >recently adopted for the MacOS.
>
> Hmm, your Microsoft fixation seems to extend to believing that Microsoft
> introduced something first when it didn't.
*sigh*
There are several ways to abstract hardware. You can abstract out
common features in a device-driver like scheme, such as used in
operating systems going back to the very beginning of time. Device
drivers sit as "extensions" to the operating system, either
compiled in (a'la early versions of Unix), or loaded in on the
fly (a'la the MacOS), or installed using more complex methods.
You can also factor out differences in a processor by trapping
instructions--that's been around since the PDP-series systems
from Digital (I believe), and has been used extensively by
VAXen as well as some PowerPC-based Mac systems.
What I'm refering to with the HAL layer is the notion that you
create a software abstraction underlying the operating system
which factors out a number of common operations. (The difference
is that the little block diagram sits just above the hardware
under the OS, rather than alongside like device drivers so.)
The reason why I refer to Microsoft in this case is that
it is with Microsoft I first heard of a HAL abstraction.
I don't believe Microsoft was the first--though they are
the first OS vendor who has had the need to factor out the
various hardware differences between a wide line of computer
hardware systems manufactured by a wide variety of personal
computer manufacturers. (Most OS vendors, including Apple,
Digital, Data General, IBM and the like have had the sense
to link their OS to a line of hardware architectures they
could control.)
But please, just because I try to give examples that I
am familiar with instead of pulling things out of my ass,
don't accuse me of things like having a "Microsoft fixation."
> Consider that, say, 10 years ago, MacOS was allowing identical
> applications to run on a greater variety of different hardware
> configurations than MS-DOS could manage at the same time: you had Mac
> models with different CPUs, different graphics displays, completely
> different bus architectures, a whole range of different printers,
> different network interfaces, differing numbers of serial ports--just
> about everything could be in some way different. If that's not hardware
> abstraction, then what is?
The difference is that 10 years ago Apple controlled the
way those architectures were hung together, while Microsoft
couldn't. Ten years ago you had the Macintosh models (Mac 128K,
Mac 512K, Mac Plus, Mac 512Ke (which was a stripped down Mac+),
and then the Macintosh II models (including the II and IIx).
Architecturally they have similar interrupt models, similar
CPUs, and while the bus architectures were different, they were
similar enough from a software development standpoint. (The
differences were factored out by Motorola's CPU bus management
hardware.)
So while different device drivers (such as printer managers
and the like) were required to support different devices,
by and large the operating system could sit directly on the
metal and control the hardware directly.
Windows, on the other hand, has always had the problem of
supporting widely varied CPU configurations from different
hardware manufacturers. And while different CPU hardware
combinations may be buggy or differ in things like the
interrupt structure or CPU types (the difference between
an 80286 and an 80386 **FAR** greater than the differences
between an 68000 and a 68020), people would blaim Windows
if the whole mess crashed.
With Windows NT, Microsoft introduced a "HAL", or abstraction
layer, which would isolate the operating system from the
metal--in effect, a chunk of code which sat between the
OS and the metal which took care of things like how
interrupt vectors are interpreted or other low level
differences in the hardware.
The difference is that the Windows NT OS no longer talks
directly to the metal.
Again, I'm not engaged in some sort of "Microsoft is
superior"--and given Microsoft's track record, I'd be
supprised if they were the first. However, they are the
first company **I** have heard of which does this--and
they do it out of necessity.
> >> >But really: is a GIF file definition part of an OS? JPEG definition?
> >> >RIFF? TIFF? HTML?
> >> >
> >> >No.
> >>
> >> Yes! ...
> >
> >So Linux running anything earlier than X v11R5 isn't an operating
> >system? Sheesh.
>
> That proves my point. Linux is primarily useful as a server operating
> system, ...
Huh?
It proves your point that without these things, Linux is an operating
system?
Geez, make up your friggin' mind!
> ...running a relatively small number of dedicated applications such
> as Apache, BIND and the like. It's actually quite difficult to use in a
> general-purpose desktop platform, precisely because it is lacking so many
> things we take for granted in a modern operating system.
No, it's difficult to use because it doesn't have a reasonable
user interface.
The core assumption you are making here, that an operating system
isn't a "real" operating system unless it has a usable user
interface is factually incorrect. And besides, if we take up the
issue of "usability", I would argue that Microsoft Windows 98 is
not a "real" operating system because using it for more than
two hours for doing more than answering e-mail gives me a headache...
> >> >> * To minimize reinvention of code for common application tasks.
> >> >
> >> >No; this is what a library (shared library, static library) is
> >> >for.
> >>
> >> And what is an operating system, if not built out of a bunch of
libraries?
> >
> >BWWWWWAAAAAHHHHH!!! HA! HA! HA! HA! HA! HA! HA! *snort*
> >
> >Thanks, I needed a stupid rhetorical question.
> >
> >Get yourself a copy of Linux and poke around in it a while.
> >One of the things you'll notice is that the actual operating
> >system itself is a small kernel which does very little beyond
> >arbitrating between processes and providing a device driver
> >and file system abstraction.
>
> Linux does seem to be the last rallying point of the traditionalists,
> doesn't it?
If by "traditionalist" you are accusing me of being "old school",
and not reinventing terms to fit the fad of the week, I thank
you. (Paraphrasing:) "Inconsistancy in terminology has always been
the hobgoblin of small minds everywhere."
(Yeah, yeah, I know, it's really "consistancy is the hobgoblin..."
but I couldn't help myself. A sign of a liberal arts training is
that words only mean what you "feel like" they mean--which is great
for social science but lousy for computer science.)
In this case, however, I am using Linux not because it's some
sort of "last rallying point"--I'm not a fan of Unix as a
consumer operating system. But it does demonstrate through it's
bare bones minimalism the "least common factor", if you will,
of what defines an operating system.
Further, by taking a minimialist interpretation of what an
operating system is, it is a good "left turn" in the thinking
of most computer programmers about how to structure a
consumer-oriented operating system. Too bad most programmers
think that an OS is some sort of "swiss army knife"--a catchall
which should include everything including the kitchen sink and
that PBJ dispenser I talked about before. By taking a step
back and taking a more minimialist interpretation, you can
often get farther than by taking the "kitchen sink" metaphore.
> >Other operating systems that have been floating around there
> >even abstract the file system out into a separate process
> >which can be replaced by another application, albeit a rather
> >low-level "magical" application.
>
> Yes, I know. I used VAX/VMS for several years, with its F11BACP
> ("FILES-11B Ancillary Control Process") and MTAAACP (ANSI magtape manager
> process). Then they found that having a separate process was incurring too
> much context-switching overhead, so the filesystem manager process was
> replaced with a resident kernel module called the "XQP" ("eXtended QIO
> Processor", where QIO stands for "Queue I/O", the main system service call
> for making all I/O requests).
The problem has also been faced with Mach, and was solved by them
by permitting chunks of memory to be remapped into another process
for IPC.
> The only holdout left is UNIX, which still insists that X Windows is a
> good architecture for graphics. So I find that launching Netscape on a
> 600MHz DEC Alpha requires a full 10 seconds before a window even appears.
> A slow, elderly Mac can do better than that!
That's because X uses TCP/IP (!) for IPC. Portable, but not exactly
the fastest thing around. There are much better IPC models than
TCP/IP.
> Also, the Amiga was accessing the entire operating system through
> procedure calls, without traps, back in 1985 I think it was.
Yeah, a model they later replaced with a jump table because programmers
were finding they were having to relink their code each time Amiga
released a new version of their OS.
> An operating system is there to serve the needs of users and application
> developers, not they to serve it. The pressing computing problems of today
> are not the pressing computer problems of yesterday. ...
Translation: the fads of today define what is and is not an
operating system, not the fads of yesterday.
I don't buy it.
> Regardless of the pros and cons of the Microsoft case, I think it'll be a
> sad day when the definition of "operating system" has to be officially
> laid down by a court verdict, and discussions such as ours could be
> construed as contempt of court!
Unfortunately, the DOJ case against Microsoft will do this. Just wait...
> I don't see that the factoring would have made any difference. The main
> barrier to reentrancy in the current MacOS is the Memory Manager, and I
> gather the main cause of that is the fact that it supports "handles"
> (relocatable memory blocks) as well as conventional "pointers". (It can be
> difficult to perform a memory operation at interrupt level when a
> non-interrupt-level call is busy moving a large memory block around.)
> You'll note that a number of more recent additions to the MacOS have
> brought along their own memory-management layers to get around this (eg
> Open Transport, QuickDraw GX).
Yes, the current Macintosh memory manager is not re-entrant. But it's
failure to be re-entrant is due to the fact that memory is inherently
a shared resource, and multiple access to a shared resource must be
serialized somehow. That the Macintosh supports handles is not really
a barrier to serializing memory manager access. The only thing that
would have to go is heap compaction in a single application with
an environment that supports pre-emptive multithreading applications.
This would work around the problem of having one thread trigger
heap compaction (and handle movement) when another thread is access
memory in an unlocked handle.
What is the problem with the MacOS API as it currently stands is
QuickDraw--that's because unlike the file, memory, or resource
manager, QuickDraw (and everything built on top of QuickDraw,
including the Window, Control, and Dialog managers) use implied
global states to represent the current drawing state of the world.
(An example: two threads try to draw a line. The first thread
calls MoveTo(x,y), the second, MoveTo(x2,y2). The first thread
then calls LineTo(a,b)--but because the QuickDraw drawing state
is global, the MoveTo is from (x2,y2), and not from (x,y),
screwing up the line.)
I've mentioned one way to solve this in another thread--basically
it involves having "thread global" memory, that is, memory that
is global to a single task tread. Then you would create an
implied "graphics context" in each thread. The bottleneck routines
pass messages to a global resource (a separate process or a
privileged shared library) which actually handles the drawing,
switching graphics contexts as needed.
> As for proneness to crashing, in my experience _all_ current computer
> platforms, whether protected, preemptive or not, are prone to crashes. ...
*shrug* Of course. Reminds me of the time a VAX managed by a
friend of mine crashed hard (taking the campus mail down with
it) because his girlfriend lifted up the line he was using to
dial into the VAX. He had to drive into the campus to reboot
the machine.
> Memory protection and preemption don't seem to make much difference, other
> things being equal. I have had MacOS servers run happily for months at a
> time, and I have seen desktop UNIX machines that crashed several times a
> week.
Memory protection and preemption do help--but they are only tools,
and help as much as the programmers let them. What helps a lot more
is having separate memory spaces for different processes--memory
belong to a second application is simply not accessable by the
first, and so if the first application goes off into the weeds,
the second is more likely (note: only "more likely") not to toast
as well.
When I write software, I use a cross-platform library I wrote to
build it simultaneously on the Mac and on Windows NT. I like the
Mac because it's easier to use and easier for me to get my fuzzy
little brain around. But cross-compiling it on NT helps me find
pointer bugs which would be nearly impossible to find on the Mac.
Different platforms have their strenghts, and I've found that NT
is a lot easier to debug memory problems because of it's memory
protection.
> I once thought that, if we could ban C programming, and force people to
> use even a marginally more modern language like Modula-2, we could do more
> to improve system reliability than all the memory-protection and
> preemption mechanisms in the world.
*snigger*
The fundamental problem is that all of these systems are built
by people. And no matter how many programming constraints you
place on them, people are flawed, error prone, and likely to
screw up. Switching the world to Modula-2 will only cause folks
like me who have been writing in C for 15 years now a lot of
headaches.
> >And if developers would stop thinking that we have to include
> >an HTML browser as part of "modern operating systems", we'll
> >stop getting abominations like Windows 98's file/internet
> >browser.
>
> I haven't used Wind98 much, so I can't comment on that feature. ...
It bites really hard, trust me. Nothing like the security and usefulness
of having your hard disk files represented as as web page that can
be browsed from anywhere on the 'net.
> More than that, it becomes easy, for example, to add your home page URL to
> the about box in your application. When the user clicks on the link, you
> just call the ICLaunchURL routine, and again, the full page appears in
> their preferred Web browser. ...
Yes, but that's not HTML parsing. That's a standard for communicating
a URL to existing web browsers. It's a useful feature (I've used it
a few times), but not a required feature for an operating system.
I guess where we diverge is that I'm defining what minimally has
to be in an operating system for it to be an operating system,
instead of a program loader (such as MS-DOS, or TRS-DOS on the
TRS-80). There are a number of additional features that are
obviously necessary to be in the same box--and I suspect HTML
parsing is one of those nifty features that will make it into
the OS box someday. But just because there are features that make
life pleasant, doesn't mean they have to be in the operating
system.
An example of this: Apple's Help system. There is no need for
the help system, no matter how cool it is, to be integrated
at a kernel level into the MacOS software. Yet the engineer
who worked on Apple Help commented how nifty cool it was that
he was assigned a 68K 'A' trap for his software!
Wrong mentality.
> I will point out one thing: the pace of change may now be slowing
> somewhat. Macs have always had a longer life than Intel machines, but even
> an old 133MHz Pentium is not a piece of scrap now: it can actually still
> do useful work, as the software developers are running out of ways to use
> up all the CPU power. We may not see an immediate end to the
> disenfranchisement of the computer-poor, but we could be seeing a
> reduction in some of its more egregious inequities.
Never tried running Windows 98 on a 75MHz Pentium?
Nah; the only useful operating system that I have seen run on
a 75MHz Pentium is, um, ah, Linux. (That's what you get when
you hit our web page at http://www.pandawave.com: a 75MHz
Pentium running Slackware Linux 3.5 on an ADSL connection.)
And why is it Linux runs well on a 75MHz Pentium while Windows 98
doesn't?
Because the more processing power a programmer has, the less
efficient he can be with his algorithms. Hell, I've seen
programmers use "insert sort" (an O(N**2) algorithm) in
order to sort a list of several hundred names because on his
400MHz PowerPC based Mac, it runs instantaneously. Of course
he was perplexed when he got field reports that his software
ran like crap in the field where users were still using
7100/66's...
Windows 98 is an excellent case of programmers who had the
latest and greatest being sloppy and using inefficient
algorithms because they could. And even on my (2 years ago
state of the art) 200MHz Pentium II PC, Windows 98 is a
bit sssssllllllooooooowwwwww. Heck, WinNT4 (which is what
I'm using to write this note) is more responsive, in part
because it was designed to run on the aformentioned 75MHz
Pentium.
And don't get me started on the innards of the COM IDispatch
code--that chunk of code is so inefficient that in the
same amount of time it takes to do a transition from an
application to a COM object through IDispatch, you could
have calculated PI to a hundred digits of precision...
Needless to say, I'm working on YAAF right now, and even
though I use a 400MHz Blue & White G3 for development,
I intend to use a 25MHz 68040-based Quadra 700 for
testing. Just to make sure I haven't made any stupid
mistakes, like using an insert sort when I could have
used C's qsort() routine instead...
- Bill Woody
The PandaWave
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list (and comp.os.linux.misc) via:
Internet: [EMAIL PROTECTED]
Linux may be obtained via one of these FTP sites:
ftp.funet.fi pub/Linux
tsx-11.mit.edu pub/linux
sunsite.unc.edu pub/Linux
End of Linux-Misc Digest
******************************