From owner-freebsd-hackers@FreeBSD.ORG Thu Aug 30 13:04:48 2007 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 55D0C16A419 for ; Thu, 30 Aug 2007 13:04:48 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from s200aog12.obsmtp.com (s200aog12.obsmtp.com [207.126.144.126]) by mx1.freebsd.org (Postfix) with SMTP id C141313C428 for ; Thu, 30 Aug 2007 13:04:45 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from source ([217.206.187.80]) by eu1sys200aob012.postini.com ([207.126.147.11]) with SMTP; Thu, 30 Aug 2007 13:04:19 UTC Received: from [10.0.0.89] (bill.mintel.co.uk [10.0.0.89]) by rodney.mintel.co.uk (Postfix) with ESMTP id 7D7E018142E; Thu, 30 Aug 2007 14:04:18 +0100 (BST) Message-ID: <46D6C051.5090101@tomjudge.com> Date: Thu, 30 Aug 2007 14:04:17 +0100 From: Tom Judge User-Agent: Thunderbird 1.5.0.12 (X11/20070604) MIME-Version: 1.0 To: Simias References: <86d4x52ovt.fsf@simias.hd.free.fr> In-Reply-To: <86d4x52ovt.fsf@simias.hd.free.fr> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org, djembe nazar Subject: Re: two-way terminal multiplexing X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Aug 2007 13:04:48 -0000 Simias wrote: > "djembe nazar" writes: > >> I am trying to work out a way to do the following for a >> "FreeBSD teaching environment": >> >> The intention is to have two terminals, one above the other. >> The bottom terminal shows one's own commands and output like >> an ordinary xterm whilst the top terminal shows the commands >> and output of a peer (such as an instructor). >> >> The pupil is not allowed to enter commands into the >> instructor's terminal, it simply shows what the instructor >> typed and the resulting output of the commands. The same >> is true of the reverse. The overall concept is to allow an >> instructor to tutor a pupil over an appropriate medium such >> as instant messaging whilst allowing the pupil to learn by >> example with a very hands-on approach. >> >> In the case of a standard 1-to-1 teaching environment, the >> instructor would see his/her own terminal on the bottom and >> the terminal of the pupil on the top. The pupil would see the >> reverse (instructor's terminal above, his/her own terminal >> below). >> >> pupil sees: instructor sees: >> +-----------------+ +-----------------+ >> | INSTRUCTOR TERM | | PUPIL TERM | >> +-----------------+ +-----------------+ >> | PUPIL TERM | | INSTRUCTOR TERM | >> +-----------------+ +-----------------+ >> >> I do not understand how to achieve this. Is this even possible >> given standard unix security with regards to hijacking the >> tty devices of other users on the system? >> > > I think you may achieve this with GNU Screen, since it supports multi > users sessions (look for addacl and aclchg in the screen(1) man page). > > If you want to do that by yourself, I'd use a client/server > architecture, the instructor would start a program like script(1), but > instead of writing to a file, it'd write to a socket, and the pupil > would start a client version that will just read the socket and output > what it receives. Note that it probably won't work very well if the two > terminals have different size and/or different Termcaps (especially with > curses apps like vi or emacs). > > It's quite trivial to implement, but maybe it won't meet your requirements. > The other option might be to use the terminal snooping option in the kernel. I have never used it but it sounds like what you may want. Tom