2014年4月

你好!在这篇Linux系列文章中,我们将继续配置USB网络驱动。接着我们将进入输入设备。

首先,我们可以启用/禁用"Multi-purpose USB Networking Framework",这允许连接笔记本到桌面系统上。

下面,可以启用/禁用ASIX USB-to-Ethernet适配器驱动(ASIX AX88xxx Based USB 2.0 Ethernet Adapters)。

那么,还有一个ASIX适配器驱动(ASIX AX88179/178A USB 3.0/2.0 to Gigabit Ethernet)。

注意:通常地,最好将适配器驱动作为模块加入。

通信设备类规范(Communication Device Class specification)在这个驱动中提供(CDC Ethernet support (smart devices such as cable modems))。这个规范用于USB调制解调器。Linux系统可以将USB网络接口识别为以太网网络接口并且指定为"ethX",这里的"X"是以太设备编号。

下面是一个与上面类似的规范(CDC EEM support)。CDC EEM代表的是"Communication Device Class Ethernet Emulation Model"(通信设备类以太网仿真模型)。

CDC网络控制模型(NCM)同样有一个驱动提供了规范(CDC NCM support)。

这个驱动提供了"CDC MBIM (Mobile Broadband Interface Model)"规范同样也在Linux内核中(CDC MBIM support)。

下面,有一些供货商/设备特定驱动用于不同的USB网络设备和芯片组。

在这之后,有一个用于USB网络设备的通用驱动,它不需要任何特殊的驱动(Simple USB Network Links (CDC Ethernet subset))。

再说一次,还有更多的驱动用于供货商特定设备。

有趣的事实:Linux被用于制作James Cameron的电影"泰坦尼克"的特效。

"CDC Phonet support"是用于使用Phonet的Nokia USB调制解调器。(译注:Phonet是Nokia开发的面向数据包的通信协议,仅用于Nokia maemo/meego产品)

现在,我们可以进入使用802.11规范的无线局域网驱动了。

主要地,这里有一个供货商/设备特定驱动列表。

"SoftLED Support"控制着关于Wifi卡/设备的LED灯。

一些芯片组支持的SDIO在这个驱动中(Atheros ath6kl SDIO support)。SDIO是用于无线SD卡的SD(Secure Digital)规范的扩展。SDIO代表的是"Secure Digital Input/Output"

内核开发者可能注意到一些无线设备可以支持QoS。QoS代表"Quality of Service"(服务质量)。这个特性给予网络传输优先级。假设需要通过网络传输两组数据。只有一个可以先发送。QoS会先发送最重要的数据。

有趣的事实:技术上来说,Linux并不是一个操作系统。Linux是一种内核而GNU/Linux才是操作系统。

WAN卡需要"Generic HDLC layer"。HDLC代表"High-Level Data Link Control"(高级数据链路控制)。这是一个数据链路层协议。

原生HDLC可以通过"Raw HDLC support"驱动启用。

"Raw HDLC Ethernet device support"驱动允许HDLC层模拟以太网。

cHDLC驱动提供了一个HDLC的扩展,同样也称作Cisco HDLC(Cisco HDLC support)。

Linux内核同样也提供了一个HDLC的"Frame Relay support"(帧中继)驱动。帧中继是2层协议。

HDLC同样支持PPP(Synchronous Point-to-Point Protocol (PPP) support)和X.25(X.25 protocol support)。

接下来,这个驱动提供了DLCI下的帧中继(Frame Relay DLCI support)。

"LAPB over Ethernet driver"创建一个允许用户在以太网上使用LAPB的点到点连接到另一台计算机的设备文件。这个设备文件对于第一个此类设备通常是/dev/lapb0。

用这个驱动,X.25帧可以通过电话线发送(X.25 async driver)。特别地,这个驱动允许X.25使用异步串行。

对于ISA SBNI12-xx有一种特殊的驱动(Granch SBNI12 Leased Line adapter support)。这种卡对于租用线路的调制解调器是一种便宜的替代。

下一个驱动允许使用并行连接携带已安排的流量(Multiple line feature support)。这允许Linux系统更加有效地在SBNI12适配器上管理并行连接。一些Linux用户声称这个驱动双倍加速了他们的速度。然而,这个我没有亲身测试了解。

接下来,可以配置"IEEE 802.15.4 drivers"。这个是对于慢速WAN设备。这是一个控制媒体和无线网络物理层的标准。这个规范在不同的大洲使用不同的频率。不如,在欧洲,这类无线设备会使用868.0-868.6MHz的频率。

