linux是什么
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,支持32位和64位硬件。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的 一大亮点。
Linux快速简易入门 linux是什么
Linux是一个操作系统平台。我们平时常用的操作系统叫作Windows。当然,也有不少朋友使用苹果电脑,苹果电脑所用的系统叫作macOS。也许你还听说过一种系统叫作Unix,Unix是比Linux更加古老的一种系统,多用在服务器领域。 Linux同样也是用在服务器领域,大家熟知的BAT公司 百度、阿里、腾讯、Google、Facebook等一线互联网大公司的服务器99%的操作系统都是Linux。大家用的Android手机也是Linux操作系统。
Linux 的由来
说到Linux的历史,故事就多了,但总觉得讲太多你也记不住,甚至会产生放弃学习Linux的念头,所以这里只简要介绍一下Linux的由来。
在Linux诞生之前,一直是Unix的天下。只不过当时Unix并不能免费获得,要想使用必须先购买授权,这在当时是非常昂贵的,很少有人能承担得起。
在这样的背景下,很多计算机爱好者非常渴望有一个便宜或者免费的操作系统供大家学习研究。1983年,计算机界的牛人Richard Stallman发起了一个计划,目的就是构建一套完全自由的操作系统,这个计划就是著名的GNU计划。所谓完全自由,就是要求加入GNU计划的所有软件都必须自由使用、自由更改、自由发布。也就是说,软件发布必须要发布它的源代码,这个源代码可以供别人自由使用,也可以随便更改,但是必须要把更改后的代码发布。当然,光说不行,必须要有明文规定许可协议来制约大家如何自由使用,这套规定许就是著名的GPL协议。
GNU计划发起后,有很多支持者,所以在这期间产生了许多非常棒的软件,比如vi、Emacs、GCC等。但遗憾的是,一直没有一个比较完美的操作系统出现。直到1991年,芬兰大学生林纳斯本纳第克特托瓦兹 Linus Benedict Torvalds基于兴趣开发了一个类Unix操作系统,一经发布便得到了广大爱好者的追捧,这个系统就是Linux。1994年,Linux加入GNU计划并采用GPL协议发布。自此,GNU/Linux真正实现了构建一套完全自由的操作系统的设想。
Linux系统
如果你以前从未接触过Linux,可能就不清楚为什么会有这么多不同的Linux发行版。在查看Linux软件包时,你肯定被发行版、LiveCD和GNU之类的术语搞晕过。初次进入Linux世界会让人觉得不那么得心应手。在开始学习命令和脚本之前,我们将为你稍稍揭开Linux系统的神秘面纱。
Linux可划分为以下四部分:
Linux内核
GNU工具
图形化桌面环境
应用软件
每一部分在Linux系统中各司其职。但就单个部分而言,其作用并不大。图1是一个基本结构框图,展示了各部分是如何协作起来构成整个Linux系统的。下面我们将详细介绍这四部分,然后概述它们如何通过协作构成一个完整的Linux系统。
图1 Linux系统
深入探究Linux内核
Linux系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。
Linus还在赫尔辛基大学上学时就开发了第一版Linux内核。起初他只是想仿造一款Unix系统而已,因为当时Unix操作系统在很多大学都很流行。
Linus完成了开发工作后,将Linux内核发布到了互联网社区,并征求改进意见。这个简单的举动引发了计算机操作系统领域内的一场革命。很快,Linus就收到了来自世界各地的学生和专业程序员的各种建议。
如果谁都可以修改内核程序代码,那么随之而来的将是彻底的混乱。为了简单起见,Linus担当起了所有改进建议的把关员。能否将建议代码并入内核完全取决于Linus。时至今日,这种概念依然在Linux内核代码开发过程中沿用,不同的是,现在是由一组开发人员来做这件事,而不再是Linus一个人。
内核主要负责以下四种功能:
系统内存管理
软件程序管理
硬件设备管理
文件系统管理
下面我们进一步探究以上每一种功能。
1. 系统内存管理
操作系统内核的主要功能之一就是内存管理。内核不仅管理服务器上的可用物理内存,还可以创建和管理虚拟内存 即实际并不存在的内存。
内核通过硬盘上的存储空间来实现虚拟内存,这块区域称为交换空间 swap space。内核不断地在交换空间和实际的物理内存之间反复交换虚拟内存中的内容。这使得系统以为它拥有比物理内存更多的可用内存 如图2所示。
图2 Linux系统内存映射
内存存储单元按组划分成很多块,这些块称作页面 page。内核将每个内存页面放在物理内存或交换空间。然后,内核会维护一个内存页面表,指明哪些页面位于物理内存内,哪些页面被换到了磁盘上。
内核会记录哪些内存页面正在使用中,并自动把一段时间未访问的内存页面复制到交换空间区域 称为换出,swapping out——即使还有可用内存。当程序要访问一个已被换出的内存页面时,内核必须从物理内存换出另外一个内存页面给它让出空间,然后从交换空间换入请求的内存页面。显然,这个过程要花费时间,拖慢运行中的进程。只要Linux系统在运行,为运行中的程序换出内存页面的过程就不会停歇。
2. 软件程序管理
Linux操作系统将运行中的程序称为进程。进程可以在前台运行,将输出显示在屏幕上,也可以在后台运行,隐藏到幕后。内核控制着Linux系统如何管理运行在系统上的所有进程。
内核创建了第一个进程 称为init进程来启动系统上所有其他进程。当内核启动时,它会将init进程加载到虚拟内存中。内核在启动任何其他进程时,都会在虚拟内存中给新进程分配一块专有区域来存储该进程用到的数据和代码。
一些Linux发行版使用一个表来管理在系统开机时要自动启动的进程。在Linux系统上,这个表通常位于专门文件/etc/inittab中。
另外一些系统 比如现在流行的Ubuntu Linux发行版则采用/etc/init.d目录,将开机时启动或停止某个应用的脚本放在这个目录下。这些脚本通过/etc/rcX.d目录下的入口 entry*启动,这里的X代表运行级 run level。
*这些入口实际上是到/etc/init.d目录中启动脚本的符号链接。
Linux操作系统的init系统采用了运行级。运行级决定了init进程运行/etc/inittab文件或/etc/rcX.d目录中定义好的某些特定类型的进程。Linux操作系统有5个启动运行级。
运行级为1时,只启动基本的系统进程以及一个控制台终端进程。我们称之为单用户模式。单用户模式通常用来在系统有问题时进行紧急的文件系统维护。显然,在这种模式下,仅有一个人 通常是系统管理员能登录到系统上操作数据。
标准的启动运行级是3。在这个运行级上,大多数应用软件,比如网络支持程序,都会启动。另一个Linux中常见的运行级是5。在这个运行级上系统会启动图形化的X Window系统,允许用户通过图形化桌面窗口登录系统。
Linux系统可以通过调整启动运行级来控制整个系统的功能。通过将运行级从3调整成5,系统就可以从基于控制台的系统变成更先进的图形化X Window系统。
3. 硬件设备管理
内核的另一职责是管理硬件设备。任何Linux系统需要与之通信的设备,都需要在内核代码中加入其驱动程序代码。驱动程序代码相当于应用程序和硬件设备的中间人,允许内核与设备之间交换数据。在Linux内核中有两种方法用于插入设备驱动代码:
编译进内核的设备驱动代码
可插入内核的设备驱动模块
以前,插入设备驱动代码的唯一途径是重新编译内核。每次给系统添加新设备,都要重新编译一遍内核代码。随着Linux内核支持的硬件设备越来越多,这个过程变得越来越低效。不过好在Linux开发人员设计出了一种更好的将驱动代码插入运行中的内核的方法。
开发人员提出了内核模块的概念。它允许将驱动代码插入到运行中的内核而无需重新编译内核。同时,当设备不再使用时也可将内核模块从内核中移走。这种方式极大地简化和扩展了硬件设备在Linux上的使用。
Linux系统将硬件设备当成特殊的文件,称为设备文件。设备文件有3种分类:
字符型设备文件
块设备文件
网络设备文件
字符型设备文件是指处理数据时每次只能处理一个字符的设备。大多数类型的调制解调器和终端都是作为字符型设备文件创建的。块设备文件是指处理数据时每次能处理大块数据的设备,比如硬盘。
网络设备文件是指采用数据包发送和接收数据的设备,包括各种网卡和一个特殊的回环设备。这个回环设备允许Linux系统使用常见的网络编程协议同自身通信。
Linux为系统上的每个设备都创建一种称为节点的特殊文件。与设备的所有通信都通过设备节点完成。每个节点都有唯一的数值对供Linux内核标识它。数值对包括一个主设备号和一个次设备号。类似的设备被划分到同样的主设备号下。次设备号用于标识主设备组下的某个特定设备。
4. 文件系统管理
不同于其他一些操作系统,Linux内核支持通过不同类型的文件系统从硬盘中读写数据。除了自有的诸多文件系统外,Linux还支持从其他操作系统 比如Microsoft Windows采用的文件系统中读写数据。内核必须在编译时就加入对所有可能用到的文件系统的支持。表1列出了Linux系统用来读写数据的标准文件系统。
表1 Linux文件系统
Linux服务器所访问的所有硬盘都必须格式化成表1所列文件系统类型中的一种。
Linux内核采用虚拟文件系统 Virtual File System,VFS作为和每个文件系统交互的接口。这为Linux内核同任何类型文件系统通信提供了一个标准接口。当每个文件系统都被挂载和使用时,VFS将信息都缓存在内存中。
GNU工具
除了由内核控制硬件设备外,操作系统还需要工具来执行一些标准功能,比如控制文件和程序。Linus在创建Linux系统内核时,并没有可用的系统工具。然而他很幸运,就在开发Linux内核的同时,有一群人正在互联网上共同努力,模仿Unix操作系统开发一系列标准的计算机系统工具。
GNU组织 GNU是GNUs Not Unix的缩写开发了一套完整的Unix工具,但没有可以运行它们的内核系统。这些工具是在名为开源软件 open source software,OSS的软件理念下开发的。
开源软件理念允许程序员开发软件,并将其免费发布。任何人都可以使用、修改该软件,或将该软件集成进自己的系统,无需支付任何授权费用。将Linus的Linux内核和GNU操作系统工具整合起来,就产生了一款完整的、功能丰富的免费操作系统。
尽管通常将Linux内核和GNU工具的结合体称为Linux,但你也会在互联网上看到一些Linux纯粹主义者将其称为GNU/Linux系统,藉此向GNU组织所作的贡献致意。
1. 核心GNU工具
GNU项目的主旨在于为Unix系统管理员设计出一套类似于Unix的环境。这个目标促使该项目移植了很多常见的Unix系统命令行工具。供Linux系统使用的这组核心工具被称为coreutils core utilities软件包。
GNU coreutils软件包由三部分构成:
用以处理文件的工具
用以操作文本的工具
用以管理进程的工具
这三组主要工具中的每一组都包含一些对Linux系统管理员和程序员至关重要的工具。
2. shell
GNU/Linux shell是一种特殊的交互式工具。它为用户提供了启动程序、管理文件系统中的文件以及运行在Linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解释命令,并在内核中执行。
shell包含了一组内部命令,用这些命令可以完成诸如复制文件、移动文件、重命名文件、显示和终止系统中正运行的程序等操作。shell也允许你在命令行提示符中输入程序的名称,它会将程序名传递给内核以启动它。
你也可以将多个shell命令放入文件中作为程序执行。这些文件被称作shell脚本。你在命令行上执行的任何命令都可放进一个shell脚本中作为一组命令执行。这为创建那种需要把几个命令放在一起来工作的工具提供了便利。
在Linux系统上,通常有好几种Linux shell可用。不同的shell有不同的特性,有些更利于创建脚本,有些则更利于管理进程。所有Linux发行版默认的shell都是bash shell。bash shell由GNU项目开发,被当作标准Unix shell——Bourne shell 以创建者的名字命名的替代品。bash shell的名称就是针对Bourne shell的拼写所玩的一个文字游戏,称为Bourne again shell。
linux中文叫什么,Linux系统中文名称是什么
linux没有中文名字,如果对它感兴趣,那只能叫它的中文音译名字:“林纳克斯”。
Linux是一个开源系统,是一帮不在乎商业运营的技术大牛的发明,指望它们像厂商给汽车起中文名字那样又好听又有内涵,是不现实的。
虽然是这样,但是还是有许多商业公司为Linux起了有利于商业推广的中文名字,不过这些名字已经和Linux没有关系了。比如:最著名的Linux商业运营商:RedHat,中国人跟它叫:“红帽”;另外著名的Ubuntu,它的发行商——Canonical为了进军中国,给它起名:友邦拓——很大气是吧;还联合中国的公司衍生出了Kylin——麒麟。
|linux是什么
linux Linux 的由来 linux中文叫什么 Linux快速简易入门 linux系统 Linux系统中文名称