Embedded Systems GroupIIT Delhi Slide 1 Orientation for fresh VDTT Students Introduction to UNIX...

34
Embedded Systems Group IIT Delhi S l i d e 1 Orientation for fresh VDTT Students Introduction to UNIX July 28, 2001 Anup Gangwar

Transcript of Embedded Systems GroupIIT Delhi Slide 1 Orientation for fresh VDTT Students Introduction to UNIX...

Embedded Systems Group IIT Delhi

Slid

e 1

Orientation for fresh VDTT Students

Introduction to UNIX

July 28, 2001

Anup Gangwar

Embedded Systems Group IIT Delhi

Slid

e 2

Overview

• Prerequisites and goals of this course• Differences between UNIX and Windows• Overview of unices• Basic UNIX commands and utilities• Lunch Break• File editors in UNIX• Programming and Shell Scripting• Document formatting using UNIX• References and further study• Thank You

Embedded Systems Group IIT Delhi

Slid

e 3

Prerequisites and Goals

• What you should know– Basic familiarity with computers

– Working Knowledge of atleast one operating system

– A will to learn

• What you will know– This is not a complete UNIX tutorial

– Don’t try to learn the whole UNIX in one day

– How to do the most common set of tasks with UNIX

– Self-Help is the best help

– Pointers for further information

Embedded Systems Group IIT Delhi

Slid

e 4

Differences: UNIX and Windows

• The UNIX and Windows philosophies• Client-Server model of Computation• Multi-User and Multi-Tasking. Login?• Concept of the Kernel and User Shell• Concept of file ownership and groups• GUI on UNIX and X windows• Tips:

– UNIX is the most used OS in scientific and industrial community– Instead of avoiding UNIX take it heads on– Learning UNIX now will help you save precious time later on

Embedded Systems Group IIT Delhi

Slid

e 5

Overview of Unices-1

• The ?original? UNIX• The AT&T SVR and BSD• Others: HP-UX, Solaris, Linux, AIX, IRIX etc.• Why are there so many unices? Vendor Wars!• How do I understand all of them? POSIX!• Tips:

– Learn the common set of commands for all the unices– Linux utilities will contain enhancements not found in others– Try to clear trivial doubts like command syntax yourself

Embedded Systems Group IIT Delhi

Slid

e 6

Overview of Unices-2

• HP-UX– Processors: HP PA-RISC and Intel Itanium– Vendors: HP– Markets: High End Servers and Workstations

• Solaris/SunOS– Processors: Sun Ultra Sparc– Vendors: Sun Microsystems– Markets: All ranges of Servers and Workstations

Embedded Systems Group IIT Delhi

Slid

e 7

Overview of Unices-3

• Linux/GNU Systems– Processors: Intel 386 and up, Sun Ultra Sparc, IBM

PowerPC etc.– Vendors: Free/GNU GPL– Markets: Low End Servers and Workstations

• AIX (Advanced UNIX)– Processors: IBM Power PC– Vendors: IBM– Markets: All ranges of Servers and Workstations

Embedded Systems Group IIT Delhi

Slid

e 8

Overview of Unices-4

• IRIX– Processors: MIPS– Vendors: SGI (Silicon Graphics International)– Markets: High End Graphics Servers and Workstations

• Others– BeOS, FreeBSD etc.– RTOS’s: PSoS, QNX, RTEMS, ?RTLinux? etc.

Embedded Systems Group IIT Delhi

Slid

e 9

What we have • Philips VLSI Design Lab

– HP Server running HP-UX– Sun Workstation– Linux Workstations

• VDTT Lab– Linux Workstations– Windows NT Workstations

• New VLSI Lab– Sun Workstations– Windows NT Workstations

Embedded Systems Group IIT Delhi

Slid

e 1

0

Basic UNIX Commands and Utilities-1

• Files and Directories– File Types: Windows and UNIX– File and Directory creation (Editors, mkdir, ln etc.)– Listing contents of a directory (ls)– File and Directory deletion (rmdir, rm etc.)– File and Directory permissions (chmod)– File and Directory ownership (chown, chgrp)– Organizing your work in directories (mv)

• Tips:– UNIX doesn’t have a recycle bin!– Try not to make the mistake of rm -rf * command

Embedded Systems Group IIT Delhi

Slid

e 1

1

Basic UNIX Commands and Utilities-2

• Managing your account– What is meant by managing your account?– Concept of setup files– Why are there so many different Shells?– Environment variables– .bashrc and .cshrc files– Customizing your environment with .bashrc and .cshrc files– Example: The TERM environment variable and stty– Tips:

• Try an environment variable on command-line first

• Always set the PATH variable properly

Embedded Systems Group IIT Delhi

Slid

e 1

2

Basic UNIX Commands and Utilities-3• Remote process execution

– Why do we need remote process execution?– Telnet and rlogin– Remote execution of graphics programs

