linux
linux哪个系统比较好?
一、linux哪个系统比较好?
主要以下几种:
1、ubuntu桌面版系统:
对于不擅长系统操作命令的人员,使用比较方便。
2、SUSE网络服务功能强的系统:
如果想把服务器充当路由设备,或邮件服务器,可以关注。
3、Debian安全性较好系统:
有些对系统安全性要求高的企业会作为优选。
二、Linux系统哪个比较好用?
现在国内大多数Linux相关的图书都是围绕CentOS系统编写的,作者大多也会给出围绕CentOS进行写作的一系列理由,但是很多理由都站不住脚,根本没有剖析到CentOS系统与RHEL系统的本质关系。CentOS系统是通过把RHEL系统释放出的程序源代码经过二次编译之后生成的一种Linux系统,其命令操作和服务配置方法与RHEL完全相同,但是去掉了很多收费的服务套件功能,而且还不提供任何形式的技术支持,出现问题后只能由运维人员自己解决。
经过这般分析基本上可以判断出,选择CentOS的理由只剩下—免费!当人们大举免费、开源、正义的旗帜来宣扬CentOS系统的时候,殊不知CentOS系统其实早在2014年年初就已经被红帽公司“收编”,当前只是战略性的免费而已。再者说,根据GNU GPL许可协议,我们同样也可以免费使用RHEL系统,甚至是修改其代码创建衍生产品。
开源系统在自由程度上没有任何差异,更无关道德问题。
三、兼容性比较好的linux系统?
1. 目前市面上兼容性比较好的Linux系统有Ubuntu和Debian等。这些系统对硬件支持比较全面,软件兼容性也比较好,可以满足大部分用户的需求。2. 此外,还有一些专门针对特定场景的Linux系统,比如Kali Linux用于渗透测试和网络安全,CentOS用于服务器等等。对于这些场景来说,系统的兼容性也非常好。3. 总之,在选择Linux系统的时候,应该根据自己的实际需求和场景来进行选择,综合考虑系统的兼容性和稳定性等因素。
四、Linux系统家族中下哪些系统比较好用?
1. 前言
图形子系统是linux系统中比较复杂的子系统之一:对下,它要管理形态各异的、性能各异的显示相关的器件;对上,它要向应用程序提供易用的、友好的、功能强大的图形用户界面(GUI)。因此,它是linux系统中少有的、和用户空间程序(甚至是用户)息息相关的一个子系统。
本文是图形子系统分析文章的第一篇,也是提纲挈领的一篇,将会从整体上,对linux显示子系统做一个简单的概述,进而罗列出显示子系统的软件构成,后续的文章将会围绕这些软件一一展开分析。
注1:本文所有的描述将以原生linux系统为例(如Ubuntu、Debian等),对其它基于linux的系统(如Android),部分内容会不适用。
注2:本文很多图片都是从网上搜集而来的(很多是从维基百科)。虽然蜗窝的宗旨是用自己的语言表述,尽量自己画图,但是linux图形子系统太复杂了,蜗蜗的理解有限,而老外的图画的实在太好了哈哈哈。
【文章福利】小编推荐自己的Linux内核源码交流群:【869634926】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!!!前50名可进群领取,并额外赠送一份价值600的内核资料包(含视频教程、电子书、实战项目及代码)!
学习直通车:Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈
2. 概念介绍
2.1 GUI(Graphical User Interface,图形用户界面)
linux图形子系统的本质,是提供图形化的人机交互(human-computer interaction)界面,也即常说的GUI(Graphical User Interface)。而人机交互的本质,是人脑通过人的输出设备(动作、声音等),控制电脑的输入设备,电脑经过一系列的处理后,经由电脑的输出设备将结果输出,人脑再通过人的输入设备接收电脑的输出,最终实现“人脑<-->电脑”之间的人机交互。下面一幅摘自维基百科的图片(可从“这里”查看比较清晰的SVG格式的原始图片),对上述过程做了很好的总结:
该图以一个非常前卫的应用场景----虚拟现实(VR,Virtual Reality)游戏,说明了以图形化为主的人机交互过程:
1)人脑通过动作、声音(对人脑而言,是output),控制电脑的输入设备,包括键盘、鼠标、操作杆、麦克风、游戏手柄(包含加速度计、陀螺仪等传感器)。2)电脑通过输入设备,接收人脑的指令,这些指令经过kernel Input subsystem、Middleware Gesture/Speech recognition等软件的处理,转换成应用程序(Game)可以识别的、有意义的信息。3)应用程序(Game)根据输入信息,做出相应的反馈,主要包括图像和声音。对VR游戏而言,可能需要3D rendering,这可以借助openGL及其相应的用户空间driver实现。4)应用程序的反馈,经由kernel的Video subsystem(如DRM/KMS)、audio subsystem(如ALSA),输出到电脑的输出设备上,包括显示设备(2D/3D)、扬声器/耳机(3D Positional Audio)、游戏手柄(力的反馈)等。5)输出到显示设备上时,可能会经过图形加速模块(Graphics accelerator)。
注3:图中提到了VR场景的典型帧率(1280×800@95fps for VR),这是一个非常庞大的信息输出,要求图形子系统能10.5ms的时间内,生成并输出一帧,以RGBA的数据格式为例,每秒需要处理的数据量是1280x800x95x4x8=3.11296Gb,压力和挑战是相当大的(更不用提1080P了)。
2.2 Windowing system(窗口系统)
窗口系统,是GUI的一种(也是当前计算机设备、智能设备广泛使用的一种),以WIMP (windows、icons、menus、pointer) 的形式,提供人机交互接口。Linux系统中有很多窗口系统的实现,如X Window System、Wayland、Android SurfaceFlinger等,虽然形态各异,但思路大致相同,包含如下要点:
1)一般都使用client-server架构,server(称作display server,或者windows server、compositor等等)管理所有输入设备,以及用于输出的显示设备。2)应用程序作为display server的一个client,在自己窗口(window)中运行,并绘制自己的GUI。3)client的绘图请求,都会提交给display server,display server响应并处理这些请求,以一定的规则混合、叠加,最终在有限的输出资源上(屏幕),显示多个应用程序的GUI。3)display server和自己的client之间,通过某种类型的通信协议交互,该通信协议通常称作display server protocol。4)display server protocol可以是基于网络的,甚至是网络透明的(network transparent),如X Window System所使用的。也可以是其它类型的,如Android SurfaceFlinger所使用的binder。
有关Windowing system的详细解释,请参考:https://en.wikipedia.org/wiki/Windowing_system。
2.3 X Window System
似乎终于要进入正题了。
X Window System是Windowing System一种实现,广泛使用于UNIX-like的操作系统上(当然也包括Linux系统),由MIT(Massachusetts Institute of Technology,麻省理工学院)在1984年发布。下图(可从“这里”查看比较清晰的SVG格式的原始图片)是它的典型架构:
1)X Window System简称X,或者X11,或者X-Windows。之所以称作X,是因为在字母表中X位于W之后,而W是MIT在X之前所使用的GUI系统。之所以称作X11,是因为在1987年的时候,X Window System已经进化到第11个版本了,后续所有的X,都是基于X11版本发展而来的(变动不是很大)。为了方便,后续我们都以X代指X Window System。2)X最初是由http://X.org(XOrg Foundation)维护,后来基于X11R6发展出来了最初专门给Intel X86架构PC使用的X,称作XFree86(提供X服务,它是自由的,它是基于Intel的PC平台)。而后XFree86发展成为几乎适用于所有类UNIX操作系统的X Window系统,因此在相当长的一段时间里,XFree86也是X的代名词。再后来,从2004年的时候,XFree86不再遵从GPL许可证发行,导致许多发行套件不再使用XFree86,转而使用Xorg,再加上Xorg在X维护工作上又趋于活跃,现在Xorg由成为X的代名词(具体可参考“http://www.x.org/”)。3)X设计之初,制定了很多原则,其中一条----"It is as important to decide what a system is not as to decide what it is”,决定了X的“性格”,即:X只提供实现GUI环境的基本框架,如定义protocol、在显示设备上绘制基本的图形单元(点、线、面等等)、和鼠标键盘等输入设备交互、等等。它并没有实现UI设计所需的button、menu、window title-bar styles等元素,而是由第三方的应用程序提供。这就是Unix的哲学:只做我应该做、必须做的事情。这就是这么多年来,X能保持稳定的原因。也是Linux OS界面百花齐放(不统一)的原因,各有利弊吧,后续文章会展开讨论。4)X包括X server和X client,它们之间通过X protocol通信。5)X server接收X clients的显示请求,并输出到显示设备上,同时,会把输入设备的输入事件,转递给相应的X client。X server一般以daemon进程的形式存在。6)X protocol是网络透明(network-transparently)的,也就是说,server和client可以位于同一台机器上的同一个操作系统中,也可以位于不同机器上的不同操作系统中(因此X是跨平台的)。这为远端GUI登录提供了便利,如上面图片所示的运行于remote computer 的terminal emulator,但它却可以被user computer的鼠标键盘控制,以及可以输出到user computer的显示器上。注4:这种情况下,user computer充当server的角色,remote computer是client,有点别扭,需要仔细品味一下(管理输入设备和显示设备的是server)。7)X将protocol封装为命令原语(X command primitives),以库的形式(xlib或者xcb)向client提供接口。X client(即应用程序)利用这些API,可以向X server发起2D(或3D,通过GLX等扩展,后面会介绍)的绘图请求。
2.4 窗口管理器、GUI工具集、桌面环境及其它
前面讲过,X作为Windowing system中的一种,只提供了实现GUI环境的基本框架,其它的UI设计所需的button、menu、window title-bar styles等基本元素,则是由第三方的应用程序提供。这些应用程序主要包括:窗口管理器(window manager)、GUI工具集(GUI widget toolkit)和桌面环境(desktop environment)。
窗口管理器负责控制应用程序窗口(application windows)的布局和外观,使每个应用程序窗口尽量以统一、一致的方式呈现给用户,如针对X的最简单的窗口管理程序--twm(Tab Window Manager)。
GUI工具集是Windowing system之上的进一步的封装。还是以X为例,它通过xlib提供给应用程序的API,仅仅可以绘制基本的图形单元(点、线、面等等),这些基本的图形单元,要组合成复杂的应用程序,还有很多很多细碎、繁杂的任务要做。因此,一些特定的操作系统,会在X的基础上,封装出一些更为便利的GUI接口,方便应用程序使用,如Microwindows、GTK+、QT等等。
桌面环境是应用程序级别的封装,通过提供一系列界面一致、操作方式一致的应用程序,使系统以更为友好的方式向用户提供服务。Linux系统比较主流的桌面环境包括GNOME、KDE等等。
2.5 3D渲染、硬件加速、OpenGL及其它
渲染(Render)在电脑绘图中,是指:用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。图像是数字图像或者位图图像。
上面的定义摘录自“百度百科”,它是着重提及“三维物体”,也就是我们常说的3D渲染。其实我们在GUI编程中习以为常的点、线、矩形等等的绘制,也是渲染的过程中,只不过是2D渲染。2D渲染面临的计算复杂度和性能问题没有3D厉害,因此渲染一般都是指3D渲染。
在计算机中,2D渲染一般是由CPU完成(也可以由专门的硬件模块完成)。3D渲染也可以由CPU完成,但面临性能问题,因此大多数平台都会使用单独硬件模块(GPU或者显卡)负责3D渲染。这种通过特定功能的硬件模块,来处理那些CPU不擅长的事务的方法,称作硬件加速(Hardware acceleration),相应的硬件模块,就是硬件加速模块。
众所周知,硬件设备是多种多样的,为了方便应用程序的开发,需要一个稳定的、最好是跨平台的API,定义渲染有关的行为和动作。OpenGL(Open Graphics Library)就是这类API的一种,也是最为广泛接纳的一种。
虽然OpenGL只是一个API,但由于3D绘图的复杂性,它也是相当的复杂的。不过,归根结底,它的目的有两个:
1)对上,屏蔽硬件细节,为应用程序提供相对稳定的、平台无关的3D图像处理API(当然,也可以是2D)。2)对下,指引硬件相关的驱动软件,实现3D图像处理相关的功能。
另外,openGL的一个重要特性,是独立于操作系统和窗口系统而存在的,具体可以参考后面软件框架相关的章节。
3. 软件框架
通过第2章的介绍,linux系统中图形有关的软件层次已经呼之欲出,具体如下:
该层次图中大部分的内容,已经在第2章解释过了,这里再补充说明一下:
1)该图片没有体现3D渲染、硬件加速等有关的内容,而这些内容却是当下移动互联、智能化等产品比较关注的地方,也是linux平台相对薄弱的环节。后续会在软件框架有关的内容中再着重说明。2)从层次结构的角度看,linux图形子系统是比较清晰的,但牵涉到每个层次上的实现的时候,就比较复杂了,因为有太多的选择了,这可归因于“提供机制,而非策略”的Unix软件准则。该准则为类Unix平台软件的多样性、针对性做出了很大的贡献,但在今天这种各类平台趋于整合的大趋势下,过多的实现会导致用户体验的不一致、开发者开发精力分散等弊端,值得我们思考。3)虽然图形子系统的层次比较多,但不同的人可能关注的内容不太一样。例如对Linux系统工程师(驱动&中间件)而言,比较关注hardware、kernel和display server这三个层次。而对Application工程师来说,可能更比较关心GUI Toolkits。本文以及后续display subsystem的文章,主要以Linux系统工程师的视角,focus在hardware、kernel和display server(可能包括windows manager)上面。
以X window为例,将hardware、kernel和display server展开如下(可从“这里”查看比较清晰的SVG格式的原始图片):
对于软件架构而言,这张来自维基百科的图片并不是特别合适,因为它包含了太多的细节,从而显得有些杂乱。不过瑕不掩瑜,对本文的描述,也足够了。从向到下,图中包括如下的软件的软件模块:
1)3D-game engine、Applications和Toolkits,应用软件,其中3D-game engine是3D application的一个特例。2)Display Server图片给出了两个display server:Wayland compositor和X-Server(http://X.Org)。X-Server是linux系统在PC时代使用比较广泛的display server,而Wayland compositor则是新设计的,计划在移动时代取代X-Server的一个新的display server。3)libX/libXCB和libwayland-clientdisplay server提供给Application(或者GUI Toolkits)的、访问server所提供功能的API。libX/libXCB对应X-server,libwayland-client对已Wayland compositor。4)libGLlibGL是openGL接口的实现,3D application(如这里的3D-game engine)可以直接调用libGL进行3D渲染。libGL可以是各种不同类型的openGL实现,如openGL(for PC场景)、openGL|ES(for嵌入式场景)、openVG(for Flash、SVG矢量图)。libGL的实现,既可以是基于软件的,也可以是基于硬件的。其中Mesa 3D是OpenGL的一个开源本的实现,支持3D硬件加速。5)libDRM和kernel DRMDRI(Direct Render Infrastructure)的kernel实现,及其library。X-server或者Mesa 3D,可以通过DRI的接口,直接访问底层的图形设备(如GPU等)。6)KMS(Kernel Mode Set)一个用于控制显示设备属性的内核driver,如显示分辨率等。直接由X-server控制。
4. 后续工作
本文有点像一个大杂烩,丢进去太多的东西,每个东西又不能细说。觉得说了很多,又觉得什么都没有说。后续蜗蜗将有针对性的,focus在某些点上面,更进一步的分析,思路如下:
1)将会把显示框架限定到某个确定的实现上,初步计划是:Wayland client+Wayland compositor+Mesa+DRM+KMS,因为它们之中,除了Mesa之外,其它的都是linux系统中显示有关的比较前沿的技术。当然,最重要的,是比较适合移动端的技术。2)通过单独的一篇文章,更详细的分析Wayland+Mesa+DRM+KMS的软件框架,着重分析图像送显、3D渲染、Direct render的过程,以此总结出DRM的功能和工作流程。3)之后,把重心拉回kernel部分,主要包括DRM和KMS,当然,也会顺带介绍framebuffer。4)kernel部分分析完毕后,回到Wayland,主要关心它的功能、使用方式等等。5)其它的,边学、边写、边看吧。
上文介绍了linux图形子系统基本的软件框架,以及GUI、Windowing system、3D渲染等基本概念。
我觉得,DRI在当前(或者说将来)的linux图形子系统中,有着举足轻重的地位,甚至可以说是新的linux图形框架核心思想的体现。本文将基于linux图形框架的发展历程,从Why、What和How三个角度,介绍DRI框架。
5.为什么需要DRI
在GUI环境中,一个Application想要将自身的UI界面呈现给用户,需要2个步骤:
1)根据实际情况,将UI绘制出来,以一定的格式,保存在buffer中。该过程就是常说的“Rendering”。不知道为什么,wowo一直觉得“Render”这个英文单词太专业、太抽象了,理解起来有些困难。时间久了,也就不再执著了,看到它时,就想象一下内存中的图像数据(RGB或YUV格式),Rendering就是生成它们的过程。通常来说,Rendering有多种表现形式,但可归结为如下几类:a)2D的点、线、面等绘图,例如,“通过一个for循环,生成一个大小为640x480、格式为RGB888、填充颜色为红色的矩形框”,就是一个2D rendering的例子。b)3D渲染。该过程牵涉比较复杂的专业知识,这里先不举例了。c)图片、视频等多媒体解码。d)字体渲染,例如直接从字库中抽出。
2)将保存在buffer中的UI数据,显示在display device上。该过程一般称作“送显”。
然后问题就来了:这两个步骤中,display server要承担什么样的角色?回答这个问题之前,我们需要知道这样的一个理念:
在操作系统中,Application不应该直接访问硬件,通常的软件框架是(从上到下):Application<---->Service<---->Driver<---->Hardware。这样考虑的原因主要有二:安全性和共享硬件资源(例如显示设备只有一个,却有多个应用想要显示)。
对稍微有经验的软件开发人员(特别是系统工程师和驱动工程师)来说,这种理念就像杀人偿命、欠债还钱一样天经地义。但直到X server+3D出现之后,一切都不好了。因为X server大喊的着:“让我来!”,给出了这样的框架:
先不考虑上面的GLX、Utah GLX等术语,我们只需要理解一点即可:基于OpenGL的3D program需要进行3D rendering的时候,需要通过X server的一个扩展(GLX),请求X server帮忙处理。X server再通过底层的driver(位于用户空间),通过kernel,访问硬件(如GPU)。其它普通的2D rendering,如2D绘图、字体等,则直接请求X server帮忙完成。
看着不错哦,完全满足上面的理念。但计算机游戏、图形设备硬件等开发人员不乐意了:请让我们直接访问硬件!因为很多高性能的图形设备,要求相应的应用程序直接访问硬件,才能实现性能最优[1]。
好像每个人都是对的,怎么办?妥协的结果是,为3D Rendering另起炉灶,给出一个直接访问硬件的框架,DRI就应运而生了,如下:
上面好像讲的都是Rendering有关的内容,那送显呢?还是由display server统一处理比较好,因为显示设备是有限的,多个应用程序的多个界面都要争取这有限的资源,server会统一管理、叠加并显示到屏幕上。而这里叠加的过程,通常称作合成(Compositor)。
6.软件架构
DRI是因3D而生,但它却不仅仅是为3D而存在,这背后涉及了最近Linux图形系统设计思路的转变,即:
从以前的:X serve是宇宙的中心,其它的接口都要和我对话。转变为:Linux kernel及其组件为中心,X server(如Wayland compositor等)只是角落里的一员,可有可无。
最终,基于DRI的linux图形系统如下
该框架以基于Wayland的Windowing system为例,描述了linux graphic系统在DRI框架下,通过两条路径(DRM和KMS),分别实现Rendering和送显两个显示步骤。从应用的角度,显示流程是:
1)Application(如3D game)根据用户动作,需要重绘界面,此时它会通过OpenGL|ES、EGL等接口,将一系列的绘图请求,提交给GPU。
a)OpenGL|ES、EGL的实现,可以有多种形式,这里以Mesa 3D为例,所有的3D rendering请求,都会经过该软件库,它会根据实际情况,通过硬件或者软件的方式,响应Application的rendering请求。b)当系统存在基于DRI的硬件rendering机制时,Mesa 3D会通过libGL-meas-DRI,调用DRI提供的rendering功能。c)libGL-meas-DRI会调用libdrm,libdrm会通过ioctl调用kernel态的DRI驱动,这里称作DRM(Direct Rendering Module)。d)kernel的DRM模块,最终通过GPU完成rendering动作。
2)GPU绘制完成后,将rendering的结果返回给Application。
rendering的结果是以image buffer的形式返回给应用程序。
3)Application将这些绘制完成的图像buffer(可能不知一个)送给Wayland compositor,Wayland compositor会控制硬件,将buffer显示到屏幕上。
Wayland compositor会搜集系统Applications送来的所有image buffers,并处理buffer在屏幕上的坐标、叠加方式后,直接通过ioctl,交给kernel KMS(kernel mode setting)模块,该模块会控制显示控制器将图像显示到具体的显示设备上。
7.DRM和KMS
DRM是Direct Rendering Module的缩写,是DRI框架在kernel中的实现,负责管理GPU(或显卡,graphics card)及相应的graphics memory,主要功能有二:
1)统一管理、调度多个应用程序向显卡发送的命令请求,可以类比为管理CPU资源的进程管理(process management)模块。
2)统一管理显示有关的memory(memory可以是GPU专用的,也可以是system ram划给GPU的,后一种方法在嵌入式系统比较常用),该功能由GEM(Graphics Execution Manager)模块实现,主要包括:
a) 允许用户空间程序创建、管理、销毁video memory对象(称作“"GEM objects”,以handle为句柄)。b)允许不同用户空间程序共享同一个"GEM objects”(需要将不唯一的handle转换为同一个driver唯一的GEM name,后续使用dma buf)。c)处理CPU和GPU之间内存一致性的问题。d)video memory都在kernel管理,便于给到display controller进行送显(Application只需要把句柄通过Wayland Compositor递给kernel即可,kernel会自行获取memory及其内容)。
KMS是Kernel Mode Setting的缩写,也称作Atomic KMS,它是一个在linux 4.2版本的kernel上,才最终定性的技术。从字面意义上理解,它要实现的功能比较简单,即:显示模式(display mode)的设置,包括屏幕分辨率(resolution)、颜色深的(color depth)、屏幕刷新率(refresh rate)等等。一般来说,是通过控制display controller的来实现上述功能的。
也许大家会有疑问:这些功能和DRI有什么关系?说实话,关系不大,之所以要在DRI框架里面提及KMS,完全是历史原因,导致KMS的代码,放到DRM中实现了。目前的kernel版本(如4.2之后),KMS和DRM基本上没有什么逻辑耦合(除了代码位于相同目录,以及通过相同的设备节点提供ioctl之外),可以当做独立模块看待。
参考文档[1]: https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructure[2]: https://en.wikipedia.org/wiki/Wayland_(display_server_protocol)[3]: http://wayland.freedesktop.org/architecture.html[4]: Linux_kernel_and_daemons_with_exclusive_access.svg[5]: Wayland_display_server_protocol.svg
相关文章视频推荐:
深度:一文看懂Linux内核!Linux内核架构和工作原理详解
超细节!十年码农讲述Linux网络新技术基石——eBPF and XDP
【详细整理】数字通信中的同步技术:帧同步、载波同步、位同步 (建议收藏)
面对秋招,你准备好了吗?|简历梳理|offer选择|嵌入式开发|底层原理|Linux内核|驱动开发|架构师_哔哩哔哩_bilibili(版权归原作者所有,侵删)
五、哪个版本的Linux操作系统比较好?
没有所谓比较好的Linux操作系统版本,它们的使用方法和操作基本上是一致的,但是从流行程度上现在是Ubuntu和CentOS比较多人使用。
如果您作为学习办公用途的话,我个人比较推荐Ubuntu,它良好的桌面支持和较为丰富的办公软件支持,中文支持也相对较好。在不纠结的情况下使用Ubuntu可以满足一般的办公场景,但是呢也有一个问题,您的同事都用Windows的话,偶尔要共享一下文档啥的,还有一些办公软件别人能用,你不能用,略不方便。
如果作为服务器来使用的话CentOS无疑是最多的,你可以搜索一下什么nginx,mysql,php之类的服务器搭建,什么redis,hadoop,k8s等等,很多爱分享的技术博客上教程都是基于CentOS来写的,可以看出它的流行程度,说明它的使用最广泛,至少在国内是这样。
写到现在那么相信您自己已经有了判断,到底哪个发行版最适合自己,不纠结选一个用就是了,它们都是一样的。
六、Linux系统的Linux中文怎么读?
Linux中文读音
1、linux发音五花八门版本颇多,见到和听到的不下10种。根据linux的创始人Linus Torvalds的说法,Linux的发音和“Minix”是押韵的。“Li”中“i”的发音类似于“Minix”中“i”的发音,而“nux”中“u”的发音类似于英文单词“profess”中“o”的发音。
2、依照国际音标应该是/'linэks/——类似于“里讷克斯”。但是,由于Linus Torvalds本人是芬兰人,所以他的Linux读音不是/'linэks/,而是/'liniks/.。
3、有人综合网上和linux自己的读音,概括出几个自认为最合适也最通用的读法:/li'n^ks/(“里那克斯”)或/'li:nэks/(“里讷克斯”)或/li'nju:ks/(“里纽克斯”)。4、这几个应该是谁都听得懂的。至于哪个比较正宗,当然是linux的原因。但事实上使用linux哪种读法的人似乎都不在少数。
从Linux之父linus的发音来看,Linux发音应该是:李纳克斯,中文名也是linux。至于别人读:李纽克斯,或者林尼克斯,都是不同读法吧,反正按照标准的话,应该是李纳克斯。
请按照['linэks]这个音标读。大致和“利讷克斯”的音类似(注意不是利牛克斯、利努克斯或者利尼克斯但是瑞典语,英式英语,美国东西海岸读法都不同,无所谓的,看视频,那些linux大师都乱读的 linux是linus制作的,本不叫linux,因为和unix兼容,所以一开始同学把它的代码放在ftp上一个取名为“linux”的文件夹内,慢慢的人们叫它linux了答:没中文名,只有中文版本比较流行的RED HAT LINUX “红帽子”版
林纳克斯,林你克斯,两种都可以。。linux作者是读成 林纳克斯。他有发不过一个标准发音的MP3,但中国普遍读成 林你克斯
拓展
Linux[英]['lnks][美]['lnks]一种可免费使用的UNIX操作系统,运行于一般的PC机上;Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
七、Linux系统的应用?
Linux操作系统应用领域分为四大类,其中包括:IT服务器Linux系统应用领域、嵌入式Linux系统应用领域、个人桌面Linux应用领域、移动端Linux应用领域。
如今的IT服务器领域是Linux、Unix、Windows三分天下,Linux系统可谓后起之秀,特别是最近几年来,服务器端Linux操作系统不断地扩大市场份额,且每年增长势头迅猛,并且开始对Windows及Unix服务器市场的地位构成严重威胁。
八、linux系统?
一、什么是Linux
严格来说,单纯就一个Linux并不是操作系统,而是一个操作系统的内核,严谨一些可以说:linux 一般指 GNU 套件加上 linux 内核,因为在1991年linux内核发布时GNU完成除了系统内核之外各种必备软件的开发,在Linux Torvalds和其他开发人员努力下,GNU组件可以运行在linux内核上所以说他俩也可以统称为linxu内核,两者几乎不可分割。
二、linux分支有哪些
Linux系统是个统称,其发行版流派众多。目前有Red Hat、Debian、Suse、Ubuntu等发行版本,它们都是使用Linux内核编译的操作系统,都是Linux系统,却有各自的特点。总体来说,Linux的发行版本大体分可为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本。前者以Redhat(RHEL)为代表,后者以Debian为代表。
如下图所示:
2.1 Debian系列
Debian系列主要包含Debian和Ubuntu等。Debian最具特色的是apt-get/dpkg包管理方式,在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,比较方便找到解决问题的方法。Debian社区的网址:https://debian.cn/。
Debian自家纯净系统,一般来说Debian适合于服务器操作系统,它比Ubuntu要稳定得多。Debian这款操作系统派生出了多个Linux发行版,有37500多个软件包,使用方便,Debian使用apt或aptitude来安装和更新软件。
Ubuntu名称来源于非洲南部祖鲁语的“ubuntu”一词(译为吾帮托或乌班图), 意思是“人性”。Ubuntu是Debian的一款衍生版,基于Debian发行版和GNOME桌面环境,并在Debian系统上封装了许多工具。Ubuntu有着漂亮的用户界面,完善的包管理系统,强大的软件源支持,丰富的技术社区,广泛应用于桌面机、服务器、云计算等各领域。同时Ubuntu是免费的,是非常受欢迎的Linux系统。 Ubuntu使用 apt-get命令安装软件包,跟CentOS不同的是,它不支持rpm格式的安装。
2.2 Redhat系列
1. RHEL
RHEL(Red Hat Enterprise Linux):RHEL是面向企业客户的Linux发行版,是一款收费的操作系统。它支持虚拟化技术、多核处理等;安全性高,稳定可靠。
CentOS(Community ENTerprise Operating System),中文称作社区企业操作系统。它是一款企业级Linux发行版,是使用红帽Linux中的免费源代码重新构建而成。CentOS是免费的、开源的、可以重新分发的开源操作系统。CentOS人群数量大,资料非常多;包管理方式采用基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件;CentOS稳定性非常好,适合于搭建公司服务器使用。
2. Ubuntu和Debain属于一个系列都是基于linux内核的桌面PC操作系统,
下面我们深入一下下。首先,我们看看一个具有linux内核的操作系统包含哪些部分。一般包含四大部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以很轻松地运行应用程序、管理文件并使用整个系统。
1. Linux应用程序
一个好的操作系统会提供一套方便于用户使用系统的应用程序,如文本编辑器、办公套件、Internet工具、数据库等。
2. Linux文件系统
文件系统是文件存放在存储设备(如磁盘)上的组织方法。如EXT2、EXT3、FAT、FAT32、VFAT等。
3. Linux Shell
Shell是操作系统系统的用户界面,提供了用户与内核进行交互操作的一种接口,是一个命令解释器。它接收用户输入的命令并把它送入内核去执行。
4. Linux内核
内核是操作系统的核心。一个操作系统是需要执行一些任务,如请求内存资源、执行计算, 连接网络,等等. Linux内核就负责处理所有这样的请求,就像人的大脑一样。
Linux内核从功能上讲具有五大模块化功能:进程管理、内存管理、文件系统管理、设备控制和网络管理。
4.1 进程管理的体现:
Linux内核负责进程创建和销毁, 并完成进程之间的通信,以及进程的输入和输出.而且,进程管理控制了多个进程对Soc上的一个或者多个cpu资源的使用
4.2 内存管理
内存资源的使用策略对操作系统性能体现来说,尤为重要。 内核在有限的内存资源上,为每一个进程建立了一个虚拟地址空间。 内核的不同功能部分与内存管理子系统通过一套函数调用交互, 使得通信高效简单。
4.3 文件系统管理
Linux操作系统中,几乎任何东西都可看作为一个文件(一切皆文件). 内核中大量使用kobject等结构体,来把一堆非结构化的硬件组织成一种多层次的数据系统。另外, Linux 支持多个文件系统类型。如ext4等
4.4 设备控制
几乎任何一个操作系统最终都运行在一个物理平台上。内核中包含访问平台上硬件设备的驱动代码。
4.5 网络功能
大部分网络操作不会关联具体的进程,因为数据包的传输是异步事件。应用程序访问数据包之前,内核完成数据包的收集、标识和分发等任务。
自身感觉Ubunt用着是最舒服的,Ubuntu尊崇“免费开源和个性化”,拥有很人性化的亮丽的交互界面,强大的软件源支持,主流驱动大都可以在安装包中找到;另外因为Ubuntu是基于 debian 系列的,所以有 dpkg 套件可以在线获取安装软件,拥有完善的包管理机制,兼容性好,应用非常多,可以下载很多个性化小工具,个性化体验非常棒;
九、Linux系统?
Linux常用命令详解(两万字超长文)十、怎么卸载以linux引导双系统中的linux系统?
1,就是你在安装这个软件以后,这个软件就自己带有一个卸载的程序,你只要点击:开始---程序---找到这个程序----上面就会有这个程序的卸载程序。
2,就是通过“添加与删除”来卸载,这个程序一般的WINDOS,自己都会带这个程序,你点:开始--控制面板---添加与删除----找到这个要卸载的程序---点删除就OK了。
3,就是利用第三方软件。我用腾讯电脑管家举例(免费安全软件,杀毒+管理2合1)。打开腾讯电脑管家——工具箱——软件卸载。电脑管家是直接把软件卸载同时把注册列表也就清理了。(有的软件重启后会自动删除)卸载完之后,会有残留,在实行强力卸载就可
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...