4.25.2015

Kali Linux NetHunter HID Attack ON ANDROID DEVICE

Kali has not stopped or restricted to the computers or laptops now its time to explore it on tablets. the tablets have very high collaboration and accessibility of great feature of kali Linux Linux os. Introducing KALI Nethunter.

Kali Linux NetHunter. NetHunter is a Android penetration testing platform for Nexus and OnePlus devices built on top of Kali Linux, which includes some special and unique features. Of course, you have all the usual Kali tools in NetHunter as well as the ability to get a full VNC session from your phone to a graphical Kali chroot, however the strength of NetHunter does not end there.


Important Concepts

  • Kali NetHunter runs within a chroot environment on the Android device so, for example, if you start an SSH server via an Android application, your SSH connection would connect to Android and not Kali Linux. This applies to all network services.
  • When configuring payloads, the IP address field is the IP address of the system where you want the shell to return to. Depending on your scenario, you may want this address to be something other than the NetHunter.
  • Due to the fact that the Android device is rooted, Kali NetHunter has access to all hardware, allowing you to connect USB devices such as wireless NICs directly to Kali using an OTG cable.



Kali Linux NetHunter HID Attack ON ANDROID DEVICE Bypassing Windows / OSX logins using Kon-Boot Transparently Backdooring Executables over HTTP

Supported Devices

The Kali NetHunter image is currently compatible with the following Nexus and OnePlus devices:
  • Nexus 4 (GSM) - “mako”
  • Nexus 5 (GSM/LTE) - “hammerhead”
  • Nexus 7 [2012] (Wi-Fi) - “nakasi”
  • Nexus 7 [2012] (Mobile) - “nakasig”
  • Nexus 7 [2013] (Wi-Fi) - “razor”
  • Nexus 7 [2013] (Mobile) - “razorg”
  • Nexus 10 (Tablet) - “mantaray”
  • OnePlus One 16 GB - “bacon”
  • OnePlus One 64 GB - “bacon”

Why doesn't Linux run on 16 bit architecture ?

You may think where are people using 16 bit architecture  hardware for building devices. And yes they required in embedded systems, if you want to design a Linux based interface to show up details on the electric cooker with small screen setup on it. you may go  less architecture processor (may be 16 bit). In such conditions you may need port Linux kernel to the 16 bit processor.

The 8086("eighty eighty-six", also called iAPX 86) is a 16-bit microprocessor chip designed by Intel between early 1976 and mid-1978, when it was released. The Intel 8088, released in 1979, was a slightly modified chip with an external 8-bit data bus (allowing the use of cheaper and fewer supporting ICs), and is notable as the processor used in the original IBM PC design, including the widespread version called IBM PC XT.

 The Embeddable Linux Kernel Subset (ELKS) project found at http://elks.sourceforge.net/, for example, was aimed at running Linux on 16-bit processors,such as the Intel 8086 and 286. 

regarding Linux’s inability to run on any processor below 32 bits is not entirely true. There have been Linux ports to a number of
odd processors.It has seen several attempts at revival over the past few years, and even may well work for some users by the time you read this edition, but it is really strictly a research project at this point—you won’t see a vendor offering support for Linux on an 80286. The point here is that if you choose to use Linux on a processor lower than 32 bits, it is absolutely certain that you will be on your own. Even if you get the kernel to boot, the range of applications is limited.



LINUX Running on 8 bit processor


4.24.2015

ubuntu 15.04 - Vivid Vervet released

