Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'script,': 0.07; 'scripts': 0.09; 'executed': 0.09; 'operation,': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'subject:()': 0.09; 'am,': 0.12; 'library': 0.13; 'driver': 0.15; 'entries': 0.15; 'processor': 0.15; '>on': 0.16; 'amiga': 0.16; 'bieber': 0.16; 'email addr:ix.netcom.com': 0.16; 'email name:wlfraed': 0.16; 'from:addr:ix.netcom.com': 0.16; 'from:addr:wlfraed': 0.16; 'from:name:dennis lee bieber': 0.16; 'message-id:@4ax.com': 0.16; 'passing,': 0.16; 'posix': 0.16; 'received:wlfraed': 0.16; 'subject:Killing': 0.16; 'subject:threads': 0.16; 'url:netcom': 0.16; 'url:wlfraed': 0.16; 'wulfraed': 0.16; 'wrote:': 0.16; 'memory': 0.20; 'url:home': 0.21; 'feb': 0.22; 'programs.': 0.23; '>the': 0.23; 'received:166': 0.23; 'command': 0.24; "python's": 0.24; 'shell': 0.24; 'code': 0.25; 'handles': 0.25; 'right.': 0.25; 'looks': 0.27; 'lee': 0.28; 'fri,': 0.30; 'controls': 0.30; 'i/o': 0.30; 'porting': 0.30; 'determined': 0.32; 'actually': 0.32; 'done': 0.33; 'it.': 0.33; 'to:addr:python-list': 0.33; 'direction': 0.34; 'limitations': 0.34; 'header:X-Complaints-To:1': 0.34; 'something': 0.35; 'regular': 0.35; 'file': 0.35; 'data.': 0.36; 'device': 0.36; 'charset:us-ascii': 0.36; 'passed': 0.37; 'list,': 0.37; 'received:org': 0.37; 'another': 0.37; 'linked': 0.38; 'some': 0.38; 'subject:: ': 0.39; 'to:addr:python.org': 0.40; 'got': 0.40; 'most': 0.60; 'matter': 0.61; 'more': 0.61; 'efficient': 0.61; 'address': 0.61; 'john': 0.62; 'back': 0.62; 'lower': 0.63; 'designers': 0.67; 'incorporate': 0.67; 'ports': 0.67; 'receive': 0.68; 'dennis': 0.73; 'drivers': 0.77; 'eventual': 0.84; 'spaces.': 0.84 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Dennis Lee Bieber Subject: Re: Killing threads, and os.system() Date: Fri, 03 Feb 2012 11:20:47 -0500 References: <4f2b976a$0$78773$742ec2ed@news.sonic.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: mobile-166-147-100-053.mycingular.net X-Newsreader: Forte Agent 6.00/32.1186 X-No-Archive: YES X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 44 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1328286608 news.xs4all.nl 6842 [2001:888:2000:d::a6]:35975 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:19836 On Fri, 03 Feb 2012 00:14:33 -0800, John Nagle wrote: >On 1/31/2012 8:04 AM, Dennis Lee Bieber wrote: >> ({muse: who do we have to kill >> to persuade OS designers to incorporate something like the Amiga ARexx >> "rexxport" system}). > > QNX, which is a real-time microkernel which looks like POSIX to >applications. actually got interprocess communication right. It >has to; everything in QNX is done by interprocess communication, >including all I/O. File systems and drivers are ordinary programs. >The kernel just handles message passing, CPU dispatching, and timers. >QNX's message passing looks more like a subroutine call than an >I/O operation, and this has important implications for efficient CPU >dispatching. > Sounds a lot like the Amiga kernal. Though, since message passing was just a matter of adding/removing entries from a linked list, it prevented easy porting to protected virtual memory spaces. I/O was user code passing an I/O request to a file-handler, which then determined which device driver was to receive the next lower level operation... Eventual these messages passed back in the other direction with the result data. Rexxports were just regular Amiga message ports with some ARexx overhead... From an ARexx script, sending to another program that implemented a Rexxport was as simple as address command_and_data_parameters The library included statements for ARexx scripts to create their own ports, and to receive packets via them. Unfortunately, the limitations of most OS's have led to implementations like the Regina Rexx -- where the ADDRESS command is basically a synonym for Python's subprocess.Popen() and the "targetport" controls whether the command is executed directly or if a shell processor is invoked to handle it. -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/