• X-Security, granting permissions and colormap

• The DISPLAY environment variable

– dot-rhosts (.rhosts), xon– Moving files between computers: FTP (?anonymous? FTP login)– Tips:

• Graphics performance suffers in remote graphics execution

• xhost+ is the worst thing to do!

• Ncftp is a better ftp client than the vanilla default UNIX ftp

Embedded Systems Group IIT Delhi

Slid

e 1

3

Basic UNIX Commands and Utilities-4

• Taking printouts– Concept of network and local printers– Printer languages: Postscript and PCL– GhostView and Acroread programs– Spooling, Deleting and Checking a printer job– Duplex printing and mpage

• Taking backups– Tarring, zipping, gzipping and compressing– Comparison with winzip and common filename extensions

• Tips:– Do not issue the command tar -cvf <file-name> *– Acroread just might be a better program to open pdf files

Embedded Systems Group IIT Delhi

Slid

e 1

4

Basic UNIX Commands and Utilities-5• Miscellaneous stuff

– Forcing a process in background (&, fg, bg)– Setting aliases– Online manual pages, man– Concept of NIS and NFS– Changing password, passwd (?yppasswd?)– Searching for patterns, grep and regular expressions

– Working with files with special characters in names

– The file utility

– finger, who and rwho

– ps and kill

– Mail and mail clients, netscape, pine, emacs and mail

– startx, .Xclients and .xinitrc files

• Tips:– Instead of asking someone try man -k– It is a good practice to stick to one shell (csh is available on all)

Embedded Systems Group IIT Delhi

Slid

e 1

5

Lunch Break

Embedded Systems Group IIT Delhi

Slid

e 1

6

Editors in UNIX-1

• What all is available, Vi, Emacs, Pico, Joe?, Nedit?• Vi: The king of all editors? Tutorial?

– Why learn vi?– Getting in and out?– Basic keys for editing

• Moving around, deleting, joining lines

• Repeating commands

• Search and replace

– Tips:• Vim is not Vi

• Learn the keypad scroll key combinations instead of arrow keys

• Vi is fast, try to make the best use of its capabilities

Embedded Systems Group IIT Delhi

Slid

e 1

7

Editors in UNIX-2

• Emacs: Much more than an editor?– Why learn Emacs? History, Tutorial– Getting in and out?– Basic keys for editing

• Moving around, deleting a line

• Search and replace

• Formatted text, postscript spooling

• mail in emacs

– Syntax highlighting and templates– Tips:

• Emacs recognizes 20+ languages out of the box

• Emacs is slow

• Emacs is not available by default on all unices

Embedded Systems Group IIT Delhi

Slid

e 1

8

Editors in UNIX-3

• Pico: Is there really a need?– Pico and Pine– Editor Keys

• Joe?, Nedit?– Keys similar to Norton Editor– Nedit has some features similar to Emacs

• Tips:– Don’t fall for Pico or Nedit– Learn Vi and Emacs if you really want to get into UNIX– In the end it is a matter of choice

Embedded Systems Group IIT Delhi

Slid

e 1

9

Programming on UNIX-1

• Is programming on UNIX tough? What all is available?• Concept of IDE and differences with TurboC++• Compilers, Linkers, Debuggers and front-ends• Managing big projects: make and comparison with TC

project file• Example of a simple makefile• GUI development on UNIX• Java• Tips:

– UNIX is a programmers paradise

Embedded Systems Group IIT Delhi

Slid

e 2

0

Programming on UNIX-2

• Gcc, The GNU C/C++ compiler– Simplest possible way to use: gcc <file-name>– Common options

• output filename: -o

• compile only: -c

• Warnings: -Wall

• optimizations: -O{1,2,3,4}

• Debug: -g

• Linking: -l<library-name>

– Tips:• Not every UNIX systems will have gcc

• Turning on optimization makes the compilation slow

• Debugging and optimizing donot go together

Embedded Systems Group IIT Delhi

Slid

e 2

1

Programming on UNIX-3

• Ld, The Linker– What exactly are libraries?– Shared and static libraries– Is there a need to call Ld explicitly?– Passing options to Ld from gcc

• The -l option

• The -L option

• The LD_LIBRARY_PATH environment variable

• The LD_RUN_PATH environment variable

– Tips:• Always check the Ld on the system, HP-UX doesn’t use GNU Ld

• Environment variables are different with non GNU Ld

Embedded Systems Group IIT Delhi

Slid

e 2

2

Programming on UNIX-4

• Gdb, The GNU C/C++ debugger– Why is a debugger needed?– gdb and ?core? File– Common commands

• list

• run, break, resume

• backtrace and where

– Tips:• Using gdb directly might be tedious

• Try the various front-ends to gdb: emacs, xxgdb, mxgdb etc.

