Linux-1_p1.pdf
Document Details
Uploaded by Deleted User
Tags
Full Transcript
A Brief Introduction to Linux What is it? What can I use it for? Alexander B. Pacheco LTS Research Computing September 8, 2015 Outline 1 Introduction to Linux 2 Linux Components 3 Live Demo 2 / 25...
A Brief Introduction to Linux What is it? What can I use it for? Alexander B. Pacheco LTS Research Computing September 8, 2015 Outline 1 Introduction to Linux 2 Linux Components 3 Live Demo 2 / 25 Introduction to Linux Unix History I Unix was conceived and implemented in 1969 at AT&T Bell labs by Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna. First released in 1971 and was written in assembler. In 1973, Unix was re-written in the programming language C by Dennis Ritchie (with exceptions to the kernel and I/O). The availability of an operating system written in a high-level language allowed easier portability to di↵erent computer platforms. The GNU Project, started in 1983 by Richard Stallman, had the goal of creating a “complete Unix-compatible software system” composed entirely of free software. 386BSD released in 1992 and written by Berkeley alumni Lynne Jolitz and William Jolitz. FreeBSD, NetBSD, OpenBSD and NextStep (Mac OSX) descended from this Andrew S. Tanenbaum wrote and released MINIX, an inexpensive minimal Unix-like operating system, designed for education in computer science Frustated with licensing issues with MINIX, Linus Torvalds, a student at University of Helsinki began working on his own operating system which eventually became the ”Linux Kernel” Linus released his kernel for anyone to download and help further development. 4 / 25 Unix History II Linus’s message to comp.os.minix on Aug 26, 1991 Hello everybody out there using minix - I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them :-) Linus (email address) PS. Yes - it’s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(. https://groups.google.com/forum/?fromgroups=#!msg/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ Linux is only the kernel, an Operating System also requires applications that users can use. combined with free software available from the GNU project gave birth to a new Operating System known as ”GNU/Linux” GNU/Linux or simply Linux is released under the GNU Public License: Free to use, modify and distribute provided you distribute under the GNU Public License. http://en.wikipedia.org/wiki/Linux 5 / 25 6 / 25 What is Linux? Linux is an operating system that evolved from a kernel created by Linus Torvalds when he was a student at the University of Helsinki. It’s meant to be used as an alternative to other operating systems, Windows, Mac OS, MS-DOS, Solaris and others. Linux is the most popular OS used in a Supercomputer OS Family Count Share % Linux 488 97.6 Unix 10 2 Mixed 1 0.2 Windows 1 0.2 If you are using a Supercomputer/High Performance Computer for your research, it will be based on a *nix OS. It is required/neccessary/mandatory to learn Linux Programming (commands, shell scripting) if your research involves use of High Performance Computing or Supercomputing resources. http://www.top500.org/statistics/list/ June 2015 List 7 / 25 What is a Linux OS, Distro, Desktop Environment? Many software vendors release their own packaged Linux OS (kernel, applications) known as distribution Linux distribution = Linux kernel + GNU system utilities and libraries + Installation scripts + Management utilities etc. 1 Debian, Ubuntu, Mint 2 Red Hat, Fedora, CentOS 3 Slackware, openSUSE, SLES, SLED 4 Gentoo Application packages on Linux can be installed from source or from customized packages 1 deb: Debian based distros e.g. Debian, Ubuntu, Mint 2 rpm: Red Hat based distros, Slackware based distros. Linux distributions o↵er a variety of desktop environment. 1 K Desktop Environment (KDE) 2 GNOME 3 Xfce 4 Lightweight X11 Desktop Environment (LXDE) 5 Cinnamon 6 MATE 7 Dynamic Window Manager 8 / 25 Where is Linux used? Linux distributions are tailored to di↵erent requirements such as 1 Server 2 Desktop 3 Workstation 4 Routers 5 Embedded devices 6 Mobile devices (Android is a Linux-based OS) Almost any software that you use on windows has a roughly equivalent software on Linux, most often multiple equivalent software e.g. Microsoft Office equivalents are OpenOffice.org, LibreOffice, KOffice For complete list, visit http: //wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_software Linux o↵ers you freedom, to choose your desktop environment, software. 9 / 25 Popularity of Linux Distributions DistroWatch provides news, popularity rankings, and other general information about: Rank Distribution Hits 1 various Linux distributions, 1 Mint 3105 – 2 free software/open source Unix-like operating systems 2 Debian 1764 N such as OpenSolaris, MINIX and BSD. 3 Ubuntu 1603 – DistroWatch is NOT an indication 4 openSUSE 1198 N of market-share or quality nor is it 5 Fedora 1142 – an indication of how many users but it is clearly an indication of 6 Mageia 1016 H what users are looking at. 7 CentOS 970 H 8 Manjaro 943 – 9 LXLE 788 N 10 Arch 759 – 10 / 25 Linux Components Linux Components Kernel er Software Oth Shell S h ell Applications/Programs Kernel rdw ar Ha e 12 / 25 Linux Components Kernel er Software Oth The kernel is the main component of S h ell most computer operating systems It is a bridge between applications and Kernel the actual data processing done at the hardware level. rdw ar Ha The kernel’s responsibilities include e managing the system’s resources (the communication between hardware and software components). provides the lowest-level abstraction layer for the resources (especially processors and I/O devices) that application software must control to perform its function. It typically makes these facilities available to application processes through inter-process communication mechanisms and system calls. 12 / 25 Linux Components Shell er Software Oth The command line interface is the S h ell primary interface to Linux/Unix operating systems. Kernel Shells are how command-line interfaces are implemented in Linux/Unix. rdw ar Ha Each shell has varying capabilities and e features and the user should choose the shell that best suits their needs. The shell is simply an application running on top of the kernel and provides a powerful interface to the system. 12 / 25 Linux Components Applications/Programs er Software Oth Linux provides a vast collection of S h ell application software, both free (open and closed source) and commercial, for Kernel research, teaching and every day leisure activities. rdw ar Ha Almost any software that you use on e windows has a roughly equivalent software on Linux, most often multiple equivalent software Most, if not all (open source) software, that you need will be available from the distribution repositories. RedHat Family: yum install packagename openSuSE Family: zypper install packagename Ubuntu Family: apt-get install packagename Users can also install by downloading and installing from source. Usually involves three steps: configure, make, and make install 12 / 25 Files and Processes Everything in Linux/UNIX is either a file or a process A File is a collection of data, created by users using text editors, running compilers, etc. Examples of Files: 1 document such as collection of ascii text as in report, essay, etc. 2 program written in some high level programming language 3 instructions comprehensible to machine but not a casual user such as executable, binary file 4 directory containing information about its contents such as subdirectories or other files A process is an executing program identified by a unique process identifier or PID. 13 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages All files are arranged in a hierarchial structure, like an inverted tree. The top of the hierarchy is traditionally called root (written as a slash / ) 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages contains files that are essential for system operation, available for use by all users. 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages contains bootable kernel and bootloader 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages contains various devices such as hard disk, CD-ROM drive etc 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages contains various system configurations 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages contains home directories of all users. This is the directory where you are at when you login to a Linux/UNIX system. 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages contains libraries that are essential for system operation, available for use by all users. 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages directories where disk drives are mounted 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages process information pseudo-file system containing runtime system information (e.g. system memory, devices mounted, hardware configuration, etc). can be regarded as a control and information centre for the kernel. 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages same as bin but only accessible by root 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages temporary file storage 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages contains user documentations, binaries, libraries etc 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages used to store files which change frequently (system level not user level) 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages where we install applications common to all HPC systems 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages Installing your own OS: /bin,/lib{64},/etc,/dev and /sbin must be on the same partition. 14 / 25 File System Hierarchy matlab gcc bin root directory (/) zhome Apps intel boot var pgi alp514 ··· sma310 etc tmp dev lib64 & lib proc bin share usr lib64 & lib home sbin sbin ··· mnt local include sma310 alp514.bashrc bin ··· Documents packages UNIX like OS’s are designed for multi user environments i.e. multiple users can exist on the system. Special user called root is the administrator and has access to all files in the system. 14 / 25 Live Demo openSUSE KDE Desktop 16 / 25 openSUSE Awesome Dynamic Window Manager 17 / 25 openSUSE GNOME 18 / 25 CentOS GNOME Desktop 19 / 25 Ubuntu Unity Desktop 20 / 25 Linux Mint Debian Edition MATE Desktop 21 / 25 Linux Mint Cinnamon Desktop 22 / 25 Lubuntu LXDE Desktop 23 / 25 Xubuntu Xfce Desktop 24 / 25 FreeBSD (Unix not Linux) Awesome DWM 25 / 25