01 linux general - pong.di.unimi.it · •linux was born in 1991 as a personal university project...

25
Linux Introduction Simon COTER Director of Product Management Oracle VM & VirtualBox [email protected] https://blogs.oracle.com/scoter December 19 th , 2018

Upload: duongnhi

Post on 29-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Linux Introduction

Simon COTERDirector of Product ManagementOracle VM & [email protected]://blogs.oracle.com/scoter

December 19th, 2018

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Safe Harbor StatementThe following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

2

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Before Linux

• In 80’s, Microsoft’s DOS was the dominated OS for PC

• Apple MAC was better, but expensive

• UNIX was much better, but much, much more expensive. Only for minicomputer for commercial applications

• People was looking for a UNIX based system, which is cheaper and can run on PC

• Both DOS, MAC and UNIX were proprietary, i.e., the source code of their kernel is protected

• No modification is possible without paying

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

GNU project

Established in 1984 by Richard Stallman, who believes that software should be free from restrictions against copying or modification in order to make better and efficient computer programs

GNU is a recursive acronym for “GNU's Not Unix”

Aim at developing a complete Unix-like operating system which is free for copying and modification

Companies make their money by maintaining and distributing the software, e.g. optimally packaging the software with different tools (Redhat, Slackware, Mandrake, SuSE, etc)

Stallman built the first free GNU C Compiler in 1991. But still, an OS was yet to be developed

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Beginning of Linux

• A famous professor Andrew Tanenbaum developed Minix, a simplified version of UNIX that runs on PC

• Minix is for class teaching only. No intention for commercial use• In Sept 1991, Linus Torvalds, a second year student of Computer Science at the

University of Helsinki, developed the preliminary kernel of Linux, known as Linux version 0.0.1

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Message from Professor Andrew Tanenbaum" I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)“

(Andrew Tanenbaum to Linus Torvalds)

Soon more than a hundred people joined the Linux camp. Then thousands. Then hundreds of thousandsIt was licensed under GNU General Public License, thus ensuring that the source codes will be free for all to copy, study and to change.

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

What is “Linux” ?

• “Operating System” means the sum of kernel and user-space tools, like:

– Libraries (glibc, ...)

– shells (sh, ksh, bash, csh, tcsh, zsh, ...)

– core utilities (ls, cat, find, tar, df, ...)

– compilers (gcc, icc)

• Linux Kernel manages the hardware interface (CPU, MMU, I/O) for user

process

• “Linux” is the only Kernel (UNIX based) even if usually we recognize the

entire Operating System

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Kernel Linux: the birth

• Linux was born in 1991 as a personal university project from Linux (Benedict) Torvalds because he thinks that Minix (16-bit microkernel) is not adequate for i386 systems.

• 1991, August: annuncio su comp.os.minix

• 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 [...] Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

• 1991, September: release 0.01 – source code available but product is not commercially redistributable

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

GPLv2: a new OS is finally available

• 1992 February: Linux Kernel 0.12 released under GPLv2

• 1984: Richard Stallman (MIT) created GNU project with the target to build an open-source development environment where, thanks to GPL licensing, code must be distributed within the community

• Tools e libraries have grown (gcc, bash, glibc, coreutils)...but GNU-Project Kernel (Hurd) is not ready

• Linux Kernel and Tools/Libraries available into GNU together are able to build a new Operating System totally open-source

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Development Model

• Philosophy: “release early, release often”• Starting from Release 1.0.0 (March 1994) the new model has

adopted (dual tree) • 2nd even release digit => “stable” versions (1.0.x, 1.2.x, ...) • 2nd odd release digit => “development” versions (1.1.x, 1.3.x, ...)• When “stable” release is good enough the development branch will

be opened• When “development” is feature-rich enough, freeze period begins

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Kernel 1.2, 2.0 and RedHat

• March, 1995: Kernel 1.2 introduced binary support for SPARC, Alpha, MIPS• RedHat starts in 1995 with firsts desktop versions that helps