In ubuntu 15.04 systemd is introduced as previously the OS starts with init (ubuntu's custom start up where it loads all boot up modules to start the system services). 

systemd's model for starting processes (units) is "lazy dependency-based", i. e. a unit will only start if and when some other starting unit depends on it. During boot, systemd starts a "root unit" (default.target, can be overridden in grub), which then transitively expands and starts its dependencies. A new unit needs to add itself as a dependency of a unit of the boot sequence (commonly multi-user.target) in order to become active. systemd is a system and service manager for Linux, compatible with SysV and LSB init scripts. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux control groups, supports snapshotting and restoring of the system state, maintains mount and auto mount points and implements an elaborate transactional dependency-based service control logic.



Linux kernel 3.19 gives more push with operating system in gaining its performance of network,file systems behaviour

Download Ubuntu 15.04

Images can be downloaded from a location near you.
You can download ISOs from:
http://releases.ubuntu.com/15.04/ (Ubuntu Desktop, Server, and Snappy Core)
http://cloud-images.ubuntu.com/releases/15.04/release/ (Ubuntu Cloud Server)
http://cdimage.ubuntu.com/netboot/15.04/ (Ubuntu Netboot)


New features in 15.04

Updated Packages
As with every new release, packages--applications and software of all kinds--are being updated at a rapid pace. Many of these packages came from an automatic sync from Debian's unstable branch; others have been explicitly pulled in for Ubuntu 15.04.
For a list of all packages being accepted for Ubuntu 15.04, please subscribe to vivid-changes.

Linux kernel 3.19

For servers we see a number of performance related improvements including network send batching and the introduction of the data centre congestion algorithm, as well as the introduction of discard support in Device Mapper raid configurations. There are also improvements to inode locking which should show benefits under heavy load. Netfilter (nftables) continues to evolve gaining facilities for package logging and dumping. A number of filesystems gained minor new features, including btrfs which improved its disk replacement in raid 5 and 6 configurations, and support for scrubbing in those. NFS gained hole punching and preallocation support. Overlayfs finally moved upstream so simplifying its provision in Ubuntu. On the networking side we see the start of routing and switch offload support, and the addition of checksum offload for Generic UDP Encapsulation. Finally we see the introduction of the cutely named foo-over-UDP support, allowing a number of other protocols to nest inside.
On cloud we saw a number of Device Mapper thin storage improvements including performance improvements under high load, and speedier discards in these thin configurations. Xen saw a number of minor fixes. For Hyper-v we see the ext2 filesystem gain freeze support allowing default configurations to be snapshotted. Openvswitch continued to evolve gaining basic MPLS support and Geneve tunnelling. 

Boot and service management

systemd has replaced Upstart as the standard boot and service manager on all Ubuntu flavors except Touch. At the time of the 15.04 release there are no known major problems which prevent booting. The only service which does not currently start is Juju, which will be fixed in a post-release update soon; all other packaged Ubuntu services are expected to work.
Upstart continues to control user sessions.
If your system does not boot after installing or upgrading, please file a bug report and tag it with `systemd-boot`. Please see/usr/share/doc/systemd/README.Debian about how to debug early boot or shutdown problems.



4.23.2015

4.21.2015

Moderating Network speeds in LINUX




Linux gives you the scope of moderating the Speeds of the LINUX OS

First we need check for our card if it is suitable attaining the sped we are about to set. Wrong settings may lead you to getting hardware problems.

configuration files:

/etc/sysconfig/network-scripts/ifconfig-eth0 (your NIC card)

we can use

1. MII TOOL
2 .ETHTOOL

 use # ethtool eth0  -> to get network speed info

we can use  MII TOOL for moderating speeds

In computingmii-tool is a Unix command which allows users to query and modify Network Interface Controller (NIC) parameters.

Setup eth0 negotiated speed with mii-tool
Disable autonegotiation, and force the MII to either 100baseTx-FD, 100baseTx-HD, 10baseT-FD, or 10baseT-HD:# mii-tool -F 100baseTx-HD
# mii-tool -F 10baseT-HD
Setup eth0 negotiated speed with ethtool# ethtool -s eth0 speed 100 duplex full
# ethtool -s eth0 speed 10 duplex half




Ethtool command has successfully replaced the mii-tool command. Using command you can find out all details about the interface given as its argument.
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: No
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: off
Supports Wake-on: g
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes
In above output we can see interface eth0 not doing autonegotiation and set to a speed of 100 Mbps, full duplex. A list of supported modes is also provided at the top of the output.
NIC speed and duplex can be set as:
# ethtool –s eth0 speed 100 duplex full
# ethtool –s eth0 speed 10 duplex half
To have these setting during next boot, you need to set them with ETHTOOL_OPTS variable as follows:
# Vi /etc/sysconfig/network-scripts/ifconfig-eth0
DEVICE=eth0
IPADDR=192.168.100.11
NETMASK=255.255.255.0
BOOTPROTO=static
ONBOOT=yes
ETHTOOL_OPTS="speed 100 duplex full autoneg off"
You can test the settings by shutting down the interface and then activating it again with ifup and ifdown commands.
You can also change speed and duplex mode using –s option as follows:
# ethtool –s eth0 speed 100 duplex full autoneg on


4.20.2015

Shell scripting basics








1. A shell script is a text file that typically begins with a shebang, as follows:

#!/bin/bash

Shebang is a line on which #! is prefixed to the interpreter path. /bin/bash is the
interpreter command path for Bash.


2. Execution of scripts :

$ bash script.sh # Assuming script is in the current directory.

Or:

$ bash /home/path/script.sh # Using full path of script.sh.


3.Need to give permissions for execution

$ chmod a+x script.sh

4. In Bash, each commands are delimited by using a semicolon or a new line.

$ command1 ; command2

This is equivalent to:
$ command1
$ command2

5. Printing to terminal

$ echo "Welcome to Mindlevels"
Welcome to Mindlevels

6. color codes in shell

foreground

 reset = 0, black = 30, red = 31,green = 32, yellow = 33, blue = 34, magenta = 35, cyan = 36, and white = 37.

background

reset = 0, black = 40, red = 41, green = 42, yellow = 43, blue = 44,
magenta = 45, cyan = 46, and white=47


echo -e "\e[1;32m This is green text \e[0m"

Here, \e[1;32m is the escape string that sets the color to red and \e[0m resets the color
back. Replace 32 with the required color code.

7. Identifying the current shell

To identify the shell which is currently being used.

echo $SHELL
Or:
echo $0




What is meaning of bashrc?

bashrc : Bourne Again Shell shell run control

It contains all configurations of the bash shell where it loads before terminal opens for the execution of the commands.

When started as an interactive login shell

Bash reads and executes /etc/profile (if it exists). (Often this file calls /etc/bash.bashrc.)

After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile in that order, and reads and executes the first one that exists and is readable.
When a login shell exits

Bash reads and executes ~/.bash_logout (if it exists).
When started as an interactive shell (but not a login shell)

Bash reads and executes ~/.bashrc (if it exists). This may be inhibited by using the --norc option. The --rcfile file option forces Bash to read and execute commands from file instead of ~/.bashrc.







Creating Linux users and gropus

Commands are typed and executed in a shell terminal. When a terminal is opened, a prompt is available which usually has the following format:
username@hostname$

Or:

root@hostname #

or simply as $ or #.

$ represents regular users and # represents the administrative user root. Root is the most privileged user in a Linux system.


Effected Files:

/etc/passwd,
 /etc/shadow,
/etc/group
/etc/gshadow


We can create groups in a way to group users before or after creating users.

Adding/modifying groups:

groupadd
groupmod
gpasswd
groupdel

Switches -a  : to add users
               -d : to delete users
               -m : to add multiple users

Eg :

#groups - displays group of user


Adding/modifying users:

Switches -a  : to add users
               -d : to delete users
               -m : to add multiple users


useradd
usermod
passwd
userdel
chage

Eg:

#useradd


  1. Username: User login name used to login into system. It should be between 1 to 32 charcters long.
  2. Password: User password (or x character) stored in /etc/shadow file in encrypted format.
  3. User ID (UID): Every user must have a User ID (UID) User Identification Number. By default UID 0 is reserved for root user and UID’s ranging from 1-99 are reserved for other predefined accounts. Further UID’s ranging from 100-999 are reserved for system accounts and groups.
  4. Group ID (GID): The primary Group ID (GID) Group Identification Number stored in /etc/group file.
  5. User Info: This field is optional and allow you to define extra information about the user. For example, user full name. This field is filled by ‘finger’ command.
  6. Home Directory: The absolute location of user’s home directory.
  7. Shell: The absolute location of a user’s shell i.e. /bin/bash.







4.13.2015

Linux releases latest 4.0 kernel

Linux releases latest 4.0 kernel.

Linux kernel is the essential part of any Linux operating system. It is responsible for resource allocation, low-level hardware interfaces, security, simple communications, basic file system management, and more. Written from scratch by Linus Torvalds (with help from various developers), Linux is a clone of the UNIX operating system. It is geared towards POSIX and Single UNIX Specification compliances. 

Installing/Upgrading kernel

DOWNLOAD kernel from https://www.kernel.org/


$ sudo dpkg -i linux-headers-3.18.3*.deb linux-image-3.18.3*.deb
$ sudo update-grub
$ sudo reboot

4.10.2015

Linux - all Hadoop ports

Web UIs for the Common User

The default Hadoop ports are as follows:

  Daemon Default Port Configuration Parameter
HDFS Namenode 50070 dfs.http.address
Datanodes 50075 dfs.datanode.http.address
Secondarynamenode 50090 dfs.secondary.http.address
Backup/Checkpoint node? 50105 dfs.backup.http.address
MR Jobracker 50030 mapred.job.tracker.http.address
Tasktrackers 50060 mapred.task.tracker.http.ad


Under the Covers for the Developer and the System Administrator

Internally, Hadoop mostly uses Hadoop IPC to communicate amongst servers. (Part of the goal of the Apache Avro project is to replace Hadoop IPC with something that is easier to evolve and more language-agnostic; HADOOP-6170 is the relevant ticket.) Hadoop also uses HTTP (for the secondarynamenode communicating with the namenode and for the tasktrackers serving map outputs to the reducers) and a raw network socket protocol (for datanodes copying around data).

The following table presents the ports and protocols (including the relevant Java class) that Hadoop uses. This table does not include the HTTP ports mentioned above.

Daemon Default Port Configuration Parameter Protocol Used for
Namenode 8020 fs.default.name? IPC: ClientProtocol Filesystem metadata operations.
Datanode 50010 dfs.datanode.address Custom Hadoop Xceiver: DataNode and DFSClient DFS data transfer
Datanode 50020 dfs.datanode.ipc.address IPC: InterDatanodeProtocol, ClientDatanodeProtocol
ClientProtocol Block metadata operations and recovery
Backupnode 50100 dfs.backup.address Same as namenode HDFS Metadata Operations
Jobtracker Ill-defined.? mapred.job.tracker IPC: JobSubmissionProtocol, InterTrackerProtocol Job submission, task tracker heartbeats.
Tasktracker 127.0.0.1:0¤ mapred.task.tracker.report.address IPC: TaskUmbilicalProtocol Communicating with child jobs
? This is the port part of hdfs://host:8020/.
? Default is not well-defined. Common values are 8021, 9001, or 8012. See MAPREDUCE-566.
¤ Binds to an unused local port.

Linux distributions package management



dpkg
, used originally by Debian and now by other systems like Ubuntu, uses the .deb format and was the first to have a widely known dependency resolution tool (APT).

RPM Package Manager, created by Red Hat and used by a number of other Linux distributions. RPM is the Linux Standard Base packaging format and the base of a number of additional tools, including apt4rpm; Red Hat's up2date; Mandriva's urpmi; openSUSE's ZYpp; PLD Linux's poldek; and YUM, which is used by Fedora, Red Hat Enterprise Linux, and Yellow Dog Linux.

tgz package system that combines the standard tar and gzip. Used by Slackware Linux and its closer derivates, there are a few higher-level tools that use the same tgz packaging format, including: slapt-get, slackpkg, zendo, netpkg, and swaret.

Pacman for Arch Linux, Frugalware and DeLi Linux uses pre-compiled binaries distributed in a compressed Tar archive.

Smart Package Manager, used by CCux Linux

ipkg, a dpkg-inspired, very lightweight system targeted at storage-constrained Linux systems such as embedded devices and handheld computers. It is used on, among others, HP's webOS.

opkg, fork of ipkg

pkgutils, used by CRUX Linux

PETget, used by Puppy Linux

Upkg, a package management and build system based on Mono and XML specifications, used by paldo GNU/Linux and previously by ExTiX Linux

PISI, used by Pardus
appbrowser, a special purpose tool in Tiny Core Linux for browsing and selecting applications from online repositories.

Conary, used by Foresight Linux

Equo, used by Sabayon Linux

Tazpkg - for Slitaz, uses LZMA compressed archives

linuxbrew - A fork of Homebrew for Linux. It does not require sudo.

eopkg, used by Evolve OS Linux

4.02.2015

X Window System in linux - GNOME ,UNITY,Cinnamon ,MATE ,KDE ,Xfce

The X Window System (X11, X, and sometimes informally X-Windows) is a windowing system for bitmap displays, common on UNIX-like computer operating systems.

X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting with a mouse and keyboard. X does not mandate the user interface — this is handled by individual programs. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces.

Different X Window System Environments in Linux :


GNOME 
GNOME 3 is an easy and elegant way to use your computer. It is designed to put you in control and bring freedom to everybody. GNOME 3 is developed by the GNOME community, a diverse, international group of contributors that is supported by an independent, non-profit foundation.
UNITY
Unity is a graphical shell for the GNOME desktop environment developed by Canonical Ltd. for its Ubuntu operating system. Unity debuted in the netbook edition of Ubuntu 10.10. It was initially designed to make more efficient use of space given the limited screen size of netbooks, including, for example, a vertical application switcher called the launcher, and a space-saving horizontal multipurpose top menu bar.
Unlike GNOME, KDE Software Compilation, Xfce, or LXDE, Unity is not a collection of applications but is designed to use existing programs.
Cinnamon 
Cinnamon is a desktop environment based on GTK+ 3. The project originally started as a fork of the GNOME Shell, i.e. a mere graphical shell. Cinnamon was initially developed by (and for) the Linux distribution Linux Mint. It tries to emulate the Windows 7 and older look and feel and is marketed to people who are uncomfortable with more modern Linux user interfaces such as Ubuntu Unity or GNOME 3.

MATE
The MATE Desktop Environment is the continuation of GNOME 2. It provides an intuitive and attractive desktop environment using traditional metaphors for Linux and other Unix-like operating systems.

KDE
The KDE® Community is an international technology team dedicated to creating a free and user-friendly computing experience, offering an advanced graphical desktop, a wide variety of applications for communication, work, education and entertainment and a platform to easily build new applications upon. We have a strong focus on finding innovative solutions to old and new problems, creating a vibrant atmosphere open for experimentation.

Xfce
Xfce is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly.

3.10.2015

Command Line Tools to Monitor Linux Performance


Top – Linux Process Monitoring

Linux Top command is a performance monitoring program which is used frequently by many system administrators to monitor Linux performance and it is available under many Linux/Unix like operating systems.

Lsof – List Open Files

Lsof command used in many Linux/Unix like system that is used to display list of all the open files and the processes. The open files included are disk files, network sockets, pipes, devices and processes.


VmStat – Virtual Memory Statistics

Linux VmStat command used to display statistics of virtual memory, kernerl threads, disks, system processes, I/O blocks, interrupts, CPU activity and much more.

Netstat – Network Statistics

Netstat is a command line tool for monitoring incoming and outgoing network packets statistics as well as interface statistics.

Tcpdump – Network Packet Analyzer

Tcpdump one of the most widely used command-line network packet analyzer or packets sniffer program that is used capture or filter TCP/IP packets that received or transferred on a specific interface over a network.

Htop – Linux Process Monitoring

Htop is a much advanced interactive and real time Linux process monitoring tool. This is much similar to Linux top command but it has some rich features like user friendly interface to manage process, shortcut keys, vertical and horizontal view of the processes and much more.

Iostat – Input/Output Statistics

IoStat is simple tool that will collect and show system input and output storage device statistics.


Iotop – Monitor Linux Disk I/O

Iotop is also much similar to top command and Htop program, but it has accounting function to monitor and display real time Disk I/O and processes.

Monit – Linux Process and Services Monitoring

Monit is a free open source and web based process supervision utility that automatically monitors and managers system processes, programs, files, directories, permissions, checksums and filesystems.


IPTraf – Real Time IP LAN Monitoring

IPTraf is an open source console-based real time network (IP LAN) monitoring utility for Linux.

Psacct or Acct – Monitor User Activity

psacct or acct tools are very useful for monitoring each users activity on the system. Both daemons runs in the background and keeps a close watch on the overall activity of each user on the system and also what resources are being consumed by them.

Suricata – Network Security Monitoring

Suricata is an high performance open source Network Security and Intrusion Detection and Prevention Monitoring System for Linux, FreeBSD and Windows.

 NetHogs – Monitor Per Process Network Bandwidth

NetHogs is an open source nice small program (similar to Linux top command) that keeps a tab on each process network activity on your system. It also keeps a track of real time network traffic bandwidth used by each program or application.

Monitorix – System and Network Monitoring

Monitorix is a free lightweight utility that is designed to run and monitor system and network resources as many as possible in Linux/Unix servers. It has a built in HTTP web server that regularly collects system and network information and display them in graphs.

Arpwatch – Ethernet Activity Monitor

Arpwatch is a kind of program that is designed to monitor Address Resolution (MAC and IP address changes) of Ethernet network traffic on a Linux network.

Collectl: All-in-One Performance Monitoring Tool
Collectl is a yet another powerful and feature rich command line based utility, that can be used to gather information about Linux system resources such as CPU usage, memory, network, inodes, processes, nfs, tcp, sockets and much more.

 VnStat PHP – Monitoring Network Bandwidth

VnStat PHP a web based frontend application for most popular networking tool called “vnstat“. VnStat PHP monitors a network traffic usage in nicely graphical mode.


Nagios – Network/Server Monitoring

Nagios is an leading open source powerful monitoring system that enables network/system administrators to identify and resolve server related problems before they affect major business processes.

iftop – Network Bandwidth Monitoring

iftop is another terminal-based free open source system monitoring utility that displays a frequently updated list of network bandwidth utilization (source and destination hosts) that passing through the network interface on your system. iftop is considered for network usage, what ‘top‘ does for CPU usage.

Nmon: Monitor Linux Performance

Nmon (stands for Nigel’s performance Monitor) tool, which is used to monitor all Linux resources such as CPU, Memory, Disk Usage, Network, Top processes, NFS, Kernel and much more.




Linux Acronyms




A
AMD   Advanced Micro Devices
API   application programming interface
ARP   address resolution protocol
ARPANET   Advanced Research Projects Agency Network
AS   autonomous system
ASCII   American Standard Code for Information Interchange
AT&T   American Telephone and Telegraph Company
ATA   advanced technology attachment
ATM   asynchronous transfer mode

B
B   byte
BELUG   Bellevue Linux Users Group
BGP   border gateway protocol
BIOS   basic input output system
BKL   big kernel lock
BNC   Bayonet Neill-Concelman
BSA   Business Software Alliance
BSD   Berkeley Software Distribution (originally Berkeley Source Distribution)

C
CCITT   Comité Consultatif International Téléphonique et Télégraphique
cd   change directory
CD   compact disc
CDROM   compact disc read-only memory
CJKV   Chinese Japanese Korean Vietnamese
CLDR   common locale data repository
CLI   command line interface
CPU   central processing unit
CRC   cyclic redundancy check
CRT   cathode ray tube
CSMA/CD   carrier sense multiple access/collision detection
CSS   cascading style sheets
CUPS   common UNIX printing system
CVS   concurrent versions system
D
daemon   disk and execution monitor*
DEC   Digital Equipment Corporation
DHCP   dynamic host configuration protocol
DLC   data link control
DLL   dynamic link library
DMCA   Digital Millennium Copyright Act
DNS   domain name service
DOS   disk operating system
DRAM   dynamic random access memory
DVD   digital versatile disc (originally digital video disc)

E
EDGE   enhanced data GSM environment
EEPROM   electrically erasable read-only memory
EFF   Electronic Frontier Foundation
EGP   exterior gateway protocol
EULA   end user license agreement

F
FAQ   frequently asked questions
FDD   floppy disk drive
FDDI   fiber distributed data interface
FOSS   free open source software
FQDN   fully qualified domain name
FS   filesystem
FSF   Free Software Foundation
FTP   file transfer protocol

G
Gb   gigabit
GB   gigabyte
GbE   gigabit Ethernet
GCC   GNU Compiler Collection (originally GNU C Compiler)
GFDL   GNU Free Documentation License
GID   group identification
GIF   graphics interchange format
GIGO   garbage in garbage out
GIMP   GNU Image Manipulation Program
GNOME   GNU Network Object Model Environment
GOCC   Government Open Code Collaborative
GNU   GNU's Not UNIX
GPG   GNU Privacy Guard
GPRS   general packet radio service
GRUB   grand unified bootloader
GUI   graphical user interface

H
HDD   hard disk drive
HDLC   high level data link control
HFS   hierarchical file system
HP   Hewlett-Packard
HTML   hypertext markup language
HTTP   hypertext transfer protocol

I
IANA   Internet Assigned Numbers Authority
IBM   International Business Machines
IC   integrated circuit
ICANN   Internet Corporation for Assigned Names and Numbers
ICMP   Internet control message protocol
IDE   integrated drive electronics
IEEE   Institute of Electrical and Electronic Engineers
IETF   Internet Engineering Task Force
IGP   interior gateway protocol
IGRP   interior gateway routing protocol
IMAP   Internet message access protocol
I/O   input/output
IP   Internet protocol
IPC   inter-process communication
IPX   internetwork packet exchange
IRC   Internet relay chat
ISO   International Organization for Standardization
ISP   Internet service provider
IT   information technology
IXP   Internet exchange points

J
JPEG   Joint Photographic Experts Group
JVM   Java virtual machine

K
Kb   kilobit
KB   kilobyte
KCP   kernel control path
KDE   K Desktop Environment

L
LAMP   Linux Apache MySQL and PHP
LAN   local area network
LANANA   Linux Assigned Names and Numbers Authority
LAP   link access procedure
LCD   liquid crystal display
LDAP   lightweight directory access protocol
LED   light emitting diode
LFS   Linux From Scratch
LGPL   GNU Lesser General Public License
LIDS   Linux intrusion detection system
LILO   Linux loader
LINFO   The Linux Information Project
LFS   log-structured file system
LSB   Linux Mark Institute
LSB   Linux Standards Base
LSI   large scale integrated circuit
LUG   Linux users group
LVM   logical volume management
LZW   Lempel-Ziv-Welch

M
MAC   media access control
Mb   megabit
MB   megabyte
MBR   master boot record
MD5   message digest 5
MDI   medium dependent interface
MIT   Massachussets Institute of Technology
MMU   memory management unit
MS   Microsoft
MS-DOS   Microsoft disk operating system
MTU   maximum transmission unit

N
NFS   network file system
NIC   network interface card
NILFS   new implementation log-structured file system
NIS   network information system
NNTP   network news transfer protocol
NTP   network time protocol

O
ODF   open document format
OS   operating system
OSDL   Open Source Development Labs
OSI   open systems interconnection
OSPF   open shortest path first

P
PAM   pluggable authentication modules
PCMCIA   Personal Computer Memory Card International Association
PDA   personal digital assistant
PDF   portable document format
PGP   pretty good privacy
PHP   PHP hypertext preprocessor (originally personal home page)
PID   process identification number
ping   packet Internet groper (orginally not an acronym)
PKI   public key cryptography
PKI   public key infrastructure
PNG   portable network graphics
PnP   plug-and-play
POP   post office protocol
POSIX   portable operating system interface
POTS   plain old telephone service
PPP   point-to-point protocol
PS   postscript
PSTN   public switched telephone network
pwd   print working directory

R
RAID   redundant arrays of independent disks
RAM   random access memory
RARP   reverse address resolution protocol
RDBMS   relational database management system
RFID   radio frequency identification
RHCE   Red Hat Certified Engineer
RIP   routing information protocol
RJ   registered jack
RMON   remote monitoring
RMS   Richard M. Stallman
ROM   read-only memory
RPC   remote procedure call
RPM   Red Hat package manager
RSS   really simple syndication
RTOS   real time operating system
RTP   real-time transport protocol

S
SAN   storage area network
SANE   scanner access now easy
SCO   Santa Cruz Operation
SCSI   small computer standard interface
SDLC   synchronous data link control
SDRAM   synchronous dynamic random access memory
SGID   set group ID
SGML   standard generalized markup language
SMB   server message block
SNMP   simple network management protocol
SMTP   simple mail transfer protocol
SOAP   simple object access protocol
SPAM   superfluous pieces of additional mail*
SRAM   static random access memory
SRI   Stanford Research Institute
SSH   secure shell
SSL   secure sockets layer
su   substitute user
SUID   set user ID
SVID   System V interface definition

T
TAR   tape archive
TB   terabyte
TCP   transmission control protocol
TCP/IP   transmission control protocol/Internet protocol
Tcl   tool command language
TCO   total cost of ownership
TCO   transmission control protocol
TLB   translation lookaside buffer
TLD   top level domain
TRON   The Real Time Operating System
TSL   transport layer security
TTL   time-to-live
TTL   transistor-transistor logic
TTY   teletype terminal

U
UCB   University of California at Berkeley
UCITA   Uniform Computer Information Transactions Act
UCLA   University of California at Los Angeles
UCS   universal character set
UDP   user datagram protocol
UID   user identification
URI   uniform resource identifier
URL   uniform resource locator
USB   universal serial bus
UTF   UCS transformation format
UTMS   universal mobile telecommunications system
UUCP   UNIX-to-UNIX copy

V
VFAT   virtual file allocation table
VGA   video graphics array
VLSI   very large scale integrated circuit
vm   virtual memory
VPN   virtual private network

W
W3C   World Wide Web Consortium
WAN   wide area network
WAP   wireless access point
WAP   wireless application protocol
WEP   wired equivalent privacy
WINE   WINE is not an emulator
WLAN   wireless local area network
WWW   World Wide Web
WXGA   wide extended graphics array

X
X   X Window System
XML   extensible markup language

GRUB - GRand Unified Bootloader

File:GNU GRUB on MBR partitioned hard disk drives.svg

The GNU GRand Unified Boot loader (GRUB) is a program which enables the selection of the installed operating system or kernel to be loaded at system boot time. It also allows the user to pass arguments to the kernel.

GRUB  which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.

 GRUB was developed from a package called the Grand Unified Bootloader (a play on Grand Unified Theory). It is predominantly used for Unix-like systems. The operating system uses  GRUB as its boot loader, as do most Linux distributions. The Solaris operating system has used GRUB as its boot loader on x86 systems, starting with the Solaris 10 1/06 release.



GRUB and the x86 Boot Process

This section discusses the specific role GRUB plays when booting an x86 system. For a look at the overall boot process, refer to Section 33.2, “A Detailed Look at the Boot Process”.
GRUB loads itself into memory in the following stages:

  1. The Stage 1 or primary boot loader is read into memory by the BIOS from the MBR ⁠[4]. The primary boot loader exists on less than 512 bytes of disk space within the MBR and is capable of loading either the Stage 1.5 or Stage 2 boot loader.
  2. The Stage 1.5 boot loader is read into memory by the Stage 1 boot loader, if necessary. Some hardware requires an intermediate step to get to the Stage 2 boot loader. This is sometimes true when the /boot/ partition is above the 1024 cylinder head of the hard drive or when using LBA mode. The Stage 1.5 boot loader is found either on the /boot/ partition or on a small part of the MBR and the /boot/ partition.
  3. The Stage 2 or secondary boot loader is read into memory. The secondary boot loader displays the GRUB menu and command environment. This interface allows the user to select which kernel or operating system to boot, pass arguments to the kernel, or look at system parameters.
  4. The secondary boot loader reads the operating system or kernel as well as the contents of /boot/sysroot/ into memory. Once GRUB determines which operating system or kernel to start, it loads it into memory and transfers control of the machine to that operating system.

Configure the GRUB boot loader

GRUB is a boot loader designed to boot a wide range of operating systems from a wide range of filesystems. GRUB is becoming popular due to the increasing number of possible root filesystems that can Linux can reside upon.
GRUB is documented in a GNU info file. Type info grub to view the documentation.
The GRUB configuration file is /boot/grub/menu.lst. Some distributions use another configuration file; for example, Red Hat Linux uses the file /boot/grub/grub.conf.
GRUB configuration files are interpreted. Syntax errors will not be detected until the machine is rebooted, so take care not to make typing errors.
Edit the GRUB configuration file and remove any splashimage entries. If these entries are not removed GRUB 0.90 behaves very oddly, transferring control between the serial console and the attached monitor and keyboard.
If there is not already a password command in the GRUB configuration file then create a hashed password, see Figure 4-4. The password should be good, as it can be used to gain root access.
Figure 4-4. Using md5crypt to create a hashed password for GRUB
grub> md5crypt
Password: **********
Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.
Use that hashed password in the GRUB configuration file, this is shown in Figure 4-5.
Figure 4-5. GRUB configuration to require a password
password --md5 $1$U$JK7xFegdxWH6VuppCUSIb.
Define the serial port and configure GRUB to use the serial port, as shown in Figure 4-6.
Figure 4-6. GRUB configuration for serial console
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal serial
--unit is the number of the serial port, counting from zero, unit 0 being COM1.
Note that the values of --parity are spelt out in full: noeven and odd. The common abbreviations ne and o are not accepted.
If there is mysteriously no output on the serial port then suspect a syntax error in the serial or terminal commands.
If you also want to use and attached monitor and keyboard as well as the serial port to control the GRUB boot loader then use the alternative configuration in Figure 4-7.
Figure 4-7. GRUB configuration for serial console and attached monitor and keybaord console
password --md5 $1$U$JK7xFegdxWH6VuppCUSIb.
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
When both the serial port and the attached monitor and keyboard are configured they will both ask for a key to be pressed until the timeout expires. If a key is pressed then the boot menu is displayed to that device. Disconcertingly, the other device sees nothing.
If no key is pressed then the boot menu is displayed on the whichever of serial or console is listed first in the terminal command. After the timeout set by the timeout the default option set by default is booted.
Figure 4-8. GRUB output to default device when configured for serial and attached monior output
Press any key to continue.
Press any key to continue.
Press any key to continue.
Press any key to continue.
Press any key to continue.
Press any key to continue.
Press any key to continue.
Press any key to continue.
Press any key to continue.
Press any key to continue.

    GRUB  version 0.90  (639K lower / 162752K upper memory)

 +-------------------------------------------------------------------------+
 | [ Red Hat Linux (2.4.9-21)   ]                                          |  
 |                                                                         |
 |                                                                         |
 +-------------------------------------------------------------------------+
      Use the ^ and v keys to select which entry is highlighted.
      Press enter to boot the selected OS or 'p' to enter a
      password to unlock the next set of features.

   The highlighted entry will be booted automatically in 10 seconds.
If you are not using a VT100 terminal then the cursor keys may not work to select a GRUB menu item. The instructions shown in Figure 4-8 are literally correct: Use the ^ and v keys means that the caret key (Shift-6) moves the cursor up and letter vee key (V) moves the cursor down.
Note when configuring GRUB that there are two timeouts involved. Press any key to continue is printed for terminal --timeout=10 seconds, waiting for someone on the keyboard or terminal to press a key to get the input focus. Then the menu is displayed for timeout 10 seconds before the default boot option is taken.
If the terminal attached to the serial port is not a real or emulated VT100, then force GRUB to use it's command line interface. This interface is much more difficult to use than GRUB's menu interface; however, the command line interface does not assume the VT100's terminal language.
Figure 4-9. GRUB configuration for command line interface for terminals other than VT100
terminal --timeout=10 --dumb serial console
This HOWTO does not discuss the use of GRUB's command line. It is far too complex and error-prone to recommend for use on production machines. Wizards will know to consult GRUB's info manual for the commands required to boot the kernel.
GRUB's menu's can be edited interactively after P is pressed and the password supplied. A better approach is to add menu items to boot the machine into alternative run levels. A sample configuration showing a menu entry for the default run level and an alternative menu entry for single user mode (run level s) is shown in Figure 4-10. Remember to use the lock command to require a password for single user mode, as single user mode does not ask for a Linux password.
Figure 4-10. Adding a single user mode option to the GRUB menu
password --md5 $1$U$JK7xFegdxWH6VuppCUSIb.
default 0
title Red Hat Linux (2.4.9-21)
        root (hd0,0)
        kernel /vmlinuz-2.4.9-21 ro root=/dev/hda6
        initrd /initrd-2.4.9-21.img
title Red Hat Linux (2.4.9-21) single user mode
        lock
        root (hd0,0)
        kernel /vmlinuz-2.4.9-21 ro root=/dev/hda6 s
        initrd /initrd-2.4.9-21.img
File names in the kernel and initrd commands are relative to the GRUB installation directory, which is usually /boot/grub. So /vmlinuz-2.4.9-21 is actually the file /boot/grub/vmlinuz-2.4.9-21.
GRUB is now configured to use the serial console. The kernels booted from GRUB are yet to be configured to use the serial console.