分类 技术 下的文章

在前四篇 “鲜为人知的Linux命令” 系列文章受到高度赞赏之后,我们将为广大读者呈上此系列的最后一篇文章,虽然是最后一篇,但是其重要性毫不逊于前几篇。

前几篇文章的地址如下:

42. lsb\_release

‘lsb\_release’ 命令会打印特殊发行版的信息。如果 lsb\_release 还没安装,你可以在基于 Debain 的发行版中用命令 apt 安装,在基于 Red Hat 系统下用 yum 来安装包。

# lsb_release -a
LSB Version:    :base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:
Distributor ID: CentOS
Description:    CentOS release 6.3 (Final)
Release:        6.3
Codename:       Final

注意:选项‘-a’,会显示有关版本、ID、详情、发行号研发代号的全部可用信息。

43. nc -zv localhost 80

检查 80 端口是否被打开。我们可以用任何其他端口号替换‘80’来检查端口是否被打开或关闭。

$ nc -zv localhost 80
Connection to localhost 80 port [tcp/http] succeeded!

(译注:出现该信息表示80端口已被打开。)

检查 8080 端口是否启用

$ nc -zv localhost 8080
nc: connect to localhost port 8080 (tcp) failed: Connection refused

(译注:该信息显示了8080端口并未打开。)

44. curl ipinfo.io

该命令会输出并提供 IP 地址‘地理位置’

$ curl ipinfo.io 

"ip": "xx.xx.xx.xx", "hostname": "triband-del-aa.bbb.cc.ddd.bol.net.in", "city": "null", "region": "null", "country": "IN", "loc": "20,77", "org": "AS17813 Mahanagar Telephone Nigam Ltd".

45. find . -user root

该命令会输出当前目录下( root )用户所拥有的文件(译注:即owner为root)。下面是在当前目录下列出的所有 ‘root’用户拥有的文件。

# find . -user root
./.recently-used.xbel
./.mysql_history
./.aptitude
./.aptitude/config
./.aptitude/cache
./.bluefish
./.bluefish/session-2.0
./.bluefish/autosave
./.bash_history

在当前路径下列出所有 ‘avi’ 用户拥有的文件

# find . -user avi
./.cache/chromium/Cache/f_002b66
./.cache/chromium/Cache/f_001719
./.cache/chromium/Cache/f_001262
./.cache/chromium/Cache/f_000544
./.cache/chromium/Cache/f_002e40
./.cache/chromium/Cache/f_00119a
./.cache/chromium/Cache/f_0014fc
./.cache/chromium/Cache/f_001b52
./.cache/chromium/Cache/f_00198d
./.cache/chromium/Cache/f_003680

46. sudo apt-get build-dep ffmpeg

该命令会在相应的包安装时自动构建依赖关系。因此包安装的过程将非常流畅,也是非常容易的。

# apt-get build-dep ffmpeg
libxinerama-dev libxml-namespacesupport-perl libxml-sax-expat-perl
libxml-sax-perl libxml-simple-perl libxrandr-dev libxrender-dev
x11proto-render-dev x11proto-xinerama-dev xulrunner-dev
The following packages will be upgraded:
libpixman-1-0

1 upgraded, 143 newly installed, 0 to remove and 6 not upgraded.
Need to get 205 MB of archives.
After this operation, 448 MB of additional disk space will be used.
Do you want to continue [Y/n]?

47. lsof -iTCP:80 -sTCP:LISTEN

该命令会输出所用正在使用 80 端口的 进程/服务 的名称。在 80 端口运行下列命令会更好理解这个命令,它会列出所用运行在该端口的 进程/服务

root@localhost:/home/avi# lsof -iTCP:80 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 1566 root 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1664 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1665 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1666 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1667 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)
apache2 1668 www-data 5u IPv6 5805 0t0 TCP *:www (LISTEN)

同样,你可以检查运行在端口 22 的进程/服务。

root@localhost:/home/avi# lsof -iTCP:22 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2261 root 3u IPv4 8366 0t0 TCP *:ssh (LISTEN)
sshd 2261 root 4u IPv6 8369 0t0 TCP *:ssh (LISTEN)

48. find -size +100M

这条find命令会在当前目录下列出所有超过指定大小的文件(这里指定为100 MB),递归查询。

# find -size +100M
./.local/share/Trash/files/linuxmint-15-cinnamon-dvd-32bit.iso
./Downloads/Fedora-Live-Desktop-i686-19-1.iso
./Downloads/Ant Videos/shakira 2.avi
./Downloads/Deewar.avi
./Desktop/101MSDCF/MOV02224.AVI
./Desktop/101MSDCF/MOV02020.AVI
./Desktop/101MSDCF/MOV00406.MP4
./Desktop/squeeze.iso

在当前目录递归的列出所用大于 1000 MB 的文件。