这个目录中的第一个设定是fake LR-WPAN驱动(Fake LR-WPAN driver with several interconnected devices)。LR-WPAN代表"Low-Rate Wireless Personal Area Network"(低速无线个人网络)。

有趣的事实:目前内核中只有大约2%的代码是由Linus Torvalds写的。

VMware使用vmxnet3虚拟以太网需要这个驱动(VMware VMXNET3 ethernet driver)。当在为大量用户编译内核时,最好将这个启用为一个模块,因为一些人可能并不希望在VMware上使用以太网。

Hyper-V虚拟网络需要这个驱动(Microsoft Hyper-V virtual network driver)。你可能想知道这个是否与微软的Hyper-V相同?是的,Linux支持Hyper-V。

数字电话服务ISDN由这个驱动提供(ISDN support)。ISDN代表"Integrated Services Digital Network"(综合业务数字网)。在法国,ISDN被称为RNIS,代表" Réseau numérique à intégration de services"。有一台ISDN适配器,计算机可以开始并接收语音呼叫。这允许计算机用来做因待机或者其他一些电话服务设备。ISDN同样也可以携带视频信息。

现在,我们可以进入输入设备了(Input device support)。这些是给计算机信息的设备。鼠标和键盘是最常被使用和了解的输入设备。扫描仪是另外一种输入设备的例子。

首先是一个支持不同触觉反馈设备的驱动(Support for memoryless force-feedback devices)。比如,许多游戏控制器的震动就是一种触觉反馈。

一些输入设备会检测硬件的状态(Polled input device skeleton)。这类行为需要这个驱动。

使用稀疏键盘映射的输入设备需要这个驱动(Sparse keymap support library)。键盘映射是键盘的布局信息。

下面,是另外一种键盘映射(Matrix keymap support library)。

注意:当为广泛的用户组编译内核时,包含大多数或者全部输入设备作为模块,因为通常不知道用户可能插到计算机上的设备类型。

有趣的事实:Vanilla内核就是Linux自己的原始内核,是未改变的状态。

"Mouse interface"对于鼠标创建了两个不同的设备文件。这两个设备文件是/dev/input/mouseX 和 /dev/input/mice。

下一个驱动创建了一个psaux设备文件并且它是/dev/input/mice的别名 (Provide legacy /dev/psaux device)。psaux设备文件是/dev/psaux。

如果系统有一块数位板,那么需要设置水平分辨率(Horizontal screen resolution)和垂直分辨率(Vertical screen resolution)。数位板是一种支持允许用户绘画的触控笔的触摸屏。另外的触摸屏无法支持如此复杂的输入。

下一个驱动支持操纵杆和游戏手柄(Joystick interface)。这个驱动会创建/dev/input/jsX文件。

"Event interface"驱动允许输入设备通过dev/input/eventX访问。

"Event debugging"驱动会输出所有的输入事件到系统日志中。除了要调试系统否则不要以任何理由启用它。显然地,这么做为了性能原因,但是我这么建议禁用的主要原因是安全目的。所有的按键都会被明文记录下来包括密码。

下面,列出了不同的键盘(Keyboards)配置驱动,接下来是鼠标(Mice)驱动和操纵杆和游戏手柄(joystick/gamepad)驱动。

在这之后,列出了不同特定的平板硬件/供货商的不同驱动(Tablets)。在这之后是触摸屏的驱动列表。

最后一组输入设备驱动是对于特定硬件和供货商的杂项驱动列表(Miscellaneous devices)。

这个系列的下一篇文章会讨论输入端口。不要忘记阅读这个系列的其他文章和这个网站。谢谢!

致粉丝: 谢谢你们的邮件告诉我你们对这些文章的喜爱。


via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-15.4793/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Jim Hall 在 Linux Journal 网站上发表了一篇精彩的文章,是关于开源软件的“易用性”的。在开源项目中,软件的“友好性”往往被敷衍处理,甚至会被完全忽略。另一方面,人们经常将“易用性”与“美观”混为一谈,他们认为软件“易于使用”就是要软件设计得漂亮。开源项目软件的“易用性”经常被开发者忽略,这可以理解,毕竟开发者肯定知道如何使用他们自己的软件,并且对开发的软件的工作环境也了如指掌(译注:举个生活中的例子,译者,就是我,想去附近的阿姨家玩,只需要出门左转右转过个红绿灯再过三幢房就到了,因为我对环境了如指掌;如果要让读者,就是你,找到我阿姨家,估计你要冲过来削我:你 TM 在逗我么)。开源软件能很好地满足开发者自身的需求,但如果想让你的软件被更多人使用,你就需要在“易用性”方面下大功夫。

图片来自:http://www.flickr.com/photos/51724787@N06/4839724782/

