KNI网络接口介绍-kni介绍-linux-深入了解Linux (vni 网络)

教程大全 2025-07-19 23:30:10 浏览

Linux KNI 网络接口是网络通信中非常重要的一种接口,它能够在内核空间与用户空间之间进行数据交换。使用 KNI 可以提高网络传输速度,降低网络延迟,增加网络吞吐量等。本文将介绍Linux KNI网络接口的结构、使用方法、应用场景及优缺点等。

一、Linux KNI网络接口的结构

Linux KNI 网络接口由两个不同的部分组成:内核模块和用户空间进程。内核模块拉起网络接口并承担转发数据包的工作,而用户进程负责从内核中读取或写入数据。

1.1 内核模块

内核模块由一个netdev_data结构体和一个kthread线程组成。

在这个结构体中,netdev_ops包含了网络驱动程序的所有功能,如初始化、启动、收发数据包等。struct rte_kni_net_dev_ops定义了一组函数,以便用户进程和内核模块之间能够进行网络数据包的读写操作。

kthread是一个 Linux 内核线程,它会在内核模块初始化时启动,并且会不断地监听需要处理的新数据帧。

kthread 的执行函数是knidev_thread,它会读取当前 KNI 设备所指向的网卡上的所有数据包,并把这些数据包加入该设备的数据包队列中。同时,kthread 也会从这个队列中逐个读取数据包,并通过 KNI 设备转发它们。

1.2 用户空间进程

用户进程负责与内核的通信,使数据包能够从内核中读取并传递给应用程序。

用户空间进程必须与内核模块的相应功能相匹配,以便它能够进行正确的数据读写操作。在 Linux 中,KNI 网络接口的用户程序模块实现了 struct rte_kni_dev 和 struct rte_kni_dev_params 结构体,还包括了dev_api支持库,为使用者提供了多种常见用例的API,支持了对KNI的诸多操作。

vni

二、Linux KNI网络接口的使用方法

2.1 Linux KNI网络接口的使用方式

使用 KNI 网络接口需要在内核中注册 KNI 设备,然后在程序中打开该设备。

要进行注册 KNI 设备操作,只需向 netdev_register() 函数传递一个包含 KNI 设备的 dev 名称、MAC 地址、MTU 和其他配置参数的结构体,即可创建 KNI 设备。

当KNI设备创建成功后,便会在内核模块中启动一个新线程。这个新线程的作用是监听KNI设备所连接的接口上是否有新的数据包到达,以及将这些数据包加入数据包队列中。

在成功启动KNI设备后,我们可以使用向文件描述符发送I/O控制命令(ioctl)的方式,来控制它从指定的接口读取数据包并转发它们。这些I/O控制命令包括:读取、写入和修改。

2.2 Linux和DPDK中的KNI网络接口

在 Linux 中使用 KNI 网络接口相对简单,但是在使用 DPDK 中的 KNI 网络接口时,我们需要学习更多的 API。

DPDK KNI 构建在 Linux KNI 基础之上,因此它们非常类似:两者的接口都是在内核中实现的,并且都需要用户进程来完成分配和回收操作,同时也支持monitoring和access mode两种模式。不同之处在于 DPDK KNI 创建和删除的方式,需要使用一些特殊的调用API。

三、应用场景

KNI 可以应用于不同类型的网络应用程序,如转发、过滤、QoS 以及监控等。

例如,使用 KNI 网络接口可以实现网络流量监控和收集。这种方法可以帮助 IT 服务提供商和网络管理员来掌握网络规模、使用量和性能问题,以便更好地维护网络设备。

此外,因为 KNI 提高了网络传输的速度和可靠性,因此它也被广泛应用于云计算和大型数据中心中的网络数据传输中。

四、优缺点

使用 KNI 网络接口的主要优点包括:

1. 不需要额外的硬件支持,只需要软件实现,运行成本更低。

2. 能够提高网络传输的速度、可靠性和吞吐量,用户可以更快、更可靠地收发数据。

3. 在多个不同的应用程序中使用 KNI,能够有效地节省系统资源。

使用 KNI 网络接口的主要缺点包括:

1. 使用 KNI 需要专业知识和技能,相对于其它非常简单的网络转发机制来说,更加复杂和难于实现。

2. 由于它没有具体的硬件支持,因此它可能受到一些其他网络因素的影响,这增加了不确定性和风险。