root@localhost:/home/avi# find -size +1000M
./Downloads/The Dark Knight 2008 hindi BRRip 720p/The Dark Knight.mkv.part
./Downloads/Saudagar - (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR]/Saudagar 
- (1991) - DVDRiP - x264 - AAC 5.1 - Chapters - Esubs - [DDR].mkv
./Downloads/Deewar.avi
./Desktop/squeeze.iso

49. pdftk

pdftk命令用来合并几个pdf文件。你必须安装有 pdftk 程序。如果还没有,请用apt或yum来获取相应的包。

$ pdftk 1.pdf 2.pdf 3.pdf …. 10.pdf cat output merged.pdf

50. ps -LF -u user\_name

该命令会输出一个用户的进程和线程。选项“L”(列出线程),选项“-F”(完整格式化)

$ ps -LF -u avi
avi 21645 3717 21766 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/
avi 21645 3717 21768 0 5 66168 117164 1 18:58 ? 00:00:00 /usr/
avi 22314 3717 22314 0 2 42797 50332 0 19:00 ? 00:00:40 /usr/
avi 22314 3717 22316 0 2 42797 50332 1 19:00 ? 00:00:00 /usr/
avi 22678 24621 22678 0 1 969 1060 1 21:05 pts/1 00:00:00 ps -L
avi 23051 3717 23051 0 2 37583 45444 1 19:03 ? 00:00:52 /usr/
avi 23051 3717 23053 0 2 37583 45444 0 19:03 ? 00:00:03 /usr/
avi 23652 1 23652 0 2 22092 12520 0 19:06 ? 00:00:22 gnome
avi 23652 1 23655 0 2 22092 12520 0 19:06 ? 00:00:00 gnome

51. startx - :1

分享 X 会话。如果你需要频繁的(以不同用户身份)登入或登出桌面时,那就需要 startx 来救场。这个命令建立了一个新的会话从而避免了在一个会话中反复的登入和登出。为了在X会话间进行交换,我们可以通过‘ctrl+Alt+F7’和‘ctrl+Alt+F8’的组合键来完成。

注意:快捷键“ctrl+Alt+F1~F6“是为了控制台会话准备的,而“ctrl+Alt+F7~F12”则为X会话服务。因此我们有6个控制台会话和6个X会话,不需要频繁的登入登出。上面的顺序适用于大多数的发行版,然而不同发行版可能会有不同的实现。我在Debian中尝试过,运行的很好。

以上就是今天的所有内容。我们如有需要会在以后的文章中继续发布“鲜为人知的命令”,不要忘记留下你对我们文章和‘ 鲜为人知的Linux命令 ’系列的宝贵意见。我会很快带来我的新文章,敬请期待,记得常回来看看哦。


via: http://www.tecmint.com/10-lesser-known-useful-linux-commands-part-v/

译者:Luoxcat 校对:Caroline

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

黑客和安全研究员需要在他们手边随时都有那些黑客工具。它们很多都是基于流行的Ubuntu和Debain操作系统,并且其中已经安装了许多黑客工具。

  1. BackTrack 5r3:这是一个最受欢迎和广为人知的基于Linux的黑客发行版。它是基于Canonical的Ubuntu操作系统的,它的logo的意思是,"如果你更安静,你将听到的更多。"在版本5中,除了以前的KDE桌面外,还增加了GNOME桌面环境。
  2. Nodezero:这是另外一个基于Ubuntu的黑客版,它用于渗透测试。它会跟着Ubuntu同步更新的。
  3. BackBox Linux: 这也是一个基于Ubuntu的黑客工具。根据开发者称,它被设计来创建一个渗透测试发行版,并且快速而易用。它还可以通过软件仓库来更新那些白帽渗透测试工具。
  4. Blackbuntu:Ubuntu自己虽然不是一个黑客工具,但是有许多基于它的黑客版本。这个发行版带来了诸如网络扫描、信息获取、渗透、漏洞识别,权限提升,无线网络分析、VoIP分析等各类工具。
  5. Samurai Web Testing Framework:这个发行版主要关注在对网站的攻击方面,它使用最好的免费开源的工具攻击和入侵网站。开发者已经把包括侦查、映射、探索和利用的攻击的四个步骤都集成到了发行版中。
  6. Knoppix STD:从Ubuntu迁移到了Debian,Knoppix STD现在是一个基于Debian的黑客发行版,可以运行GNOME、KDE、LXDE和Openbox等桌面环境。它已经出现了很长一段时间,并且是它们之中最早的live发行版。
  7. Pentoo:这是一个基于Gentoo的针对安全测试的live CD。它带来了大量的自定义工具和内核。包括Backported WiFi stack, XFCE4等等。
  8. Weakerthan:这个发行版使用Flufbox桌面环境,它包含了很多无线工具,最适合用于WiFi攻击。它基于Debian Squeeze发行版,具有WiFi攻击、Cisco漏洞利用、SQL入侵、Web入侵、蓝牙及其他功能。
  9. Matriux Krypton:这也许是第一个直接基于Debian OS的发行版。它是一个有300个安全工具的兵工厂,是白帽测试、渗透测试、安全测试、系统和网络管理、网络取证的一个好选择。
  10. DEFT:一款带有DART(Digital Advanced Response Toolkit,高级数字响应工具)的基于Linux Kernel 3 的操作系统。它使用WINE来在Linux上运行Windows工具,并主要运行LXDE桌面环境。

