500 likes | 516 Views
Explore the early history of computing, from personal computers in the 1940s to the development of timesharing and the birth of UNIX. Discover the impact and evolution of UNIX, including its versions and the emergence of Linux as a competitor. Learn about the GNU project and the concept of free software.
E N D
Thomas Krichel 2006-04-29 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. • Also, at that time, the PDP-11 series was the workhorse of most computer science departments. • Result: UNIX was a hit on campus.
Early UNIX History • In Version 6, the source code of UNIX was 8200 lines of C and 900 lines of assembler. • The first portable version arrived with Version 7 which had 18,800 lines of C and 2100 lines of assembler. • By the 1980s the use of UNIX was widespread with many vendors selling their own versions based on Version 7.
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)
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 version 0.01. It is a UNIX kernel. It is considered to belong to the System V tradition of Unix. • 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.
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. • Debian has over 20,000 packages.
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
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.
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 my software can decode the challenge, I must be the person whom I claim I am. • My software and the host will agree on a session key to use to encrypt all communication. • Thus the communication is encoded using simple cryptography because that is less intensive.
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.
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 • “exit” is the command to leave the shell.
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.
permission model • Permission of files are given • to the owner of the file • to the 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 • permisson is three numbers, for owner, group and rest of the world. • Each number is sum of elementary numbers • 4 is read • 2 is write • 1 is excute • 0 means 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 characher) • ^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
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 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
creating a PHP file • To run PHP, edit a file with a name ending in .php (not required, but useful). Make the first lines. #!/usr/bin/php <?php /* PHP code goes here */ ?> • The first line less Unix that it has to use PHP to run this file. The correct path to the PHP executable has to be given.
running a PHP file • You must chmod it executable by you, e.g. chmod 755 my_file.php • where my_file.php is the name of the PHP file. • Then you can run. But you have to give it the full path. ./my_file.php
running mySQL • You can run mySQL in command line mode in wotan. Type mysql -u user -p • You will then be prompted for your password. The username and password are your mySQL user name and mySQL password, not your wotan user name and wotan password. • Don’t forget the semicolon after each command!
Thank you for your attention! Please switch off machines b4 leaving! http://openlib.org/home/krichel