热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux——初识Linux

本文主要说明了Linux是什么,Linux发展历史,以及同Linux系统有关的

Linux——初识Linux

摘要:本文主要说明了Linux是什么,Linux发展历史,以及同Linux系统有关的一些基本知识。

简介


操作系统

Linux系统同Windows系统、Mac系统一样,都属于计算机的操作系统,当我们拥有了一台新电脑之后,要做的第一件事就是装系统,那么,什么是操作系统呢?

计算机,也就是我们常说的电脑,其实只是由一堆看得见摸得着的东西组成的机器,这些东西被称为硬件

我们在电脑上用到的一些应用,比如:聊天用到的QQ、微信,打游戏用到的英雄联盟、绝地求生,工作用到的Word、Excel、PowerPoint。这些是在电脑本身不具备的东西,是通过安装相应的程序才能让它们在电脑上运行,这些东西被称为软件

操作系统本质上是一套程序,是用来管理机硬件和软件的计算机程序,比如:它可以对磁盘进行分区管理,对连接计算机的输入输出设备进行管理,对网络通信进行管理,对系统里的文件进行管理,对程序运行的内存进行管理,有的操作系统还提供了一套自己的用户交互界面,等等。

因为操作系统本身不具备应用程序的功能,所以在安装了Linux操作系统之后,根据不同的需求还需要在Linux操作系统上安装不同的软件。

发展历史

上个世纪六十年代,计算机系统使用批处理,中途不需要用户的交互,别人也不能用,导致了计算机资源的浪费。

1965年,贝尔实验室(Bell)、麻省理工学院(MIT)以及通用电气(GE)联合起来准备研发一个分时多任务处理系统。

1969年,贝尔实验室退出,Ken Thompson用汇编语言写出了一组核心程序,同时包括一些核心工具程序,以及一个小小的文件系统,这个系统就是Unix的原型。

1973年,柏克莱大学的Bill Joy在取得了Unix的核心原始码后,着手修改成适合自己机器的版本,最终将它命名为Berkeley Software Distribution(BSD)。这个BSD是Unix很重要的一个分支,Bill Joy也是Sun公司的创始人。

1984年,因为Unix规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于Unix的Minix,用于教学。

1984年,Stallman开始GNU(GNU‘s Not Unix)计划,创办FSF(Free Software Foundation)基金会。完成一些重要软件的开发:Emacs、GCC(GNU C Compiler)、GLIBC(GNU C Library)、BASH Shell。

1985年,为了避免GNU所开发的自由软件被其他人所利用而成为专利软件,所以他与律师草拟了有名的通用公共许可证(GPL,General Public License)。

1991年,芬兰的赫尔辛基大学的Linus Torvalds基于GCC、BASH Shell开发了针对386机器的Linux内核。

1994年,Torvalds发布Linux-v1.0。

1996年,Torvalds发布Linux-v2.0,确定了Linux的吉祥物:企鹅。

优缺点

系统稳定:Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Unix系统相似的程序接口跟操作方式,当然也继承了Unix稳定并且有效率的特点。安装Linux的主机连续运做一年以上而不曾当机、不必关机是稀松平常的事。

开源,免费:由于Linux是基于GPL授权下的产物,因此任何人皆可以自由取得Linux。不同于Unix需要负担庞大的版权费用,当然也不同于Windows需要一而再、再而三的更新你的系统,并且缴纳大量费用。

安全性高,修复漏洞速度快:由于使用Linux的人很多,有相当多的热心团体、个人参与其中的开发,因此可以随时获得最新的安全信息,并给予随时的更新,安全性相对较高。

允许多人共同使用:与Windows系统不同,Linux主机上允许多人同时使用,并且资源的分配较为公平,比起Windows的单人多任务系统要稳定的多。可以在一个Linux主机上添加不同身份的用户,而且每个用户登入系统时的工作环境都可以不相同,此外,还可以允许不同的使用者在同一个时间登入主机,同时使用主机的资源。