via: http://www.efytimes.com/e1/fullnews.asp?edid=125775

译者:geekpi 校对:wxy

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

要登入一台计算机,我们需要一个用户名。用户名是一个可以被计算机识别的身份。基于此,计算机会对使用这个用户名的登陆的人应用一系列的规则。在Linux系统下,我们可以使用 id 命令。

什么是 id 命令

id 命令可以显示真实有效的用户 ID(UID) 和组 ID(GID)。UID 是对一个用户的单一身份标识。组 ID(GID)则对应多个UID。

如何使用 id 命令

id 命令已经默认预装在大多数 Linux 系统中。要使用它,只需要在你的控制台输入id。不带选项输入 id 会显示如下。结果会使用活跃用户。

$ id

id默认输出

如何读取输出:

  • 用户 pungkiUID 号码= 1000, GID 号码= 1000
  • 用户 pungki 是下面的组成员 :

pungki 的 GID 号码= 1000
adm 的 GID 号码= 4
cdrom 的 GID 号码= 24
sudo 的 GID 号码= 27
dip 的 GID 号码= 30
plugdev 的 GID 号码= 46
lpadmin 的 GID 号码= 108
sambashare 的 GID 号码= 124

带选项使用id

id 命令可以使用一些选项。下面有一些在日常使用中有用的选项。

打印用户名、UID 和该用户所属的所有组

要这么做,我们可以使用 -a 选项

$ id -a

-a 选项

输出所有不同的组ID (有效的,真实的和补充的)

我们可以使用 -G 选项来实现。

$ id -G

-G 选项

结果只会显示 GID 号。你可以和 /etc/group 文件比较。下面是 /etc/group 文件的示例内容:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:pungki
fax:x:21:
voice:x:22:
cdrom:x:24:pungki
floppy:x:25:
tape:x:26:
sudo:x:27:pungki
audio:x:29:pulse
dip:x:30:pungki
www-data:x:33:
backup:x:34:
operator:x:37:
sasl:x:45:
plugdev:x:46:pungki
ssl-cert:x:107:
lpadmin:x:108:pungki
saned:x:123:
sambashare:x:124:pungki
winbindd_priv:x:125:

只输出有效的组ID

通过使用 -g 选项来只输出有效组ID。

$ id -g

-g 选项

输出特定用户信息

我们可以输出特定的用户信息相关的 UID 和 GID。只需要在 id 命令后跟上用户名。

$ id leni

leni 用户

上面的命令会打印用户 leni 的 UID 和 GID。

总结

当我们想知道某个用户的 UID 和 GID 时 id 命令是非常有用的。一些程序可能需要 UID/GID 来运行。id 使我们更加容易地找出用户的 UID 以 GID 而不必在 /etc/group 文件中搜寻。如往常一样,你可以在控制台输入 man id 进入 id 的手册页来获取更多的详情。


via: http://linoxide.com/linux-command/linux-id-command/

译者:geekpi 校对:Caroline

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

$1, Raid和Cache Memory

通常,出於二個目標:安全和性能,我們在生產環境的服務器上會設置Raid功能。最常見的場景是,我們會由於安全性的考慮將磁盤設置成Raid 1 或Raid 5、Raid6等模式保障在一塊或多塊硬盤故障時數據不丟失。或者是由於Dis IO性能上的考慮將硬盤設置成Raid 0或Raid 10來擴展有限的IO。

無論DELL/HP/IBM等服務器廠商,都會OEM一些Raid控制器在實現Raid功能,而為了保障和提升讀寫性能,Raid控制卡裏都會內置128MB 至 1GB不等的Cache Memory,而我們對磁盤的讀和寫操作都會通過事先在Cache Memory中Hit或緩存,這樣一來就可以大大提高了實際IO性能。

OS也認為只要讀或寫到Cache Memory以後即算操作成功,而Cache Memory中的數據如何Flush到物理磁盤中的Policy控制則由Raid控制器來解決。這種通過寫入Cache Memory的Policy我們稱為WriteBack,而如果不通過Cache Memory直接寫入磁盤的Policy我們稱為WriteThrough。

任何一條數據寫入Memory和寫入磁盤的性能差別之巨大,不用比較都可想像得到是天壤之別。特別是當我們遇到MySQL等數據庫或其他IO要求壓力非常大的環境,這是我們實際生產環境中不得不要考慮的因素。

$2, BBU,TBBU在實際應用中的問題和運維

