What kind of things would you want in the GNU OS
rroba.DlosLV at xerox.com
rroba.DlosLV at xerox.com
Sat Jun 10 16:29:06 AEST 1989
In response to an earlier posting, in which I said:
> Three things that should not be in an efficient OS:
> 1) virtual memory
> 2) symbolic links
> 3) long file names (BSD directories)
Bob Cherry says, "This list is extremely application dependant. " I
agree. My purpose in posting these comments is to point out that what is
appropriate for some applications is poison to others.
Bob goes on to say, "Virtual Memory: VMem is quite useful especially in
CAD tools and high volume/resolution graphics. On multi-user systems it
becomes unrealistic to keep gigabytes of RAM around in order to perform
high volume graphics. " Again, I agree. My own background has been
principally in embedded systems, in which 1) data throughput is the measure
of success, and 2) system RAM requirements are pre-determinable. In this
environment, VM is not needed and imposes an execution cost that I would
rather not pay.
Then he says, "Eliminating VMem eliminates the ability to operate a wide
range of applications and/or programming environments." This is a good
point. But, in the environments that I work in, the applications that will
be run on a particular system are known and fixed; so that this is not a
concern. Throughput, however, is still a concern.
"Symbolic Links: These links are extremely useful when a third party
application requires that it be run from a specific directory. If the
particular directory is in its own disk partition and if that partition
does not have adequate free space to install or operate, a link may be used
to map the actual directory to the desired directory." This is a
description of a situation (partitioned drive) that was created by either
the user or the (auto-installation program of the) OS distributor (i.e. Sun
Microsystems). On multi-user systems, partitioning a drive facilitates the
creation of secure backups from online file systems (because the partitions
can be individually umounted and dumped). Partitioning a drive, however,
always has a negative impact on file system throughput (through increased
seek time), and should not be done on single-user or embedded systems. The
exception is single-drive VM systems, in which the swap device should be
located somewhere in the middle of the drive, in order to minimize the
impact of VM on file system performance. But, even here, my opinion is
that VM systems should never be single-drive.
Next, Bob echoes my own opinions, "Inode mapping is more efficient and Unix
offers the ability to make both hard and soft links. Hard links do not
impact disk access as much as soft links do." But then, he says, "If a
user doesn't make symbolic links to his environment, there should be no
impact on the operation of the OS." The problem is that most symbolic
links are not created by the user (God knows I wouldn't make one, if I had
a choice), but are distributed with the OS. Although in the GNU case, if
the system is distributed as source without any assumptions about file
system partitioning, my arguments will be moot; this is a major cause of
poor file system performance in SunOS (for the 386i).
"Long Filenames: I do not see any impact on an OS by allowing long names. "
My objection is not against long filenames, in general, as much as it is
against the structure of BSD directories in particular. The complicated
system of counts and offsets that must be traversed in a BSD directory must
consume much more cpu time than the relatively simple structure of AT&T's
directories (I am aware that AT&T, sadly, will adopt BSD's directory
structure in the 'unified UNIX'). I am not concerned about the time
required to extract a long name from a BSD directory, as opposed to
extracting a short name from a BSD directory. I am concerned about the
time that it takes to extract the inode number of the nth entry in a BSD
directory.
More information about the Comp.unix.wizards
mailing list