精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>系统管理>>系统设置与技巧>>系统相关之howto>>系统相关的 : 如何增加 tty (超过256个)

主题:系统相关的 : 如何增加 tty (超过256个)
发信人: neal()
整理人: hahalee(1999-04-22 02:53:53), 站内信件

 
*** 注意 *** 此法只适用於 FreeBSD-2.2.1 系列 *** 
 
        请到 ftp://freebsd.csie.nctu.edu.tw/pub/jdli/collect/1024pty/ 
        下抓取 patch 及读取安装方法。 
 
*** 注意 *** 此法只适用於 FreeBSD-2.1.* 系列 *** 
 
From: [email protected] (我狂 我笑 我傲 *) 
Newsgroups: tw.bbs.comp.386bsd 
Subject: Re: [转录]增加 tty 的步骤 
Date: 06 Oct 1996 01:53:16 GMT 
Organization: 元智工学院风之塔BBS 
Lines: 53 
 
※ 引述《[email protected] (小硕硕)》之铭言: 
∶ Sound ([email protected]) 提到: 
∶ :    #@ 使用者 tty 上限, 限制最大 login 人数, 到 420 前应该没问题 
∶ :    pseudo-device   pty     128 
∶ : 2. cd /dev; ./MAKEDEV pty1 pty2 pty3 pty4 pty5 pty6 pty7 
∶ :    说明: pty0 会造出 ttyp[0-9a-v] & ptyp[0-9a-v] 
∶ :          (tty & pty 是成对使用的) 
∶ :          所以总共有 tty[pqrsPQRS][0-9a-v]: 8 * 32 == 256 个 tty
 可用 
∶ 关於这点有点奇怪说.... 
∶ 以前没注意就混过去..:P  今天在改telnetd时才发现... 
∶ tty的major number是用5...minor是0~255..这样不是只能到256个 
∶ 如果还有另外一个major number可以用..(like sunos 512 patch) 
∶ 那不是就可以有512个了?! 
 
提供你一个我前阵子为这个问题找出的解决方法... 
由於因为 minor number 上限是 256, 而在 BSD 的 major number 和 
minor number 
是放在一个整数□,  minor number 放在最低的 8bits, 
而 major number 是放在次低的 8bits. 两个 number 是相邻的, 
所以只要将 major number 少算一位, minor number 多算一位, 
那麽 minor number 就变 0 ~ 511 了. 
而 major number 和 minor number 的取法都是透过 major 和 minor 这两
个 macro, 
所以为了达成这个目的, 我把 tty_pty.c 这个 source 做了点修改. 
 
首先在前面写 _minor 和 _major 这两个 macro, 
 
#define _major(dev) ((dev >> 9) & 0x7) 
#define _minor(dev) (dev & 0x1f) 
 
然後将 tty_pty.c □, 所有的 minor  替代成  _minor 
 
接著到 i386/i386/conf.c 把 cdevsw 这 structure 的 5 和 6 这两个 
element 
(即 ttyp 和 ptyp 这两个), 将之内容各 copy 两份到 structure 的 
最後, 即 ttyp 变成 76 和 77 这两个 element, 而 ptyp 成为 78 79 这两个
element. 
 
再来, make kernel ... 
 
然後到 /dev 下, make device file. 这时你就可以各造 512 个 pty 和 tty 了.. 
majr device number 分别是分布在 pty ->(78,79) 和 tty->(76,77). 
记得要先清除原有的 pty. 
 
完工了... 
可以有 512 tty 了... 
要 1024 也可以... 

--
※ 来源:.网易 BBS bbs.netease.com.[FROM: dmx320.resnet.ust.hk]

[关闭][返回]