Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
notes:lpic-1_notes [2014/02/09 22:19]
smthng
notes:lpic-1_notes [2014/03/03 01:49] (current)
smthng [102 Installation and Package Management 18%]
Line 16: Line 16:
   * Conceptual understanding of sysfs, udev, hald, dbus   * Conceptual understanding of sysfs, udev, hald, dbus
   * Terms: /sys, /proc, /dev, modprobe, lsmod, lspci, lsusb   * Terms: /sys, /proc, /dev, modprobe, lsmod, lspci, lsusb
 +
 +== Notes ==
 +
 +  * BIOS - Basic I/O System - systim init, memory testing, low-level system-config, OS boot order (CD, floppy, HD, PXE), internal HW clock
 +  * /proc fs is kernel's status repository: interrupts, dma, ioports
 +  * Universal Serial Bus (USB)
 +    * //lsusb [-t] [-vv] // - t-tree view, vv-very verbose
 +    * Open Host Controller Interface (OHCI) - USB 1.1
 +    * Universal Host Controller Interface (UHCI) - USB 1.1 - 12 MBps - low+full speed
 +    * Enhanced Host Controller Interface (EHCI) - USB 2.0 - 480 MBps - high speed
 +    * Extensible Host Controller Interface (XHCI) - USB 3.0 - 4 GBps - super speed
 +    * Wireless Host Controller Interface (WHCI) - Wireless USB 1.0 - 480 MBps
 +    * Effective speed is lowest speed of device, cable and hub
 +    * Classes of USB devices :
 +      * Human Interface Device (HID) - Input devices: mice, keyboards, etc.)
 +      * Communications device - Modems
 +      * Mass storage device - Disk devices, flash readers, etc.
 +      * Audio - Sound devices
 +      * IrDA - Infrared devices
 +      * Printer - Printers and USB-to-parallel cables
 +    * Linux kernel supported USB in v2.3.x, backported to 2.2.18
 +    * Linux drivers may be host controller drivers (e.g. usb-ohci.o), class drivers (e.g. hid.o, usb-storage.o, printer.o, audio.o) or device-specific drivers
 +    * usbcore.o -> host controller driver -> class/device driver
 +    * Modularized USB drivers are loaded by the generic /sbin/hotplug kernel support
 +  * //lsdev// - shows hardware including IRQ info, I/O ports and DMA channels
 +  *  //lspci [-t] [-vv]// - info about system’s PCI buses and installed PCI devices
 +  * A module is dynamically linked into the running kernel when it is loaded
 +    * //insmod/rmmod// - insert/remove mocule, no dependency checking
 +    * //modprobe [-r] [-a] [-t type]// - list, insert or remove modules. Does dependency checking.
 +    * //lsmod// - list modules //modinfo module-object-file.o// - info about a module file
 +  * sysfs is a RAM-based filesystem derived from ramfs. It provides a means to export kernel data structures to  user space. // mount -t sysfs sysfs /sys//
 +  * The udev process uses sysfs info to create dynamic device files as kernel modules are loaded. /etc/udev.d holds rules to be applied when adding or removing a device.
 +  * D-Bus is an IPC system that uses sysfs to implement a message bus daemon used for broadcasting system events e.g.“new device added” or “printer queue changed”.
 +  * hal was a hw abstraction layer (hw access API) on top of udev using D-Bus. It has been deprecated and rolled into udev and the kernel.
  
 ===  101.2 Boot the System (LCN-4 CTL-5) === ===  101.2 Boot the System (LCN-4 CTL-5) ===
Line 22: Line 56:
   * Check boot events in the log file   * Check boot events in the log file
   * Terms: /var/log/messages, dmesg, BIOS, bootloader, kernel, init   * Terms: /var/log/messages, dmesg, BIOS, bootloader, kernel, init
 +
 +== Notes ==
 +  * Boot Loader (LILO or GRUB) launches the linux kernel, passing kernel parameters if needed (/etc/lilo.conf | /boot/grub/menu.lst | /boot/grub/grub.conf)
 +  * Module options (as well as aliases and post-install and pre-remove actions) are stored in /etc/modules.conf .
 +  * //dmesg// displays kernel messages logged at last system boot.
 +  * // /var/log/messages // contains all syslog messages.
  
 === 101.3 Change runlevels and shutdown or reboot system (LCN-4 CTL-5) === === 101.3 Change runlevels and shutdown or reboot system (LCN-4 CTL-5) ===
Line 32: Line 72:
   * Terms: /etc/inittab, shutdown, init, /etc/init.d, telinit   * Terms: /etc/inittab, shutdown, init, /etc/init.d, telinit
  
 +== Notes ==
 +  * When linux boots, first process is the //init// process which selects and switches to default runlevel.
 +  * Runlevels - 0=shutdown, 1/s/S=single-user_maintenance, 2=multi-user, 3=multi-user_no-X, 5=multi-user_with-X 6=reboot
 +  * On Debian, 2 is default and 3,5 are not used. On Redhat, 3 is the default.
 +  * /etc/rc script to change runlevels on redhat (also init/telinit script)
 +  * /etc/rc.sysinit (Redhat) or /etc/init.d/rcS (Debian) - system init script launched by init before system daemons
 +  * /etc/rc.local- local startup actions called at end of startup
 +  * /etc/init.d contains startup/shutdown scripts for all system services
 +  * /etc/rc0.d - /etc/rc6.d contain softlinks KNNservice or SNNservice specifying whether to start or stop services and in what order for that runlevel (done by init process). Kills done before starts.
 +  * /etc/inittab contains "id:N:initdefault:" for default runlevel N
 +  * //runlevel// shows current and previous runlevel
 +  * //shutdown [options] time [warning message]//  - -f=fastboot -h=halt -r=reboot -F=force-startup-checks -k=just-send-warning . Time is "now" or "+N" in N minutes or absolute time e.g. 23:58.
 ==== 102 Installation and Package Management 18% ==== ==== 102 Installation and Package Management 18% ====
  
