370 likes | 384 Views
Week Seven Agenda. Announcements Link of the week Review week six lab assignment This week’s expected outcomes Next lab assignment Upcoming deadlines Lab assistance, questions and answers. Link of the week. http://www.kernel.org/ The Linux Kernel Archives web site
E N D
Week Seven Agenda Announcements Link of the week Review week six lab assignment This week’s expected outcomes Next lab assignment Upcoming deadlines Lab assistance, questions and answers
Link of the week • http://www.kernel.org/ • The Linux Kernel Archives web site • http://www.kernelnewbies.org/ • This web site is a community of people that want to improve or update their kernels. This site is referenced by experienced developers willing to share their knowledge. • Define: Kernel is the central component of most operating systems. It is responsible for managing the system’s resources and the communications between hardware and software. • Legacy terms: nucleus or core • The kernel connects software applications to the system resource. • The Linux kernel is portable to most 32 or 64 bit architectures.
Link of the week • Define: Kernel space is space allocated specifically for the kernel. Users are not able to access this area. This area is generally larger than user space. The kernel is never swapped out to disk. • Define: User space is space in memory where all user mode applications execute. Applications executing in this space are subject to being swapped out to disk. • Define: monolithic kernel is where all code is executed in kernel addresses space to increase the performance of the system. • Define: microkernel uses system calls to implement minimal OS services such as memory management, multitasking, and inter process communication.
Link of the week • http://vista.intersystems.com/csp/docbook/DocBook.UI.Page.cls?KEY=GCI_unixparms#GCI_unixparms_notes_hpux • Calculating System Parameters for UNIX and Linux • Configure Unix Kernel Parameters • Swap space • Number of global/routine buffers • Number of users • Number of inodes • Maximum database size • Number of semaphores
Review week six lab assignment makefile rule has the following format: • target : prerequisites (dependencies) • commands_1 • commands_2 Target is typically the name of the file to be generated. A target may also be an action to be performed. Prerequisites are files that this target depends on. command_n are the SHELL commands necessary to produce the target (one command per line). Each line MUST be prefixed with a horizonal tab ( TAB key). Any other spacing will cause your script to fail.
Review week six lab assignment • prog :a.o b.o c.o • g++ a.o b.o c.o -ly –o prog • a.o : prog.h a.c • g++ –c prog.h a.c • b.o :prog.h b.c • g++ –c prog.h b.c • c.o : c.c • g++ –c c.c • c.c : c.y • yacc c.y • mv y.tab.c c.c
Review week six lab assignment What is a dependency between source files? • main.cpp employee.cpp address.cpp • Some source files depend on other source files. 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 part of the dependency line is considered the target? What is considered the action line in a makefile script? We use the –c option on g++ to compile the source files to create object files. We use the –o option to create the executable program from the object files.
Review week six lab assignment • Linker combines a number of object and archive files, relocates their data and ties up symbol references. Usually the last step in compiling a program is to run linker. • Link object files into an executable whose name is “myProgram” • g++ -o myProgram a.o b.o c.o • Compile source code main.cpp • g++ -c main.cpp (.cpp is C++ source code file format)
Review week six lab assignment Source(s) code compiler Object Module(s) linker Load Module loader What are the differences between a makefile and a shell script? The rules in the makefile are executed based upon dependency, and not sequential order. The “make” utility performs a recursive decent through the target tree building the lowest level targets first. A target is rebuilt if any of its prerequisites have a newer timestamp than itself.
Review week six lab assignments • prog • a.o b.o c.o • a.c prog.h b.c c.c • c.y
Review week six lab assignment • 1. touch everything - everything should build • g++ -c main.cpp • g++ -c employee.cpp • g++ -c address.cpp • g++ -o myProgram main.o employee.o address.o • 2. touch nothing - nothing should build • make: `myProgram' is up to date. • 3. touch address.h - main and employee should build • g++ -c main.cpp • g++ -c employee.cpp • g++ -o myProgram main.o employee.o address.o • 4. touch main.cpp - only main.o should build • g++ -c main.cpp • g++ -o myProgram main.o employee.o address.o • 5. touch employee.cpp - only employee.o should build • g++ -c employee.cpp • g++ -o myProgram main.o employee.o address.o • 6. touch address.cpp - only address.o should build • g++ -c address.cpp • g++ -o myProgram main.o employee.o address.o • Removing myProgram and all object files (.o)
Review week six lab assignment • Helpful Hint for Lab Assignment 6-2 • myProgram: < fill in dependencies > • g++ -o< fill in dependencies> • main.o: < fill in dependencies> • g++ -c < fill in dependencies> • address.o: < fill in dependencies> • g++ -c < fill in dependencies> • employee.o: <fill in dependencies> • g++ -c <fill in dependencies>
Review week six lab assignment • Software Installation • Installing the software package • Package manager • Ant • Ant2 • Manual • makefile • configure
Review week six lab assignment • Package Install Instructions • A package is used by the installer to correctly place all the binary and data files on a system. An installer records version numbers, file locations and check sums for verification, uninstalls and does version updates. By using the installer all other packages that a particular application depend on will be installed at the same time.
Review week six lab assignment • Doing an InstallationTo install a package use the pkg_update utility. For example, if you wish to install bash you will enter the following command:pkg_update -L bashThis command will automatically download and install the most current bash package. If the package needs to have another package installed with it, that package will be downloaded and installed too. Pkg_update alsotakes care of which machine architecture you are using and what is the most current version of the software.
Review week six lab assignment • What's Installed, Removing an InstallationTo view all of the current packages installed use the pkg_info command. • To remove a package use the pkg_deletecommand. You do not need to know the version to delete a package. You can delete it easily as:% pkg_delete -M bash(The '-M' reduces your typing). Refer to the man pages for more information.
Review week six lab assignment Checking for updates for all installed packages is easily done using the command:pkg_update -LaThese installations and updates are done over the Internet and packages are not stored on your system -- this helps keep more free disk space on your local system.
Review week six lab assignment • Installation • There are two ways to do an installation now. You can make your choice based on what type of installation you are going to do. For the multiple versions of software and multiple hardware platforms. It is strongly recommend to use the pkg_update for single or multiple packages. Administrators will want to keep users using pkg_update.We always recommend that you install a package as:pkg_update -L {name}where "{name}" is the package name. No need for a version number. The current version number will be discovered. This means you get the most recent/current version without having to worry about a numbering scheme.
Review week six lab assignment • pkg_add InstallThe pkg_add utility is the "older" tool that we suggest you avoid using directly. You can use it when you have a specific package you want to install (such as an older archived version for comparison). You may always refer to the pkg_add manual page for more information.
Week seven expected outcomes • Upon successful completion of this module, the student will be able to: Create make file 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 • Define: Data structure is where information is stored/collected in one place. The stored information may or may not be related. • Data structures are unique in their construction so as to deliver a specific usage. Commonly data structures are arrays, hash tables, stacks, and queues.
Next lab assignment inode ( index node) • Every file is associated with one inode. An inode is a data structure on UNIX-like operating system that stores all the information about a file. An inode does not store the file name and its actual data. UNIX or Linux never stores file creation time. An inode is a unique number assigned to a file by the file system.
Next lab assignment • The number of inodes is a kernel tunable parameter value. An inode can only hold a fixed number of direct data block addresses (10 for Linux). Large files use indirect block addresses.
Next lab assignment • The inode data structure • file mode – file permissions (rwx) • count of hard links – how many hard links point to the inode • file type – executable, block special • owner id • group id • time of last file access - timestamp • time of last file modification - timestamp • file size - bytes • file addresses – addresses of the blocks of storage containing the files data on a HDD
Next lab assignment • Links can be viewed as entries in a directory that reference other files. • In UNIX we can create two types of links: • Physical (hard) links • Symbolic (soft) links
Next lab assignment • A Physical Link references the exact same file (inode) as the file entry itself. • A file name in a directory can be viewed as a physical link and is no different than any other physical link. A directory is a list of physical links. • Shell link command: • ln test_file_1 test_file_hard_link • ls –li (long listing with inodes) • ls –i
Next lab assignment • A Symbolic Link references a “pointer file” which has its own inode • The pointer file points to the directory entry that references the target file (inode) • The inode for the symbolic link and the target are different.
Next lab assignment • Inode 300 isn’t concerned about symbolic link 555 • The symbolic link isn’t updated even if “your file” is deleted. • Shell link command: • ln –s test_file_1 test_file_symbolic_link
Next lab assignment • Define: tar was originally designed for tape backups. Tar creates one large file called a heap that contains a collection of many files and directories. A tar file occupies a large amount of space for the files and directories, and a bit more. A tar file is not compressed. • The extension for a tar file is .tar. • Create a tar file • tar –cf newpack.tar /export/home/dandrear • Extract the contents from a tar file • tar –xvf origpack.tar • List the table of contents • tar –tvf origpack.tar
Next lab assignment • Define: gzip is a utility that compresses a tar file. The compressed file extension becomes tar.gz. • Compress a tar file • gzip filename.tar • Decompress a compressed tar file • gzip –d filename.tar.gz • gunzip filename.tar.gz • Define: bzip2 / bunzip2 Used to compress and decompress tar files. File extension .bz2. • Compress a tar file • bzip2 filename.tar • Decompress a compressed bzip2 file • bunzip2 –d filename.tar.bz2
Next lab assignment • Demonstrate: • Execute listdir.pl script • Case #1: ./listdir.pl • Case #2: ./listdir.pl –l • Case #3: ./listdir.pl –l –d . • Case #4: ./listdir.pl –d /bin • Case #5: ./listdir.pl –d . –l • Case #6: ./listrdir.pl –d /bin -l
Upcoming deadlines Makefile Exercise 6-2 is due Feb. 19. Programming Assignment 1, 6-1 is due Feb. 26. Installation Exercise, 8-1 is due Mar. 4. Startup/Shutdown, 9-1 is due Mar 11. Good luck on the mid-term exam
Lab assistance, questions and answers Questions Comments Concerns I am available after this Franklin Live session to discuss any problems and/or concerns regarding the lab assignments