⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 106.htm

📁 LINUX的操作系统分析文件和使用文件
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0056)http://data.km169.net/wsxx/showjq.asp?id=1415&type=LINUX --><html><head><title>New Page 1</title><meta content="text/html; charset=gb2312" http-equiv="Content-Type"><meta content="Microsoft FrontPage 3.0" name="GENERATOR"><meta content="FrontPage.Editor.Document" name="ProgId"><!--webbot bot="HTMLMarkup" startspan TAG="XBOT" --></SCRIPT><!--webbot bot="HTMLMarkup" endspan--><style>A:link {	COLOR: #4444ff; TEXT-DECORATION: underline}A:visited {	COLOR: #4444ff; TEXT-DECORATION: underline}A:active {	TEXT-DECORATION: none}A:hover {	COLOR: #ff0000; TEXT-DECORATION: none}BODY {	COLOR: #505050; FONT-FAMILY: 宋体; FONT-SIZE: 9pt}TD {	FONT-FAMILY: 宋体; FONT-SIZE: 9pt}TD.a {	FONT-FAMILY: 宋体; FONT-SIZE: 9pt}TD.b {	FONT-FAMILY: 宋体; FONT-SIZE: 11pt; font-color: #ff0000}.other1 {	FONT-SIZE: 9pt; LETTER-SPACING: 0px; LINE-HEIGHT: 18px}.other2 {	FONT-SIZE: 10.5pt}</style></head><body bgColor="#FFFFFF" leftMargin="7" topMargin="7"><hr SIZE="0"><p><b><font color="#fe3a42">标题: ■&nbsp;</font><font color="#9b004e"> </font>Linux Serial HOWTO 中译版 : 11,12</b><br>姓名 :Greg Hankins greg.<br>Email:hankins@cc.gatech.edu<br>地址 :<br>转摘 :http://member.netease.com/</p><p align="center"><a href="linux.htm">返回</a></p><hr SIZE="0"><p>11. 串列使用秘诀 <br>这里有一些你可能发现很有用的串列□诀... <br><br>11.1. kermit 以及 zmodem <br>要在 kermit 下使用 zmodem 的话,将下列内容加到你的 .kermrc 里去: <br><br>define rz !rz &lt; /dev/ttyS3 &gt; /dev/ttyS3 <br>define sz !sz \%0 &gt; /dev/ttyS3 &lt; /dev/ttyS3 <br><br>要确定正确地放入你数据所在的串列埠.然後,要使用的话,只要在 kermit 的提示符号下键入 rz 或 sz &lt;档名&gt; 即可. <br><br>11.2. 自动设定终端机型式 <br>要在当你签入的时候自动设定你的终端机形式的话,把终端机的形式加到 /etc/inittab 的项目里去.如果我有一台 vt100 终端机在 ttyS1 上 ,我要对 getty 指令加上 ``vt100'': <br><br>S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100 <br><br><br>你也可以使用 tset,可以在你签入的时候建立终端机的特性,而且不需要依赖任何的预设值. <br><br>11.3. 在串列连线下的彩色 ls <br>如果 ls 因为彩色特性而扰乱了你的终端机模拟,把它关掉. ls --color 以及 ls --colour 都使用彩色特性.有些安装方式使得 ls 预设为使用彩色.检查 /etc/profile 以及 /etc/csh.cshrc 里的 ls 别名.如果你不想修改系统预设值的话,你也可以设给 ls 别名 ls --no-color. <br><br>11.4. 从终端机所连接的印表机进行列印 <br>有一个叫做 vtprint 的程式可以做得到,在 ftp://ftp.sdsu.edu/pub/vtprint 及 http://www.sdsu.edu/~garrett 可取得. <br><br>另外一支叫 xprt 的程式也能做到.它可在 ftp://sunsite.unc.edu/pub/Linux/system/printing 找到. <br><br>11.5. Linux 能不能够自动地配置串列设备? <br>可以.要让 Linux 在启动的时候自动地侦测并且设定串列设备的话,把这一行: <br><br>/sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig <br><br>加到你的 /etc/rc.d/rc.local 或是 /etc/rc.d/rc.serial 档案里面.对每一个你希望自动配置的串列埠都要做.要确定所给的是一个真正存在於你电脑上的设备名称. <br><br>11.5.1. 多埠卡的注意事项 <br>对於卡的位址,以及 IRQs 查阅 setserial 程式随附的 rc.serial.它有很多关於多埠卡的细节,包括输出入位址以及设备名称. <br><br>11.6. 使用串列控制台 <br>在第三十六期的 Linux Journal 在 http://www.ssc.com/lj/issue36/index.html 有篇文章解释如何使用串列控制台(serial console).不幸的是,寄电子邮件给作者都被退回.我希望这篇文章会很快地上述 URL 的 Linux Journal 网站中. <br><br>11.7. 更高的串列流量 <br>如果在一部使用 (E)IDE 磁碟机的系统上你发现流量很慢而且串列埠常溢满,你可以取得 hdparm.这是一个可以修改 (E)IDE 参数,包含让一磁碟 IRQ 动作期间其它 IRQs 仍可工作.这会改善反应速度并帮助消除溢满.确定小心地读过了线上手册,因为某些磁碟/控制卡组合不喜欢它并且可能损毁档案系统. <br><br>也可以看一下一个叫 irqtune 的工具,可以改变一个装置 IRQ 的优先顺序,例如你数据机所在的串列埠.这也可能改善你系统的串列流量. irqtune 的常见问题解答(FAQ)可在 http://www.best.com/~cae/irqtune 找到. <br><br><br>12. 更进一步... <br>这一节并不需要阅读,但是可能带给你一些对於 Unix 以及电子通讯世界更进一步的了解. <br><br>12.1. 什麽是锁定档案(lock files)? <br>Lock files 只是单纯的一个档案用来表示某个特定的设备正在使用中.它们保存在 /usr/spool/uucp 或是 /var/lock 里面. Linux 的 lock files 名字都是 LCK..name,其中的 name 不是设备名称就是一个 UUCP 节点名称.有些程序建立这些 locks 以便让它们自己可以独占该设备的存取权.例如如果你从你的数据机拨号出去,将会出现一个 lock 告诉其它程序现在已经有人正在使用数据机. Lock files 里面主要是包含锁住该设备的程序的行程号码(PID).大部份的程式会查阅 lock,然後检查行程表(process table)中锁定该设备的行程来试著决定这个 lock 是否仍然有效.如果发现这个 lock 是有效的话,这个程式(应该)要结束.如果不是,某些程式会删除过时的 lock,然後使用该设备,并在行程执行时建立他们自己的 lock.其它的程式就只好结束并告诉你该设备正在使用中. <br><br>12.2. ``baud'' 对 ``bps'' <br>``baud'' 跟 ``bps'' 可能是电脑/电子通讯这个领域里最常被错用的术语之一.当它们事实上并不相同的时候,很多人仍交替使用这些术语. <br><br>鲍率(baud) <br>鲍率是每秒钟数据机(调变解调器,modulator-demodulator)送出多少次讯号改变的度量.例如,鲍率为 1200 的含意是信号每隔 833 微秒(microsecond)即改变一次.普遍的鲍率有 50, 75, 110, 300, 600, 1200 以及 2400.大部份的高速数据机所使用的鲍率为 2400.因为语音级(voice-grade)电话线路的频宽限制,超过 2400 的鲍率很难达的到,而只能在非常纯净的电话线品质下才能运作. ``baud''一词在 Emile Baudot 之後才有,他是非同步电报印表机(asynchronous telegraph printer)的发明者. <br><br>每秒传输位元(bps) <br>每秒位元传输率是每秒钟传输多少位元的度量.普遍每秒位元传输率有 50, 75, 110, 300, 1200, 2400, 4800, 9600, ... 115200.在使用 V.42bis 压缩(压缩最大率 4:1)的数据机下,理论上每秒位元传输率可以高达 115200.这是许多人在错用 ``baud'' 这个字时所指的意思. <br><br><br>所以,如果高速数据机以 2400 baud 运作,它们如何能够传送 14400 bps? 数据机对每个 baud 编码来表示某一数量的位元而使得 bps 能大於 baud.这样一来,当二个或更多位元编码成一个 baud 的时候,bps 就会超越 baud.如果你的数据机是以 14400 bps 连线的话,它将会以 2400 baud 的速度每个 baud 传送六个位元. <br><br>这个混淆是怎麽样开始的? 嗯,回到今天的低速数据机还是昨天的高速数据机那个时代,每秒位元传输率跟信号改变率实际上是完全相等的.每个 bit 编码成一个 baud.人们交替使用 bps 以及 baud 是因为它们的数字相同.例如一台 300 bps 的数据机其信号改变率也是 300.当高速数据机普及後一切都改变了,而且每秒位元传输率超过了信号改变率. <br><br>12.3. 什麽是 UARTs? 它们如何影响效能? <br>UARTs (通用非同步接收转换器,Universal Asyncronous Receiver Transmitter)是你 PC 串列卡上的晶片.它们的功用是把资料转成位元,将这些位元送上串列线路,然後在另一端重新建立资料. UARTs 是以位元组为单位处理资料,很方便地也是美国标准交换码(ASCII)的字元大小. <br><br>假定是你有一台连接到你 PC 的终端机.当你键入一个字元时,终端机把它交给它的转换器(也是 UART 的一种).该转换器以指定的速率把这个位元组送到串列线路上,每次一个位元.在 PC 这一端,接收位元的 UART 拿走所有的位元,然後重新组成位元组并且放到缓冲区里去. <br><br>有两种不同的 UARTs 类型.你可能有听过愚蠢的(dumb)UARTs - 8250 还有 16450,以及先进先出式 UARTs - 16550A.要了解它们的不同,首先让我们来检验当 UART 送出或接收一个位元组时所发生的事. <br><br>这 UART 本身并不能对资料做什麽处理,它只是送出以及接收它.每次送出或接收一个位元组时,CPU 都会从串列设备接到一个中断.然後 CPU 就把接收到的位元组从 UARTs 的缓冲区搬到记忆体的某处,或是提供另一个位元组给 UART 传送. 8250 以及 16450 UARTs 只有一个位元组的缓冲区.这个意思是,每送出或接收一个位元组就会中断 CPU 一次.在低速的情况下这样没有问题.但是在高速的传输率下,CPU 会忙於处理 UART 而没有时间照料其它工作.在某些情况下,CPU 没有足够的馀裕及时处理中断服务,该位元组将因资料如此快速地传入而被覆写. <br><br>这就是 16550A UARTs 有用的地方.这些晶片具有 16 个位元组的先进先出伫列.这个意思是它在必须中断 CPU 之前可以接收或转换达 16 个位元组.它不仅是能等,而且 CPU 现在也可以同时传送全部 16 个位元组的资料.虽然中断界限(threshold)很少有设到 16 的,这对於其它只有一个位元组缓冲区的 UARTs 而言仍然是一个重要的优点. CPU 收到较少的中断,因此可以自由地做其它事情.资料不会漏失,每个人都很高兴. (也有 16550 这个 UART,但是它跟 16450 一样因为它有问题.) <br><br>一般来说, 8250 以及 16450 UARTs 应该能够胜任高达 38400 bps 的工作速率.在高於 38400 bps 的速率下,你可能开始见到资料漏失.其它的 PC 作业系统(这里的定义很宽松),像 DOS 并非是多工的,所以它们有可能可以用 8250 或 16450s 却应付的更好.这就是为什麽有些人并没有看到资料漏失,直到他们改用 Linux 才发生. <br><br>无-UART(Non-UART)以及智慧型多埠卡使用数位处理机(DSP)晶片来处理额外的缓冲以及控制,如此更能减轻 CPU 的负担.例如,Cyclades Cyclom 及 Stallion EasyIO 这些卡使用 Cirrus Logic CD-1400 RISC 晶片,还有许多卡使用 80186 CPU 或更特别的 RISC CPU 来处理串列输出入. <br><br>心里要记得,这些愚蠢型的 UART 并非是坏的,只是它们不适合做高速传输.当你将终端机或滑鼠连接到这些 UARTs 时应该不会遭遇困难.但是对高速数据机而言,16550A 可以说是必须的. <br><br>你可以花多一点点的钱购买有 16550A UARTs 的串列卡,只要询问电脑商该卡所使用的是什麽型号的 UARTs 即可.或者你想升级你现在的卡,你可以只要简单地购买 16550A 晶片并且置换你现在的 16450 UARTs 晶片.它们的脚位相容(pin-to-pin compatible).有些卡有 UARTs 插槽来作这个用途使用.如果不是的话你可以焊接.注意,如果你有钱,买一张新卡将可能会省掉你许多麻烦,它们在 $50 元美金以下. </p><hr SIZE="0"><p align="center"><a href="linux.htm">返回</a></p><p><br><br><br></p></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -