Linux——系统简介

1、从UNIX到LINUX

在目前主流的服务器端操作系统中,UNIX诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,Linux诞生于20世纪90年代初,可以说UNIX是操作系统中的“老大哥”。

1.1、Linux简史

Linux内核最初是由李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版UNIX操作系统Minix太难用了,于是决定自己开发一个操作系统。第一个版本于1991年9月发布,当时仅有10000行代码。
在这里插入图片描述
李纳斯·托瓦兹没有保留Linux源代码的版权,公开了代码,并邀请他人一起完善Linux。与Windows及其他有专利权的操作系统不同,Linux开放源代码,任何人都可以免费使用它。

据估计,现在只有2%的Linux核心代码是由李纳斯·托瓦兹自己编写的,虽然他仍然拥有Linux内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的Linux,笔者更倾向于说是由李纳斯·托瓦兹和后来陆续加入的众多Linux爱好者共同开发完成的。

李纳斯·托瓦兹无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区GitHub(开源代码库及版本控制系统)。

关于Linux Logo的由来是一个很有意思的话题,它是一只企鹅。
在这里插入图片描述

企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,任何国家都无权将南极洲纳入其版图。Linux选择企鹅图案作为Logo,其含义是:开放源代码的Linux为全人类共同所有,任何公司无权将其私有。

1.2、UNIX与Linux的关系

二者的关系,不是大哥和小弟,“UNIX是Linux的父亲”这个说法更恰当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实Linux与UNIX有很多的共通之处,简单地说,如果你已经熟练掌握了Linux,那么再上手使用UNIX会非常容易。二者也有两个大的区别:其一,UNIX系统大多是与硬件配套的,也就是说,大多数UNIX系统如AIX、HP-UX等是无法安装在x86服务器和个人计算机上的,而Linux则可以运行在多种硬件平台上;其二,UNIX是商业软件,而Linux是开源软件,是免费、公开源代码的。

Linux受到广大计算机爱好者的喜爱,主要原因有两个:一是它属于开源软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播;二是它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux中获益。

近年来,Linux已经青出于蓝而胜于蓝,以超常的速度发展,从一个丑小鸭变成了一个拥有庞大用户群的真正优秀的、值得信赖的操作系统。历史的车轮让Linux成为UNIX最优秀的传承者。

1.3、UNIX/Linux系统结构

UNIX/Linux系统可以粗糙地抽象为3个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如下图所示。
在这里插入图片描述

底层是UNIX/Linux操作系统,一般称之为系统内核(Kernel);中间层是Shell层,即命令解释层;高层则是应用层。

  • 内核层:内核层是UNIX/Linux系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
  • Shell层:Shell层是与用户直接交互的界面。用户可以在提示符下输入命令行,由Shell解释执行并输出相应结果或者有关信息,所以我们也把Shell称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
  • 应用层:应用层提供基于X Window协议的图形环境。X Window协议定义了一个系统所必须具备的功能(就如同TCP/IP是一个协议,定义软件所应具备的功能),任何系统能满足此协议及符合X协会其他的规范,便可称为X Window。现在大多数的UNIX系统上(包括Solaris、HP-UX、AIX等)都可以运行CDE(Common Desktop Environment,通用桌面环境,是运行于UNIX的商业桌面环境)的用户界面;

2、Linux详解

接下来我们介绍一下Linux系统的优缺点、应用领域和发行版本。

2.1、Linux优势

2.1.1、大量的可用软件及免费软件

Linux系统上有着大量的可用软件,且绝大多数是免费的,比如声名赫赫的Apache、Samba、PHP、MySQL等,构建成本低廉,是Linux被众多企业青睐的原因之一。当然,这和Linux出色的性能是分不开的,否则,节约成本就没有任何意义。

但不可否认的是,Linux在办公应用和游戏娱乐方面的软件相比Windows系统还很匮乏,所以,即便明哥和超哥打游戏、看影片用的也是Windows,至于Linux,就把它用在擅长的服务器领域吧。

2.1.2、良好的可移植性及灵活性

Linux系统有良好的可移植性,它几乎支持所有的CPU平台,这使得它便于裁剪和定制。我们可以把Linux放在U盘、光盘等存储介质中,也可以在嵌入式领域广泛应用。

2.1.3、优良的稳定性和安全性

著名的黑客埃里克·雷蒙德(Eric S. Raymond)有一句名言:“足够多的眼睛,就可让所有问题浮现。Linux开放源代码,将所有代码放在网上,全世界的程序员都看得到,有什么缺陷和漏洞,很快就会被发现,从而成就了它的稳定性和安全性。

2.1.4、支持几乎所有的网络协议及开发语言

经常有初学的朋友问我,Linux是不是对TCP/IP协议支持不好、是不是Java开发环境不灵之类的问题。前面在UNIX发展史中已经介绍了,UNIX系统是与C语言、TCP/IP协议一同发展起来的,而Linux是UNIX的一种,C语言又衍生出了现今主流的语言PHP、Java、C++等,而哪一个网络协议与TCP/IP无关呢?所以,Linux对网络协议和开发语言的支持都很好。

2.2、Linux的应用领域

Linux似乎在我们平时的生活中很少看到,那么它应用在哪些领域呢?其实,在生活中随时随地都有Linux为我们服务着……

2.2.1、网站服务器

世界知名的网站google.com、qq.com、新浪、网易等,无一例外地应用着Linux。就连你输入microsoft.com,会发现微软的下载站等也在使用Linux。

为什么这么多大型网站会采用Linux而不使用UNIX或Windows?其中一个重要的原因就是使用Linux成本较低,而UNIX和Windows都是商业软件;另一个更重要的原因是出于安全和性能方面的考虑。

2.2.2、电影工业

在过去,SGI图形工作站支配了整个电影产业,20世纪90年代的影片《侏罗纪公园》中生动的恐龙正是从SGI上孕育出来的,SGI的操作系统Irix就是UNIX的一种。当时所有动画制作公司都得看SGI的脸色。然而,从1997年开始,Linux开始全面占领好莱坞,娱乐业巨擘迪士尼宣布全面采用Linux,宣告了SGI时代的没落,Linux时代走向辉煌。

2.2.3、嵌入式应用

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可定制,适用于各种应用场合,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户的应用程序4部分组成,用于实现对其他设备的控制、监视或管理等。嵌入式系统几乎涵盖了生活中的所有电器设备,如手机、平板电脑、电视机顶盒、游戏机、智能电视、汽车、数码相机、自动售货机、工业自动化仪表与医疗仪器等。

不得不提的是安卓系统(Android)。安卓是基于Linux的开源系统,主要适用于便携设备,如智能手机和平板电脑等,是Google公司为移动终端打造的真正开放和完整的移动软件。在如今的智能手机操作系统市场上,安卓系统的占有率已然是傲视群雄。

3、Linux的发行版本

新手往往会被Linux众多的发行版本搞得一头雾水,我们首先来解释一下这个问题。

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

在Linux内核的发展过程中,各种Linux发行版本起了巨大的作用,正是它们推动了Linux的应用,从而让更多的人开始关注Linux。因此,把Red Hat、Ubuntu、SUSE等直接说成Linux其实是不确切的,它们是Linux的发行版本,更确切地说,应该叫作“以Linux为核心的操作系统软件包”。Linux的各个发行版本使用的是同一个Linux内核,因此在内核层不存在什么兼容性问题,每个版本有不一样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。

Linux的发行版本可以大体分为两类:一类是商业公司维护的发行版本;另一类是社区组织维护的发行版本。前者以著名的Red Hat为代表,后者以Debian为代表。很难说大量Linux版本中哪一款更好,每个版本都有自己的特点。下面为大家介绍4款我国国内应用较多的Linux发行版本。

3.1、Red Hat Linux

Red Hat(红帽公司)创建于1993年,是目前世界上资深的Linux厂商,也是最获认可的Linux品牌。
在这里插入图片描述
Red Hat公司的产品主要包括RHEL(Red Hat Enterprise Linux,收费版本)和CentOS(RHEL的社区克隆版本,免费版本)、Fedora Core(由Red Hat桌面版发展而来,免费版本)。Red Hat是在我国国内使用人群最多的Linux版本,资料丰富,如果你有什么不明白的地方,则容易找到人来请教,而且大多数Linux教程是以Red Hat为例来讲解的。

Red Hat官方网站:http://www.redhat.com。

CentOS官方网站:http://www.centos.org。

3.2、Ubuntu Linux

Ubuntu基于知名的Debian Linux发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的Linux发行版本,而且Ubuntu的所有发行版本都免费提供。
在这里插入图片描述

Ubuntu的创始人Mark Shuttleworth是一个非常具有传奇色彩的人物。他在大学毕业后创建了一家安全咨询公司,1999年以5.75亿美元被收购,他由此一跃成为南非最年轻有为的本土富翁。作为一名狂热的天文爱好者,Mark Shuttleworth于2002年自费乘坐俄罗斯联盟号飞船,在国际空间站中度过了8天的时光。之后,Mark Shuttleworth创立了Ubuntu社区,2005年7月1日建立了Ubuntu基金会,并为该基金会投资1000万美元。他说,太空的所见正是他创立Ubuntu的精神之所在。如今,他最热衷的事情就是到处为自由开源的Ubuntu进行宣传和演讲。

Ubuntu官方网站:http://www.ubuntu.com。

3.3、SuSE Linux

SuSE Linux以Slackware Linux为基础,原来是德国的SuSE Linux AG公司发布的Linux版本,1994年发行了第一版,早期只有商业版本,2004年被Novell公司收购后,成立了OpenSUSE社区,推出了自己的社区版本OpenSUSE。
在这里插入图片描述
SuSE Linux在欧洲较为流行,在我国国内也有较多应用。值得一提的是,它吸取了Red Hat Linux的很多特质。SuSE Linux可以非常方便地实现与Windows的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。

SuSE官方网站:https://www.suse.com。
OpenSUSE官方网站:http://www.opensuse.org。

3.4、Gentoo Linux

Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。Gentoo是所有Linux发行版本里安装最复杂的,到目前为止仍采用源码包编译安装操作系统。不过,它是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
在这里插入图片描述

自从Gentoo 1.0面世后,它就像一场风暴,给Linux世界带来了巨大的惊喜,同时也吸引了大量的用户和开发者投入Gentoo Linux的怀抱。有人这样评价Gentoo:快速、设计干净而有弹性,它的出名是因为其高度的自定制性——它是一个基于源代码的发行版。尽管安装时可以选择预先编译好的软件包,但是大部分使用Gentoo的用户都选择自己手动编译。这也是为什么Gentoo适合比较有Linux使用经验的老手使用。但要注意的是,由于编译软件需要消耗大量的时间,所以,如果你所有的软件都由自己编译,并安装KDE桌面系统等比较大的软件包,则可能需要花费很长时间。

Gentoo官方网站:http://www.gentoo.org。

3、寄语

任何人学习和使用Linux或多或少会遇到问题,很多人遇到问题的第一个念头就是问人。没错!这可以快速解决问题。但是我们建议你,先尝试自己解决问题,询问别人获得答案固然好,但是对于知识的积累和提升解决问题的能力并没有帮助,不要做依赖别人帮助的懒虫。在寻找答案的过程中,虽然会花费很多时间,也可能会遇到挫折,但久而久之你会发现,也许为了找一个问题的解答,你了解了Linux很多相关的知识,经验也越来越丰富。记住,你不可能永远有人问,也不可能永远有人愿意回答你。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/348817.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Caused by: com.mongodb.MongoTimeoutException: Timed out after 30000 ms