Line 40: Line 92:
   * Knowledge of basic features of LVM   * Knowledge of basic features of LVM
   * Terms: / (root) filesystem, /var filesystem, /home filesystem, swap space, mount points, partitions   * Terms: / (root) filesystem, /var filesystem, /home filesystem, swap space, mount points, partitions
 +
 +==Notes==
 +
 +  * choosing a disk layout for linux depends on amount of disk space, purpose of the system, size of the system and backup strategy. Some general guidelines are
 +    * If diskspace is limited, just /boot, / and /swap
 +    * /boot is a separate 50MB partition because older kernels/BIOS require kernels under a 1024 cylinder limit.
 +    * For larger systems keep / smaller/simpler to reduce risk of corruption.
 +    * Can use separate partitions for /var (to isolate system logs), /tmp (to isolate tempfiles), /home (for backup and RAIDing of user's data)
 +    * Using a separate partition for /usr allows it to be shared via read-only NFS which allows for saving space and easier maintenance of apps/updates.
 +  * Superblock on filesystem contains critical metadata so multiple redundant copies are kept.
 +  * Filesystems must be mounted (listed in filesystem table) before being accessible. /etc/fstab is a list of filesystems to mount on boot up.
 +  * Master Boot Record on first 512 bytes of first sector of disk contains info on partitions and bootup. Can be backed up and restored with <code>
 +dd if=/dev/hda of=~/mbr.txt count=1 bs=512
 +dd if=~/mbr.txt of=/dev/hda count=1 bs=512
 +</code>
 +  * To backup/restore just the partition layout, use sfdisk <code>
 +sfdisk -d /dev/hda > partition_backup.txt
 +sfdisk /dev/hda < partition_backup.txt
 +</code>
 +  * Linux may also be booted from Live USB which allows for persistent modifications. If the BIOS does nto support this, a bootable CD can be used first.
 +  * Swap space allows main memory to be temporarily copied to disk. As a starting point set swap to twice the memory size (at least the same size).
  
 === 102.2 Install a boot manager (LCN-5 CTL-5) === === 102.2 Install a boot manager (LCN-5 CTL-5) ===
Line 47: Line 120:
   * Interact with the boot loader   * Interact with the boot loader
   * Terms: /boot/grub/menu.lst, grub.cfg and other variations, grub-install, MBR, superblock   * Terms: /boot/grub/menu.lst, grub.cfg and other variations, grub-install, MBR, superblock
 +
 +==Notes==
 +  * BIOS looks for and runs boot loader from first specified boot device.
 +  * Boot loader find and loads specified kernel (with specified kernel options) which loads required modules and starts system processes.
 +  * LILO is a 2-stage program
 +    * First stage is in 512-byte MBR or in the boot sector of a partition (if it is a secondary boot loader).
 +    * Second stage is in /boot/boot.b .
 +    * Map file locating kernel is in /boot/map
 +    * //lilo// command reads /etc/lilo.conf which contains kernel image locations, kernel options, the default boot disk etc. It encodes this information along with physical disk information and writes it into the boot files (MBR/boot-sector, boot.b and map).
 +  * GRUB is a multi-stage boot loader, more flexible than LILO.
 +    * Changes take effect immediately.
 +    * (hd0,1) -> 2nd partition on the 1st hard disk. Refers only to the order of the disks as seen by the BIOS so order may change if BIOS boot order is changed.
 +    * //grub-install// writes to MBR/boot sector. Uses/boot/grub/device.map to map BIOS drives to Linux devices e.g. "(hd0)   /dev/sda".
 +    * Grub command-line expects a specific order of commands to boot kernel <code>grub> root (hd0,0)
 +grub> kernel /vmlinuz-2.4.18-14 ro root=/dev/hda2
 +grub> initrd /initrd-2.4.18-14.img  [optional]
 +grub> boot</code>
  
 === 102.3 Manage shared libraries (LCN-5 CTL-2) === === 102.3 Manage shared libraries (LCN-5 CTL-2) ===
Line 53: Line 143:
   * Load shared libraries   * Load shared libraries
   * Terms: ldd, ldconfig, /etc/ld.so.conf, LD_LIBRARY_PATH   * Terms: ldd, ldconfig, /etc/ld.so.conf, LD_LIBRARY_PATH
 +
 +==Notes==
 +  * Most programs on Linux use common system libraries.
 +  * These can be statically linked into the program at compile-time - more disk, more memory, slower.
 +  * Or can be dynamically loaded at runtime (shared libraries) - shared memory, smaller disksize, faster.
 +  * //ldd// can be used to display required shared libraries for an executable
 +  * Dynamically linked executables are examined at runtime by the shared object dynamic linker, //ld.so//
 +  * //ldconfig// reloads shared library paths from /etc/ld.so.conf to update binary cache /etc/ld.so.cache
 +  * $LD_LIBRARY_PATH env variable can also be used
  
 === 102.4 Use Debian package management (LCN-5 CTL-2) === === 102.4 Use Debian package management (LCN-5 CTL-2) ===
Line 59: Line 158:
   * Obtain package information like version, content, dependencies, package integrity and installation status (whether or not the package is installed)   * Obtain package information like version, content, dependencies, package integrity and installation status (whether or not the package is installed)
   * Terms: /etc/apt/sources.list, dpkg, dpkg-reconfigure, apt-get, apt-cache, aptitude   * Terms: /etc/apt/sources.list, dpkg, dpkg-reconfigure, apt-get, apt-cache, aptitude
 +
 +==Notes==
 +  * .deb package names - pkgname_version-revision_arch.deb . version is typically major.minor.patchlevel e.g ncurses4_4.2.3-9_i386.deb
 +  * //dpkg// operates directly on //.deb// packages
 +    * uses /var/lib/dpkg/[available|status] files to store metadata
 +    * -i=install -r=remove --purge=purge
 +    * -E=do not overwrite with same version or older
 +    * -G=do not overwrite with older package version
 +    * -l=list matching installed packages -L=list files from package
 +    * -s=status of package -S=search for file in installed packages
 +  * //apt-get// uses package names and sources and resolves dependencies
 +    * -d=download only -s=simulate -y=assume yes
 +    * install, remove, update (sources), upgrade (all packages), dist-upgrade (to new OS version)
 +    * uses /etc/apt/sources.list. Lines look like <code> deb http://http.us.debian.org/debian stable main contrib non-free</code>
 +  * //dselect// is a menu-based interface to //dpkg//
 +  * //alien// converts other package types to .deb packages (or to rpm with -r) e.g. Slackware/generic tarball, RPM . //alien -i x.rpm//
  
 === 102.5 Use RPM and YUM package management (LCN-5 CTL-2) === === 102.5 Use RPM and YUM package management (LCN-5 CTL-2) ===
Line 65: Line 180:
   * Determine what files a package provides, as well as find which package a specific file comes from   * Determine what files a package provides, as well as find which package a specific file comes from
   * Terms: rpm, rpm2cpio, /etc/yum.conf, /etc/yum.repos.d/, yum, yumdownloader   * Terms: rpm, rpm2cpio, /etc/yum.conf, /etc/yum.repos.d/, yum, yumdownloader
- 
 ==== 103 GNU / Unix Commands 43%   ==== ==== 103 GNU / Unix Commands 43%   ====
  
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki