zoukankan      html  css  js  c++  java
  • Linux系统介绍与环境搭建准备

    1 什么是操作系统? 

    操作系统,Operating System,简称OS,是计算机系统中必不可少的基础软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心。

     

    操作系统的作用是管理和控制计算机系统中的硬件和软件资源
    比如: 

    • 负责直接管理计算机系统的各种硬件资源,如对CPU、内存、磁盘等的管理,同时对系统资源供需优先次序进行管理。 
    • 控制设备的输入、输出,以及操作网络和管理文件系统等事务。
    • 对计算机系统中各类软件资源的管理
      • 各类应用软件的安装
      • 运行环境设置等

    目前PC(Intel x86系列)计算机上比较常见的操作系统有Windows、Linux、DOS、Unix等。

     

    2. 什么是Linux? 

    Linux是一套开放源代码程序的、并可以自由传播的类Unix操作系统软件。 (Unix系统是Linux系统的前身,具备很多优秀特性)。 

    其设计之初,就是基于Intel x86系列CPU架构计算机的。 

    它是一个基于POSIX的多用户、多任务并且支持多线程和多CPU的操作系统。

     

    开发Linux系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类Unix操作系统兼容产品。

    在过去的20年里,Linux系统主要被应用于服务器端、嵌入式开发和个人PC桌面3大领域,其中服务器领域是重中之重。

    特点:

    • 是开放源代码的程序软件,可自由修改
    • Unix系统兼容,具备几乎所有Unix的优秀特性
    • 可自由传播,无任何商业化版权制约
    • 适合Intel等x86 CPU系列架构的计算机

    2.1 Linux的起源

    2.1.1 Unix的历史

    说到Linux的起源,就不得不提到Linux之前的Unix系统。 

    Unix系统于1969年在AT&T的贝尔实验室诞生,20实际70年代,它逐步盛行,这期间,又产生了一个比较重要的分支,就是大约1977年诞生的BSD(Berkeley Software Distribution)系统。 

    从BSD系统开始,各大厂商及商业公司开始了根据自身公司的硬件架构,并以BSD系统为基础进行Unix系统的研发,从而产生了各种版本的Unix系统,例如:SUN公司的Solaris,IBM公司的AIX,HP公司的HP UNIX等。

    2.1.2 Unix的5大优秀特性

    • 技术成熟,可靠性高
      使用Unix系统时,即使连续运行若干年也无需重启,它依然可以工作得很好。只要计算机硬件不坏,Unix就很难会出现问题。

    • 极强的可伸缩性
      Unix支持的CPU处理器体系架构非常多,包括Intel/AMD(x86系列)及HP-PA,MIPS,PowerPC,UltraSPARC,ALPHA等RISC芯片,以及SMP、MPP等技术。
      可能是由于早期各大厂商都基于Unix进行适合自己的硬件开发,因此,Unix支持的CPU架构才更多

    • 强大的网络功能
      Internet互联最重要的协议TCP/IP就是在Unix上开发和发展起来的。此外,Unix还支持非常多的常用的网络通信协议,如NFS,DCE,IPX/SPX,SLIP,PPP等

    • 强大的数据库支持能力
      Oracle, DB2, Sybase, Informix等大型数据库,都把Unix作为其主要的数据库开发和运行平台,一直到目前为止,依然如此。

    • 强大的开发功能
      正是Unix促使了C语言的诞生,并相互促进和发展,称为当时工程师的首选操作系统和开发环境。互联网早期有重大意义的软件新技术的出现几乎都在Unix上,例如:TCP/IP,WWW, Java, XML等

     

    2.1.3 Unix操作系统的革命

    70年代中后期,由于各厂商及商业公司开发的Unix及内置软件都是针对自己公司特定硬件的,因此在其他公司的硬件上基本上无法直接运行,而且当时没有人对开发基于x86架构CPU的系统感兴趣。
    另外,70年代末,Unix又面临了突如其来的被AT&T回收版权的重大问题,特别是要求禁止对学生群体提供Unix系统源代码,这样的问题一度引起了当时Unix业界的恐慌,也因此产生了商业纠纷。 

     

    由于Unix面临版权回收问题,以及代码不开源等的问题,这直接或间的导致了新的类Unix系统的诞生以及自由软件运动的建立和发展。

    • 1984年,Richard Stallman发起了开发自由软件的运动,并成立了自由软件基金会和GNU项目。当时发起这个自动软件运动和创建GUN项目的目的其实很简单,就是想开发一个类似Unix系统,并且是自由软件的完整操作系统,也就是要解决70年代末Unix版权问题以及软件源代码面临闭源的问题,这个系统叫做GNU操作系统。GNU系统后来没有流行起来。现在的GNU系统通常是使用Linux系统的内核,以及使用了GNU项目贡献的一些组件加上其他相关程序组成,这样的组合被称为GNU/Linux操作系统

    • 80年代初,大学Andrew Tanenbaum(谭邦宁),于1984年开始着手编写新的用于教学的Unix系统,目标是开发的新Unix系统尽可能和原有的Unix系统兼容,并且可以运行于x86 PC平台,这个系统叫Minix。Minix的目的只是用于教学,无法满足商用的需求,但是Minix的产生对于Linux的诞生又是至关重要的一个部分。

     

    2.1.4 Linux的诞生

    Linux系统的诞生开始于芬兰赫尔辛基大学的一位计算机系的学生,名为Linus Torvalds。在学校期间,接触了Unix系统,当时的Unix系统仅为一台主机,且对应了多个终端,使用时存在操作等待时间很长等不爽的问题,无法满足它的使用需求,就萌发了自己开发一个Unix的想法。 

    于是,他就找到了谭邦宁教授开发的用于教学的Minix操作系统,将Minix安装到了他的I386个人计算机上。此后,开始陆续阅读了Minix系统的源代码,从Minix系统中学到了很多重要的系统核心程序设计理念和设计思想,从而逐步开始了Linux系统雏形的设计和开发。

     

    Linux的标志和吉祥物为一只名叫Tux的企鹅——Torvalds' Unix

    2.1.5 Linux的发展历程

    • 1984年,Andrew S.Tanenbaum 开发了用于教学的Unix系统,命名为MINIX
    • 1989年,Andrew S.Tanenbaum 将MINIX系统运行于x86的PC计算机平台
    • 1990年,芬兰赫尔辛基大学学生Linus Torvalds首次接触MINIX系统
    • 1991年,Linus Torvalds开始在MINIX上编写各种驱动程序等操作系统内核组件
    • 1991年底,Linus Torvalds 公开了 Linux内核源码0.02版(http://www.kernel.org ),注意,这里公开的Linux内核源码并不是我们现在使用的Linux系统的全部,而仅是Linux内核的kernel部分的代码
    • 1993年,Linux 1.0 版发行,Linux转向GPL版权协议
    • 1994年,Linux的第一个商业发行版Slackware问世
    • 1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13(由Open Linux公司打包)符合POSIX标准
    • 1999年,Linux的简体中文发行版问世
    • 2000年后,Linux系统日趋成熟,涌现大量基于Linux服务器平台的应用,并广泛应用于基于ARM技术的嵌入式系统中。

    2.1.6 Linux系统诞生发展过程中关键代表人物

    3.Linux核心概念和知识

    3.1 自由软件与FSF

    3.1.1 自由软件

    自由软件的核心就是没有商业化版权制约,源代码开放,可无约束自由传播

     

    自由软件强调的是权利问题,而非是否免费的问题。自由软件中的自由是“言论自由”中的“自由”,而不是“免费啤酒”的“免费”。

    自由意味着freedom,而免费意味着free,这是完全不同的概念。 

    例如:Red Hat Linux自由但不免费,CentOS Linux是自由且免费的。

    3.1.2 自由软件基金会FSF

    FSF( Free Software Foundation) 是Richard Stallman于1984年发起和创办的。 

    FSF的主要项目是GNU项目。 

    它的目标是建立可自由发布和可移植的类Unix操作系统产品。 

    GNU项目本身产生的主要软件包括:

    • Emacs编辑软件
    • gcc编译软件
    • bash命令解释程序和编程语言
    • gawk(GNU's awk)等

    3.2 GNU知识

    GNU的全程是GUN's not unix,意思是“GNU不是UNIX”,GNU计划,是FSF的主要项目。

     

    GNU类Unix操作系统,是由一系列应用程序、系统库和开发工具构成的软件集合,例如:Emacs编辑软件,gcc编译软件,bash命令解释程序和编程语言,以及gawk(GNU's awk)等,并加上了用于资源分配和硬件管理的内核。

     

    现在的GNU系统通常是使用Linux系统的内核,加上GNU项目贡献的一些组件,以及其他相关程序组成的,这样的组合被称为GNU/Linux操作系统。

     

    1991年Linux内核发布的时候,GNU项目已经完成了除系统内核之外的各种必备软件的开发。 

    在Linus Torvalds和其他开发人员的努力下,GNU项目的部分组件又运行到了Linux内核之上,例如:GNU项目里的Emacs,gcc,bash,gawk等,至今都是Linux系统很重要的基础软件。

    3.3 GPL知识

    3.3.1 GPL

    GPL(General Public License),通用共同许可,是一个最著名的开源许可协议,开源社区最著名的Linux内核就是在GPL许可下发布的。 

    GPL许可是自由软件基金会创建的。

     

    GPL许可的核心,保证任何人有共享和修改自由软件的自由,任何人有权取得、修改和重新发布自由软件的源代码权利,但都必须同时给出具体更改的源代码

     

    虽然整个Linux内核是基于GNU通用公共许可的,但是Linux内核并不是GNU计划的一部分。

     

    4. Linux系统组成

    Linux操作系统的核心为Linus Tarvalds开发的Kernel,Linux内核之上的组分为几部分:

    • 一部分是GNU组件,如Emacs,gcc,bash,gawk等
    • 另一些重要组成部分则来自加利福尼亚大学Berkeley分校的BSD UNIX项目和麻省理工学院的X Windows系统项目
    • 以及在这之后成千上万的程序员开发的应用程序等

    正式Linux内核与GNU项目、BSD Unix和MIT的X11的结合,才使得整个Linux操作系统得以很快形成,并得到了发展,进而组成了今天优秀的Linux系统。

       
      Linux操作系统 = Linux内核+ GNU软件及系统软件 + 必要的应用程序

    下图是Linux操作系统组成原理示意图

    4.1 Linux的特点

    4.1.1 Linux受欢迎的原因

    • 自由软件,不用支付费用可以获得系统和系统的源代码,并可以根据自己的需要对源代码进行必要的修改,无偿使用,无约束地自由传播

    • Linux具有Unix的全部优秀特性,任何使用Unix操作系统或想要学习Unix操作系统的人,都可以通过学习Linux来了解Unix,同样可以获得Unix中的几乎所有优秀功能,并且,Linux系统更开放,社区开发和全世界的使用者也更活跃。

     

    5. 如何选择Linux发行版 

    5.1 Linux的发行版本介绍

    Linux内核(kernel)版本主要有3个系列:

    • Linux Kernel 2.2
    • Linux Kernel 2.4
    • Linux Kernel 2.6
    • Linux Kernel 3.x
    • Linux Kernel 4.x
    • ...

    Linux的发行商包括Slackware,Redhat,Debian,Fedora,TurboLinux,Mandrake,SUSE,CentOS,Ubuntu,红旗,麒麟...

     

    重要的发行版本:

    • Red Hat: Red Hat Linux 9.0的内核为2.4.20。在版本9.0后,Red Hat不再遵循GPL协议,成为收费产品(但仍开源),发展的新版本依次为Red Hat 3.x,Red Hat 4.x,Red Hat 5.x,Red Hat 6.x,Red Hat 7.x。

    • Fedora:为Red Hat的一个分支,仍遵循GPL协议,可以认为是Red Hat预发布版

    • CentOS(Community Enterprise Operating System):Red Hat的另一个重要分支,以Red Hat所发布的源代码重建符合GPL许可协议的Linux系统,即将Red Hat Linux源代码的商标LOGO以及非自由软件部分去除后再编译而成的版本,目前CentOS已被Red Hat公司收购,但仍开源免费。

     

    CentOS是目前国内互联网公司使用最多的Linux系统版本。

    6.选择适合自己的Linux系统

    • Ubuntu => 桌面系统,不想用盗版,不想花钱购买商业系统软件
    • CentOS 或 Red Hat => 服务器端Linux系统,稳定的服务器系统,首选CentOS
    • Debian 或 FreeBSD => 系统稳定性、安全性有更高的要求或者是特殊使用偏好的用户
    • Fedora => 特别痴迷新技术体验和追求最新的软件版本,但要容忍Fedora潜在的新技术软件的Bug和系统的稳定性的问题
    • 麒麟Linux => 更好的中文环境支持

    7. 选择CentOS的版本

    下面是CentOS的主流版本在国内互联网企业的使用现状说明:

    • CentOS5系列:占25%左右,主流版本有CentOS 5.5,CentOS 5.8,CentOS 5.10,CentOS 5.11,不推荐新手学习
    • CentOS6系列:占45%左右,主流版本有CentOS 6.2,CentOS 6.4,CentOS 6.6,CentOS 6.7,推荐新手学习
    • CentOS7系列:刚刚发布不就,目前极少企业正式使用,不建议先去玩它。
     

    8.搭建学习Linux运维环境

    8.1 虚拟机软件介绍

    虚拟机Virtual Machine软件就是一套特殊的软件,它可以作为操作系统独立运行,也可以运行于操作系统之上。

     

    若是运行于系统之上的虚拟机软件,在一台电脑上安装虚拟机软件之后,就可以模拟出来若干台相对独立的虚拟PC设备,并且可以在每台虚拟的PC设备上安装运行操作系统,运行网络服务,和真实的计算机设备几乎无任何使用差别。

     

    使用时,需要先在电脑上安装好虚拟机软件,如:VMware Workstation,然后通过安装的虚拟机软件创建一个或多个虚拟机系统,最后在这些虚拟的电脑设备上安装操作系统并进行启动配置。
    最终,实现在一台电脑上“同时”运行多个虚拟机设备系统。

    另外,还可以将这些虚拟的系统连成局域网,用来部署网站集群架构等更深层次的运维技术,这样的虚拟环境,在后文会涉及。

     Windows系统,推荐使用VMware Workstation;
    MacOS系统,可以选择Virtual PC;
    Ubuntu系统,可以选择Xen、KVM、VMware(linux版本)

  • 相关阅读:
    浅谈web网站架构演变过程
    大数据量下高并发同步的讲解
    web api中的RouteHandler
    在DOS使用SVN之执行命令整理(TortoiseProc.exe)
    调用微信退款接口问题备忘
    java上传本地文件至hdfs(简单写一下)
    wordcount计数
    结对项目(JAVA)
    WC个人项目(JAVA实现)
    自我介绍+软工5问
  • 原文地址:https://www.cnblogs.com/zoe233/p/11900222.html
Copyright © 2011-2022 走看看