1. Linux – An Introduction
Workshop India
Wilson Wingston Sharon
wingston.sharon@gmail.com
2. The Beginning of Linux
• Finnish UG student : Linus Torvalds
• Decided to write an OS and release his code free for
anybody to use.
• Used the UNIX and BSD systems for the base of the
functionality of his OS.
• Received Cooperation through many programmers
worldwide and spread through the internet.
3. UNIX
• Researchers needed a standard computing
framework to help them run their processors.
• Developed in Bell Labs – It was spread through
universities and schools to educate people on
how to use it.
• UNIX was very complicated and this enabled the
students to be comfortable when working with
UNIX in industries.
4. Linux as a group effort
• Unix was commercial – It worked only on a few
machines that were expensive for most users.
• The Linux project incorporated code
▫ GNU project (Free software foundation)
▫ BSD (Berkeley UNIX)
▫ X11 (MIT)
• Developers all over the globe contribute
▫ Improvements
▫ Bug Fixes
▫ Support for devices & platforms
5. Why Linux?
• Rich selection of free application for any and every
purpose available. Most of them comparable/superior to
their proprietary counterparts.
• Peripheral support is extensive and support in linux
sometimes comes before anywhere else.
• Ported to various Platforms
▫ PowerPC (IBM)
▫ Apple Machines (MkLinux)
▫ MIPS
▫ Motorola mobile processors (1st Gen)
6. The Source code
• Linux follows a philosophy of open and free code.
• Documentation projects and support groups help
new users share the experience of developing for
linux.
• This approach made for easy experimentation and
playing around with a framework.
• All Productive changes would be incorporated in the
main linux repostitory so as to make it available to
anyone.
7. GNU
• Stands for GNUs Not Unix.
• A Free Software Foundation project to write a
set of free compilers / debuggers / editors for
various platforms.
• This enabled similar code to run on a variety of
platforms with minimal effort. Since it was free,
it was incorporated into Linux.
8. Why the popularity of Linux?
• Hardware
▫ Cost of hardware always decreases.
▫ Usage of a hardware required the device drivers to
be available.
▫ Writing new drivers for Linux is the easiest
solution. (For unavailable devices)
▫ Once the drivers were ready, they were
incorporated into the main source so as to give
everybody access to it!
9. Why the popularity of Linux?
• Cost of developing tools
▫ Hardware developers rather than developing a
complete OS for a processor, could simply port
linux to that platform.
▫ Then everything that works in linux will work
seamlessly reducing cost to a fraction.
▫ Driver Maintenance / Bug Fixes and
improvements contributions from the FOSS
community.
10. Why the popularity of Linux?
• Software Developers
▫ A consistent software environments that is
completely machine independent.
▫ Every system will have a GNU toolchain to
compile code for the resident platform!
▫ If source distribution is given, the software can be
distributed in C without worrying about hardware
support.
11. GNU – GPL - Copyleft
• GNU General Public License.
• Terms for using Linux
▫ You can modify / copy / redistribute the src code
at no cost provided you do so under the GPL
▫ If you get source under the GPL, any changes /
improvements / spin offs you make to it are also
under GPL
▫ You must always distribute source code + GPL of
programs that you develop with the help of GPL
software online.
12. Language of Linux
• Linux was written completely in C and ASM.
• UNIX (1969) was written in PDP-7 Assembly.
▫ This version of UNIX was unportable to new
hardware.
• Thomson developed B as a machine independent
language to make UNIX portable.
• Dennis Ritchie rewrote UNIX in C, a language he
developed from B and concepts from other
languages.
13. Why C?
• C was designed as a language for a machine
independent OS.
• It was a high structured but not High-level language.
• It supported both easy portability, allowed concepts
like bit manupilation and at the same time had a
neat – modular framework.
• Linux uses gcc and g++ compilers from GNU to
compile itself as well as all application within it.
14. Linux : More than an OS
• Like as OS linux supports
▫ Memory Management
▫ Device management
▫ Task Scheduling
▫ User Management
▫ And more…
• But it also comes with a set of tools and utilities
that make life easier for the user/developers.
15. Overview of Linux
• Kernel Interface
• MultiTasking
• Hierarchical Filesystem
• A Shell Interpreter for the OS
• Device independent I/O
• Inter Process Communication
• GUI
• Software Development
16. Kernel Interface
• Kernel is the Heart of the linux OS.
• Handles all the background OS tasks.
▫ Divides system resources
▫ Manages memory
▫ Gives access to devices
• Kernel abstracts the hardware from the rest of the
processes.
• Different Hardware need different setup and compiled
kernels, and all other functionality will be unchanged.
17.
18. MultiTasking
• Linux was *always* a fully protected
multitasking OS. (windows 95 was not!)
• Jobs can be run in background, and owned by
different users – on the same processor.
• Linux manages resource between active
processes / background processors and keeps in
sync seamlessly.
19. Hierarchical filesystem
• Files are kept in directories
• Directories can hold other directories.
• FHS – File system Hierarchy standard defines the
rules for where certain files will always be kept.
• The “root” of the linux fs is always „/‟
• Files & directories can be owned by users to enforce
security privilieges.
20.
21. BASH – the linux Shell system
• Bourne Again Shell
• It acts as an interface between the user and the
operating system
• Commands / applications can be given to this
interpreter which can then make the operating
system do various tasks.
• Commands can be stored in shell scripts for ease
of access..
22. Device independent I/O
• All physical devices – monitor, mouse, keyboard
printer appear as files in the Linux file system
that are manipulated by the kernel.
• This means that if a program is written to
manipulate this file, then the kernel will take it
to mean an action on the physical I/O device.
• This allows for a standard API for I/O in all
linux systems.
23. Inter Process Communication
• Different processes have their own memory space in
RAM.
• Linux provides pipes and filters for IPC.
• A pipe connects two different processes – the input
of one program to the other program‟s output.
• Filter do some changes on a stream on date between
two processes. The filters O/P is the I/P to another
program.
24. Software Development
• Linux makes it very easy to compile a program of
any language. (C / C++ / Java / Python / Lisp /
mono (.net))
• The build tools sometimes have to be installed
separately.
• A wide range of IDE‟s such a Eclipse, Netbeans
etc exist for programming purposes.
25. GUI
• The X window system was developed by MIT
labs.
• Given a system that an run X, Linux can provide
a graphical window based management system.
• “Window Management system” Runs under X
and can be changed easily as per the users
preferences.
26. Ubuntu
• Linux is divided into distributions.
• All distributions run on top of the linux kernel.
• Different Distro‟s are exist for taste and
performance.
• Ubuntu is a Debian based distro designed for both
laptops and Desktops.
• It focuses a lot on UX while maintaining speed &
quality of the distro.
27. Installing Linux
• Linux can be set up on dual boot between any
version of windows.
• From windows >> computer management >> disk
management, you‟ll need to un-allocate some HDD
memory for ubuntu. (10 – 30GB)
• Then make an ubuntu DVD and boot into that DVD.
• Ubuntu automatically detects the free space and
Windows and puts itself cleanly inside.