550 likes | 663 Views
Thomas Krichel 2008-11 -23. LIS651 lecture 5 origins of wotan direct use of wotan. Early Computing History. In the 1940s and 1950s, all computers were personal computers in the sense that a user would sign up to use the machine and then take over the whole machine for that period.
E N D
Thomas Krichel 2008-11-23 LIS651 lecture 5origins of wotan direct use of wotan
Early Computing History • In the 1940s and 1950s, all computers were personal computers in the sense that a user would sign up to use the machine and then take over the whole machine for that period. • The early 1960s were dominated by batch systems in which a user would submit a job on punched cards and wait, usually hours, before any printed output appeared.
Early Computing History • To get around this unproductive environment, the concept of timesharing was invented by Dartmouth College and M.I.T. • The M.I.T system CTSS (Compatible Time Sharing System) was an enormous success. • M.I.T., Bell Labs, and General Electric created a second generation timesharing system named MULTICS (Multiplexed Information and Computing Service).
Early UNIX History • At Bell Labs, Ken Thompson decided to write a stripped down version of MULTICS for the very small PDP-7 minicomputer which he called UNICS. • Dennis Ritchie, also at Bell Labs, joined Thompson in further developments of what was now called UNIX. • Together they ported the system the the larger and very popular PDP-11/20 and PDP-11/45 minicomputers.
Early UNIX History • In 1974, Ritchie and Thompson published a paper about UNIX and received the prestigious ACM Turing Award. • This publication stimulated many universities to request a copies of UNIX. • Since Bell Labs, part of AT&T, was not allowed to be in the computer business, it licensed UNIX to universities. • Result: UNIX was a hit on campus.
UNIX Structure • Thekernel is the core of the UNIX system, controlling the system hardware and performing various low-level functions. The other parts of the UNIX system, as well as user programs, call on the kernel to perform services for them. • The shell is the command interpreter for the UNIX system. The shell accepts user commands and is responsible for seeing that they are carried out.
BSD UNIX • One of the many universities that had received license for UNIX was the University of California at Berkeley. • Aided by many government grants, Berkeley released an improved version named 1BSD (First Berkeley Software Distribution) • BSD added many new features including a new visual editor (vi) and a new shell (csh).
Two UNIX Versions • Because of these and other enhancements, many companies based their UNIX on Berkeley’s version as opposed to AT&T’s so-called System V. • By the late 1980s, two different and somewhat incompatible versions of UNIX were in widespread use: 4.3 BSD and System V release 3.
UNIX Standards • In addition, every vendor added its own nonstandard enhancements. • In an attempt to unify the troops, the IEEE Standards Board undertook the POSIX Project (POS for Portable Operating System) and IX to make it UNIX like. • POSIX 1003.1 emerged as a common ground standard. • 1003.1 is the intersection of System V and BSD. (a feature had to be on both to be included in the standard)
GNU • GNU is a project started by Richard M. Stallman (RMS) to write a completely free implementation of Unix available. • GNU stands for “GNU is not Unix” • Most of Unix has been rewritten by him and his friends. • Many other software packages have been released for free. Stallman pioneered a particular concept of free software.
free software according to RMS • Free software comes with four freedoms • The freedom to run the software, for any purpose • The freedom to study how the program works, and adapt it to your needs • The freedom to redistribute copies so you can help your neighbor • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits
the GNU public license • Richard M. Stallman created the GNU public license. • The license restricts the right of software users to add restrictions on the use of derivative products. • The idea is that when you get free software, you can not restrict the freedom of users of derivative software.
UNIX-like Systems • MINIX, by Andrew Tanenbaum, used a microkernel design with only 1600 lines of C and 800 lines of assembler in its first version. • In 1991, a Finnish student named Linus Torvalds released another UNIX clone named Linux. It is a UNIX kernel for Intel processors. • FreeBSD is a competitor to Linux, started in 1993.
Linux • Linux is a monolithic UNIX kernel. • Linux quickly grew in size and functionality. • Version 1, shipped in 1994, contained about 165,000 lines of code. • Version 2 in 1996 contained about 470,00 lines of C and 8000 lines of assembler. • Linux is released under the GNU public license, which, very basically means that anyone can copy and change it.
Linux Distributions • Linux itself is free. It is aggregated with installation and management tools, and many other software packages, and made available for a small fee by various vendors on CD. • These aggregates are known as distributions. • The one used by wotan is called Debian. It packages Linux with GNU software almost excusively.
communication with wotan • For file editing and manipulation, we use putty. • For file transfer, we use winscp. • Both are available on the web. • The protocol is ssh, the secure shell, based public-key cryptography.
installing putty • Go to your favorite search engine to search for putty. • If you have administrator rights install the installer version. • Since you have already installed winscp, you should have no further problems.
putty options • In the window/translation choose UTF-8, always. • Find out what the size of your screen is of screen that your are using for the font that you are using, and save that in your session. • For wotan, the port is 22, ssh. • You can choose to disable the annoying bell.
Diffie and Hellman (1978) • Let P be the plaintext, C be the cyphertext. E() is the encryption key and D() is the decryption key. • Then we have public key cryptography if • 1. D(E(P))=P • 2. D() can not be broken by chosen plaintext attack. • 3. Knowing E() will give you no clue about D(). • E() can then be made public and is referred to as the public key, D() is the private key. • It is possible to find key pairs that have these properties.
Authentication • I want to securely login to a host machine. • I send the hast an encrypted message ``hey, I am Thomas, my public key is 7ni820g=0...'' • Machine then knows how to send me messages that other people can not decode. • But it can not be sure that it was me who sent the message. An intruder may have done that since me public key is public. • This problem is solved by challenge/response
challenge/response • To find out if I am the person that I claim to be, the machine encodes a random number, and challenges me to decode that number. • If I can decode the challenge, I must be the person whom I claim I am.
key creation • “ssh-keygen” is the command to use to create a key. Answer all questions with the <ENTER> key. • “cd .ssh” and “ls -l” shows you the contents of the directory .ssh created in the first step. • The file “id_rsa.pub” has your public key.
authorized_keys • In .ssh, you can maintain a file “authorized_keys” that contains the public keys of all users you authorize to access the account, one line per user. • “cp id_rsa.pub authorized_keys” will authorize yourself. Then “ssh user@wotan” will allow you to login again as you on wotan. • You can also create a public key with putty.
issuing commands • While you are logged in, you talk to the computer by issuing commands. • Your commands are read by command line interpreter. • The command line interpreter is called a shell. • You are using the Bourne Again Shell, bash.
bash features • bash allows to browse the command history with the up/down arrow keys. • bash allows to edit commands with the left/right arrow keys. • You can complete command and file names with <TAB>. • bash comes with a language of commands that allows to write batch files. • “exit” is the command to leave the shell.
environment variables • These are variables used by the shell. • Two important ones are • $HOME your home directory • $PATH the location where bash will search for executable files. • echo $HOME will show you your home directory. • “env” is a command that can be used to see all environment variables.
environment variables and PHP • All environment variables can be accessed with $_ENV{'env'} in PHP, where env in the name of the environment variable. • Example $home=$_ENV{'HOME'}; print "my home is $home.</br>";
bash initialization • Files that start with a dot are hidden. They are only seen with “ls -a”. • .bashrc is a file written in bash language that is run every time bash is started. • .bash_profile or .profile is run when the shell is started at login. • You can customize these files.
files, directories and links • Files are continuous chunks data on disks that are required for software applications. • Directories are files that contain other files. Microsoft calls them folders. • In UNIX, the directory separator is “/” • The top directory is “/” on its own.
home directory • When you first log in to wotan you are placed in your home directory /home/username • “cd” is the command that gets you back to the home directory. • The home directory is also abbreviated as “~“ • cd ~user gets you to the home of user user. • “cd ~” does what?
~/public_html • Is your web directory. I created it with “mkdir public_html” in your home directory. • The web server on wotan will map requests to http://wotan.liu.edu/~user to show the file ~user/public_html/index.html • The web server will map requests to http://wotan.liu.edu/~user/file to show the file ~user/public_html/file • The server will do this by virtue of a configuration option.
changing directory, listing files • cd directory changes into the directory directory • the current directory is “.” • its parent directory is “..” • ls lists files
users and groups • “root” is the user name of the superuser. • The superuser has all privileges. • There are other physical users, i.e. persons using the machine • There are users that are virtual, usually created to run a daemon. For example, the web sever in run by a user www-data. • Arbitrary users can be put together in groups.
reason to run things on wotan • When your run PHP files as a web user, the web server runs the PHP file. • The web server runs as a special user, often called www-data. • This user is not allowed to create files. • Since file creation and manipulation is the essence of digital librarianship, we need to run directly on the machine.
permission model • Permission of files are given • to the owner of the file • to the group of the file • and to the rest of the world • A group is a grouping of users. Unix allows to define any number of groups and make users a member of it. • The rest of the world are all other users who have access to the system. That includes www-data!
listing files • “ls” lists files • “ls -l” make a long listing. It contains • elementary type and permissions (see next slide) • owner • group • size • date • name
first element in ls -l • Type indicator • d means directory • l means link • - means ordinary file • 3 letters for permission of owner • 3 letters for permission of group • 3 letters for permission of rest of the world • r means read, w means write, x means execute • Directories need to be executable to get in them.
change permission: chmod • usage: chmod permission file • file is a file • permission is three numbers, first for owner, 2nd for group and 3rd rest of the world. • Each number is sum of • 4 for read - 2 for write • 1 for execute - 0 for no permission • Example: chmod 764 file
general structure of commands • commandname –flag --option • Where commandname is a name of a command • flag can be a letter • Several letters set several flags at the same time • An option can also be expressed with - - and a word, this is more user-friendly than flags.
example command: ls • ls lists files • ls -l makes a long listing • ls -a lists all files, not only regular files but some hidden files as well • all files that start with a dot are hidden • ls -la lists all files is long listing • ls --all is the same as ls -a. --all is known as a long listing.
copying and removing files • cp file copyfile copies file file to file copyfile. If copyfile is a directory, it copies into the directory. • mv file movedfile moves file file to file movedfile. If movedfile is a directory, it moves into the directory. • rm file removes file,there is no recycling bin!!
directories and files • mkdir directory makes a directory • rmdir directory removes an empty directory • rm -r directory removes a directory and all its files • more file • Pages contents of file, no way back • less file • Pages contents of file, “u” to go back, “q” to quit
soft links • A link is a file that contain the address of another file. Microsoft call it a shortcut. • A soft link can be created with the command • ln -s file link_to_file where file is a file that is already there and link_to_file is the link.
file transfer • You can use winscp to upload and download files to wotan. • If uploaded files in the web directory remain invisible, that is most likely a problem with permission. Refer back to permissions. • chmod 644 * will put it right for the files • chmod 755 . (yes with a dot) will put it right for the current directory • * is a wildcard for all files. • rm -r * is a command to avoid.
editing • There are a plethora of editors available. • For the neophyte, nano works best. • nano file edits the file file. • nano -w switches off line wrapping. • nano shows the commands available at the bottom of the screen. Note that ^letter, where letter is a letter, means pressing CONTROL and the letter letter at the same time.
emacs • This is another editor that is incredibly rich and complex. • Written by Richard M. Stallman, of GNU and GPL fame. • Get an emacs cheat sheet of the web before you start it. Or look at next slide.
emacs commands (here ^ stands for the control character) • ^x^s saves buffer • ^x^c exits emacs • ^g escapes out of a troublesome situation • control+space sets the mark • ^w removes until the mark (cut) • ^y pastes
common emacs/bash commands • ^k kills until the end of the line or removes empty line • ^y yank what has been killed (paste) • ^a get to the beginning of the line • ^e get to the end of the line • These commands also work in the shell.
emacs modes • Just like people get into different moods, emacs gets into different modes. • One mode that will split your pants is the PHP mode. • “emacs file.php” to edit the file file.php in PHP mode. • Then look how emacs checks for completion of parenthesis, braces, brackets, and the ; and use the tab character to indent.
copy and paste • Putty allows to copy and paste text between windows and wotan. • On the windows machine, it uses the windows approach to copy and paste • On wotan machine, • you copy by highlighting with the mouse’ left button • you paste using the middle button • if you don't have a middle button, use left and right together