3. KNI的性能不比SR-IOV及DPDK VF好,并且是在不管网络交通的原始类型都可以作用。

五、

KNI 网络接口在保障数据传输实时性、提高网络吞吐量和提高虚拟机性能方面发挥了非常重要的作用。对于理解KNI工作原理及使用方法非常有帮助,并且有助于优化应用程序性能。KNI的确有一些限制和缺点,但在许多场景下,它仍然是一种强大、高效的网络接口,有很大的应用前景。

相关问题拓展阅读:

Linux中用printf函数输出时,格式控制里有很多双引号,他们是怎么结合的???

需要进行转义,也就是加 \

一般情况下,双引号里面要用单引号,单引号里面要用双引号

linux kni介绍的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux kni介绍,深入了解Linux KNI网络接口介绍,Linux中用printf函数输出时,格式控制里有很多双引号,他们是怎么结合的???的信息别忘了在本站进行查找喔。

香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。


常用网络命令有哪几种 都是什么

计算机网络的主要优点是能够实现资源和信息的共享,并且用户可以远程访问信息。 Linux提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。 本章介绍下列几个常用的有关网络操作的命令: ftp 传输文件 telnet 登录到远程计算机上 r - 使用各种远程命令 netstat 查看网络的状况 nslookup 查询域名和IP地址的对应 finger 查询某个使用者的信息 ping 查询某个机器是否在工作 使用ftp命令进行远程文件传输 ftp命令是标准的文件传输协议的用户接口。 ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。 它允许用户传输ASCII文件和二进制文件。 在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。 从此,用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。 需要注意的是,如果用户没有那个文件的存取权限,就不能从远程系统中获得文件或向远程系统传输文件。 为了使用ftp来传输文件,用户必须知道远程计算机上的合法用户名和口令。 这个用户名/口令的组合用来确认ftp 会话,并用来确定用户对要传输的文件可以进行什么样的访问。 另外,用户显然需要知道对其进行ftp 会话的计算机的名字或IP地址。 Ftp命令的功能是在本地机和远程机之间传送文件。 该命令的一般格式如下: $ ftp 主机名/IP 其中“主机名/IP”是所要连接的远程机的主机名或IP地址。 在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指定主机名,ftp将给出提示符,等待用户输入命令: $ ftp ftp > 此时在ftp>提示符后面输入Open命令加主机名或IP地址,将试图连接指定的主机。 不管使用哪一种方法,如果连接成功,需要在远程机上登录。 用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。 在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。 如果没有远程机的专用登录帐号,许多ftp站点设有可以使用的特殊帐号。 这个帐号的登录名为anonymous(也称为匿名ftp),当使用这一帐号时,要求输入email地址作为口令。 如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。 一般专门提供两个目录:pub目录和incoming目录。 pub目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。 一旦用户使用ftp在远程站点上登录成功,将得到“ftp>”提示符。 现在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清单,也可以在 help命令后面指定具体的命令名称,获得这条命令的说明。 最常用的命令有: ls 列出远程机的当前目录 cd 在远程机上改变工作目录 lcd 在本地机上改变工作目录 ascii 设置文件传输方式为ASCII模式 binary 设置文件传输方式为二进制模式 close终止当前的ftp会话 hash 每次传输完数据缓冲区中的数据后就显示一个#号 get(mget) 从远程机传送指定文件到本地机 put(mput) 从本地机传送指定文件到远程机 open 连接远程ftp站点 quit断开与远程机的连接并退出ftp ? 显示本地帮助信息 ! 转到Shell中 下面简单将ftp常用命令作一简介。 启动ftp会话 open命令用于打开一个与远程主机的会话。 该命令的一般格式是: open 主机名/IP 如果在ftp 会话期间要与一个以上的站点连接,通常只用不带参数的ftp命令。 如果在会话期间只想与一台计算机连接,那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。 终止ftp会话 close、disconnect、quit和bye命令用于终止与远程机的会话。 close和disronnect命令关闭与远程机的连接,但是使用户留在本地计算机的ftp程序中。 quit和bye命令都关闭用户与远程机的连接,然后退出用户机上的ftp 程序。 改变目录 “cd [目录]”命令用于在ftp会话期间改变远程机上的目录,lcd命令改变本地目录,使用户能指定查找或放置本地文件的位置。 远程目录列表 ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。 ls命令的一般格式是: ls [目录] [本地文件] 如果指定了目录作为参数,那么ls就列出该目录的内容。 如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。 从远程系统获取文件 get和mget命令用于从远程机上获取文件。 get命令的一般格式为: get 文件名 您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。 如果您不给出一个本地文件名,那么就使用远程文件原来的名字。 mget命令一次获取多个远程文件。 mget命令的一般格式为: mget 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。 向远程系统发送文件 put和mput命令用于向远程机发送文件。 Put命令的一般格式为: put 文件名 mput命令一次发送多个本地文件,mput命令的一般格式为: mput 文件名列表 使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。 对其中的每个文件都要求用户确认是否发送。 改变文件传输模式 默认情况下,ftp按ASCII模式传输文件,用户也可以指定其他模式。 ascii和brinary命令的功能是设置传输的模式。 用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。 检查传输状态 传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。 hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。 本命令在发送和接收文件时都可以使用。 ftp中的本地命令 当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。 如果用户处在ftp会话中,需要shell做某些事,就很有用。 例如用户要建立一个目录来保存接收到的文件。 如果输入!mkdir new_dir,那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。 从远程机grunthos下载二进制数据文件的典型对话过程如下: $ ftp grunthos Connected to grunthos 220 grunthos ftp server Name (grunthos:pc): anonymous 33l Guest login ok, send your complete e-mail address as password. Password: 230 Guest 1ogin ok, access restrictions apply. Remote system type is UNIX. ftp > cd pub 250 CWD command successful. ftp > ls 200 PORT command successful. l50 opening ASCII mode data connection for /bin/1s. total ll4 rog1 rog2 226 Transfer comp1ete . ftp > binary 200 type set to I. ftp > hash Hash mark printing on (1024 bytes/hash mark). ftp > get rog1 200 PORT command successfu1. 150 opening BINARY mode data connection for rogl (l4684 bytes). # # # # # # # # # # # # # 226 Transfer complete. bytes received in 0.0473 secs (3e + 02 Kbytes/sec) ftp > quit 22l Goodbye. 使用telnet命令访问远程计算机 用户使用telnet命令进行远程登录。 该命令允许用户使用telnet协议在远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。 为了通过telnet登录到远程计算机上,必须知道远程机上的合法用户名和口令。 虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑,要限制来宾的操作权限,因此,这种情况下能使用的功能是很少的。 当允许远程用户登录时,系统通常把这些用户放在一个受限制的shell中,以防系统被怀有恶意的或不小心的用户破坏。 用户还可以使用telnet从远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。 但是,用户只能使用基于终端的环境而不是X Wndows环境,telnet只为普通终端提供终端仿真,而不支持 X Wndow等图形环境。 telnet命令的一般形式为: telnet 主机名/IP 其中“主机名/IP”是要连接的远程机的主机名或IP地址。 如果这一命令执行成功,将从远程机上得到login:提示符。 使用telnet命令登录的过程如下: $ telnet 主机名/IP 启动telnet会话。 一旦telnet成功地连接到远程系统上,就显示登录信息并提示用户输人用户名和口令。 如果用户名和口令输入正确,就能成功登录并在远程系统上工作。 在telnet提示符后面可以输入很多命令,用来控制telnet会话过程,在telnet联机帮助手册中对这些命令有详细的说明。 下面是一台Linux计算机上的telnet会话举例: $ telnet server. somewhere. com Trying 127.0.0.1… Connected to serve. somewhere. com. Escape character is \?]\. “TurboLinux release 4. 0 (Colgate) kernel 2.0.18 on an I486 login: bubba password: Last login:Mon Nov l5 20:50:43 for localhost Linux 2. 0.6. (Posix). server: ~$ server: ~$ logout Connection closed by foreign host $ 用户结束了远程会话后,一定要确保使用logout命令退出远程系统。 然后telnet报告远程会话被关闭,并返回到用户的本地机的Shell提示符下。 r-系列命令 除ftp和telnet以外,还可以使用r-系列命令访问远程计算机和在网络上交换文件。 使用r-系列命令需要特别注意,因为如果用户不小心,就会造成严重的安全漏洞。 用户发出一个r-系列命令后,远程系统检查名为/etc/的文件,以查看用户的主机是否列在这个文件中。 如果它没有找到用户的主机,就检查远程机上同名用户的主目录中名为.rhosts的文件,看是否包括该用户的主机。 如果该用户的主机包括在这两个文件中的任何一个之中,该用户执行r-系列命令就不用提供口令。 虽然用户每次访问远程机时不用键入口令可能是非常方便的,但是它也可能会带来严重的安全问题。 我们建议用户在建立/etc/和文件之前,仔细考虑r-命令隐含的安全问题。 rlogin命令 rlogin 是“remote login”(远程登录)的缩写。 该命令与telnet命令很相似,允许用户启动远程系统上的交互命令会话。 rlogin 的一般格式是: rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ - l username ] host 一般最常用的格式是: rlogin host 该命令中各选项的含义为: -8 此选项始终允许8位输入数据通道。 该选项允许发送格式化的ANSI字符和其他的特殊代码。 如果不用这个选项,除非远端的终止和启动字符不是或,否则就去掉奇偶校验位。 -E 停止把任何字符当作转义字符。 当和-8选项一起使用时,它提供一个完全的透明连接。 -K 关闭所有的Kerberos确认。 只有与使用Kerberos 确认协议的主机连接时才使用这个选项。 -L 允许rlogin会话在litout模式中运行。 要了解更多信息,请查阅tty联机帮助。 -d 打开与远程主机进行通信的TCP sockets的socket调试。 要了解更多信息,请查阅setsockopt的联机帮助。 -e 为rlogin会话设置转义字符,默认的转义字符是“~”,用户可以指定一个文字字符或一个\\nnn形式的八进制数。 -k 请求rlogin获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_realmofhost(3)确定的远程主机区域内的远程主机的Kerberos 许可。 -x 为所有通过rlogin会话传送的数据打开DES加密。 这会影响响应时间和CPU利用率,但是可以提高安全性。 rsh命令 rsh是“remote shell”(远程 shell)的缩写。 该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令。 如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上。 rsh命令的一般格式是: rsh [-Kdnx] [-k realm] [-l username] host [command] 一般常用的格式是: rsh host [command ] command可以是从shell提示符下键人的任何Linux命令。 rsh命令中各选项的含义如下: -K 关闭所有的Kerbero确认。 该选项只在与使用Kerbero确认的主机连接时才使用。 -d 打开与远程主机进行通信的TCP sockets的socket调试。 要了解更多的信息,请查阅setsockopt的联机帮助。 -k 请求rsh获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。 -l 缺省情况下,远程用户名与本地用户名相同。 本选项允许指定远程用户名,如果指定了远程用户名,则使用Kerberos 确认,与在rlogin命令中一样。 -n 重定向来自特殊设备/dev/null的输入。 -x 为传送的所有数据打开DES加密。 这会影响响应时间和CPU利用率,但是可以提高安全性。 Linux把标准输入放入rsh命令中,并把它拷贝到要远程执行的命令的标准输入中。 它把远程命令的标准输出拷贝到rsh的标准输出中。 它还把远程标准错误拷贝到本地标准错误文件中。 任何退出、中止和中断信号都被送到远程命令中。 当远程命令终止了,rsh也就终止了。 rcp命令 rcp代表“remote file copy”(远程文件拷贝)。 该命令用于在计算机之间拷贝文件。 rcp命令有两种格式。 第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中。 rcp命令的一般格式是: rcp [-px] [-k realm] file1 file2 rcp [-px] [-r] [-k realm] file directory 每个文件或目录参数既可以是远程文件名也可以是本地文件名。 远程文件名具有如下形式:rname@rhost:path,其中rname是远程用户名,rhost是远程计算机名,path是这个文件的路径。 rcp命令的各选项含义如下: -r 递归地把源目录中的所有内容拷贝到目的目录中。 要使用这个选项,目的必须是一个目录。 -p 试图保留源文件的修改时间和模式,忽略umask。 -k 请求rcp获得在指定区域内的远程主机的Kerberos 许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。 -x 为传送的所有数据打开DES加密。 这会影响响应时间和CPU利用率,但是可以提高安全性。 如果在文件名中指定的路径不是完整的路径名,那么这个路径被解释为相对远程机上同名用户的主目录。 如果没有给出远程用户名,就使用当前用户名。 如果远程机上的路径包含特殊shell字符,需要用反斜线(\\)、双引号(”)或单引号(’)括起来,使所有的shell元字符都能被远程地解释。 需要说明的是,rcp不提示输入口令,它通过rsh命令来执行拷贝。 - Turbolinux 提供稿件