文件属性和用户组权限:在Linux的系统中,文件的属性可以分为“可读、可写、可执行”,这些属性还可以分为三个种类,分别是文件拥有者、文件所在组、其他。这对于项目计划或者其他计划开发者具有相当良好的系统保密性。

相对节省资源:Linux系统对主机的要求比较低,不需要很高的配置。

强大的网络支持:Linux在通信和网络功能方面优于其他操作系统。其他操作系统没有如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

发行版本

从技术上来说,Linus Torvalds开发的Linux只是一个内核。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或厂商将Linux内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成了Linux的发行版本。

在Linux内核的发展过程中,各种Linux发行版本起了巨大的作用,正是它们推动了Linux的应用,从而让更多的人开始关注Linux。因此,把Red Hat、Ubuntu、SUSE等直接说成Linux其实是不确切的,它们是Linux的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。

Linux的各个发行版本使用的是同一个Linux内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。

Redhat

Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server收费版本)、FedoraCore(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。

Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian

Debian,或者称Debian系列,包括Debian和Ubuntu等。

Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch):stable,testing和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是APT-GET/DPKG包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。

Slackware

Slackware由Patrick Volkerding创建于1992年,是现存最古老的Linux发行版。其受欢迎程度大幅下降与红帽Linux和其它更易用发行版的发行有关,但Slackware仍然是一个倍受赞赏且经营中更面向系统管理员技术和桌面用户的系统。Slackware是一个高度技术性的,干净的发行版,只有少量非常有限的个人设置。它使用简单,基于文本的系统安装和比较原始的包管理系统,没有解决软件依赖关系。因此,Slackware被认为是今天最为纯净和最不稳定的发行版。

SuSE

SuSE以Slackware为基础,原来是德国的SuSE Linux AG公司发布的Linux版本,1994年发行了第一版,早期只有商业版本,2004年被Novell公司收购后,成立了OpenSUSE社区,推出了自己的社区版本OpenSUSE。

SuSE在欧洲较为流行,在我国国内也有较多应用。值得一提的是,它吸取了Red Hat的很多特质。SuSE可以非常方便地实现与Windows的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。

Gnome

Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

Gentoo

Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。

FreeBSD

FreeBSD,需要强调的是,FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。

FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

桌面环境

早期的Linux系统都是不带界面的,只能通过命令来管理,比如运行程序、编辑文档、删除文件等。所以,要想熟练使用Linux,就必须记忆很多命令。后来随着Windows的普及,计算机界面变得越来越漂亮,点点鼠标就能完成很多工作,人们已经习惯了图形界面化的操作,很难再忍受一片漆黑的命令行窗口了。这推动了Linux社区进行变革,很快推出了Linux系统的图形界面环境。

Linux中的桌面环境也是一个程序,它和内核不是绑定的,两者的开发也不是同步的。给不带界面的Linux系统安装上一个桌面环境,你就能看到各种漂亮的窗口,并能用鼠标点击它们了。

KDE桌面系统

KDE是K Desktop Environment的缩写,中文译为“K桌面环境”。

KDE基于大名鼎鼎的Qt,最初于1996年作为开源项目公布,并在1998年发布了第一个版本,现在KDE几乎是排名第一的桌面环境了。

许多流行的Linux发行版都提供了KDE桌面环境,比如Ubuntu、Linux Mint、OpenSUSE、Fedora、Kubuntu、PC Linux OS等。

KDE允许你把应用程序图标和文件图标放置在桌面的特定位置上。单击应用程序图标,Linux系统就会运行该应用程序。单击文件图标,KDE桌面就会确定使用哪种应用程序来处理该文件。

KDE项目组还开发了大量的可运行在KDE环境中的应用程序,包括Dolphin(文件管理工具)、Konsole(终端)、Kate(文本编辑工具)、Gwenview(图片查看工具)、Okular(文档及PDF查看工具)、Digikam(照片编辑和整理工具)、KMail(电子邮件客户软件)、Quassel(IRC客户软件)、K3b(DVD刻录程序)、Krunner(启动器)等,它们都是默认安装的。

GNOME桌面环境

GNOME是the GNU Network Object Model Environment的缩写,中文译为“GNU网络对象模型环境”。

