week six agenda

45

Upload: kisha

Post on 24-Feb-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Week Six Agenda. Announcements Link of the week Review week four lab assignment This week’s expected outcomes Next lab assignment Review midterm exam Break-out problems Upcoming deadlines Lab assistance, questions and answers. Link of the week. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Week Six Agenda
Page 2: Week Six Agenda

Week Six Agenda• Announcements• Link of the week• Review week four lab assignment• This week’s expected outcomes• Next lab assignment• Review midterm exam• Break-out problems• Upcoming deadlines• Lab assistance, questions and answers

Page 3: Week Six Agenda

Link of the week http://www.cert.org/homeusers/HomeComputerSecurity/

This Wed site provides useful information on how to secure your home computer, things you ought to know, and what should be done to secure a home computer.

http://www.thefreecountry.com/perlscripts/index.shtmlFree Perl and CGI scriptsPerl is dual licensed under both the Artistic License and the GNU General Public Licenses. Distributions are available for most operating systems.

Page 4: Week Six Agenda

Link of the weekWhy do we love Perl?The Perl Programming Language currently has 21,000

Comprehensive Perl Archive (CPAN) modules.The CPAN has over 18,000 open source modules

available for download.Perl is a highly capable, feature-rich programming

language with over 23 years of development. Parts of the Perl language are still actively being

pursued. Perl has over 300 local community groups.Perl 6 is a sister language, part of the Perl family.

Page 5: Week Six Agenda

Link of the week• Definition: Trusted System is one that is

replied upon to a specific extent to enforce a specific security policy.

• Definition: Trusted Computing means that a computer will consistently behave in specific ways, and those behaviors will be enforced by hardware and software.

• Where are trusted systems utilized? Homeland security, law enforcement, and social control

Page 6: Week Six Agenda

Review week five lab assignment

test_build.shThis script is used to execute the make command which in turn will call the makefile.

test_build.sh -> make -> makefile

Page 7: Week Six Agenda

Review week five lab assignment

SourceFile

SourceFile

SourceFile

SourceFile

SourceFile

Object File

Object File

ObjectFile

Object File

ObjectFile

LinkerRuntimeLibrary

ExecutableProgram

Source/Object/Executable Drawing

Page 8: Week Six Agenda

Review week five lab assignmentDefine make command:

The make utility is a software engineering tool for managing and maintaining computer programs. Make provides most help when the program consists of many component files. As the number of files increase in a project, so to does the compile time, complexity of compilation. The likelihood of an error occurring with human(s) manageability is high.

Page 9: Week Six Agenda

Review week five lab assignment

Define the makefile: Make goes through the makefile (descriptor) file

first starting with the target it is going to create. Make looks at each of the target’s dependencies to see if they are listed as targets. It follows the chain of dependencies until it reaches the end of the chain and then begins backing out and executing the commands found in each target's rule. Actually every file in the chain may not need to be compiled. Make looks at the time stamp for each file in the chain and compiles from the point that is required to bring every file in the chain up to date. If any file is missing it is updated if possible.

Page 10: Week Six Agenda

Review week five lab assignmentMakefile Components• Comments within a makefile (#)• makefile continuation lines (\)• Rule tells make both when and how to make a

file• Dependency Line is a line with a colon (:) test_build.sh contains the make command

which calls the makefile. The test_build.sh script is located in the /tmp directory.

• Demonstrate makefile script under ~dandrear/temp (cs.franklin.edu)

Page 11: Week Six Agenda

Review week five lab assignment

Key Points about the makefile 1. Makefile recompiles all source files for an

entire project.2. Makefile recompiles only those files that

have different time stamps.3. Bottom up control flow.4. Rules are shell commands.

Page 12: Week Six Agenda

Review week five lab assignmentKey Points about the makefile The file names used in this example have been abbreviated

for simplicity. C++ compilations end in .cpp suffix.The .c suffix extension causes the C compiler to be

invoked.The .o suffix represents a object file.The .h suffix represents a header file.The g++ is a compiler, and not a preprocessor. The G++ builds object code from your C++ program

source.The –c option, compiles source to object code.The –o option, compiles object code.

Page 13: Week Six Agenda

Review week five lab assignmentOther software products that perform similar bundling operations

- ANT developed by Apache Jakarta- ANT2 supplied from the Free Software

Foundation which is part of Red Hat.

What is a dependency between source files?main.cpp employee.cpp address.cpp

What are the two parts of a dependency rule? 1) What files a file is dependent on

2) Rule that tells how to recompile the fileWhat are the differences between a makefile and a shell script?The rules in a makefile are executed based on dependency, and

not sequential order. Scripts execute in sequential order.

Page 14: Week Six Agenda