Linux redhat 9.03 如何安装wine

从网站或是在CD-ROM上找到的Linux软件包,大部分为rpm、tar、gz、tgz、bz、bz2等格式。 下面我们编介绍一下它们的安装方法。 一、RPM格式文件的安装RPM 是RedHat Package Manager(RedHat软件包管理工具)的缩写。 现在主流的Linux发行版本都采用了这一公认的开放式行业标准了(包括Red Hat Linux、Open Linux、S.u.S.E Linux、Turbo Linux等发行版本)。 RPM文件在Linux系统中的安装是很简单的。 下面我们举例说明一下:假设我们有一个RPM文件“”,这是一个服务器端的邮件收发系统。 在Terminal中,其安装指令为:提问rpm -i 的常用参数包括:-e 卸载相关的应用程序-vh 显示安装进度-U 升级软件包-qpl 列出RPM软件包的信息-qf 查找指定文件属于哪个软件包-Va 校验所有的RPM软件包其它参数可察看RPM的帮助文档。 在X Windows中安装RPM文件更为简单。 在文件管理器中找到一个RPM文件,用鼠标右击它,在弹出的菜单中就会有专为RPM文件准备的三个指令:Show Info(显示描述信息)、Upgrade(升级)、Install(安装)。 选择相应的指令即可。 有时在安装RPM软件包时会出现一些错误。 其中最为常见的便是试图安装一个已经安装好的软件、所要安装的软件包需要其它软件或系统库文件的支持等,情形与Windows差不多。 对于后者的错误,应该首先安装这些软件或系统库文件。 二、tar、、tar.Z、tgz、bz2软件包的安装方法这几类软件包实质上是将一些文件打包之后,再进行压缩处理(tar文件未压缩)而成的。 所以在安装和使用之前要进行解包处理。 各种文件的解包指令如下:1、解 tar xf 2、解 tar zxf 3、解.Z tar zxf .Z4、解 tar zxf 5、解2 bumzip2 2通过解包后会得到一些文件,通常会存放在一个目录下。 进入此文件目录用“ls -F -color”指令看一下所得到的文件。 一般视软件的作者不同会有两种情况:1、文件为已经编译好的程序,用上面的察看文件命令会以带“*”标记的亮绿色显示。 2、更多的则是需要由你自己编译的源代码。 对于已经编译好的程序来说直接运行便可以了。 而得到的是源代码的话,就需要我们自己编译来得到可运行的程序。 编译源代码也是很简单的。 首先阅读一下目录中的Redme、Install等相关文档,然后执行一下指令:./configuremakemake install(只有Root身份才能执行此命令)编译完成之后便会在当前目录或src子目录下得到软件的可执行程序。 //////////整个安装过程可以分为以下几步:///////////////////1) 取得应用软件:通过下载、购买光盘的方法获得;2)解压缩文件:一般tar 包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。 如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。 如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;3) 阅读附带的INSTALL文件、README文件;4) 执行“./configure”命为编译做好准备;5) 执行“make”命令进行软件编译;6) 执行“make install”完成安装;7) 执行“make clean”删除安装时产生的临时文件。 1.首先,使用tar -xzvf来解开这包,如:#tar -xzvf apache_1_3_6_这样就会在当前目录中创建了一个新目录(目录名与包的文件名类似),用来存放解压了的 内容。 如本例中就是apache_1.3.62.进入这个目录,再用ls命令查看一下所包含的文件,如:#cd apache_1.3.6#ls你观察一下这个目录中包含了以下哪一个文件:configure、Makefile还是Imake。 1)如果是configure文件,就执行:#./configure#make#make install2)如果是Makefile文件,就执行:#make#make install3)如果是Imake文件,就执行:#xmkmf#make#make install3.如果没有出现什么错误提示的话,就搞定了。 至于软件安装到什么地方,通常会在安装时出现。 否则就只能查阅一下README.如果遇到错误提示,也别急,通常是十分简单的问题:1)没有安装C或C++编译器;确诊方法:执行命令gcc(C++则为g++),提示找不到这个命令。 解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:#rpm -ivh gcc* (哈哈,我们用到了第二种安装方式)2)没有安装make工具;确诊方法:执行命令make,提示找不到这个命令。 解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:#rpm -ivh make*3)没有安装autoconf工具;确诊方法:执行命令make,提示找不到这个命令。 解决方法:将Linux安装光盘mount上来,然后进入RPMS目录,执行命令:#rpm -ivh autoconf*4)缺少某些链接库;确诊方法:在make时,提示需要某些文件。 解决方法:安装包含这个文件的包,这就需要积累了。 第二部分:搞定是Red Hat公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。 1.安装软件:执行rpm -ivh rpm包名,如:#rpm -ivh 2.升级软件:执行rpm -Uvh rpm包名。 3.反安装:执行rpm -e rpm包名。 4.查询软件包的详细信息:执行rpm -qpi rpm包名5.查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名6.查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名2. 卸载:我同样只需简单的一句话,就可以说完。 执行:rpm –e 软件名不过要注意的是,后面使用的是软件名,而不是软件包名。 例如,要安装这个包时,应执行:rpm –ivh 而当卸载时,则应执行:rpm –e software。 另外,在Linux中还提供了象GnoRPM、kpackage等图形化的RPM工具,使得整个过程会更加简单。 这 些软件的具体应用,笔者会另行文介绍。 五、搞定使用deb打包的应用程序这是Debian Linux提供的一个包管理器,它与RPM十分类似。 但由于RPM出现得更早,所以在各种版本的Linux都常见到。 而debian的包管理器dpkg则 只出现在Debina Linux中,其它Linux版本一般都没有。 我们在此就简单地说明一下:1. 安装dpkg –i deb软件包名如:dpkg –i 2. 卸载dpkg –e 软件名如:dpkg –e software到此,就一切大功告成了