在 Linux Journal 上的这篇文章里面,Hall 介绍了他与几个大学生一起做了一个小小的易用性测试,这些学生都是 Windows 用户,并且对电脑都不怎么熟悉。他们被要求使用装有 Fedora 17 的笔记本,并且要求使用一系列软件,像 Gedit、 Firefox 和 Nautilus,Hall 在一旁观察,并做一些记录。结果显示这些用户能够使用这些软件的基本功能,但对于软件的一些高级功能,他们就束手无策了。他们能够在不需要任何提示的情况下使用火狐上网,但当要求他们改变 Gedit 的默认字体,或使用 Nautilus 为一个文件建立书签时,他们就不知道怎么做了。

Hall 做的这项实验对开发者来说是非常有意义的。你永远都想不到用户会将你的软件用在什么地方,并且对于你觉得一目了然的特性,就跟长在脸上的鼻子一样清楚明了的特性,在用户眼里可能就是那么难以理解。我在读研的时候,就做过一个“软件易用性”实验,实验的道具是一款名叫“Silverback”的商业软件,它会调用电脑内置摄像头来拍摄用户的脸部表情。当用户坐下来完成我们布置的任务时,我们中的一个人会坐在用户旁边并做一些记录,实验结束后我们会回头看录像,记录用户鼠标点击次数、用户完成每个任务需要的时间,以及他们是否能完成所有任务。记录用户脸部表情非常有用,特别是配合用户做任务时实验人员写下来的实验记录的时候。笔记上有一条“在第6个步骤有些迷惑”的记录,用户脸部表情与这个记录保持一致,这能显示用户在什么时候感觉遇到挫折了。

如果你没有参与过开源社区,这是一个很好的起点。“易用性”不好,就是一个 bug,与软件其它 bug 一样,都需要解决。一个软件如果不能按用户的思路来处理用户的问题,这就是一个 bug。如果你是一个开发者,帮自己一个忙,坐在一个资深的软件使用者旁边,让他用用你的软件。不要指点,不要提醒,不要告诉他需要按什么按键,就让他自己把玩,自己发现软件的用处(就让他往死里吐槽)。也许你能对你的软件有更深一层的了解。如果你觉得了解自己的软件,试试让其他人玩玩吧。


via: http://ostatic.com/blog/usability-and-open-source

译者:bazz2 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

早些时候,我们提到过有很多可以用来监视系统性能的 Linux 系统监视工具。 但我们估计,或许更多的用户会倾向与绝大多数 Linux 发行版都带的工具 (top 命令)。

top 命令是 Linux 下的一个实时任务管理器, 同时也是用于在 GNU/Linux 发行版中寻找系统性能方面的瓶颈,并帮助我们作出正确操作的常用系统监视工具。 她有着一个极为简洁的界面,并自带少量的可以帮助我们快速了解系统性能的实用选项。

但是,有些时候想要通过她寻找一个占用系统资源比较大的应用或进程可能会比较困难。 因为 top 命令本身并不会帮助我们高亮那些吃太多 CPU内存,或者其他资源的程序。

为了达到这个目标,这里我们将介绍一款超牛逼的系统监视程序 —— Glances。 她可以自动高亮利用最高系统资源的程序,并为 Linux/Unix 服务器提供尽可能多的信息。

什么是 Glances?

Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具。 通过 Glances,我们可以监视 CPU,平均负载,内存,网络流量,磁盘 I/O,其他处理器文件系统 空间的利用情况。

Glances 是一个用来监视 GNU/LinuxFreeBSD 操作系统的 GPL 授权的自由软件。

Glances 同时也提供了很多实用的选项。 其中我们能够在配置文件见到的一项主要的功能就是设置关键值及相应的标签 (careful[小心], warning[警告]critical[严重]), 然后她会自动帮我们用不同颜色标出系统达到某个瓶颈的信息。

Glances 主要功能

  • CPU 信息 (用户的相关应用, 系统核心程序和空闲程序)
  • 总内存信息,包括了物理内存,交换空间和空闲内存等等
  • 之前的 1 分钟、5 分钟和 15 分钟平均的 CPU 负载
  • 网络链接的下行和上行速度
  • 处理器总数,以及其活动状态
  • 硬盘 I/O 相关(读写)速度详情
  • 当前挂载设备的磁盘使用情况
  • 高 CPU 和内存使用的进程名,和相关应用的位置
  • 在底部显示当前日期和时间
  • 将消耗最高系统资源的进程用红色标出

下面是一个 Glances 的使用截图:

Glances View

在 Linux/Unix 系统中安装 Glances