什麼是BBU/TBBU呢?其實BBU就是Raid卡中的一個電池備用模塊,因為之前我們說到在Raid的環境下很多情況下數據都是通過Cache Memory和磁盤交換的,而Memory本身並無法保障數據持久性,萬一電源中斷,而數據沒來得及flush到物理磁盤上,就會造成數據丟失的悲劇。為此硬件廠商提供了BBU和TBBU,其中包含了一塊鋰電池來保障萬一電源中斷的情況下,Cache Memory中的數據不至於丟失,直至電源恢復。TBBU的不同區別是Cache Memory和電池是做成一個模塊,以防止Raid控制器如果硬件故障的時候,在更換Raid控制卡過程中可以不更換TBBU及其中的Cache Memory,防止這一過程中的數據不丟失。

就是這麼樣的一個模塊,如圖:

正是由於使用電池做為持續Memory是數據的可靠性,而存在一個尷尬的隱患。以目前的技術水平,電池是不可以長期不充放電的,否則會造成電池損壞而無法起到保護數據的特性。所以Raid卡廠商在設計BBU/TBBU中加入了一個自動充放電的維護過程,每過一段時間(通常是數個月左右)會自動對電池放電,然後再自動充電,以保證電池的可用性。

而在電池放電的時候,出於數據安全性的考慮,Cache Policy默認從WriteBack改成WriteThrough。這段時間會持續數小時或更久,IO性能會因此大幅下降,如果正好這個時間你有數據庫或其他大量IO壓力的服務,性能會急劇下降,如果系統沒有足夠的Capacity的話,嚴重的話會導致服務可用性的賁潰。

為了防止出現這種情況,通常業內大家會使用各種想法:

a) 給系統留出足夠的Capacity,即使WriteThrough的時候也可以保障服務的性能是可接受的

b) 自動或半自動的地設定在系統負載最低的時候提前去觸發電池的充放電過程

c) 將Cache Policy設置為CachedBadBBU,也就是即使在充放電過程中,還是使用寫入Cache的WriteBack,而不是默認的WriteThrough,這存在的風險是這一過程中的服務器電源中斷會造成數據丟失,這不是一個最安全的選擇,但如果業務上可以接受這個風險,如果Data Center的供電足夠安全,如果服務器有冗餘的電源的話,未必不是一個好的選擇。

d) 當A服務器發生這一情況時能自動或半自動地切換到Backup的節點上,必竟二臺服務器同時發生這一自動維護過程是不太可能的,但同一批次的服務器是有可能的,並且這可以從時間和過程中去人工調節。

e) 從軟件、業務程序上來保障對數據持久性或一致性的取捨。

目前國內大家常用的DELL和HP服務器多數都已經集成了LSI公司的Raid控制器,以上的這些狀態和Policy的調整在Linux中都可以通過其MegaCLI工具包操作:

$3, ZMCP,CacheCade技術的原理和應用

單從硬件運維角度來看,BBU和TBBU帶來的Cache Policy問題如果在幾百臺或上千臺服務器環境下維護將會是一個非常繁瑣的過程,除非從軟件上來對安全性和數據一致性的取捨。

所以新的一代的Raid控制器出現了另一種選擇。其中Adaptec公司提供了ZMCP模塊,而LSI公司提供了CacheCade的軟件支持。

ZMCP就是Zero-Maintenance Cache Protection的意思,在支持ZMCP的Raid控制器上加裝一個ZMCP模塊將不再依賴電池對Cache Memory的保護,而是通過SLC的Flash NAND和電容來保證在電力中斷時數據的可靠性:

而LSI的CacheCade是一個軟件的License,可以支持通過SSD來持久化Cache Memory,而不是通過不能持久化的Memory。優點是可以讓Cache Memory更大,並缺點也顯而易見。

從性能上的測試來看明顯ZMCP會占有優勢,但同時也是成本上的劣勢。而且無論是哪種新的技術都暫時性地會帶來相對BBU/TBBU技術的成本增加,出於成本上的考慮,所以目前大部分DELL/HP服務器依舊會OEM原有的方案。

但是從更專業的業務環境下去定制的服務器上,在軟件、性能、硬件等方面做更合適自己的取舎將是給每個人更自由的選擇範圍。在此希望我在實踐和看到的information希望能給到大家有益的幫助。

$4, 引用和參考資料

准备好配置更多的驱动了么?还有很多要做。

Linux支持两种不同的康柏智能阵列控制器:(Compaq SMART2 support)和(Compaq Smart Array 5xxx support)。阵列控制器是将物理存储单元表现为逻辑单元的设备。这些控制可能同样实现了基于硬件的RAID。硬件和软件RIAD的不同是简单的。Linux管理并见到软件RIAD。Linux将硬件RAID视为另外的存储单元。这意味着Linux没有意识到设备就是RAID驱动器。硬件(阵列控制器)独立于内核管理着RAID系统。这对于系统的性能更好因为内核不必配置或者管理RAID。注意,不同的阵列控制器有不同的RAID能力。