• Not every system will have gdb, you just might have to use ?dbx?

Embedded Systems Group IIT Delhi

Slid

e 2

3

Programming on UNIX-5

• Gmake or GNU make• What is the need for a Makefile?

– Dependencies– Targets in a makefile– Patterns in makefile– Automatic variables in a makefile– Pattern substitution– Common target names: all, clean, docs

• Tips: – Never forget the TAB – Make is language independent!

Embedded Systems Group IIT Delhi

Slid

e 2

4

Programming on UNIX-6

• Example of a makefileCC=gcc

COPTS= -g -Wall

TARGET=run.x

SRCS=hello.c junk.c

OBJS=$(SRCS:.c=.o)

all:$(OBJS)

$(CC) $(COPTS) $(OBJS) -o $(TARGET)

clean:

rm -f $(OBJS) core

%.o:%.c

$(CC) $(COPTS) -c $<

Embedded Systems Group IIT Delhi

Slid

e 2

5

Programming on UNIX-7

• GUI in UNIX?– Differences with TurboC++– Vanilla X windows programming, why not?– TCL/Tk– Widget libraries

• Motif

• GTK

• QT, etc.

– Tips:• Always provide a command line interface to your programs

• Using a GUI is slow

Embedded Systems Group IIT Delhi

Slid

e 2

6

Programming on UNIX-8

• Java– What is really different with the windows version?– Is Jfc, Java2D, Java3D available?– IDE’s for Java over UNIX?

• Tips:– Don’t try to use a %.class dependency with make– If you run Java from a server, graphics would be slow

Embedded Systems Group IIT Delhi

Slid

e 2

7

Introduction to Shell Programming-1

• What is the need for shell programming?• Bourne shell (sh, ksh, zsh and bash)• c shell (csh, tcsh)• Examples of shell programming

– Moving all a.{i}.txt files to a.{i+1}.txt– Cleaning up your directory at the end of a day

• Tips: – Perl just might be a better option– Don’t forget ?sed? and ?awk?

Embedded Systems Group IIT Delhi

Slid

e 2

8

Introduction to Shell Programming-2

• Moving files script #!/bin/sh -f

FILE_LIST=`ls | grep "\.[0-9]\." `

for CURR_FILE in $FILE_LIST; do

FIRST_NM=`echo $CURR_FILE | cut -d'.' -f1`

NUM=`echo $CURR_FILE | cut -d'.' -f2 `

SECOND_NM=`echo $CURR_FILE | cut -d'.' -f3`

NUM_PLUS=`expr $NUM + 1 `

mv -i $CURR_FILE $FIRST_NM.$NUM_PLUS.$SECOND_NM

done

Embedded Systems Group IIT Delhi

Slid

e 2

9

Introduction to Shell Programming-3

• Cleanup directory script#!/bin/csh -f

# Assume that ps, pdf etc. directories are present

set FILE_LIST=`ls`

foreach CURR_FILE ( $FILE_LIST )

set TST=`echo $CURR_FILE | grep \.pdf\$ `

if( $TST != "" ) then

mv $CURR_FILE pdf

endif

set TST=`echo $CURR_FILE | grep \.ps\$ `

if( $TST != "" ) then

mv $CURR_FILE ps

endif

end

Embedded Systems Group IIT Delhi

Slid

e 3

0

Text formatting using UNIX-1

• What is the need for text formatting?• WYSWYG or NOT?• LaTeX & Emacs PS renderer• LaTeX WYSWYG front-end Lyx• Other text formatters: ?troff?• How to make Presentations? Slides?• Tips:

– PowerPoint is still the best software for making presentations

– It is easy to convert PowerPoint slides to html

Embedded Systems Group IIT Delhi

Slid

e 3

1

Text formatting using UNIX-2

• LaTeX– origin: LaTeX and TeX– usage– LaTeX tutorials and manuals

• A not so short introduction to LaTeX

• The LaTeX manual

• LaTeX by Lesslie Lamport

• Lyx a WYSWIG interface to LaTeX• Emacs ps-renderer and troff• Tips:

– For small formatted text Emacs is still the best

Embedded Systems Group IIT Delhi

Slid

e 3

2

Before wrapping up

Any questions/doubts which you would like to clarify?

Embedded Systems Group IIT Delhi

Slid

e 3

3

Wrapping up

• Self help is the best help!– The UNIX man pages. ?Manual sections?– Using man, whatis etc.– Experiment. You can never kill the system.

• Links– http://www.gnu.org, for GNU tools and manuals– http://sunsite.unc.edu, world’s largest collection of free software– http://upavan.cse.iitd.ernet.in, Philips Lab. internal page– http://poorvi.cse.iitd.ernet.in/local, Intel cluster archives

• Books– The UNIX programming environment, Kernighan & Pike

Embedded Systems Group IIT Delhi

Slid

e 3

4

Thank You