linux是什么

什么是 Linux ?什么是操作系统?要了解 Linux 之前,就不能不知道什么是操作系统 ( Operation System, OS ),所以,首先我们来简单的说一说什么是操作系统吧!先来想一想,当我们使用计算机时,屏幕上面显示的咚咚是由哪里来的?嗯!是由显示卡与屏幕显像的;那么你现在可以藉由网络看到这篇文章,则是藉由 Internet 、网络卡、网络线以及所有相关的电子器材与网络器材所完成的一项任务!如果你要看 VCD 呢?那么就需要光驱、光盘、声卡的发声等等的支持。 这么说来的话,所以在『工作』的东西都是『硬件』的工作呀!对了!就是这些计算机硬件在工作的。 那么硬件怎么工作呢?那就是藉由『操作系统』来达成的啰!这个操作系统就是在沟通你这个使用者跟硬件之间的讯息传递啦!也就是说,没有操作系统,那么你的计算机硬件就只是一堆废铁,什么工作都不能做的!其实 Linux 就是一个操作系统,这个操作系统里头含有最主要的 kernel 以及 kernel 提供的工具啦!他提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭 Unix 良好的传统来的,所以相当的稳定而功能强大!此外,由于这个优良的架构可以在目前的个人计算机 ( X86 系统 ) 上面跑,所以很多的软件开发者将他们的工作心血移转到这个架构上面,那就是很多的应用软件啦!虽然 Linux 仅是其核心与核心提供的工具,不过,由于核心、核心工具与这些软件开发者提供的软件的整合,使得 Linux 成为一个更完整的、功能强大的操作系统啰!从 Unix 到 Linux 这一段历史为什么大家常常会说, Linux 是很稳定的一套操作系统呢?这是因为, Linux 他有个老前辈,那就是 Unix 家族啰!有这个前辈的提携,让 Linux 这个小老弟很快的就成为一套稳定而优良的操作系统啦!所以,底下我们来谈一谈 Unix 到 Linux 的这一段历史吧! 早在 Linux 出现之前的二十年 ( 大约在 1970 年代 ), 就有一个相当稳定而成熟的操作系统存在了!那就是 Linux 的老大哥『 Unix 』是也!怎么这么说呢?!他们这两个家伙有什么关系呀?这里就给他说一说啰!众所皆知的, Linux 的核心是由 Linus Torvalds 在 1991 年的时候给他开发出来的,并且丢到网络上提供大家下载,后来大家觉得这个小东西 ( Linux Kernel ) 相当的小而精巧,所以慢慢的就有相当多的朋友投入这个小东西的研究领域里面去了!但是为什么这的小东西这么棒呢?!然而又为什么大家都可以免费的下载这个东西呢?!嗯!等鸟哥慢慢的唬xx....喔不!听我慢慢的道来! 一个没有完成的梦想: Bell, MIT 与 GE 的『 Multics 』系统早期的计算机并不像现在的个人计算机一般,他可不是一般人碰的到的玩意儿,除非是军事或者是高科技用途才有可能接触到这类的 Computer !而如前面所言,有计算机硬件还需要操作系统的配合才能够发挥计算机的效能,不过,在那个年代,由于计算机算是『奢侈品』,喔~应该说是『贵重物品』,所以,可能一间学校就只有一部大型主机当然,那个年代所谓的大型主机仍然无法提供适度的运算能力的。 不过,既然只有一部大型主机,然而有许许多多的教师、学生要想要来使用,怎么办呢?为了解决这个问题,在 1960 年代初期,麻省理工学院 ( MIT ) 发展了所谓的『兼容分时系统 ( Compatible Time-Sharing System, CTSS )』,就字面上的意义来看,他主要让大型主机可以提供多个终端机联机进入主机使用主机的资源, ( 附带一提,当时的终端机 ( Terminal ) 本身并没有软件或者可供使用的资源,这些终端机要能使用,一定必需要联机登入主机之后,才能够使用主机的资源来工作!) 当时可以让约 30 位使用者联机使用主机。 而为了让这个分时系统更加的强大,所以,在 1965 年前后由贝尔研究室 ( Bell )、 麻省理工学院 ( MIT ) 及奇异电器公司 ( GE ) 开始来共同开发一个名为 Multics 的大型计画,目标是想让大型主机可以联机 300 位以上的使用者。 不过,在奋斗了四年之后,该计画仍然宣告不治...喔!是失败啦!(注: Multics 有复杂、多数的意思。 ) 一个小型档案系统的产生:1969 年 Ken Thompson 的小型 file server system在复杂的 Multics 系统的计画失败后,贝尔研究室当然就退出该计画。 就在这个计画解散之后,曾经参与 Muitics 的贝尔研究室的成员 Ken Thompson 由于自己工作上的需求,需要一套档案存取的小型操作系统,便在 1969 年的时候以 DEC 公司 ( Digital Equipment Corporation ) 的计算机 PDP-7 为硬件基准,设计了一个适合自己工作环境的小型档案系统,其中也含有他自行开发的一些小工具。 那个系统就是最早期的 Unix 的源头!当初 Ken 设计这个档案系统时,主要是为了自己的存取方便所设计的简单 OS ,因此将原有的 Multics 系统大幅度的简化,不过,在当时还并没有 Unix 这个名词的出现! Unix 的正式诞生:1973 年 Ritchie 等人以 C 语言写出第一个正式 Unix 核心由于 Thompson 写的那个操作系统实在太好用了,所以在 Bell 研究室内部广为流传,并且数度经过改版。 到了 1973 年, Bell 研究室的 Dennis Ritchie 等人为了让这个系统的执行效能更佳化,所以使用编译效能更好的 C 语言将原有的 1969 年的那个系统之核心大幅度的改写过,并且确定该操作系统名称为 Unix,呵呵!那就是最早的 Unix 操作系统啰!不过,由于这个操作系统是由这一群工程师所开发完成的,而且使用者也大多是这方面的工程师,因此造成了后来 Unix 系统接口较难被一般使用者接受的情况 @_@ (注: 相对于 Multics ,Unix 具有单一的意思!) 重要的 Unix 分支: 1977 年 BSD 的诞生在 Unix 早期的发展中,有一件相当重要的事情,那就是 BSD 的诞生!由于 C 语言是一种高级语言,他可以被应用在不同的硬件架构上面,而 Unix 本身就是 C 语言写成的!在 Unix 发表之后, 柏克莱大学 ( Berkeley ) 的教授对于这个操作系统相当的有兴趣,在经过取得 Unix 的原始码,并且几经修改之后,终于在 1977 年发表了第一代的 Berkeley Software Distribution ( BSD ) 。 这个 BSD 是 Unix 的一个分支,他的发展对于 Unix 有相当大的影响,例如后来的 Sun 公司就是使用 BSD 发展的核心进行 .

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