Week_6 - Computing Sciences

advertisement
Week Six Agenda
Announcements
Link of the week
Review week four lab assignment
This week’s expected outcomes
Next lab assignment
Review midterm exam
Upcoming deadlines
Lab assistance, questions and answers
Link of the week
http://www.cert.org/homeusers/HomeComputerSecurity
This Web site provides useful information how to secure
your home computer, things you ought to know, and what
should be done to secure a home computer.
http://www.istl.org/02-fall/internet.html
Science and Technology Resources on the Internet
Computer Security
This article is written by Jane F. KinKus, who is a
Mathematical Sciences Librarian.
Link of the week
Define: Trusted System is on that is relied upon to a
specific extent to enforce a specific security policy.
Define: 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
Review week five lab assignment
kill command
Used to send a signal to another process.
PID
An integer used by the UNIX kernel to uniquely identify a
process. PIDs are returned by the fork system call and
can be passed to wait() or kill() to perform actions on the
given process.
When a process is started, it is given the next available PID,
and when it terminates, its PID is released for eventual reuse. To determine the PID of any process belonging to
you, enter the ps command at the prompt.
Review week five lab assignment
Review week five lab assignment
Define 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 in the program increases so to does the
compile time, complexity of compilation command
and the likelihood of human error when entering
command lines, i.e. typos and missing file names.
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
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.
Review week five lab assignment
Makefile 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
~varneyg/makelab (cs.franklin.edu)
Review week five lab assignment
Key Points About makefile
Makefile recompiles all source files for an
entire project.
Makefile recompiles only those files that
have different time stamps.
Bottom up control flow.
Rules are shell commands.
Review week five lab assignment
Other 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 file
What 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.
Review week five lab assignment
Makefile Example
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. G++ builds object
code from your C++ program source.
The –c option, compiles source to object code.
The –o option, compiles object code.
Review week five lab assignment
# The executable file for this project is prog.
prog
:
a.o b.o c.o
g++ -o a.o b.o c.o
a.o:
prog.h a.c
g++ –c prog.h a.c
b.o
:
prog.h b.c
g++ –c prog.h b.c
# The c.c source file is compiled and the object file is c.o.
c.o:
c.c
g++ –c c.c
# The c.c is dependent on c.y to be present.
c.c:
c.y
# The rules below are shell commands.
g++ -c c.y
mv y_table.c c.y
Review week five lab assignment
Review week five lab assignment
Review week five lab assignment
Key Points About Perl
Dynamic typing
Dynamic allocation of memory for arrays and hash
tables
Both procedural and object oriented programming
capabilities
Rich third party software and use of modules
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
Jane 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.
Review week five lab assignment
Regular Expression Special Characters
Open square bracket
[
Backslash
\
Caret
^
Dollar sign
$
Dot
.
Pipe symbol
|
Question mark
?
Asterisk
*
Plus sign
+
Opening and closing round brackets
()
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.
%colormap = (“12”, “gray”, “19”, “black”, “30”, “red”);
%colormap = (12 => “gray", 19 => “black", 30 => “red");
Define 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.
Review week five lab assignment
Keys & 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 things out
while (($key, $value) = each(%colormap)) {
print $key, “, “, $value, “\n";
}
Executing the loop prints:
30, red
19, black
12, grey
Week six expected outcomes
Upon 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.
Next lab assignment
Installing 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.
Next lab assignment
Installation 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?
Next Lab Assignment
Assembler
Kernel
Firmware
Hardware
Upcoming deadlines
Lab Assignment 6-2 (Makefile) is due Feb. 19.
Lab Assignment 6-1 (listdir.pl) is due Feb. 26.
Midterm exam will be administered from Feb. 13-18
Lab Assignment 8-1, Installation Exercise is due Mar. 4
Midterm outline is available at:
http://cs.franklin.edu/~varneyg/itec400/StudyGuides/Midterm_Outline.doc
Module 4 (Class Website) is for weeks 6,7, and 8.
Logic scripts: http://cs.franklin.edu/~varneyg/itec400/LogicScripts/
Makefile_logic (6-2) & listdir_logic.pl (6-1)
http://cs.franklin.edu/~varneyg/itec400/make_lab/ (copy all files)
Questions and answers
Questions
Comments
Concerns
Are there questions regarding the mid-term
outline?
After class I will help students with their
scripts.
Download