上面提到的阵列控制器可以通过这个驱动访问SCSI磁带(SCSI tape drive support for Smart Array 5xxx)。SCSI磁带是使用SCSI协议的磁带机。

PCI RAID控制器Mylex DAC960、AcceleRAID和eXtremeRAID在这个驱动中支持(Mylex DAC960/DAC1100 PCI RAID Controller support)。PCI RAID控制器是一个连接到PCI卡的阵列控制器。RAID控制器是拥有RAID功能的阵列控制器。

带电源备份的MM5415内存芯片在这个驱动中支持(Micro Memory MM5415 Battery Backed RAM support)。带后备电源内存芯片允许数据在切断电源后继续保存在内存设备中。这有助于保护数据。不然,当电源断开后,当前的计算机会话就会丢失。

当启用这个特性后,可以将典型的文件(比如ISO文件)作为一个块设备并挂载它Loopback device support)。这对于从镜像文件中检索文件而不必把文件烧录到光盘或者解压出来。想像一下你从因特网上得到了一份包含了很多文件的ISO文件。如果你只需要包中的一个文件并且用户不希望烧写ISO到光盘上或者不想知道如何打开一个ISO文件。用户可以用挂载ISO来替代。

Linux内核在初始化阶段会创建一些回路设备,所以一些回环设备已经准备好并创建了(Number of loop devices to pre-create at init time)。当一个文件(像ISO)或者虚拟设备(就像虚拟磁盘驱动器[vhd])被作为回环设备挂载时会节约一些时间。这个设定允许开发者选择内核可以预 创建多少回环设备。

当"Cryptoloop Support"启用后就可以CryptoAPI创建密码。这个用于硬件驱动器加密。然而,并不是所有的文件系统都支持。

下面用户可以启用"DRBD Distributed Replicated Block Device support"(译注:Linux上的分布存储系统)。这个就像网络RAID1。这些设备拥有设备文件/dev/drbdx。这些设备通常被用于集群,这里集群中的每台计算机都有一个从主单元镜像过来的存储单元。这意味着每台计算机的硬盘是位于组中心计算机硬盘的镜像拷贝。集群是一组计算机扮演着一台大型强力单元的角色。然而,每个集群都有一台控制计算机称为主节点。余下的计算机是从节点。

DRBD支持用于测试IO错误处理的故障注射(DRBD fault injection)。记住,故障注射就是使设备/软件认为发生了一个错误,因此开发者可以测试硬件/软件如何处理错误

如果内核要成为网络块设备的客户端,那么启用这个特性(Network block device support)。第一个设备文件是/dev/nd0。网络块设备是通过网络访问的远程存储单元。

直接连接SSD到PCI或者PCIe需要这个驱动(NVM Express block device)。

用这个特性允许将单独的SCSI OSD(object-based storage,基于对象的存储)对象作为块设备(OSD object-as-blkdev support)。

下一个驱动是"Promise SATA SX8 support"。这个驱动用于Promise公司(Promise Technology Inc.)生产的SATA控制器。

Linux允许将一部分内存作为块设备(RAM block device support)。这通常见与完全运行于内存上的Linux的live发行版。Linux的live发行版会卸载光盘并接着加载到内存中,所以在尝试一个新的操作系统或者修复另一个系统时不会伤害到已安装的系统。

下一个选项允许用户输入"Default number of RAM disks"(默认RAM磁盘数量)。

"Default RAM disk size"(默认RAM磁盘大小)可以以KB设置大小。

内核可以支持在内存设备的XIP文件系统作为块设备(Support XIP filesystems on RAM block device)。这个特性会增大内核的大小。 XIP (eXecute In Place)文件系统是一个允许可执行文件在相同的文件系统上存储数据而不必像其他应用一样利用内存。在一个驻留在内存上的live版linux系统上运行可执行文件时需要这个文件系统。

下面,内核可以支持"Packet writing on CD/DVD media"。(CD/DVD刻录机支持.)

内核开发者可以设置最大活跃并发包数量(Free buffers for data gathering)。大的数字会以内存的消耗为代价加速写入性能。一个包会消耗大约64KB。

Linux内核可以使用可擦写光盘作为缓存空间(Enable write caching)。这个特性仍然是试验性质。

下面的特性允许通过以太网线缆使用ATA规范(ATA over Ethernet support)。

下面的驱动允许虚拟块设备创建为virtio(Virtio block driver)。virtio是IO虚拟化平台。

一些非常老的硬盘还要一个特殊的驱动(Very old hard disk (MFM/RLL/IDE) driver)。

这里有一个驱动用于先前提到的Rados设备(Rados block device (RBD))。

下面是一个特殊的设备驱动(IBM FlashSystem 70/80 PCIe SSD Device Driver)。

现在,我们可以进入杂项设备。第一个设定是启用/禁用电位器(Analog Devices Digital Potentiometers )。

