[svlug] What constitutes "Linux Basics"?

Mark S Bilk mark at cosmicpenguin.com
Thu Jan 17 08:37:02 PST 2002

In-Reply-To: <m2pu49u95w.fsf at komodo.home.wards.net>; 
from bill at wards.net on Wed, Jan 16, 2002 at 04:13:15PM -0800

On Wed, Jan 16, 2002 at 04:13:15PM -0800, William R Ward wrote:
>I may have an opportunity to give a one-hour talk on Linux Basics, and
>I've got some good ideas for what to include, but I'd like to get some
>input from folks on what they think is important.  

Here's an article I wrote on
"Combining GUI With CLI (Textmode), Plus The Midnight Commander"

RfxN7.14282$WC1.1705634 at newsread2.prod.itd.earthlink.net

I recommend the mc editor (mc -e) as the default editor
for beginners.  It's quite powerful (for a single-file 
editor) and very easy to learn.  mc as a file manager is 
also very useful, like XTREE for MSDOS, making it easier
to move around the directory structure, view files, etc.
After teaching ls, cd, cp, mv, rm, cat, show them mc.

Also, it's very helpful to explain to people in definite terms
how computers actually work.  This is so alien to beginners
that it has to be printed up for them, because they won't 
be able to remember it.  The topics have to be explained 
in order.  Always give one or more concrete examples for 
every topic.

bit - 0 or 1

byte - 8 bits -- 0 - 255

ASCII - byte representation of characters -- A = 65, Z = 90,
0 = 48, 9 = 57

file - sequence of bytes

kilo, mega, and giga

disk - metal platter in which bits are recorded as tiny
north/south or south/north magnetic marks in concentric
rings accessed by the moving head

RAM - randomly accessible bytes.  

data as file on disk and/or sequence of bytes in RAM

CPU - carries out instructions on the basis of a sequence
of numbers it takes from RAM.  Give an example instruction 
set for a single register architecture -- 0 = load, 
1 = store, 2 = add, 3 = subtract, 4 = jump, etc., each 
instruction having an instruction code followed by a 
memory address.

Take them through an example program that gets two numbers
from RAM, adds them, and puts the result in RAM
Show both the program and the data in RAM, and how
the instruction pointer (program counter) steps through
the program.

keyboard and textmode screen as connected to CPU and 
accessible via I/O instructions (get/put a byte to/from
CPU register)

take them through an example program that gets two single
digit numbers from the keyboard (as ASCII codes), 
converts them to numbers by subtracting the ASCII code
for '0', adds them, and puts the result in RAM and on
the screen (if it's one digit, by adding the ASCII code
for '0').

CPU can move a string of bytes between RAM and disk

program as file on disk, and also existing in RAM when
the program is invoked.  This is very important and 
must be understood clearly, lest people think, e.g.,
that they have to reinstall programs when they hang.

word processor program - key pressed, read by CPU,
displayed on screen, then stored in doc file 

operating system - program that runs all the time and
handles disk files and other I/O so application programs 
don't have to; also invokes programs

shell - program that user uses to communicate with OS
to invoke programs

installing and de-installing programs vs. invoking and
killing programs

All this takes only 30 - 60 minutes to teach.  You must
answer all questions, because this is alien territory.
It may take a few days of pondering the printed version
for people to understand it, but once they do, everything
else they have to learn, especially how to deal with 
error conditions, will be *much* easier for them.  They
will actually have meaningful, accurate concepts, rather
than doing things by rote.  

(Rote can lead to horrors like professors of English 
thinking that their documents are those little pictures 
on their desktop, and not even knowing that they have 
a hard disk, much less what they should be doing with it.  
Microsoft encourages this ignorance, since it makes 
users pliable and easier to victimize.)

More information about the svlug mailing list