虽然这个工具的发布比较晚,但你仍然可以在 Red Hat 系的系统中通过 EPEL 软件源安装。在终端用下面的命令安装:

对于 RHEL/CentOS/Fedora 发行版

# yum install -y glances

对于 Debian/Ubuntu/Linux Mint 发行版

$ sudo apt-add-repository ppa:arnaud-hartmann/glances-stable
$ sudo apt-get update
$ sudo apt-get install glances

如何使用 Glances

首先,你需要在终端中输入以下命令

# glances

Glances Preview – Ubuntu 13.10

按下 ‘q‘ (‘ESC‘ 和 ‘Ctrl-C‘ 也可以) 退出 Glances 终端。 这里是从 CentOS 6.5 截取的另一张截图:

Glances Preview – CentOS 6.5

Glances 的默认刷新频率是 1 (秒),但是你可以通过在终端指定参数来手动定义其刷新频率

# glances -t 2

Glances 中颜色的含义

Glances 会用一下几种颜色来代表状态:

  • 绿色:OK(一切正常)
  • 蓝色:CAREFUL(需要注意)
  • 紫色:WARNING(警告)
  • 红色:CRITICAL(严重)

阀值可以在配置文件中设置,一般阀值被默认设置为(careful=50warning=70critical=90)。

我们可以按照自己的需求在配置文件(默认在 /etc/glances/glances.conf)中自定义。

Glances 的选项

除了很多命令行选项之外,Glances 还提供了更多的可在其运行时开关输出信息选项的快捷键,下面是一些例子:

  • a – 对进程自动排序
  • c – 按 CPU 百分比对进程排序
  • m – 按内存百分比对进程排序
  • p – 按进程名字母顺序对进程排序
  • i – 按读写频率(I/O)对进程排序
  • d – 显示/隐藏磁盘 I/O 统计信息
  • f – 显示/隐藏文件系统统计信息
  • n – 显示/隐藏网络接口统计信息
  • s – 显示/隐藏传感器统计信息
  • y – 显示/隐藏硬盘温度统计信息
  • l – 显示/隐藏日志(log)
  • b – 切换网络 I/O 单位(Bytes/bits)
  • w – 删除警告日志
  • x – 删除警告和严重日志
  • 1 – 切换全局 CPU 使用情况和每个 CPU 的使用情况
  • h – 显示/隐藏这个帮助画面
  • t – 以组合形式浏览网络 I/O
  • u – 以累计形式浏览网络 I/O
  • q – 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)

远程使用 Glances

你甚至也可以通过 Glances 来监视远程系统。 要在远程系统使用 ‘glances’,需要在服务器运行 ‘glances -s’(-s 启动服务器/客户端模式)命令。

# glances -s

Define the password for the Glances server
Password: 
Password (confirm): 
Glances server is running on 0.0.0.0:61209

注意:当你执行了‘glances’命令后,她会让你为 Glances 服务器设置密码。

当你设置完毕,你将看到 “Glances server is running on 0.0.0.0:61209” (Glances 服务器正在 0.0.0.0 的 61209 端口运行)的消息。

当 Glances 服务器启动后,到本地执行下面的命令来指定服务器IP地址或主机名以链接。

注:这里的 ‘172.16.27.56’ 是我 Glances 服务器的 IP 地址。

# glances -c -P 172.16.27.56

下面是一些在使用服务器/客户端模式时必须知道的事情:

* 在服务器模式,你可以通过 `-B 地址` 来设置绑定地址,也可以通过 `-p 端口` 来绑定监听的 TCP 端口
* 在客户端模式,你可以通过同样的 `-p 端口` 来指定服务器端口
* 默认的绑定地址是 0.0.0.0,但这么做会监听所有网络接口的指定端口
* 在服务器/客户端模式下,限制的阀值将由服务器的设置决定
* 你也可以在命令行下用过 `-P 密码` 的方式来为服务器端设置一个密码

总结

Glances 对于大多用户而言是个在系统资源上提供过多信息的工具。但是如果你是一个想要仅从命令行就能快速获取系统整体状况的系统管理员,那这个工具绝对是你的必备利器。

译者注

  1. 请不要将 glances(本文中的工具)和 glance(一个 OpenStack 的工具)这两个包搞混了
  2. Ubuntu 官方 Extra 源中的 glances 因为 python 库移动的问题导致无法正常使用 但可以通过建立软链接的方式临时修复:sudo ln -s /usr/lib/python2.7/dist-packages/glances /usr/share/pyshared/glances

via: http://www.tecmint.com/glances-an-advanced-real-time-system-monitoring-tool-for-linux/

译者:VizV 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出