如果电位器在I2C总线上,那么就启用这个(support I2C bus connection)。

如果电位器是连接到SPI总线,那么需要这个驱动(support SPI bus connection)。

注意:Linux内核支持很多传感器因为Linux内核经常用于天气设备和机器人。

这个驱动用于IBM RSA(Condor)服务处理器(Device driver for IBM RSA service processor)。

内核同样支持PCI Sensable PHANToM设备驱动(Sensable PHANToM (PCI))。

这个驱动指引不同来自并行追踪接口(Parallel Trace Interface (PTI))的追踪数据发往Intel Penwell PTI口 (Parallel Trace Interface for MIPI P1149.7 cJTAG standard)。这个被指领的数据用于调试目的。

一些带有IOC4芯片的SGI IO控制器需要这个驱动(SGI IOC4 Base IO support)。SGI IO是由SCI管理的输入/输出设备。IOC4芯片控制着许多由这些设备执行的任务。这是一个基础驱动。其他对这些设备的驱动依赖于这个驱动。

这里有很少的TI闪存媒体适配器驱动在Linux内核中,(TI Flash Media interface support) 和(TI Flash Media PCI74xx/PCI76xx host adapter support)。

这个驱动("Integrated Circuits ICS932S401")用于ICS932S401时钟控制芯片。

Atmel同步串行通信外设(Synchronized Serial Communication peripheral (SSC))有一个驱动在内核中(Device driver for Atmel SSC peripheral)。这个设备提供点对点的设备间的串行连接。

"Enclosure Services"特性支持硬盘托架。

这是对于CS5535/CS5536芯片的定时器驱动(CS5535/CS5536 Geode Multi-Function General Purpose Timer (MFGPT) support)。

这个驱动让应用可以与HP工业标准服务器中的iLO管理处理器通信(Channel interface driver for the HP iLO processor)。"iLO"代表的是"Integrity Integrated Lights-Out".iLO允许远程服务器管理。

Linux内核支持ALS APDS9802光敏传感器(Medfield Avago APDS9802 ALS Sensor module)。一些其他支持的传感器包括:

  • Intersil ISL29003 ambient light sensor
  • Intersil ISL29020 ambient light sensor
  • Taos TSL2550 ambient light sensor
  • ROHM BH1780GLI ambient light sensor
  • BH1770GLC / SFH7770 combined ALS - Proximity sensor
  • APDS990X combined als and proximity sensors

注意:如果内核是为广泛的计算机编译的话,大多数驱动应该以模块形式加入。

Linux甚至可以使用"Honeywell HMC6352 compass"(一种电子罗盘)。

内核同样支持"Dallas DS1682 Total Elapsed Time Recorder with Alarm"。(一种运行时间记录仪)

16位的数模转换器通过这个驱动支持(Texas Instruments DAC7512)。

"VMware Balloon Driver"将客户机操作系统不需要的物理内存页交给需要那些需要的。

这里有两个不同的压力传感器(BMP085 digital pressure sensor on I2C) 和 (BMP085 digital pressure sensor on SPI)。

Intel输入/输出集线器(Intel Input/Output Hub (IOH))同样在内核中支持(Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) PHUB)。具体地说,这个是Intel Topcliff芯片组的PCH PHUB(Platform Controller Hub Packet Hub)

"FSA9480 USB Switch"是检测设备何时插入的检测器。

下一个选项允许比特流配置(Lattice ECP3 FPGA bitstream configuration via SPI)。

Silicon微控制器使用Silicon实验室C2端口,这需要一个特殊的驱动(Silicon Labs C2 port support)。

再说一次,继续留意下一篇文章因为我们还有更多的要做。


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

译者:geekpi 校对:wxy

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

使用WiMAX协议的无线宽频设备可以启用这个(WiMAX Wireless Broadband support)。这个类型的无线连接通常需由服务供应商提供的连接服务才能工作(这与3G/4G的概念相同)。WiMAX代表"Worldwide Interoperability for Microwave Access"(微波存取全球互通)。WiMAX的目的是代替DSL。宽频指的是宽的带宽和大量信号的传输。

射频开关被用于许多Wifi和蓝牙卡中(RF switch subsystem support)。"RF"代表"Radio Frequency"。RF开关路由高频信号。

RF开关输入支持同样也在内核中支持(RF switch input support)。

内核可以控制并请求无线传输(Generic rfkill regulator driver)。启用这个生成一个设备文件(/dev/rfkill)。这个设备文件作为无线设备的接口。

Linux内核支持9P2000协议(Plan 9 Resource Sharing Support (9P2000))。这个网络协议有时称作Styx。Plan 9的窗口系统(Rio)的Styx和Linux的X11都使用Unix网络套接字。Linux系统可能使用Styx在Styx网络中。Plan 9和Linux可以在一个网络中使用Styx

"9P Virtio Transport"(9P 虚拟io传输)系统提供了在虚拟系统上客户机和主机分区间的传输。

