linux系统是什么

时间:2018-10-31 来源:酷下载 作者:江南烟雨

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统,是一个性能稳定的多用户网络操作系统。今天小编就为大家带来linux系统的详细安装教程,感兴趣的赶紧来看看吧。

linux系统是什么

1.1:Linux 是什么

Linux 是安装在电脑硬体系统上面的一套作业系统,目的是用来管理电脑硬体的!所以我们得要先了解一下硬体的常见组成,以及常见的硬体分类, 这样才好入门Linux 喔!

1.1.1:硬体与作业系统

目前的电脑硬体系统主要经由底下的元件所组成:

输入单元:包括键盘、滑鼠、读卡机、扫描器、手写板、触控萤幕等等一堆;

主机部分:这个就是系统单元,被主机机壳保护住了,里面含有一堆板子、CPU 与主记忆体等;

输出单元:例如萤幕、印表机等等

上述主机部份是整体系统最重要的部份,该部份的组成为:控制单元、算术逻辑单元以及记忆体单元(含主记忆体、外部储存装置)等。

X86 个人电脑:由Intel / AMD 为主要制造厂商,此架构通用于个人电脑(包括笔记型电脑) 以及商用伺服器市场上(亦即x86 伺服器)。目前(2017) Intel 在个人电脑市场推出单个CPU 封装内含4 核8 绪的个人电脑CPU,商用伺服器则已经推出10 核20 绪以上的Xeon 商用x86 CPU。目前的电脑硬体架构主要均由中央处理单元(CPU) 所定义的各项连结元件所组成,而目前世界上消费市场中,最常见到的CPU 架构大概可以分为两大类:

ARM 手持式装置:由安谋公司所开发的ARM CPU ,由于其架构较为精简,且可授权其他公司开发,因此目前很多厂商均针对 ARM 架构进行自身的CPU 开发。ARM 通常使用于手持式装置,包括手机、平板等等,其他像是单板电脑(Raspberry pi, Xapple pi 等) 亦使用此架构。

为了简化硬体的资源操作,因此后来有开发作业系统来管理硬体资源的分配。因此程式设计师仅须考量程式的运作流程,而无须考量记忆体配置、 档案系统读写、网路资料存取等,在程式开发上面较为简易。硬体、作业系统、作业系统提供的开发界面以及应用程式的相关性,可以使用底下的图示来说明:


图1.1-1、硬体与作业系统相关性

硬体:例如x86 个人电脑以及ARM Raspberry pi 即是两种不同的硬体。但x86 个人电脑与x86 笔记型电脑,两者则是相同的硬体架构喔!

核心:就是作业系统!该系统内部涵盖档案系统、网路系统、记忆单元管理系统、硬体驱动程式、资料加密机制等等的子系统

系统呼叫:可视为核心提供的一系列函式库,程式设计师只要参考此部份的系统呼叫即可设计相关的应用程式,而不用去考虑核心所提供的子系统。

应用程式:就是在该系统呼叫的环境中,撰写程式码编译而成的binary code 程式。

现代的作业系统主要的目的就是在控管硬体的资源,并且提供一组开发环境让其他第三方协力厂商可以方便的在该作业系统上面开发相关的软体。故作业系统主要包含的部份是:『核心+系统呼叫』。

现代的Linux 作业系统主要以可跨硬体平台的C 程式语言所写成,且Linux 自从3.x 以来的核心版本已经支援了ARM 的CPU 架构, 因此Linux 可以轻松的在不同的硬体平台间编译后安装。但你依旧不可以直接拿x86 架构的编译好的Linux 去安装在ARM 的平台上!因为两者对个别硬体的设计还是不太相同的!

1.1.2:Linux 作业系统的发展沿革

Linux 并非凭空撰写而来,其发展有一定的历史背景。由于这些历史背景,目前Linux 是自由软体,可以自由的使用、学习、修改、编译、再发行, 而且是相对稳定的作业系统。

1965年以前的电脑系统:

最早的硬体没有作业系统的概念,后来为了管理方便,因此有了『多元程式处理系统』,更于后来以多元程式处理系统的概念再开发出了分时相容系统。当时的硬体主要是透过大型主机系统,内含分时相容系统,并提供大约16个文字终端机连线。不过当使用者过多时,需要等待才能够使用电脑系统。

1969年以前:一个伟大的梦想--Bell,MIT与GE的『Multics』系统:

Multics计画希望能够改善以前的大型主机系统,提供至少300个以上的文字终端机。最终虽然成功的开发出Multics系统,但是相对于Unix而言,Multics的使用率并不高。

1969年:Ken Thompson的小型file server system

参与过Multics计画的Thompson为了移植一套游戏,透过组合语言程式撰写一套昵称Unics的软体,该软体可以控制PDP-7这个硬体主机,提供了小型的档案系统管理功能等。

1973年:Unix的正式诞生,Ritchie等人以C语言写出第一个正式Unix核心