GNOME于1999年首次发布,现已成为许多Linux发行版默认的桌面环境(不过用得最多的是 Red Hat Linux)。

GNOME的特点是简洁、运行速度快,但是没有太多的定制选项,用户需要安装第三方工具来实现。GNOME甚至不包括一些简单的调整选项,比如更改主题、更改字体等,就这两种基本的调整而言,用户都需要安装第三方工具。所以,GONME适合那些不需要高度定制界面的用户。

GNOME被用作Fedora中的默认桌面环境,提供在几款流行的Linux发行版中,比如Ubuntu、Debian、OpenSUSE等。

Unity桌面环境

Unity是由Ubuntu的母公司Canonical开发的一款外壳。之所以说它是外壳,是因为Unity运行在GNOME桌面环境之上,使用了所有GNOME的核心应用程序。

2010年,Unity第一个版本发布,此后经过数次改进,如今和其它的桌面环境一样,也可以安装到其它的Linux发行版上了。

Unity使用了不同的界面风格,如果你用的是Ubuntu Linux发行版,你会注意到Unity与KDE和GNOME桌面环境有些不一样。

Unity在左边有一个启动器,位于启动器顶部的是搜索图标,又叫“Dash”。在Dash上搜索文件时,不仅会给出来自硬盘的搜索结果,还会给出来自在线来源的搜索结果,比如Google Drive、Facebook、Picasa、Flick及其他。Unity还提供了隐藏启动器、触摸侧边栏就显示的选项,用户还可以调高/调低显示启动器菜单的灵敏度。

Unity很简单、运行速度快,但Unity在系统设置下却没有定制桌面的太多选项,要想安装主题或者定制另外不同的选项,比如系统菜单是否应该总是可见,或者“从启动器图标一次点击最小化”,用户需要安装第三方工具。

CCSM和Unity Tweak Tool是面向Unity桌面环境的非常流行的定制工具。

MATE桌面环境

上面我们提到,GNOME 3进行了全新的界面设计,这招致一些用户的不满,他们推出了其它的桌面环境,MATE就是其中之一。

MATE是一种从现在无人维护的GNOME 2代码库派生出来的桌面环境。

MATE让人觉得在使用旧的桌面环境,但是结合了历年来界面方面的诸多改进。MATE还非常适用于低配计算机,所以如果你有一台旧的或速度较慢的计算机,可以使用MATE。

MATE还是许多流行的Linux发行版随带的,比如Ubuntu、Linux Mint、Mageia、Debian及另外更多发行版。Ubuntu MATE头一回是官方版本。

MATE自带的应用程序包括Caja(文件管理工具)、Pluma(文本编辑工具)、Atril(文档查看工具)、Eye of MATE(图像查看工具)等,如果用户不需要其他功能完备的桌面环境的所有额外功能,那么MATE对他们来说是一款简单的轻量级桌面环境。

Cinnamon桌面环境

与MATE类似,Cinnamon是由Linux Mint团队因为不满Gnome 3的改进而开发的另一种桌面环境。但Cinnamon与MATE不同之处在于,Cinnamon建立在Gnome 3的基础上。Cinnamon是新的,而且在积极开发之中,但这款出色的桌面环境没有因新颖而在功能方面有所减弱。

Cinnamon拥有GNOME和Unity等其它桌面环境所没有的种种功能。Cinnamon是高度可定制的桌面环境,不需要任何外部插件、窗口组件和调整工具来定制桌面。Cinnamon甚至可以通过设置管理器本身来下载并安装主题,甚至不需要打开互联网浏览器。

由于种种出色的所需功能,Cinnamon对任何刚接触Linux的新用户来说都非常方便。许多用户放弃使用Linux,是因为他们并不了解Linux的工作方式,但是我强烈建议新手应从Cinnamon桌面环境开始入手。

许多流行的Linux发行版提供了各自版本的Cinnamon,比如Ubuntu、Fedora、OpenSUSE、Gentoo、Arch Linux等。Cinnamon还是Linux Mint的默认桌面环境。


推荐阅读
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
author-avatar
zhengfke
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有