内核同样支持RDMA传输(9P RDMA Transport (Experimental))。RDMA代表的是"Remote Direct Memory Access"(远程内存直接访问)。这个Plan9上访问远程计算机内存的协议。

9P系统与其他内核组件一样有调试特性(Debug information)。

"CAIF support"支持同样可以在内核中启用。CAIF代表" Communication CPU to Application CPU Interface"(通信CPU到应用CPU接口)。这是一个使用数据包的多路复用(MUX)协议并被用于ST-Ericsson(意法爱立信)调制解调器中。ST-Ericsson是开发这个协议的公司(是的,MeeGo和Android是Linux系统,并且我正在讨论Google的Andorid)。MUX协议就是多路复用(multiplexing)协议。多路复用在前面的文章中已经提到过。

下面,cephlib可以加入内核,它可以用于rados块设备(rbd)h和Ceph文件系统(Ceph核心库)(译注:Ceph是一种分布式文件系统)。cephlib是是Ceph的完整核心库。Ceph是存储平台。CephFs(Ceph文件系统)是运行在另外一个文件系统的顶部。通常,CephFs运行在EXT2、ZFS、XFS或者BTRFS上面。Rados设备是使用CephFs的块存储单元。

ceph的调试特性会损害内核性能,所以只在需要的时候启用(Include file:line in ceph debug output)。 当启用这个选项(Use in-kernel support for DNS lookup),CONFIGDNSRESOLVER设施会执行DNS查询。

近场通信(Near Field Communication (NFC))设备在Linux内核中也被支持(NFC subsystem support)。

如果上面的特性被启用,那么NFC控制器接口(NFC Controller Interface (NCI))也应该启用(NCI protocol support)。这允许主机和NFC控制器相互通信。

NFC要处理HCI帧需要启用下面一个特性(NFC HCI implementation)。

一些HCI驱动需要一个SHDLC链路层(SHDLC link layer)(SHDLC link layer for HCI based NFC drivers)。SHDLC是检测完整性和管理HCI帧顺序的协议。

如果NFC特性启用了,那么通常也启用"NFC LLCP support"(就像上面那样)。

接下来有一些为特别的NFC设备的驱动。第一个是"NXP PN533 USB driver"。

下一个NFC驱动支持TI的BT/FM/GPS/NFC设备(Texas Instruments NFC WiLink driver)。

下面的是"NXP PN544 NFC driver"。

对于Inside Secure(译注:法国一家非接触半导体芯片厂商)生产的microread NFC芯片驱动同样在内核中支持(Inside Secure microread NFC driver)。

现在,我们将继续配置与网络无关的驱动。首先我们可以选择uevent帮助程序的路径(path to uevent helper)。如今许多计算机不在需要这个特性因为一个uevent帮助程序会在每次执行时fork一个进程处理。这回很快地消耗资源。

在启动时,内核会创建一个tmpfs/ramfs 文件系统(Maintain a devtmpfs filesystem to mount at /dev)。这个提供了完整的/dev目录系统。在这两个文件系统中(tmpfs和ramfs),ramfs两者中最简单。"tmpfs"代表"temporary filesystem"(临时文件系统),而"ramfs"代表"ram filesystem"(内存文件系统)。

下一个设置是devtmpfs文件系统的代码,它同样挂载在/dev下(Automount devtmpfs at /dev, after the kernel mounted the rootfs)。

下面的特性允许模块加载到用户空间(Userspace firmware loading support)。

为了"Include in-kernel firmware blobs in kernel binary"(译注:将固件编译进内核)(这会增加专有固件到内核中),就启用这个特性。

一些二进制专有驱动需要在启动时使用。这个特性允许这类软件这么做(External firmware blobs to build into the kernel binary)。一些计算机有些引导设备需要只包含专有二进制文件的特殊固件。这个特性不启用,系统将无法引导。

启用"Fallback user-helper invocation for firmware loading",允许user-helper(用户助手) (udev)作为内核加载固件驱动失败的后备手段加载固件。udev可以加载驻留在非标准路径的固件。

管理驱动的不跟内核如果被允许就可以生成调试信息(Driver Core verbose debug messages)。

下一步,如果启用这个特性(Managed device resources verbose debug messages),devres.log文件就可以使用。这是一个用于设备资源的调试系统。

下面一个特性会通过netlink套接字生成一条用户空间和内核空间的连接(Connector - unified userspace kernelspace linker)。这个套接字使用netlink协议。这是另外一个Linux系统即使在没有物理网络情况下仍需要网络特性的例子。

用户空间可以通过套接字得到进城时间的通知(Report process events to userspace)。一些报告事件包含了ID改变、fork、和退出状态。一些先前启用的内核特性可能需要这个。最好按配置工具建议的那样设置。

