by Martin Vermeer
(In this forward-looking editorial, Professor Vermeer
challenges us with the argument that the world would be a better
place if basic UNIX skills were made a required part of the
secondary school curriculum.–Editor)
UPDATE: Martin Vermeer adds the following
preface and also a postcript in answer to the hundreds of responses
he has received since publication.
“When I speak about Unix, of course I do mean Linux (any
modern distribution, and *BSD). For several reasons: It’s cheap and
runs on cheap hardware, it’s the most “personal” of the Unixes —
with such niceties as powerful package management and graphic
desktop environments –, and, in spite of the lack of use of the
trademark, it is the de-facto Unix standard and the only
one with long term credibility. And yes, those desktop environments
should be installed and the student allowed to play with them, if
only to dispel the myth of their non-existence; but not much more.
Precious teaching time should concentrate on
fundamentals.”–Martin Vermeer, December 24, 1998
Most people that come
into contact with computers for the first time do so through
Microsoft Windows. This experience is so pervasive, that commonly
people don’t even distinguish between the computer and the
operating system that invariably comes pre-installed on it: They
use a “PC” and expect software to be compatible “with their PC”.
Meaning some version of Windows, of course.
The philosophy underlying the Windows design is that of “making
computing safe for illiteracy”. Everybody should be able to use a
computer with no or little training. While Windows is not the first
system of this kind, it is currently the only such one in practice,
and commercially massively successful.
An entirely opposite philosophy is that underlying the Unix
operating system. This system has a tradition going back many
decades and was written for and by highly literate people to use
themselves. Unix is a general purpose operating system; there is
nothing that it will not do for you, but mastering it demands a
learning effort. The origin of Unix is in technical and scientific
computation, where it continues to be the favorite of demanding
users and developers. And for the record, Unix does have
an excellent graphical user interface — even several to choose
from — they are just not mandatory.
Let me mention some highlights of Unix history. The C
programming language, originally designed for writing Unix as a
portable (hardware independent) operating system, is currently used
everywhere, also in the windows world, for writing both
systems and application software. The Internet (tcp/ip) became
popular as a Unix network, and Unix networking is still
best-of-breed today . The World Wide Web started out as a means for
high energy physicists to communicate their results in illustrated
form. Over half the world’s WWW servers run Unix, and most email at
some point in its path is forwarded by Unix Sendmail. Unix BIND is
the nameserver software allowing the Internet to understand legible
adresses. Chat (IRC) was developed in Oulu, Finland, just a couple
of years before the Moscow coup attempt, the failure of which it
arguably helped precipitate.
With such a track record, one understands why Unix is the
undisputed favorite in scientific research and education. This
applies even more today, when free, but high quality versions of
Unix such as Linux and FreeBSD are available for ordinary PCs. The
“freedom” of these systems refers more to their openness, in the
form of availability of source code, than to their price tag.
Nothing in these systems is hidden, nothing serves the agenda of a
commercial provider. This connects in a completely natural way with
the traditions of openness and peer review in the publishing of
scientific results, and that of hands-on training in the
I want to argue that an effective way of promoting true computer
literacy would be to make Unix basics part of the curriculum… for
everybody. This is in my considered opinion justifiable in
today’s world as an essential element of literacy, just like
everyone is required to learn basic arithmetic, in spite of the
existence of pocket calculators, in order to get a “feel” for
numbers and what they do, and especially also for when numerical
results obtained are patently absurd.
The basics to be taught — presumably on the secondary school
level — would include: using vi (probably the only modal editor
anybody will ever see!), using the command line, file system
directory structure, mounting, finding and understanding
configuration files, writing simple programs (such as “hello
world”) in C, shell or perl, regular expressions, basic networking
(ping, traceroute etc), ftp, email, usenet, mark-up languages,
overview of the way standards are created, e.g., in the Internet
Engineering Task Force, and other essentials.
You may notice that these are precisely the “tough” things you
will never learn by just clicking around, but which kids will pick
up almost in play if made to — after all, this is nothing but
language learning. Few people would ever learn Spanish or Russian
if not in school! And some of these skills will be immediately
useful, like “regular expressions”, that will immediately give a
better basic understanding of how to effectively use search engines
on the World Wide Web. Or mark-up languages such as HTML/XML,
offering a glimpse of a better world in which documents can be
freely transferred, without risk of illegibility, to someone using
an ever-so slightly different system — or even to yourself, after
a system upgrade.
One argument must immediately be put to sleep: that because
Windows is the dominant operating system in the world today, one
should teach that and not some esoteric alternative. The answer to
this is plain and simple. The task of education is to instill
generalist abilities and not the skill of “operating” one
product. Someone who has acquired the skill of reading books will
easily absorb also comic strips, but the reverse is not true…
similarly, someone versed in Unix will feel right at home in many
other environments including Windows. And for children, learning
Unix is not that hard, as experience has shown, due perhaps to its
internal consistency and logic.
One reason for the high initial success of the Soviet space
programme was their high proportion of engineers in decision-making
positions. The recent economic successes of Germany and Japan have
a similar basis. A country where there are more lawyers than
engineers (and perhaps relatedly, more prison inmates than
students) cannot expect to have a technological future. It would be
a good start on the road to techno-social maturity to give the
MBA’s and law men of the future at least a basic IT literacy.
Currently in Mexico, a project is underway to provide 140,000
schools with Linux based computer networks. In France, the Ministry
of Education has taken steps as well in support of Linux. These are
inspiring examples worth studying and following.
Please consider this option for the future of your country and
for a better and more literate world.
Relevant reading matter:
Martin Vermeer is a research
professor and department head at the Finnish Geodetic Institute, as
well as “docent” (probably something like assistant prof.?) at
Helsinki University, Department of Geophysics. He uses Linux both
at work and at home.
POSTSCRIPT: December 23, 1998 by Martin
Little did I expect that my contribution, posted as an editorial
in the pages of Linux Today, would elicit such a response. Besides
the comments here, 300+ comments were posted to Slashdot… yes,
publishing on the Web really is publishing. And taking
In the coming days I will work on answering the emails that were
sent to me (a dozen up till now) but here already some comments of
mine to some of the comments posted. Christmas holidays come in
- In order to stimulate debate, I formulated my argument
intentionally polemic and perhaps somewhat sharply. This seems to
have been a success 😉 In fact, I am not entirely sure how
precisely the use of Linux for computer literacy education should
be given form, especially not in an American high school
environment, with which I have no familiarity. The situation will
undoubtedly differ from country to country.
- To make my point again, and hopefully clearer: With teaching
“Unix basics” I really mean basics, on the conceptual
level, not syntactic idiosyncrasies or, e.g., the detailed contents
of /etc/fstab. Concretely, I would not even expect the students to
write a term paper in vi/LaTeX. The reason for vi (=vim) rather
than emacs or nedit is: vi is so different (and yes, it sucks :).
If you want to learn languages, choose English and a language
completely unrelated to English. That way you learn something about
- I’m not against GUI’s and this should not be (only) a GUI vs
CLI argument. In fact, I use Netscape — starting it with “netscape
slashdot.org” in an xterm — and LyX — a graphical front-end to
LaTeX — and for mail, exmh, a graphical front-end to the
command-line mail tool mh. (Do you see a pattern there? I thought
so!) With great interest and admiration am I following the
KDE/Gnome development. We need this stuff, to allow beginners a
soft landing and give them something visibly useful immediately.
But the command line, shell, text screen (or xterm) and text files
stuff still is the underbelly to look at for the “wiring”.
- My reference to “more lawyers than engineers…” was unwise,
given that I have no ready reference for this. I believe it’s
generally known however, as well as (to economists) its stifling
effect on technological innovation. The thing about prison inmates
vs. students applied to California, and comes from a TV documentary
shown some time ago here in Finland. I’m sure there are other
countries whom the shoe fits too. I’m sorry, again no reference
Thanks again to all of you for participating in debating this