Review week five lab assignmentTarget : Dependencies (prerequisites)<tab> Rule prog: a.o b.o c.o g++ -o a.o b.o c.oa.o: prog.h a.c g++ –c prog.h a.cb.o: prog.h b.c g++ –c prog.h b.cc.o: c.c

g++ –c c.cc.c: c.y

g++ -c c.ymv y_table.c c.y

Page 15: Week Six Agenda

Review week five lab assignment

Page 16: Week Six Agenda

Review week five lab assignmentmyProgram

main.o employee.o address.o

employee.cppemployee.h main.cpp address.haddress.cpp

Page 17: Week Six Agenda

Review week five lab assignmentKey Points About Perl1. Dynamic typing2. Dynamic allocation of memory for arrays

and hash tables3. Both procedural and object oriented

programming capabilities4. Rich third party software and use of

modules

Page 18: Week Six Agenda

Review week five lab assignment• Regular expression (a.k.a. regex or regexp)

Is a pattern that describes a certain amount of text. A basic regular expression could be the single character, e.g.: a

Alice is a women.

It will match the first occurrence in the string. If succeeding matches are desired, the regex engine must be instructed to do so.

Page 19: Week Six Agenda

Review week five lab assignmentRegular Expression Special Characters * Open square bracket [ * Backslash \

* Caret ^* Dollar sign $* Dot .Pipe symbol |Question mark ?Asterisk ** Plus sign +Opening and closing round brackets ( )

Page 20: Week Six Agenda

Review week five lab assignmentAwk Script# Author: Bob D'Andrea# Script name: awksrc.sh# Command line awk -f awksrc.sh test.txt# Command line: awk -f awksrc.sh/^$/ { print "This is a blank line." }/[0-9]+/ { print "That is an integer." }/[A-Za-z]+/ { print "This is a string." }

Page 21: Week Six Agenda

Review week five lab assignment• Perl Hash table is an unordered set of scalars,

accessed by some string value that is associated with each scalar.Keys are 12, 19, and 30.Values are gray, black, and red.%colormap=(

“12” => “gray”,“19” => “black”,“30” => “red”,);

%colormap = (“12”, “gray”, “19”, “black”, “30”, “red”);

%members = (John => "father", Paul => "son", Marie => "daughter");

Page 22: Week Six Agenda

Review week five lab assignmentnames File Content

Bob D'Andrea 222-40-1234 03/19/1947 maleBo Happy 444-20-2222 01/01/1945 maleJane Smith 324-78-9990 04/23/1978 femaleRazi Jake 564-54-9879 05/26/2005 male

The file named “names” contains the above information.There are tabs in two places in the above data. One tab is after the name and after the birth date.

Page 23: Week Six Agenda

Review week five lab assignmentWithout options, print the desired fields in any order.

awk ‘{ print $1, $2, $3, $4, $5 }’ names

The –F option changes the field separator on the command line. The \t is an Escape Sequence for a horizontal tab.

awk –F”\t” ‘{ print $1 }’ names

Page 24: Week Six Agenda

Review week five lab assignmentKeys & Values%colormap = (“12”, “gray”, “19”, “black”, “30”, “red”);

@codes = keys %colormap; # codes array contains just codes @colors = values %colormap; # colors array contains the colors

# Printing the values out of a hash table (hash_prt.pl)while (($key, $value) = each(%colormap))

{ print $key, “, “, $value, “\n";

}Executing the loop prints: 30, red 19, black 12, grey

Page 25: Week Six Agenda

Review week five lab assignmentDefine Comma – arrow:

The comma-arrow (=>) operator is used to initialize the %members hash variable in the previous slide lines of code. The left side of the comma-arrow operator is expected to be a simple string and therefore it is not necessary to be quoted.

Page 26: Week Six Agenda

Review week five lab assignment

BLACK RED GRAY

YELLOW BLUE WHITE

GREEN AMBER GOLD PINK

11 12 13

21 22 23

31 343332

Hash Table

Page 27: Week Six Agenda

Week six expected outcomesUpon successful completion of this module, the

student will be able to:• Create makefile scripts for software programs. • Use pattern rules in make files. • Create an effective PowerPoint presentation. • Create make files with multiple targets. • Install software packages on a server.

Page 28: Week Six Agenda

Next lab assignmentInstalling software under UNIX is not always straightforward and easy. System administrators must be familiar with the layout of the file system. During a software installation, the possibility exists that the system could panic and/or have a hard disk failure.

Page 29: Week Six Agenda

Next lab assignmentInstallation Software Package Methods

Package manager- What are the tasks of a package manager?

- The version of UNIX dictates which package manager will be used.

- Many Linux versions utilize the Debian Package Manager.

Manual - The utilization of makefiles or shell scripts to

automate the install as much as possible. - On occasion, the installation of software is done by sending the source code to the site.

- What steps are required to install a new software version?

- How is a “configure” script utilized?

Page 30: Week Six Agenda

Next lab assignmentInstallation Software Package Methods

Package manager- Linux uses yum and rpm as there package

manager.- Software has to be set or identified to use

rpm. Otherwise, the software is configured manually.

Page 31: Week Six Agenda

Next Lab Assignmentshell

Kernel

Hardware

Assembler

Firmware

Page 32: Week Six Agenda

Next Lab AssignmentPID (Process ID)

When you execute a program on your UNIX system, the system creates a special environment for that program. This environment contains everything needed for the system to run the program as if no other program were running on the system.

Whenever you issue a command in UNIX, it creates, or starts, a new process. When you tried out the ls command to list directory contents, you started a process. A process, in simple terms, is an instance of a running program.

Page 33: Week Six Agenda

Next Lab AssignmentPID (Process ID)

The operating system tracks processes through a five digit ID number known as the pid or process ID . Each process in the system has a unique pid.

Pids eventually repeat because all the possible numbers are used up and the next pid rolls or starts over. At any one time, no two processes with the same pid exist in the system because it is the pid that UNIX uses to track each process.

Page 34: Week Six Agenda

Next Lab AssignmentForeground Processes

By default, every process that you start runs in the foreground. It gets its input from the keyboard and sends its output to the screen.

You can see this happen with the ls command. If I want to list all the files in my current directory, I can use the following command:

Page 35: Week Six Agenda

Next Lab AssignmentPID (Process ID)A background process runs without being connected to your keyboard. If the background process requires any keyboard input, it waits.

The advantage of running a process in the background is that you can run other commands; you do not have to wait until it completes to start another!

The simplest way to start a background process is to add an ampersand ( &) at the end of the command.

Page 36: Week Six Agenda

Next Lab AssignmentColumn Description Output from ps –f commandUID User ID that this process belongs to (the person running it).PID Process ID.PPID Parent process ID (the ID of the process that started it).C CPU utilization of process.STIME Process start time.TTY Terminal type associated with the processTIME CPU time taken by the process.CMD The command that started this process.

Page 37: Week Six Agenda

Next Lab AssignmentOptions which can be used with ps command

-a Shows information about all users-x Shows information about processes without terminals.-u Shows additional information like -f option.-e Display extended information.

Page 38: Week Six Agenda

Next Lab AssignmentSignals

Signals are a form of process communication. Because they can come from another process, the kernel or the process itself, they might be better thought of as events that occur as a program runs. A crude example might be the bell most of us remember from our early days in school; when the bell rang, we reacted by switching from playful children to industrious students.

Page 39: Week Six Agenda

Next Lab AssignmentSignals

The kill –l command will display the signals available on your system.

HUP USR1 BUSINT SEGVFPEQUIT USR2 KILLILL PIPETRAP ALRMIOT TERM

Page 40: Week Six Agenda

Next Lab AssignmentSignals

For each signal there is a default action, almost all of which terminate the process. For most signals, a program may specify another action—this is called catching or handling the signal—or may specify that no action occurs, which is called ignoring the signal. The signal SIGKILL cannot be caught or ignored; it always terminates a process.

Page 41: Week Six Agenda

Next Lab Assignmentkill Command

Used to send a signal to another process.The kill command is used on Linux and other

UNIX-like operating systems to terminate processes without having to log out or reboot (i.e., restart) the computer.

Format: kill [signal or option] PID(s)kill -lkill –l TERMkill –l KILL

Page 42: Week Six Agenda

Next Lab Assignmentkill Command

To determine the PID of any process belonging to you, enter the ps command at the prompt.

The ps command will print, for each of your processes, a line containing the process's PID, the amount of time the process has used and the command with which the process was started

Page 43: Week Six Agenda

Break-out problems• touch command• Top command• dot command notation (located where?)• dot dot command notation (located where?)• What function does the makefile provide a project? • What are the two parts of a dependency rule?• What language is used for writing makefile rules?• What two methods are used for installing software

packages?• What is a regular expression• American National Standard Institute (ANSI)

Page 44: Week Six Agenda

Upcoming deadlinesLab Assignment 5-1 is due October 27, 2013Lab Assignment 6-1 is due November 3, 2013Lab Assignment 7-1 (midterm) has to be

completed by October 21 through 26, 2013.Check with your proctor for his or her testing

schedule.

Page 45: Week Six Agenda

Questions and answers

• Questions• Comments• Concerns

• Are there questions regarding the mid-term outline?

• After class I will help students with their scripts.