使用固态硬盘的系统需要MTD的支持(Memory Technology Device (MTD) support)。MTD设备是固态存储设备。典型的存储设备与固态硬盘(SSD)不同。用于磁盘单元的标准常规不适用于SSD(读、写、擦除)。

大多数会桌面电脑带有并口(一个有25个洞的连接器),所以他们需要这个特性(Parallel port support)。并口在其他许多鲜为人知的应用中通常用于打印机和ZIP驱动器。并口有25针。

对IBM兼容计算机启用这个特性(PC-style hardware)。它们是不同类型的计算机。除了IBM计算机(通常运行Windows),还有苹果计算机。Linxu可以运行在几乎所有类型的计算机上。

Linux同样支持Multi-IO PCI卡(Multi-IO cards (parallel and serial))。Multi-IO PCI卡同时拥有并口和串口。串口每次发送或接收1位数据。

下一个特性允许内核"Use FIFO/DMA if available"。这用于特定的并口卡来加速打印。FIFO代表"First In, First Out"(先入先出)。DMA是先前提过的直接内存访问(Direct Memory Access)。

下面一个特性用于探测Super-IO卡(SuperIO chipset support)。这些探针会发信中断号、DMA通道和其他类型设备的地址/数量。Super-IO是一种集成IO控制器类型。

PCMCIA的并口支持可以启用(Support for PCMCIA management for PC-style ports)。

注意:对于许多特性来说,你最好按照配置工具的建议除非你有特别的理由不这么做。通常地,如果你是交叉编译或者编译一个通用内核,那么你应该熟悉你想要支持的并做出相应的选择。

在AX88796网络控制器的并口需要这个支持(AX88796 Parallel Port)。

"IEEE 1284 transfer modes"在并口上支持增强型并口(Enhanced Parallel Port (EPP))和增强功能口(Enhanced Capability Port (ECP))并支持打印机状态回读。状态回读是检索打印机的状态。

即插即用("Plug and Play support" (PnP))应该启用。这允许用户在系统开机状态下插入设备并能马上使用它们。没有这个特性,用户不能使用USB设备、打印机或者其他没有执行特殊任务的设备。系统会自动管理复位(译注:原文是 "The system will manage the rest automatically")。

下面,用户可以启用块设备(Block devices)。这是一个应该启用的特性,因为块设备很常见。

软驱也是可以启用的块设备(Normal floppy disk support)。

连接到并口的IDE设备也同样支持(Parallel port IDE device support)。一些外部CD-ROM设备也能通过并口连接。

外部IDE存储设备单元同样可以连接到并口(Parallel port IDE disks)。

连接到并口的ATA包接口(ATA Packet Interface (ATAPI)) CD-ROM需要这个驱动(Parallel port ATAPI CD-ROMs)。ATAPI是用于并行ATA(PATA)设备的ATA协议扩展。

还有一个ATAPI磁盘设备可以插到并口中(Parallel port ATAPI disks)。这个驱动会除了支持CD-ROM外还支持其他类型的磁盘。

内核同样支持通过并口连接ATAPI磁带设备(Parallel port ATAPI tapes)。

还有许多其他的ATAPI设备可以连接到并口中。结果就是,一个通用驱动被用于管理前面提到过的驱动不支持的设备(Parallel port generic ATAPI devices)。

连接到并口上的IDE设备需要一个特殊的协议用于通信。有很多这样的协议,其中一个是"ATEN EH-100 protocol"。

一个可选的用于并行IDE设备的协议是"MicroSolutions backpack (Series 5) protocol"。

这里仍有另外一个并口IDE设备协议(DataStor Commuter protocol)和另一个(DataStor EP-2000 protocol)还有(FIT TD-2000 protocol)。

再提一次,这里有另外一个协议,但是这个强烈建议用在更新的插在并口上的CD-ROM和PD/CD设备(FIT TD-3000 protocol)。

下面的协议主要用于SyQuest、Avatar、Imation和HP生产的并口设备(Shuttle EPAT/EPEZ protocol)。

Imation SuperDisks需要Shuttle EP1284芯片的支持(Support c7/c8 chips)。

一些其他的并行IDE协议可以启用,包括:

  • Shuttle EPIA protocol
  • Freecom IQ ASIC-2 protocol - (用于Maxell Superdisks)
  • FreeCom power protocol
  • KingByte KBIC-951A/971A protocols
  • KT PHd protocol - (用于2.5英寸外置并口硬盘)
  • OnSpec 90c20 protocol
  • OnSpec 90c26 protocol

注意:这些协议以及支持的插入并口的设备意味着这些都类似于热插拔设备,就像USB设备插入USB端口一样。USB和火线人仍旧是使用最流行的端口,因为它们的大小和速度。一个并口设备单元大于USB闪存因为并口大于USB端口。

下一步,我们有一个对于Micron PCIe的SSD驱动(Block Device Driver for Micron PCIe SSDs)。

你可能已经猜到了- 下面的文章会讨论更多的配置.


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

译者:geekpi 校对:wxy

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