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发行版

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版本)

原文地址:https://www.cnblogs.com/zoe233/p/11814087.html

时间: 2024-10-10 17:51:05

Linux系统介绍与环境搭建准备的相关文章

s3c6410 Linux 驱动开发环境搭建

s3c6410 Linux 驱动开发环境搭建 -- 既然你是做Linux开发的,你还用虚拟机? 非常多人都在win下做开发,于是SD_writer.exe之类的烧写工具"大行其道",多是用虚拟机Linux. 全然转到Linux下学习開始蛮不爽的,开发板制作商送的教程都是些讲Win-CE的东东,感觉实质性的东西没什么.对于全然用Linux做开发的技术解说非常少,连烧写SD卡都用的win以下的程序.后来找了些资料,整理在这里,希望留给有心人.共同营造一个更好的共同学习的环境. 当别人遇到困

Linux vagrant+virtualbox环境搭建步骤

Linux vagrant+virtualbox环境搭建步骤 Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用. 我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员.成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气. 1. 安装 VirtualBox 虚拟机还是得依靠 VirtualBox 来搭建,免费小巧.虽然 Va

Linux Android 开发环境搭建

由于Android本身就是linux,为了避免各种不必要的坑,所以在linux下开发Android.当然不熟悉 linux 的,选择 windows 开发也是一样,没有任何问题,个人习惯就好.说一下我的开发环境, ubuntu 14.04(这个是最新的STL),  JDK 1.7.0. 首先是 jdk 的安装, 这个在网上有很多的 blog 可以参看,就不累术了,选择对应版本的就行,记住配置好环境变量.然后是 Android SDK 的安装.在官网上推荐的是新手选择安装 ADT Bundle 版

Linux虚拟机学习环境搭建—虚拟机安装

接上一篇的Linux虚拟机学习环境搭建-虚拟机创建"  点击"开启此虚拟机",进入系统安装界面. Tab键可以调整选项,直接选择第一项,回车.备注:鼠标点击进入虚拟机,要跳出虚拟机回到主机控制,按下Ctrl+Alt. 出现Disc Found界面,用Tab键,选择到Skip选项,回车.备注:此操作是校验安装文件是否有损坏,现在是安装学习测试机,跳过校验. 进入到图标界面,单击 "下一步" 进入到语言选择界面,此处选择"English",

Linux交叉开发环境搭建 —— 效率之源

楼主今天终于把所有Linux开发环境需要的软件下载完毕了.虽然以前也是搭建过的,时间久了又折腾了一晚上. 交叉环境: Windows.Linux文件共享 SecureCRT 连接虚拟机终端 工具: VirtualBox ubuntu-16.04-desktop-amd64.iso(ubuntu官网下载) SecureCRT Source Insight 虚拟机搭建: 检查bios虚拟技术功能开启 新建虚拟机,选择创建虚拟硬盘,其余均默认 点击新建虚拟机设置->存储->选中没有光盘->点击

linux下PHP 环境搭建

linux下环境搭建 第一步 安装Apache2 sudo apt-get install apache2 第二步 安装PHP模块 sudo apt-get install php5 第三步 安装Mysql sudo apt-get install mysql-server sudo apt-get install mysql-client 第四步 其他模块安装 sudo apt-get install libapache2-mod-php5 sudo apt-get install libap

linux下scrapy环境搭建

最近使用scrapy做数据挖掘,使用scrapy定时抓取数据并存入MongoDB,本文记录环境搭建过程以作备忘 OS:ubuntu 14.04  python:2.7.6 scrapy:1.0.5 DB:MongoDB 3 ubuntu14.04内置python2.7,因此python及pip安装不再赘述. 一.安装scrapy pip install Scrapy  由于scrapy相关依赖较多,因此在安装过程中可能遇到如下问题: 1.ImportError: No module named 

Linux PC开发环境搭建建议

搭建Linux PC开发环境 很早之前整理的在Linux(ubuntu)系统下搭建 PC开发环境的工具的推荐和简单说明,尽管现在有些已经不再使用,但还是要备份一下,作为以后的参考: package: download from: 软件集成开发环境(代码编辑.浏览.编译.调试) Emacs http://www.gnu.org/software/emacs/ Source-Navigator 5.2b2 http://sourceforge.net/projects/sourcenav 代码索引工

linux单机LAMP环境搭建

LAMP单机环境搭建 一.系统环境准备. 1.系统环境:CentOS_6.5,32位 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.5 (Final) [[email protected] ~]# uname -r 2.6.32-431.el6.i686 2.软件版本 httpd-2.2.31 mysql-5.1.72 php-5.5.32 3.关闭防火墙iptables和selinux 3.1关闭防火墙iptab