managing by GUI• March, 1996: RedHat 3.0.3, Kernel 2.0 ready• June, 1996: Kernel 2.0 released (SMP support, dynamically auto-

loadable modules, new CPU compatible)

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Stability, feasibility…..and further Vendors

• Kernel 1.2 is so stable that it had been used on HTTP-Server machines (with Apache) on Internet, with high uptimes

• Kernel 2.0, with its extended module architecture. This model is also used today and it’s the principle that allowed to build “one-size-fits-all” Kernel

• IBM, HP and Intel recognize Linux like a solution to sell their HW and start to have dedicated internal resources on the project

• RedHat begins to release Kernels with patches non available on the mainline but continues to work to keep mainline code alligned and updated (this model is still alive)

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Linux decision-making System

• Core of choices is the mailing-list linux-kernel; there are further mailing list related to other components like netdev, linux-scsi, linux-ide, linux-usb, ...• On these ML you can provide your ideas, but it’s strongly suggested

to add a draft working code (“show me the code”); all theoretical concepts could be ignored.

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

“What if Torvalds is hit by a bus?”

• With Torvalds there is a restricted group of “trusted” developers

• David Miller (networking, SPARC port)

• Alan Cox (di tutto, rel. mgr. 2.2)

• Andrew Morton (-mm tree, rel. mgr. 2.6)

• Jeff Garzik (network drivers, ATA)

• Ingo Molnar (scheduler, x86-git)

• Christoph Hellwig, Al Viro (reviewers)

• There are also further maintainers of specific parts

• Torvalds today is the final judge in case of conflicts (“benevolent dictator”)

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Kernel bug reporting

[email protected] and http://bugzilla.kernel.org are the official bug-reporting methods• Each Linux distribution has its own support forum and/or bug

tracking system• Bug reported to Oracle Linux are managed by Oracle bug-tracking

system and, eventually, forwarded to the mainline Kernel maintainers(like all official distributions)

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Kernel 2.2

• Released in January, 1999– Improved scalability (SMP)– Further instructions support for AMD and Intel CPUs– Further drivers (mostly new SCSI)– Improved APM (Power Management Support)– NTFS support (read-only)– Foundation for Enterprise-Level Features

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Kernel 2.4 & 2.5

• 2.4 (stable) Released in January, 2001– Further improvements (threads, network cards, disk controllers...)– LVM and USB now possible– New Networking Layer– Scalability (SMP) until 16CPUs– IA64 and S/390 now supported– Pre-releases (-pre) available for 2.4– Release candidates (-rc) available for 2.4 (stable) and 2.5 (unstable)

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Kernel 2.6• Released in December, 2003– NUMA Support, HyperThreading…– USB 2.0, SATA, direct I/O on block devices– 16 TB fs, autoscaling open files limit, 4096 minor device ids...– Preemptible kernel, SELinux– Introduzione iniziale di sysfs (/sys)– Nuovo modello di sviluppo: niente 2.7, ne' 3.0 ! ...o no?

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Kernel Development & Lines of code

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Enterprise and Community Distributions

• Different targets with different expectations

• RHEL, SuSE and OL: one major release when “stable”

• Fedora: one major release every 6 months

• but…...”unstable” kernels continue to supply features and

enhancements to “stable” ones

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

Why “Oracle Linux” ?

• Linux stability and feasibility involve low risks to an infrastructure support

• RedHat Enterprise Linux as landmark (with double kernel available)

• Fast ad-hoc fixed for Oracle Products on top

• Single-vendor support

• First release for ARM64 now available for free– http://www.oracle.com/technetwork/server-storage/linux/downloads/oracle-linux-arm-4072846.html

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Q & A

22

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 23

Stay Connected

www.oracle.com/linux

@OracleLinux

Blogs.oracle.com/linux

Facebook.com/OracleLinux

Oracle Linux Experts Group

YouTube.com/OracleLinuxChannel

www.oracle.com/virtualization

Blogs.oracle.com/virtualization

Oracle VM Group

YouTube.com/OracleVirtualization

Visit us at:

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 24