Week Nine Agenda. Announcements Document your answers for Lab Assignment 9-1 in text file, startup.txt. Link of the week Review week eighth lab assignment Week nine expected outcomes Next lab assignment Break-out problems Upcoming deadlines Lab assistance, questions, and answers.
This Web site contains information on:
- Evolved firmware uses
- Firmware and device drivers
- Firmware support challenges in PCs
- Firmware hacking
Download driver updates automatically and safely. This software utility will keep your system up-to-date by automatically retrieving the latest drivers from your hardware’s manufacturer.
Define Firmware: A computer program that is embedded in the hardware device. Firmware can be stored in flash memory or as a binary image file that can be uploaded onto existing hardware by a user. In summary, firmware is a combination of hardware and software.
Firmware applications include the following:
- BIOS found in IBM-compatible PCs.
- Open Firmware, used in computers marketed by Sun Microsystems and Apple Computers.
- Computer peripherals
- The iPod’s control menus.
- Automobiles employed with on-board computer and various sensors.
- Cisco IOS
American National Standards Institute (ANSI) (1918)
To enhance both the global competitiveness of U.S. business and the U.S. quality of life by promoting and facilitating voluntary consensus standards and conformity assessment systems, and safeguarding their integrity.
Comprised of Government agencies, Organizations, Companies, Academic and International bodies, and individuals, the American National Standards Institute (ANSI) represents the interests of more than 125,000 companies and 3.5 million professionals.
The /etc/sysconfig directory contains files that control the system configuration.
Used to configure the system clock to Universal Time and other clock parameters.
This file controls how the system will appear and function during the boot process.
Used to configure the keyboard.
This file is used to specify information about the available mouse.
This file is used to configure networking options.
The rc.local file is executed after all other init scripts are executed in the boot-up procedure. Commands that performs system customization are placed in this file.
- The fstab file is read by software applications. It is the duty of the system administrator to create and accurately maintain this file.
- Each file system is described on a separate line.
- Fields on each line are separated by tabs and spaces.
- # comments
- The order in which these records are listed is important.
/dev/mapper/vg_system-root / ext4 defaults 1 1
UUID=5a9e44d8-7554-4d9d-bf16-a1b6cf48ff9e /boot ext4 defaults 1 2
/dev/mapper/vg_system-home /home ext4 defaults 1 2
/dev/mapper/vg_system-tmp /tmp ext4 defaults 1 2
/dev/mapper/vg_system-usr /usr ext4 defaults 1 2
/dev/mapper/vg_system-var /var ext4 defaults 1 2
/dev/mapper/vg_system-swap swap swap defaults 1 2
/dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
dc2prst001.students.qw.franklin.edu:/vol/dc2_einstein_home/home /home nfs defaults 0 0
Field description of /etc/fstab
1st field describes the block special device or remote file system or device name to be mounted.
2nd field describes the mount point for the file system.
3rd field describes the type of file system.
4th field describes the mount options associated with the file system.
5th field describes which file systems will need to be dumped by the dump() command.
6thfield is used by fsck to determine the order in which the file systems are checked at boot time.
File System IntegratityChecks
File systems are usually mounted read-only. This makes it possible to check the file system while it is mounted; it is not a good idea to check a file system that is mounted read-write.
The /proc filesystems is the file used to detect filesystems supported by running kernel. If a filesystem is listed, you will be able to mount it based file systems. This text listing of the filesystem is compiled into the kernel.
The “nodev” string in the first column means that filesystem does not require a block device to be mounted, it’s called a virtual filesystem.
It is a special filesystem in UNIX-like systems that presents information about processes and other system information in a hierarchical file like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory. Typically, it is mapped to a mount point named /proc at boot time.
The /proc filesystem provides a method of communication between kernel space and user space.
The Linux implementation of /proc also clones that of Plan 9. Under Linux, /proc includes a directory for each running process (including kernel processes) at /proc/PID, containing information about that process.
Plan 9 is an enhancement of the V8 Plan. Rather than have just one file containing all the information about a process, Plan 9 created a hierarchy of separate files to provide those functions, and made /proc a real part of the file system
/proc Filesystems includes:
/proc/PID/cmdline, which contains the command that originally started the process.
/proc/PID/cwd, a symlink to the current working directory of the process.
/proc/PID/environ, a file containing the names and contents of the environment variables that affect the process.
/proc/PID/exe, a symlink to the original executable file, if it still exists (a process may continue running after its original executable has been deleted or replaced).
/proc Filesystems includes:
/proc/PID/fd, a directory containing a symbolic link for each open file descriptor
/proc/PID/fdinfo, a directory containing files which describe the position and flags for each open file descriptor.
/proc/PID/maps, a text file containing information about mapped files and blocks (like heap and stack).
/proc Filesystems includes:
/proc/PID/mem, a binary file representing the process's virtual memory, can only be accessed by a ptrace'ing process.
/proc/PID/root, a symlink to the root path as seen by the process. For most processes this will be a link to / unless the process is running in a chroot jail.
/proc/PID/status, a file containing basic information about a process including its run state and memory usage.
/proc Filesystems includes:
/proc/PID/task, a directory containing hard links to any tasks that have been started by this (i.e.: the parent) process.
The exit code returned by fsck is the sum of the following conditions:
0 - No errors
1 - File system errors corrected
2 - System should be rebooted
4 - File system errors left uncorrected
8 - Operational error
16 - Usage or syntax error
32 - fsck canceled by user request
128 - Shared library error
Fsck checks the file system in a series of 5 pages and checks a specific functionality of file system in each phase.
Phase 1 – Check Blocks and Sizes
Phase 2 – Check Pathnames
Phase 3 – Check Connectivity
Phase 4 – Check Reference Counts
Phase 5 – Check Cylinder Groups
If the superblock is corrupted the file system still can be repaired using alternate superblocks created while making a new file system.
The first alternate superblock number is 32 and others superblock numbers can be found using the following command :
newfs -N /dev/rdsk/c0t0d0s6
Rpm Package Manager
Red Hat Package Manager (rpm) is the default package management system for Linux Red Hat.
Free software tool which installs, updates, uninstalls, verifies and queries other software packages in this format.
What is the caveat about rpm?
1. Used in a uniform way for the user to install programs
2. Uninstalling programs is simple
3. Non-interactive installation makes it easy to automate
4. Original source archive (e.g. .tar.gz,.tar.bz2)
5. Packages can be cryptographically verified with AES, and MD5.
A file format is a particular way to encode information for storage in a computer file.
Disk drives or computer storage are represented in bits. A computer must convert information to 0s and 1s and vice-versa.
A computer file format can be represented as either a binary image or ASCII file.
ASCII is used on most PCs and Macintoshes.
EBCDIC (Extended Binary-Coded Decimal Interchange Code is an IBM code for representing characters as numbers. IBM uses EBCDIC widely on their large computers.
EBCDIC character set
EBCDIC is an 8 bit character encoding used on IBM mainframes and AS/400s.
Single byte EBCDIC takes up eight bits, which are divided in two pieces. The first four bits are called the zone and represent the category of the character, whereas the last four bits are called the digit and identify the specific character.
Binary image files represent 256 different binary codes.
In the past, Binary image files use to be able to represent more character codes than ASCII because eight bit bytes were used, whereas ASCII files used seven bits. Now Extended ASCII uses eight bit bytes and can represent 256 character
Executable software, mostly word processing files and databases, spread sheets and multimedia files are binary. However, text and source program files as well as HTML and XML files are ASCII.
The Internet SMTP mail protocol supports only ASCII. When a binary file is attached to an email message, the 8-bit format is converted to a temporary 7-bit format to pass through the mail servers. Encoding formats such as MIME, at the receiving end converts the 7-bit format back into 8-bit binary format. The 8-bit to 7-bit conversion makes files larger as they traverse the Internet.
Different file formats for different kinds of information.
JPEG format – designed to store static photographic images.
GIF format – designed to store still images and simple animation.
QuickTime format – designed as a container for many different types of multimedia.
Upon successful completion of this module, the student will be able to:
Initializing or Booting a System
Linux Boot Procedure
1. The system startup stage depends on the hardware device that Linux is being booted on. Floppy disk, CD-ROM, a partition on a hard disk, a device on the network, or a USB flash memory stick. Linux is usually booted from a hard disk.
2. After the system locates the boot device, the first part of the boot loader is loaded into RAM and executed. Normally, the first part of the boot loader is less than 512 bytes and is responsible for loading the second part of the boot loader.
Linux Boot Procedure
3. The first 446 bytes are considered the primary boot loader, which contains both executable code and error message text.
4. The second sixty four bytes are the partition tables, which contains a record for each of the four partitions.
5. The last two bytes are the magic number which serves as a validation check of the Master Boot Record (MBR).
Linux Boot Procedure
6. When the second part of the boot loader is loaded into RAM and executed, a pop up
screen displays Linux and the optional initial
RAM being loaded into memory.
7. The second part of the boot loader is called the
kernel loader. After the boot images are loaded,
the second part of the boot loader passes
control to the kernel image. At this point, the
kernel is decompressed and initialized.
Linux Boot Procedure
8. The second part of the boot loader checks the system hardware, lists attached hardware
devices, mounts the root device, and loads the
Master Boot Record (MBR)
The MBR is not located in a partition, it is located at a Main Boot Record area in front of the first partition.
When a data storage device has been partitioned with the MBR Partition Table scheme the master boot record contains the primary partition entries in its partition table.
By convention, there are exactly four primary partition table entries in the MBR Partition Table scheme.
The following /boot directory contains all the important files which are required for successful booting process:
Red Hat Linux kernels
Kernel sysctl configuration file for Red Hat Linux
The Linux Loader (LILO) is the combination of parts one and two boot loaders. Because of some disadvantages in the LILO loader, the GRand Unified Bootloader (GRUB) has become more widely used.
First, what exactly is GRUB? GRUB is a boot loader, which means it passes control of the boot process from the Power-On Self Test (POST) to the kernel of your GNU/Linux distribution. GRUB works in a modular, layered fashion so that any unneeded modules are not loaded. Not only does this reduce execution time, but it saves valuable resources when running from removable media. GRUB optionally loads its configuration file at run/boot time, so you don’t have to type in commands manually each time. However, the command-line option is still available in case there is an error in your configuration file.
When a computer with Red Hat Enterprise Linux is turned on, the operating system is loaded into memory by a special program called a boot loader. A boot loader usually exists on the system's primary hard drive (or other media device) and has the sole responsibility of loading the Linux kernel with its required files or (in some cases) other operating systems into memory.
So why use GRUB when there are other options out there? The beauty of free software is that you have choices. Alternatives to GRUB include LILO, syslinux and isolinux. The benefit of GRUB is that it will work with many different types of boot devices, but you only need to learn one set of menu commands. In addition, GRUB can work on other forms of bootable storage, such as CD-R/W,
With the release of Red Hat Enterprise Linux (RHEL) 6, Red Hat will utilize the new Upstart boot service. This service will replace the System V init boot procedure that is based on runlevels directories that contain contained scripts that all had to be started. Upstart is event driven, so it contains scripts that are activated on demand, which makes the boot process a lot faster.
In an attempt to simplify the new concept, Upstart still utilizes the services from the init process. The /sbin/init, which is the mother of all user services.
First process to execute in user space
Process ID: 1 (one)
Parent Process ID: 0 (zero)
Demonstrate: pid_ppid.sh (use two putty windows)
Highlight the relationship of the init process to all other executing processes. Use the who am I command.
Handles initialization by starting the most fundamental services.
Handles starting the individual runlevels
The following two areas specify how terminals are to be handled.
/etc/init/tty.conf and /etc/init/serial.conf
There were some additional configuration files included to the /etc/sysconfig/init file.
The /etc/inittab file is referenced only for determining the default run level of the system. All other previous tasks are handled by the new Upstart procedure.
Default runlevel. The runlevels used by RHS are:
0 - halt (Do NOT set initdefault to this)
1 - Single user mode
2 - Multiuser, without NFS (The same as 3, if you do not have networking)
3 - Full multiuser mode
4 - unused
5 - X11
6 - reboot (Do NOT set initdefault to this)
Linux Performance Tools
sar command is performance monitoring tool. It can find out what Linux is doing all the time. It can generate report and email them to sys admin.
vmstat command that reports information about processes, memory, paging, block IO, traps, and cpu activity.
free command displays the total amount of free and used physical and swap memory in the system, as well as the buffers used by the kernel.
Linux Performance Tools
iostat command is used for monitoring system input/output device loading by observing the time the devices are active in relation to their average transfer rates i.e. it is useful to monitor disk throughput.
Review the Startup/Shutdown lab assignment
init.d rc0.d rc2.d rc4.d rc6.d rc.sysinit
rc rc1.d rc3.d rc5.d rc.local
rc rc4.d init.d
rc0.d rc5.d rc.sysinit
Activities managed by the kernel
Responsive - users
Autonomous - daemons
The kernel consists of a collection of low level procedures. These procedures are called system calls and they are the primary means for a program to interact with other parts of the system.
Explain the difference between the K and S as a script prefix.
Execution of the newuid.pl and process.sh scripts
df (disk space usage)
df –i (file system inode utilization)
history (list commands previously input)
tail (read records at end of file)
head (read records at start of file)
Lab Assignment 13-1 Public Domain/Open Software Evaluation
Bulletin Board: Open Source Presentation Sign Up
No two presentations shall be the same.
Lab assignment grade components.
Paper: 0 – 75 points
Presentation 0 – 25 points
July 30 (week 14)
August 6 ( week 15)