报错 Caused by: com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect. Client view of cluster state is {typeUNKNOWN, servers[{addressmangodb-m.cc.com:3717, typeUNKNOWN, stateCONNECTING, exception{com.mongodb.MongoSocketReadE…

java数据结构与算法刷题-----LeetCode769. 最多能完成排序的块

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 这道题可以理解为,只能保证块内有序的情况下&#xf…

力扣日记1.25-【回溯算法篇】39. 组合总和

力扣日记:【回溯算法篇】39. 组合总和 日期:2023.1.25 参考:代码随想录、力扣 39. 组合总和 题目描述 难度:中等 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和…

【域名解析】如何将域名指向对应服务器IP

目录 🌷一、域名解析基本概念 🌼1. 定义 🌼2. 域名解析类型 🌷二、域名解析服务器IP地址 🌼1. 操作步骤 🌼2. 验证 🌷一、域名解析基础知识 🌼1. 基本概念 定义: …

微信小程序开发scroll-view在预览或真机调试仅显示第一个元素解决方案

现象如下: 在编译时显示正常: 在预览或真机调试时仅显示第一个元素: 解决方案:将app.json文件中renderer类型由skyline改为webview 更多微信小程序内容欢迎关注我! 有帮助的话欢迎打赏!

二次开发RuoYi-Vue操作记录

二次开发RuoYi-Vue操作记录 一、本地启动修改1、修改文件路径2、修改redis配置3、数据源配置4、导入sql 二、新增模块1、创建模块2、添加依赖 三、新增页面1、数据准备2、代码生成3、菜单管理(1)目录创建(2)菜单创建(3…

ESP32开发板可以承受的最大电压

ESP32的最大工作电压为3.3V。但这并不意味着我们不能向 ESP32开发板施加大于 3.3V 的电压。ESP32 具有板载稳压器,使用 VIN 和 GND 引脚可承受最大 15V 的电压。 一旦电压输入到 ESP32 开发板VIN 引脚,该电压就会通过 ESP32 板载稳压器(AMS11…

宏景eHR SmsAcceptGSTXServlet XXE漏洞复现

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR SmsAcceptGSTXServlet接口处存在XML实体注入漏洞,未经身份认证的攻击者可以利用此漏洞读取系统内部敏感文件,获取敏…

群辉NAS的远程访问

群辉NAS是私有云存储,局域网访问很容易【详见:网上邻居访问设置、其它设备的访问设置】,远程访问相对复杂,涉及很多关键因素,现将过程记录如下: 目录 1、互联网接入 2、绑定MAC与IP地址 3、路由器开启5…

qml中访问控件内部的子项

如何访问Repeater类型内部的子项、Row等布局类型内部的子项以及ListView内部的子项等。。。 1、测试代码 import QtQuick 2.0 import QtQuick.Controls 2.12 import QtQuick.Window 2.12 import QtQuick.Layouts 1.3 import QtQml 2.12Window {id: windowobjectName: "m…

米贸搜|Facebook“精准营销”越来越难?或许是“受众定位”没彻底搞清!

一、为何要确定目标受众 对于每个广告主而言,面向最有可能成为其客户的用户营销非常重要,因此,确定目标受众,是Facebook广告投放中极其重要的一环。 二、什么是目标受众? 目标受众是您希望向其传达营销信息&#xf…

java servlet 高校田径运动会管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 jsp高校田径运动会管理系统是一套完善的java web信息管理系统 采用mvc模式 servletdaobean 模式开发,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myecl…

“JavaScript 循环中的 ‘await‘

目录 前言 for使用await -- 有效的 forEach使用await -- 无效的 for of 使用await 有效的 for await of 使用await 有效的 总结 前言 在JavaScript的forEach方法中使用await是无效的,因为forEach方法不支持异步操作的等待。 forEach是一个数组的遍历方法&…

如何修改hosts文件-mac

1、什么是hosts文件? Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,即域名映射到IP地址,域名是为了方便人类记忆识别&#xff0c…

力扣354. 俄罗斯套娃信封问题

动态规划 思路: 同时控制 w、h 两个维度比较复杂,可以先固定一个维度,来找出另外一个维度的严格单调序列: 对 w 排序,然后再来找 h 维度严格单调递增序列长度;在 w 排序时,会遇到 w(i) w(j) 的…

VS2022联合Qt5开发学习11(QT5.12.3联合VTK在VS2022上开发医学图像项目5——qvtkWidget上显示STL三维图像并取点)

这篇博文是接着这个系列前面的博文,来讲如何实现医学图像三视图同步视图。我想到的一个思路是用Scrollbar来控制切面的改变,还有一个想法是在三维图像上取点,然后以这个点为切面中心更新三维视图。这篇博文主要介绍的就是第二个想法的三维图像…

C++ 之LeetCode刷题记录(十八)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 104. 二叉树的最大深度 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最…

防火墙源NAT配置

拓扑 需求 生产区在工作时间内可以访问服务器区,仅可以访问HTTP服务器。办公区全天可以访问服务区,其中,10.0.2.20可以访问FTP服务器和HTTP服务器 10.0.2.10仅可以ping通10.0.3.10办公区在访问服务区时采用匿名认证方式进行上网行为管理。办…

蓝桥杯备战——2.矩阵键盘

1.分析原理图 由上图可以看到若J5跳线帽接地,就S4~S7就可以当做四路独立按键,若接到P44,则就是4*4的矩阵键盘。 2.独立按键处理 相对传统的按键延时消抖方案,这里我采用更高效,更经典,更偏向产品级应用的…

JavaScript DOM之Cookie详解

cookie有的地方习惯使用复数形式的cookies,指的是网站为了识别用户的身份或者进行一些必要数据的缓存而使用的技术,它的数据是存在用户的终端上,也就是在浏览器上的。 一、什么是cookie 随着互联网的不断发展各种基于互联网的服务系统逐渐多…