Computer education

From: David C. Jenner <djenner_at_halcyon.com>
Date: Sat Mar 6 17:11:17 1999

The idea of "layers of abstraction" is common in several aspects
of computer hardware and software. If you have, or can get, a copy
of "Structured Computer Organization" by Andrew S. Tanenbaum
(especially the older 1st or 2nd editions for classic computer
enthusiasts!) you'll see why. Tanenbaum's "Operating Systems, Design
and Implementation" (the Minix book) is OS software oriented, and
most networking books, like Rich Stevens's TCP/IP books, also use
"layers", whether "officially" defined or not.

The essence of layers is that, if well-defined, a layer needs to
know only about the layer immediately below it and provide interfaces
to the layer immediately above it. You can construct a complex system
out of stacked layers, each layer of which is easily understandable,
because you abstract out only the aspects of the system necessary for
each layer. Furthermore, in the case of networking, if you carefully
define what is going on in each layer, equivalent layers can be operating
in completely different system, but understanding other such layers
in other systems.

I think what you are saying about a PDP-8 emulator is that it's a good
idea to have some experience with each layer. Some people may not
want to get down to the very low levels into the hardware, and not
everybody has to.

Take a look at Chapter 1 in Structured Computer Organization, and you'll
see that layers can help you understand a computer, whether networking
or not. Should you learn first that there are lots of layers, each with
a virtual machine, in a computer system before you tackle any layer?
Or should you get some experience with one or more layers before you
can understand that layers even exist? It's probably a matter of personal
preference and the way you learn best.

Dave

P.S. Structured Computer Organization discusses these real systems:

Ed Year Computers OSes Languages
1st 1976 IBM 370, CDC Cyber, DEC PDP-11 (IBM, DEC, Multics) PL/1
2nd 1984 IBM 370, Zilog Z80, MC68000 UNIX, CP/M Pascal
3rd 1990 Intel x86, MC 680xx, UNIX, OS/2 (Assembly)
             RISC (SPARC, MIPS)
4th 1999 Intel x86, SPARC UNIX, Windows NT Java

I don't have the 4th edition yet (~$90) so I might be a bit off on the
description, and the 1st edition ($12 used) is just as good to get started.


Max Eskin wrote:
>
> Hi folks,
> Today was the first day of my free networking course at school, at the end
> of which I will have received a certificate 'n stuff...anyway, the guy was
> trying to explain layered protocol stacks, and data abstraction. It
> occured to me that the concepts have no meaning outside the realm of
> developing the protocols or applications that use these protocols. And
> it's almost impossible to explain without referring to these realms. The
> guy was telling us how 'everything in the computer is in binary' but you
> need additional network layers 'because Word can't understand the binary
> and needs it to be translated'. At this time, I was thinking about my
> recent experiences with the PDP-8. I wonder, wouldn't it make everything
> so much easier if every computer in schools had a PDP-8 emulator on it,
> and students had to learn to make simple programs in PAL before learning
> concepts like the OSI 7-layer model, etc? Because, it was obvious that
> the guy was being forced to avoid saying the word 'function' or
> 'subroutine' since people didn't know what it meant....
>
> --Max Eskin (max82_at_surfree.com)
Received on Sat Mar 06 1999 - 17:11:17 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:32:19 BST