Thompson与Ritchie合作,Ritchie撰写C程式语言后,再以C改写Thompson的Unics ,最后编译成为一套作业系统。此系统就被称为Unix。由于使用C高阶程式语言撰写,人们很容易看得懂程式码,因此改写、移植程式就变得很简单。

1977年:重要的Unix分支--BSD的诞生

柏克莱大学的Bill Joy在取得了Unix的核心原始码后,着手修改成适合自己机器的版本,并且同时增加了很多工具软体与编译程式,最终将它命名为Berkeley Software Distribution (BSD)。

1979年:重要的System V架构与版权宣告

Bell lab. (贝尔实验室)的母企业为AT&T公司,AT&T在1979开发最新的SystemV之Unix作业系统。这个系统最特别的地方是, SystemV可以支援当时没有多工环境的x86个人电脑。此外,AT&T在1979年发行的第七版Unix中,特别提到了『不可对学生提供原始码』的严格限制!

1984年之一:x86架构的Minix作业系统开始撰写并于两年后诞生

因为SystemV之后,大学老师不可以教授Unix核心原始码,因此Andrew Tanenbaum自己动手写了Minix这个Unix Like的核心程式!同时搭配BBS新闻群组与相关书籍来贩售Unix Like的程式码。因为强调的是学习程式码,因此改版的速度相当缓慢。

1984年之二:GNU计画与FSF基金会的成立

Richard Mathew Stallman(史托曼)在1984年发起的GNU计画,目的是想要恢复以前『知识分享的骇客文化』,因此强调程式码需要公开以利学习的自由软体概念,并开发出bash, gcc, glibc, emacs等脍炙人口的软体。Stallman将所有的软体都上网,但是没有网路的朋友也能够透过邮件请Stallman寄送软体磁带,Stallman经由这样贩售emacs的『服务费用』(Stallman认为协助人们烧录软体,花费他很多的时间成本)赚了点钱,然后成立了自由软体基金会(FSF, Free Software Foundation),同时与律师共同签署了GNU的通用公共许可证(General Public License, GPL),该授权让使用者可以自由的使用软体,且软体的授权可以永续的存在。

1988年:图形介面XFree86计画

为了解决图形使用者界面(Graphical User Interface, GUI)的需求,于是有XFree86这个组织的形成。XFree86是由X Window System + Free + x86所组成的,目的在提供server/client的图形画界面。

1991年:芬兰大学生Linus Torvalds的一则简讯

Torvalds在1991年于BBS上面公告他透过GNU的bash, gcc等,透过学习Minix系统,在x86 (386)上面成功的开发一个小型的作业系统,并且放在Internet上面提供提供大家自由下载。同时,还鼓励大家告知Torvalds自己,这个系统还有哪些部份可以值得继续修改等的讯息。这就是Linux的起源!

1992年:Linux distributions发行:

为了让使用者更方便安装与操作Linux,于是有了Linux开发套件的软体释出,就称为Linux distribution了。一开始于1992年就有Softlanding Linux System(SLS), Yggdrasil Linux等版本。

1994年:Linux kernel version 1.0释出:

1994年Linux核心释出1.0版本,同时目前世上最知名的Linux商业公司Red Hat也在当时成立。

2005年:Google收购Android公司

从2003年开始,加州的一家公司开始发展Android系统在手机上面。后来Google于2005年收购该公司,并将Android在Linux核心上开发,以发展可以让手持式装置使用的作业系统。首个商用手机Android作业系统则在2008年由HTC推出!

2012年:教育市场的Raspberry pi

为了让小朋友能够轻松愉快的学习程式语言,一个小型的单板电脑制造基金会依据ARM的架构开发了一版大约与笔记型硬碟差不多大小的主机板,内嵌入所有电脑系统所需要的硬体,这就是树莓派(Raspberry pi)。Raspberry pi的预设作业系统即是搭配Linux核心所开发的小型作业系统。

1.1.3:GNU 的GPL 与Opensource 开放原始码授权

GNU 的GPL 授权主要强调自由的学习,Free Software(自由软体)是一种自由的权力,并非是『价格!』 举例来说,你可以拥有自由呼吸的权力、你拥有自由发表言论的权力,但是,这并不代表你可以到处喝『免费的啤酒!(free beer)』, 也就是说,自由软体的重点并不是指『免费』的,而是指具有『自由度, freedom』的软体,史托曼进一步说明了自由度的意义是: 使用者可以自由的执行、复制、再发行、学习、修改与强化自由软体。

GNU 的GPL 授权有底下的权力与义务:

取得软体与原始码:你可以根据自己的需求来执行这个自由软体;

复制:你可以自由的复制该软体;

修改:你可以将取得的原始码进行程式修改工作,使之适合你的工作;

再发行:你可以将你修改过的程式,再度的自由发行,而不会与原先的撰写者冲突;

回馈:你应该将你修改过的程式码回馈于社群!

不可修改授权:你不能将一个GPL授权的自由软体,在你修改后而将他取消GPL授权~

不可单纯贩卖:你不能单纯的贩卖自由软体。

