怎样通俗地理解Linux(Debian)中软件包互相之间的依赖?
你的源sources.list贴出来看看,这个可能是混源的原因,当然也可能是源本身没更新完或者打包的依赖一时搞错了
Ubuntu Linux采用了Debian的软件包管理机制。由于软件包具有易用性、灵活性和扩展性的特点,再加上Internet的支持,使用户随时都能拥有最新的 Ubuntu系统,这也是Ubuntu受到推崇的一个重要原因。因而,Deb软件包管理也成为Ubuntu中最有活力的部分。本章介绍Ubuntu软件包 管理和dpkg软件包管理器。
8.1 Deb软件包概述
Deb软件包本质上是文件包,这点类似于tar文件将多个文件合并为一个归档文件。但是Deb的身价不在于整合文件,而在于使应用程序更易于传播。
8.1.1 流行的两种软件包管理机制
最初,基于Linux系统的开发者在完成应用程序开 发后,将很多二进制文件发给用户,用户使用之前需要将相关程序逐个安装。因此,Debian Linux首先提出“软件包”的管理机制——Deb软件包,将应用程序的二进制文件、配置文档、man/info帮助页面等文件合并打包在一个文件中,用 户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作。
随即,Redhat Linux基于这个理念推出了自己的软件包管理机制——Rpm软件包。当然,Redhat Linux采用了自己的打包格式生成Rpm包文件,由Rpm包管理器负责安装、维护、查询,甚至软件包版本管理。由于Redhat Linux系统的普及,Rpm软件包被广泛使用,甚至出现第三方开发的软件管理工具,专门管理Rpm格式的软件包。
随着Linux操作系统规模的不断扩大,系统中软件 包之间复杂的依赖关系,导致Linux用户麻烦不断。为了解决这个问题,Debian Linux开发出了APT软件包管理器。它能够自动检查和修复软件包之间的依赖关系。并且,利用Internet网络带来的快捷的连通手段,APT工具可 以帮助用户主动获取软件包。因此,APT工具再次促进了Deb软件包更为广泛地使用,成为Debian Linux的一个无法替代的亮点。
Ubuntu Linux系统的软件包管理机制延续了Debian的包管理方法。
8.1.2 软件包的类型
Debian包文件包含了二进制可执行文件、库文件、配置文件和man/info帮助页面等文档。通常Debian包文件的后缀为.deb,因此称为“Deb软件包”。Ubuntu有两种类型的软件包:二进制软件包(deb)和源码包(deb-src)。
● 二进制软件包(Binary Packages):包含可执行文件、库文件、配置文件、man/info页面、版权声明和其他文档。
● 源码包(Source Packages):包含软件源代码、版本修改说明、构建指令以及编译工具等。先由tar工具归档为.tar.gz文件,然后再打包成.dsc文件。
用户不确定一个软件包具体类型时,可以使用file命令查看文件类型。例如下面命令用于证实一个软件包的文件类型是否是Deb软件包文件。
wdl@UbuntuFisher:~$ file g++_4.1.2-9ubuntu2_i386.deb
g++_4.1.2-9ubuntu2_i386: Debian binary package (format 2.0)
在Ubuntu Linux中,需要说明一个概念——虚拟软件包。将系统中具有相同或相近功能的多个软件包作为一个软件包集合,称为虚拟软件包,并指定其中一个软件包作为 虚拟软件包的默认首选项。提出虚拟软件的意图就是为了防止软件安装过程中发生冲突。例如,exim、sendmail和postfix软件包都是用于邮件 传输代理,将“mail-transport-agent”指定为它们的虚拟软件包。当用户安装“mail-transport-agent”时,将选择 安装exim、sendmail和postfix其中的首选项。
一、什么是依赖性
程序依赖于程序代码的共享库,以便它们可以发出系统调用将输出发送到设备或打开文件等(共享库存在于许多方面,而不只局限于系统调用)。没有共享库,每次程序员开发一个新的程序,每个程序员都需要从头开始重写这些基本的系统操作。当编译程序时,程序员将他的代码链接到这些库。如果链接是静态的,编译后的共享库对象代码就添加到程序执行文件中;如果是动态的,编译后的共享库对象代码只在运行时需要它时由程序员加载。动态可执行文件依赖于正确的共享库或共享对象来进行操作。rpm依赖性尝试在安装时强制实施动态可执行文件的共享对象需求,以便在以后当程序运行时不会有与动态链接过程有关的任何问题。
注意:还有一种类型的依赖性,它基于显式的条目,rpm通过程序员将该依赖性强加到rpm配置文件中,但目前我们不关心这种类型的依赖性,这种依赖性比较容易解决。这里将重点放在rpm强制实施的更加复杂的共享对象依赖性。
二、动态可执行文件和共享对象
动态可执行文件使用最初编译和链接程序时使用的库文件的共享对象名称来查找共享对象。它们在少数的几个标准位置查找,比如在/lib和/usr/lib目录及在LD_LIBRARY_PATH环境变量(主要用于指定查找共享库,比如我们在安装Oracle时指定路径,exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib)指定的目录中。顺便提一下,在这些库目录中找到的共享对象可能不是真正的文件;它们可能是指向位于其他位置的真实库文件的符号链接(但通常仍旧在标准库目录的一个目录中)。至少从系统管理员的观点是在用于创建共享库文件的共享库软件包的名称和共享库文件的名称之间通常没有什么关系。例如,GLIBC2.3软件包用于创建libc.so.6共享库文件。也从本示例中注意到,添加到共享库文件名结束的版本号(.6)跟用于创建它的版本号(2.3)没有关系。这是由共享库软件包开发人员有意完成的,以便GLIBC的新版本可以重用相同的共享库文件名libc.so.6。这允许您在系统上加载新版本的GLIBC,而不用中断动态链接到lib.so.6共享库文件的所有程序,当然假定新版本的GLIBC向后与动态可执行文件最初所链接的老版本GLIBC兼容。因此,即使库文件或共享对象文件有与它们相关的版本号,这些版本号也不能帮助你确定他们来自哪个版本的共享软件包。
注意:当将whatprovides选项用于rpm查询命令时,可以获得有关使用rpm软件包加载到系统的现有共享对象的信息。这种混乱是由下面的事实造成的:单个共享库文件可能支持某个范围的共享库软件包版本。例如,要检查soname库文件/lib/libc.so.6支持的GLIBC共享库软件包,运行下面的命令:
#objdump--all-headers/lib/libc.so.6|less
向下滚动此报告,直到到达Versiondefinitions:部分,以便查看libc.so.6共享库文件支持哪些GLIBC版本:
Versiondefinitions:
10x010x0865f4e6libc.so.6
20x000x0d696910GLIBC_2.0
30x000x0d696911GLIBC_2.1
GLIBC_2.0
40x000x09691f71GLIBC_2.1.1
GLIBC_2.1
50x000x09691f72GLIBC_2.1.2
GLIBC_2.1.1
60x000x09691f73GLIBC_2.1.3
GLIBC_2.1.2
70x000x0d696912GLIBC_2.2
GLIBC_2.1.3
80x000x09691a71GLIBC_2.2.1
GLIBC_2.2
90x000x09691a72GLIBC_2.2.2
GLIBC_2.2.1
100x000x09691a73GLIBC_2.2.3
GLIBC_2.2.2
110x000x09691a74GLIBC_2.2.4
GLIBC_2.2.3
120x000x09691a76GLIBC_2.2.6
GLIBC_2.2.4
130x000x0d696913GLIBC_2.3
GLIBC_2.2.6
140x000x09691972GLIBC_2.3.2
GLIBC_2.3
150x000x09691973GLIBC_2.3.3
GLIBC_2.3.2
160x000x09691974GLIBC_2.3.4
GLIBC_2.3.3
170x000x0d696914GLIBC_2.4
GLIBC_2.3.4
180x000x0d696915GLIBC_2.5
GLIBC_2.4
190x000x0963cf85GLIBC_PRIVATE
GLIBC_2.5
200x000x0b792650GCC_3.0
在本示例中,1ibc.so.6共享库文件支持原先为GLIBC版本2.0到2.5而开发的所有动态执行文件。注意:也可以使用objdump命令来从共享库文件中提取soname,命令如下所示:
#objdump--all-headers/lib/libcrypto.so.0.9.8b|grepSONAME
SONAMElibcrypto.so.6
objdump:/lib/libcrypto.so.0.9.8b:norecognizeddebugginginformation
接下来,将讨论rpm软件包是如何生成的,以便在新系统上安装rpm软件包时,这些共库依赖性是己知的。
三、Rpm软件包和共享库依赖性
当程序员生成rpm软件包时,ldd命令用于报告动态可执行文件软件包中所有动态可执行文件使用的所有共享库。另一个混乱是由下面的事实带来的:相同软件包中的不同动态可执行文件可能与相同的共享库软件包的不同版本进行链接。例如,Heartbeat软件包中的不同程序可能已经进行了开发,并动态链接到libc.so.6sonmae共享库文件的不同GLIBC版本。对rpm命令使用-q和--requires参数,可以看到rpm软件包需要的共享库的完整清单。例如,要看到Heartbeatrpm软件包所有的所需依赖性,请使用命令:
#rpm-q--requires-pheartbeat-1.x.x.i386.rpm
这产生了下面的报告:
sysklogd
/bin/sh
/bin/sh
/usr/bin/python
ld-linux.so.2
libapphb.so.0
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.2)
libc.so.6(GLIBC_2.3)
libccmclient.so.0
libdl.so.2
libglib-1.2.so.0
libhbclient.so.0
libpils.so.0
libplumb.so.0
libpthread.so.0
librt.so.1
libstonith.so.0
注意,在此报告中,libc.so.6soname是所需要的,此共享库必须支持使用GLIBC共享软件包版本号2.0、2.1、2.1.3、2.2和2.3进行链接的动态可执行文件。这是由下面的事实决定的:Heartbeat软件包中的不同动态可执行文件是针对不同版本的libc.so.6库的每个版本进行链接的。在了解了动态可执行文件、共享对象、soname和共享库软件包彼此是如何相关的后,下面准备来看这样的一个例子:当尝试安装rpm软件包,并且它由于依赖性错误而失败时,会发生什么。yum能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
四、手工解决依赖性问题
通常,当尝试安装发行版中没有包括的软件包(及不能由像up2date、apt-get或Yum一样的更新工具自动解决其依赖性的软件包)时,将碰到rpm依赖性错误。例如,如果尝试在老的Linux发行版上使用rpm–ivh*rpm命令,例如所有的Heartbeatrpm包,那么在安装过程中就可能碰到下面的错误:
error:faileddependencies:
libc.so.6(GLIBC_2.3)isneededbyheartbeat-1.x.x
libc.so.6(GLIBC_2.3)isneededbyheartbeat-pils-1.x.x
libcrypto.so.0.9.6isneededbyheartbeat-stonith-1.x.x
libsnmp-0.4.2.6.soisneededbyheartbeat-stonith-1.x.x
注意,rpm命令没有干扰报告所需的每个GLIBC共享库软件包版本号——它只报告所需的最高编号的版本号(GLIBC_2.3)。(假定原来的软件包开发人员不会将相同软件包中的可执行文件链接到不兼容版本的共享库软件包)所有的这些故障都报告所需的共享库名称或soname(而不是文件名称,soname始终以“lib”开始)。但可以删除添加到rpm报告的soname结束的版本号,并快速检查以查看是否在系统中使用locate命令安装这些共享库(假设您的locate数据库是最新的,有关更多信息,请参阅locate或slocate的手册页)。例如,要查找libcrypto享库文件,要输入:
#locatelibcrypto
[root@localhost~]#locatelibcrypto
/lib/libcrypto.so.0.9.8b
/lib/libcrypto.so.6
/root/.Trash/vmware-tools-distrib/lib/lib32/libcrypto.so.0.9.8
/root/.Trash/vmware-tools-distrib/lib/lib32/libcrypto.so.0.9.8/libcrypto.so.0.9.8
/root/.Trash/vmware-tools-distrib/lib/lib64/libcrypto.so.0.9.8
/root/.Trash/vmware-tools-distrib/lib/lib64/libcrypto.so.0.9.8/libcrypto.so.0.9.8
/usr/lib/libcrypto.a
/usr/lib/libcrypto.so
/usr/lib/pkgconfig/libcrypto.pc
/usr/lib/vmware-tools/lib32/libcrypto.so.0.9.8
/usr/lib/vmware-tools/lib32/libcrypto.so.0.9.8/libcrypto.so.0.9.8
/usr/lib/vmware-tools/lib64/libcrypto.so.0.9.8
/usr/lib/vmware-tools/lib64/libcrypto.so.0.9.8/libcrypto.so.0.9.8
如果此命令没有在系统上找到一个libcrypto共享库文件,将需要转到Internet并找出哪个共享库软件包包含此共享库文件。完成此项工具的一个快速和简便方式是只要在http://rpmfind.net上将共享库的名称输入到搜索栏中。如果将文本libcrypto.so输入到此搜索贞中,将很快知道此共享库是由openssl软件包提供的。
如果老版本的共享库数据包已经安装在系统上,可以用如下的命令确认此软件包含您需要的共享库文件:
#rpm-q--providesopenssl
[root@localhost~]#rpm-q--providesopenssl
config(openssl)=0.9.8b-10.el5
lib4758cca.so
libaep.so
libatalla.so
libchil.so
libcrypto.so.6
libcswift.so
libgmp.so
libnuron.so
libssl.so.6
libsureware.so
libubsec.so
openssl=0.9.8b-10.el5
此命令报告此rpm软件包中提供的所有内容(这包括软件包提供的共享库文件的soname)。注意:如前面指出的,共享库软件包版本号没有并且应该没有与共享库文件(soname)版本号的任何对应关系。这里不进行这方面的讨论,因为soname符号链接可能指向不同版本的共享库文件,这也是在尽量避免在安装新版本的共享软件包时中断现有动态可执行文件的情况下完成的。
五、自动解决依赖性故障
当您使用rpm软件包来生成、升级或添加新的特性到系统时,依赖性故障可能很快变成一场恶梦。只要通过使用您的发行版供应商的升级服务或工具,就可以避免这场恶梦。例如,当选择要安装的rpm软件包时,RedHat工具up2date自动从RedHat下载并安装所有rpm依赖性。下面就点上列出了几个完成相同事情的支持社区的免费方法:http://www.rpm.org/。下面将只进一步看到这些自动更新工具中的一种:Yum。
1.使用Yum来安装rpm软件包
Yum(YellowdogUpdater,Modified)程序可从下面网址下载:http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz
在下载了此软件包后,可以使用下面的命令像任何其他rpm软件包那样安装它:
#rpm-ivhyum*
您可能需要更新想用于下载您的rpm软件包的存储库。有关Fedora的可用Yum存储库的清单在http://www.fedoratracker.org要切换到不同的存储库,下载这些文件中的一个文件,并将该文件作为/etc/yum.conf文件安装。现在可以用下面的命令告诉Yum报告存储在Yum存储库中、可用于安装所有软件包:
#yumlist
[root@localhost~]#yumlist|more
ThissystemisnotregisteredwithRHN.
RHNsupportwillbedisabled.
Loading"security"plugin
Loading"rhnplugin"plugin
InstalledPackages
Deployment_Guide-en-US.noarch5.2-9installed
Deployment_Guide-zh-CN.noarch5.2-9installed
Deployment_Guide-zh-TW.noarch5.2-9installed
GConf2.i3862.14.0-9.el5installed
GConf2-devel.i3862.14.0-9.el5installed
ImageMagick.i3866.2.8.0-4.el5_1.1installed
MAKEDEV.i3863.23-1.2installed
MySQL-python.i3861.2.1-1installed
NetworkManager.i3861:0.6.4-8.el5installed
NetworkManager-glib.i3861:0.6.4-8.el5installed
2.用Yum安装新的rpm软件包
在本示例中,将安装新的GLIBC软件包。用简单的命令安装最新的GLIBC及其所有依赖性:
#yumupdateglibc
如果一切正常,Yum程序将自动检测、下载并安装最新GLIBC软件包所需要的所有rpm软件包(这里的GLIBC软件包是为您的发行版而构建的,不一定是可用的最新版GLIBC软件包(使用发行版所批准的GLIBC共享库软件包版本号或冒险安装没有使用正常系统操作所需要的动态可执行文件的GLIBC软件包版本)。也可以将list参数用于Yum和grep命令来查找要安装的软件包。例如,要查找名称中有SNMP的软件包,请输入:
#yumlist|grepsnmp
此命令返回如下报告:
ThissystemisnotregisteredwithRHN.
RHNsupportwillbedisabled.
net-snmp.i3861:5.3.1-24.el5installed
net-snmp-libs.i3861:5.3.1-24.el5installed
net-snmp-perl.i3861:5.3.1-24.el5installed
net-snmp-utils.i3861:5.3.1-24.el5installed
现在可以容易地使用YUM下载并安装所有这些rpm软件包。
六、关于升级Gilbc的建议
Glibc库是Linux底层的运行库,其性能对于整个系统的运行有重要的意义。Glibc库包含了大量函数,其中的函数可大致分成两类,一类是与操作系统核心沟通的系统调用接口,它们作为功能型函数被调用,提供对Linux操作系统调用的包装与预处理。另外一类为一般的函数对象,它们提供了经常使用的功能的实现,作为工具型函数使用。在实践中,有不少软件就是依赖与Glibc版本才能安装并运行,说白了对于Glibc版本要求是版本高了不行,低了还不成。这些编译环境中的应用程序也和其它程序一样必须有运行的环境,我常遇到管理员在生产中给服务器装了最新的Linux发行版,结果应用软件装不上去,原因是Glibc的版本不对,有的是写在原发行版glibc上升级有的是降级,结果倒是整个系统的崩溃,实践经验告诉我,你只有选择相应Linux发行版里对应的glibc,例如我们单位的一个应用软件时在rhel3.0下开发的,那么就得要对应的发行版,换了别的就难说了,任何自己升级或降级Glibc来适应应用软件的做法都是不可取的,问题最后的解决方法是找到了RHEL3装上就解决了。在表一中,我把几个linux发行版原配的Glibc版本列出,供大家参考。
点击图片查看大图
Glibc库与核心功能组件
上图一说明:
GCC依赖于glibc
binutils依赖于glibc(binutils提供了一系列用来创建、管理和维护二进制目标文件的工具程序,如汇编(as)、连接(ld)、静态库归档(ar)、反汇编)
make依赖于glibc
头文件是在编译时候gcc所需要的,但本身都是一些文本文件,因此没有需要的运行环境。
常用工具依赖于glibc和各种需要用到的动态库。
下表一列出了多个重要Linux发行版的Glibc的情况
Linux发行版Glibc版本
Redhat9glibc-2.3.2-5
Fedora1glibc-2.3.2
RedhatEnterpriseLinuxAs3glibc-2.3.2-95
RedhatEnterpriseLinuxAs4glibc-2.3.4
RedhatEnterpriselinux5glibc-2.5-24
RedhatEnterpriselinux6glibc-2.9
Centos5.xglibc-2.5
SuseLinuxEnterpriseServer9glibc-2.3.2-92
SuseLinuxenterpriseServer10glibc-2.4.31.54
SuseLinuxEnterpriseServer11glibc-2.9
点击图片查看大图
Linux发行版glibc(32)位
下面介绍几个查询glibc版本号的方法:
#ls–al/lib/libc*
或者是用下面的命令也可以实现
#rpm–qp|grepglibc
基于debian的系统通过dpkg–l|greplibc6也可以查到,总之一般都在/usr/share/doc目录下都能看到glibc的相关信息。
七、小结
大部分情况下,在遇到软件包依赖关系问题的时候,操作系统提供的文件名字与软件包名字都会有直接的联系。有可能文件的名字就是软件包的名字。但是有些时候文件的名字与软件包的名字会相差甚远。此时大部分系统管理员可能光凭文件名字无法找到对应的软件包。此时可以先在系统安装光盘里找,如果找到那时最佳选项,然后就需要借助笔者上面谈到的一些专业网站,去查询软件包的名字了。当系统管理员安装了某个软件之后,如果存在软件包之间的依赖关系,则最好能够拿本子或者通过其他手段记录下来。以便下次方便实用,注意工作中的积累,相信绝大部分的软件包依赖关系问题都会迎刃而解。
台湾有什么歌Ƙ
台湾歌星有很多。比如国语女歌手A-Lin、丁当、郭静、弦子、张惠妹、蔡依琳、王心凌、郭采洁、张韶涵、梁文音、梁静茹、范玮琪等等。
一汽大众汽车有哪几种总线?及各个总线的特点?可以举一例子来说明。谢谢...
通俗地讲,并行传输的通路犹如一条多车道公路,而串行传输则是只允许一辆汽车通过单线公路。目前常见的串行总线有SPI、I2C、USB、IEEE1394、RS232、CAN等;而并行总线相对来说种类要少,常见的如IEEE1284、ISA、PCI等。 1.2.3按时钟信号方式分 按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立...
谁是Jolin?怎么读?
Jolin就是蔡依林,通俗一点就是卓琳,卓是一声,琳是四声。她英语很好,还写过 Jolin的24堂英文日记课呢,你有时间可以买一本读读,加强一下你的英语,
操作系统 毕业论文
一. 简介 二、Linux系统下C编程原理 1. Linux系统的 2. Linux系统的主要构成 主要优异性能 3. gcc编译器的使用 三、总体设计 (1)、普通文件 (2)、目录文件 (3)、链接文件 (4)、设备文件 (5)、管道文件 2.进程基本介绍 3.库的使用 ...
“麒麟”这两个字念什么?什么意思?
麒麟(qi lin) 【简介】 麒麟,亦作“骐麟”,简称“麟”,古代传说中的仁兽、瑞兽,是中国古代传说中的一种动物,与凤、龟、龙共称为“四灵”,并居四灵之首位。 被称为圣兽王。且是神的坐骑。 麒麟,是按中国人的思维方式复合构思所产生、创造的动物。从其外部形状上看,麋身,牛尾,马蹄(史籍中有说为“狼蹄...
Mic\\Lin:什么是空中充值?不要copy,要说得通俗点!主要是如何具体操作充值...
就可为指定的手机号码充值。这种“空中充值”的方式对移动公司、充值代理商和消费者来说,都较原先的纸质充值卡先进,而且比较环保。此外,手机用户还可以灵活地掌握充值面额,不须再像现在这样购买50元以上的大额充值卡,一般来说,10元、20元这些小面额的充值量都是允许的。
有没有类似小lin说
有没有类似的小说._懂视_懂你更懂生活 1、《霸吻恶魔三小姐》 ,作者为“欧阳鄀兮”。2、《我是白马七公主》 ,作者为“我的梅花在流泪”。3、《极品校草太嚣张》, 作者为“慕吟汐”。懂视 有没有什么好看的书推届一下,小说 新的类似,小椴的或者树下野狐写的那种 迷江南的当然不能错过...
介绍几种流行的新词语及其意思
伤不起用时下最流行的用语,描述了幸福存在于虚拟讯号中群体的认同感、或是感情世界里可触摸的真实占有。作词人林夕在歌词中描述的“不是爱不起,只是伤不起,只知道坚持脆弱浪漫”;“不是不爱你,只是伤不起,不断在分享没想过分担”,让这首歌就像是一个时代现象的批注。郁可唯完美的唱功与表达就像用...
台湾有什么歌星
可以毫不夸张地说,全世界有华人的地方就一定会有苏芮的声音。8、 张惠妹 代表作品:姐妹,我可以抱你吗,听海,记得当今华语乐坛天后,中国台湾原住民歌手。在全球多地举办个人演唱会150余场,共发行个人专辑16张,其中1996年以发行首张专辑《姐妹》出道,在台湾销售108万张,1997年发行第二张专辑《...
请问OTO是什么,请说的通俗点!
OTO,又称O2O即Online To Offline,是指将线下的商务机会与互联网结合,让互联网成为线下交易的前台,这个概念最早来源于美国。O2O的概念非常广泛,只要产业链中既可涉及到线上,又可涉及到线下,就可通称为O2O。OTO交易模式的优势:1、将电子杂志与3D技术、图片、文字、视频、音频等完美结合,给消费者...
智试石斛: linux 是什么: 一个广泛通用的高性能操作系统.1 linux有什么用:可以用作服务器提供各种服务(www,ftp,email,dns),可以装在路由器等嵌入式设备中,安卓系统就是基于linux内核,可以说没有linux就没有安卓.2 学linux能干什么:小可以开...
苏州市15825685063: LINUX的操作系统有什么特点? - ?
智试石斛: 从Linux 和Windows 的区别来看,比较容易理解:Linux的操作比较复杂,windows的比较简单.Linux速度比较快,安全性比windows好,(注:Linux 的性能几乎达到100%,Windows大约70~80%) 但是有很多软件只能在windows里运行 (注:桌面软件很多只能在Windows下,但服务器方面,很多软件只能运行在Linux 下) Linux适用在网络方面,适用于做服务器.不过现在的Ubuntu 和 Fedora用作 桌面系统也很好. Windows 的服务器越来越多地采用Linux 的理念.
苏州市15825685063: 请您描述一下linux系统,让我了解一下.语言简单一些? - ?
智试石斛: Linux 系统,就是除了 Windows 操作系统以外的另一个操作系统.特点是 Linux 其实只是一个内核,没有任何用户界面函数库等等的功能.他上面必须有一套本来应该是操作系统提供的用户界面和一些函数库.这个 Linux 内核+用户界面+函数库...
苏州市15825685063: 通俗讲解一下linux内核是干什么的 - ?
智试石斛: 就像人类的心脏是供血的一样.Linux的内核就是Linux的心脏,是操作系统必不可少的一部分.也相当于电脑硬件的CPU.
苏州市15825685063: linux 虚拟地址,到底怎么理解 - ?
智试石斛: linux的虚拟地址分为物理地址和虚拟地址 . Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB. 1、物理地址 Linux的物理存储空间布局与处理器相关,详细情况可以从处理器用户手册的存...
苏州市15825685063: 如何深入了解Linux - ?
智试石斛: 如何深入了解Linux 想深入了解Linux操作系统却找不到入手点 建议是:学会C,C语言和*UIX是一块成长起来的,所以Linux操作系统的API都是用C语言描述的.所以C语言是深入学习Linux的一个必备技能,大家可以看 那本绿皮书入门,虽然黑的...
苏州市15825685063: linux 虚拟文件系统的作用以及工作原理~~???? - ?
智试石斛: 虚拟文件系统(VFS)其实也可以翻译成虚拟文件系统转换(virtual filesystem switch).可以看出来它的作用就是提供一个通用的接口来处理与Unix标准文件系统相关的所有系统调用.它所隐含的思想就是把表示很多不同种类的文件系统的共同...
苏州市15825685063: 谁能简单解释一下什么是linux - ?
智试石斛: linux 本来是一个很牛的外国人写的,后来这个人把代码公布出来了.现在有个组织自愿接手,根据原来的人的代码,进行修改和升级.因为这些代码都很透明,大家都可以去找到代码,并且自己写代码去添加功能或优化什么的,这就是开源.linux是有界面的,也有你说的cmd的玩意,(笑),只是他的界面和操作不像windows那么容易操作.有些高级点的操作就需要使用到命令了.头疼.还有界面不是特定的,光看界面现在主流的linux 几乎都变windows界面了. 你可以看看 “雨林木风os” ,别指望我给你发图,麻烦死.
苏州市15825685063: 掌握Linux的构成与版本识别 - ?
智试石斛: linux构成是很复杂的,简单的可以理解为 内核+SHELL+应用软件 要识别版本,看其发型版就可以了 一般内核有两种: 1、稳固版 2、开发版. Linux内核版本号是由3个数字构成:a.b.c a:目前发布的内核主版本. b:偶数表示稳固版本;奇数表示开发中版本. c:错误修补的次数. 其中第一个数字是主版本号,第二个数字是次版本号,第三个数字是修订版本号.
苏州市15825685063: 怎样理解linux的文件系统 - ?
智试石斛: Linux所有文件都从root开始,用'/'代表, 并且延伸到子目录.DOS/Windows有不同的分区同时目录都存于分区上.Linux则通过'加载'的方式把所有分区都放置在root下制定的目录里.windows下最接近于root的是c:.一句话总结:Windows下,目...