Agenda Administrative Issues Link of the Week This Week’s Expected Outcomes Review for midterm exam Moving around in UNIX Break-Out Problems Upcoming Deadlines Hands-on Information Lab Assistance, Questions, and Answers Announcements Announcements Sign up for your open source topic if you have not done so yet. Final exam December 10 (week 14) and 17 (week 15). Link of the week http://en.wikipedia.org/wiki/Firmware This Web site contains information on: - Evolved firmware uses - Firmware and device drivers - Firmware support challenges in PCs - Firmware hacking http://www.driverfix.com/driverdetective.php?t=Firmware DiverDetective 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. Link of the week Firmware is 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 with on-board computers/sensors - Cisco IOS This Week’s Expected Outcomes Upon successful completion of this module, the student will be able to: /etc/fstab file fsck utility /proc directories ASCII and EBCDIC Character set CMOS BIOS Linux boot-up procedure (System 5) Red Hat Enterprise Release 6.0 boot-up procedure (Upstart) Kernel Firmware CPU Memory Devices UNIX Operating System 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. 6th field is used by fsck to determine the order in which the file systems are checked at boot time. UNIX Operating System File System Integrity Checks 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. UNIX Operating System Fsck Command The fsck utility checks the file system’s consistency, reports any problems it finds, and optionally repairs them. On many legacy systems such as BSD style systems, the fsck command is invoked automatically on boots and reboots. Format: fsck [options] device UNIX Operating System Fsck Phases 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 UNIX Operating System Fsck Phases 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 other superblock numbers can be found using the following command: newfs -N /dev/rdsk/c0t0d0s6 UNIX Operating System /proc/filesystems The /proc/filesystems is a file used to detect file systems supported by the running kernel. If a file system is listed, you will be able to mount it. This text listing of the file system is compiled into the kernel. The “nodev” string in the first column means that file system does not require a block device to be mounted, it’s called a virtual file system. UNIX Operating System /proc/filesystems It is a special file system 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. UNIX Operating System /proc/filesystems The /proc/filesystems file provides a method of communication between kernel space and user space. UNIX Operating System /proc/filesystems Is a file used to detect filesystems supported by running kernel. You can quickly run grep or the cat command to display the list of all supported file systems. Nodev indicates that the file system is not associated with a physical device such as /dev/sdb1. If you see ext3 or vfat, it means you will be able to mount ext3 and vfat based file systems. UNIX Operating System /proc/filesystems 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 UNIX Operating System /proc/filesystems /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). UNIX Operating System /proc/filesystems /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). UNIX Operating System /proc/filesystems /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. UNIX Operating System /proc/filesystems /proc/PID/task, is a directory containing hard links to many tasks that have been started by this (i.e.: the parent) process. UNIX Operating System File Representation 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. UNIX Operating System 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. UNIX Operating System File Representation Binary image files represent 256 different binary codes. UNIX Operating System 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. UNIX Operating System What does the CMOS do? The CMOS memory stores information your computer needs when it boots up, such as, disk drive, keyboard type, configuration details of the PCI Bus slots, and Video Interface information. If the power to the CMOS memory is lost, your computer will boot with the CMOS defaults. In most cases, this will prevent use of your disk drives until this information is supplied. UNIX Operating System CMOS specifications The information stored in the CMS memory is battery backed up. The CMOS memory is a 64 or 128 byte memory that is part of the system clock chipset chips. The CMOS memory is made from Complementary Metal Oxide Semiconductor (CMOS). This material can be backed up by battery, which requires a very low current to keep the data in the memory with the power turned off. UNIX Operating System How is the CMOS information used? The CMOS information is required by your computers Basis Input/Output System (BIOS). The system BIOS is a 64K by 8 bit wide ROM mounted on the motherboard. If the BIOS ROM were accessed during normal operation the computer would be greatly reduced. Instead, the information is copied to some RAM where it can be accessed 32 or 64 bits at a time, thus increasing the system performance. The differences in access speed between RAM device and ROM’s is approximately 3 times faster. UNIX Operating System How is the CMOS information used? Read-only memory or ROM is a form of data storage in computers and other electronic devices that can not be easily altered or reprogrammed. RAM is referred to as volatile memory and is lost when the power is turned off whereas ROM in non-volatile and the contents are retained even after the power is switched off. UNIX Operating System How is the CMOS information used? Random Access Memory (RAM) is a form of data storage that can be accessed randomly at any time, in any order and from any physical location in contrast to other storage devices, such as hard drives, where the physical location of the data determines the time taken to retrieve it. RAM is measured in megabytes and the speed is measured in nanoseconds and RAM chips can read data faster than ROM. UNIX Operating System Role of system BIOS It is to test the system, initialize some I/O devices, recognize the hardware devices (basic power test), and load the operating system. Once, the operating system is loaded, the BIOS works with the operating system to enable access to the hardware devices. At this point, the BIOS provide basic input/output services to the operating system and applications. UNIX Operating System What is Unified Extensible Firmware Interface (UEFI)? UEFI is a specification defined between the operating system and the platform firmware. UEFI was developed to replace the Basic I/O System firmware interface system. The UEFI can support remote diagnostics and repair of computers, even without another operating system. UNIX Operating System UEFI UNIX Operating System UEFI UNIX Operating System Initializing or Booting a System 1. CPU is pre-set to RESET mode 2. CPU pre-programmed to seek 0xfffffff0 address location 3. BIOS reads MBR (Track 0, Sector 1) 4. First part of MBR contains the boot partition table and executable code 5. Second part of the MBR is used to locate the boot loader. It resides on the “active” partition known as the Boot Sector. 6. Device drivers are loaded (initrd-2.4.20-8.img) 7. Kernel is invoked 8. Init process invoked UNIX Operating 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. UNIX Operating System 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). UNIX Operating System 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 UNIX Operating System 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 kernel modules. UNIX Operating System What is the Master Boot Record (MBR) It is a small program that is a special type of boot sector that manages the boot process. The MBR is not located in a partition, but located at the beginning of partitioned computer mass storage devices, such as, fixed disks or removable devices. The organization of the partition table in the Master Boot Record sets the boundaries for the maximum addressable storage space of a disk to 2 TB (2exp32 x 512 bytes) UNIX Operating System Master Boot Record (MBR) 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. UNIX Operating System Boot Loaders The following /boot directory contains all the important files which are required for successful booting process: Demonstrate: /boot Red Hat Linux kernels Kernel configuration files for Red Hat Linux Demonstrate: /boot/grub 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. UNIX Operating System Boot loader The role of the boot loader is to place the operating system of the system in memory. In Linux, the most commonly used boot-loading tool is LILO, the Linux Loader. During the installation process, Linux will generate LILO values and ask you to verify them. At that point, you are given the opportunity to insert additional LILO options. Such options might be to include more partitions, and identify the operating system to be installed. UNIX Operating System Boot loader 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. UNIX Operating System Boot loader 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. UNIX Operating System 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. UNIX Operating System 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, UNIX Operating System 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 run levels directories that 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. UNIX Operating System 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 UNIX Operating System Init Process Location: /sbin/init First process to execute in user space Executes: background Process ID: 1 (one) Parent Process ID: 0 (zero) Owner: root Highlight the relationship of the init process to all other executing processes. UNIX Operating System Red Hat Enterprise Release 6.0 (Upstart) Handles initialization by starting the most fundamental services. /etc/init/rcS.conf Handles starting the individual runlevels /etc/init/rc.conf 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. UNIX Operating System 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. id:3:initdefault UNIX Operating System UNIX-like runlevels 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) UNIX Operating System UNIX-like 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. UNIX Operating System 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. UNIX Operating System UNIX-like shutdown command The shutdown command is used to shutdown the system in a safe way. After bringing down the system, shutdown command can halt or reboot the system according to the options that are specified. Example: shutdown –h now UNIX Operating System /etc/rc.d init.d rc0.d rc2.d rc4.d rc6.d rc.sysinit rc rc1.d rc3.d rc5.d rc.local /etc rc rc4.d init.d rc0.d rc5.d rc.sysinit rc1.d rc6.d rc2.d rc.d rc3.d rc.local UNIX Operating System /etc/rc.d/rc0.d Explain the k and s script prefixes Explain the two digit numbering Knoppix software directory names are similar but slightly different. UNIX Operating System Roles of the kernel 1. Responsive - users 2. 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. UNIX Operating System The kernel supports the following file systems: Demonstrate: /proc cat filesystems Demonstrate: pid_ppid.sh (use two putty windows) Demonstrate: Execution of the newuid.pl and process.sh scripts UNIX Operating System Points of interest MBRs are not present on non-partitioned media like floppies, super floppies or other storage devices. Moving Around in UNIX uptime w who –r who am i Break-out problems What functionality does the mingetty or getty perform? Define the kernel responsive and autonomous functions? What system functionality does the /etc/fstab file provide? What functionality does the /etc/sysconfig directory provide? What functionality does the /etc/inittab file provide? Hands on information Lab Assignment 8-1, Installation Exercise due November 9, 2014 Lab Assignment 9-1,Startup /Shutdown due November 16, 2014 Lab Assignment 10-1, 10-2 Account/LDAP/Process due November 23, 2014 After class assistance Questions Comments Concerns I am available after this Franklin Live session to discuss any problems and/or concerns regarding the lab assignments Lab Assistance available by phone and/or email