由于自由软体使用的英文为free software,这个free 在英文是有两种以上不同的意义,除了自由之外,免费也是这个单字!因为有这些额外的联想,因此许多的商业公司对于投入自由软体方面确实是有些疑虑存在的!许多人对于这个情况总是有些担心~

为了解决这个困扰,1998 年成立的『开放原始码促进会(Open Source Initiative)』提出了开放原始码(Open Source,亦可简称开源软体) 这一名词!另外,并非软体可以被读取原始码就可以被称为开源软体喔!该软体的授权必须要符合底下的基本需求,才可以算是open source 的软体。

公布原始码且用户具有修改权:用户可以任意的修改与编译程式码,这点与自由软体差异不大;

任意的再散布:该程式码全部或部份可以被贩售,且程式码可成为其他软体的元件之一,作者不该宣称具有拥有权或收取其他额外费用。

必须允许修改或衍生的作品,且可让再发布的软体使用相似的授权来发表即可。

承上,用户可使用与原本软体不同的名称或编号来散布。

不可限制某些个人或团体的使用权

不可限制某些领域的应用:例如不可限制不能用于商业行为或者是学术行为等特殊领域等等

不可限制在某些产品当中,亦即程式码可以应用于多种不同产品中。

不可具有排他条款,例如不可限制本程式码不能用于教育类的研究中,诸如此类。

1.1.4:Linux kernel

Linux kernel 主要由http://www.kernel.org 维护,目前的版本已经出现到4.x 版。Linux kernel 1.0 在1994 年释出, 在1996 年释出2.0 版,在2.0 之后,核心的开发分为两个部份,以广为使用的2.6 来说明的话,主要的分类有:

2.6.x:所谓的偶数版,为稳定版,适用于商业套件上;

2.5.x:所谓的奇数版,为发展测试版,提供工程师一些先进开发的功能。

这种奇数、偶数的编号格式在2011 年3.0 核心推出之后就失效了。从3.0 版开始,核心主要依据主线版本(MainLine) 来开发,开发完毕后会往下一个主线版本进行。例如4.9 就是在4.8 的架构下继续开发出来的新的主线版本。

旧的版本在新的主线版本出现之后,会有两种机制来处理,一种机制为结束开发(End of Live, EOL),亦即该程式码已经结束, 不会有继续维护的状态。另外一种机制为保持该版本的持续维护,亦即为长期维护版本(Longterm)!例如4.9 即为一个长期维护版本,这个版本的程式码会被持续维护,若程式码有bug 或其他问题, 核心维护者会持续进行程式码的更新维护。

1.1.5:Linux distributions

为了让使用者能够接触到Linux,于是很多的商业公司或非营利团体,就将Linux Kernel(含tools)与可运行的软体整合起来, 加上自己具有创意的工具程式,这个工具程式可以让使用者以光碟/DVD或者透过网路直接安装/管理Linux系统。这个『Kernel + Softwares + Tools + 可完整安装程序』的咚咚,我们称之为Linux distribution, 一般中文翻译成可完整安装套件,或者Linux发布商套件等。

常见的Linux distributions 分类有:

RPM 软体管理DPKG 软体管理其他未分类

商业公司RHEL (Red Hat公司)

SuSE (Micro Focus)Ubuntu (Canonical Ltd.)

社群单位Fedora

CentOS

OpenSuSEDebian

B2DGentoo

一般用途在个人电脑(包括笔记型电脑) 的使用,建议可以使用Ubuntu / Fedora / OpenSuSE 等,若用在Server 上, 建议可以使用CentOS 或Debian。

CentOS 的产生较为有趣,他是取自Red Hat 的RHEL 作业系统,将原始码中与Red Hat 相关的注册商标或其他著作相关的资料移除, 改以自己的『企业商用社群版本作业系统』取名,然后再次发行。因此CentOS 的版本与RHEL 是亦步亦趋的!(包括Oracle Linux 与Scientific Linux 也是同样的作法)。

1.1.6:Linux 的常见用途

用在企业环境与学术环境中,最常见到的应用有:

网路伺服器

关键任务的应用(金融资料库、大型企业网管环境)

学术机构的高效能运算任务

个人的使用则有:

桌上型电脑

手持系统(PDA、手机、平板电脑、精简电脑等)

嵌入式系统(如raspberry pi / Xapple pi 等内建的Linux 系统)

1.2:登入与操作Gocloud 云端系统

为方便教师/学生可以在任何地方学习Linux 作业系统,一个教学环境是需要事先建置的。除了使用实体机器原生的Linux 之外, 虚拟化的环境更方便教师制作教学单元。因为虚拟化的环境软/硬体可以模拟的完全一致,对于教师与学生的实作练习以及错误重现,都有很大的帮助。

本教材预设使用Gocloud 这套云端系统来进行教与学的任务,请教师事先于Gocloud 上建置好学生需要的实际操作环境, 该环境的取得请参考本教材的电子资料,或与作者/出版社联系。

1.2.1:注册gocloud 与登入

请依据贵单位的环境设定(网际网路IP 或主机名称),直接以浏览器来连线到Gocloud 系统:

举报信息框
举报