Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Rainer Weikusat Newsgroups: comp.os.linux.development.system Subject: Re: UNIX(*)/ Linux history & system design Date: Fri, 09 May 2014 21:24:03 +0100 Lines: 34 Message-ID: <8738gibt0c.fsf@sable.mobileactivedefense.com> References: <87k3adxomn.fsf@sable.mobileactivedefense.com> <87wqear01o.fsf@sable.mobileactivedefense.com> <874n1dwvo0.fsf@sable.mobileactivedefense.com> <87zjj5vf1k.fsf@sable.mobileactivedefense.com> <87k3a0q867.fsf@sable.mobileactivedefense.com> <87zjivatio.fsf@sable.mobileactivedefense.com> <87a9atpq7y.fsf@sable.mobileactivedefense.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: individual.net Afz1H+xH8bx394ZlICkgbgjPT9kkcsLR80IhzMpm1zjX3xcmc= Cancel-Lock: sha1:OMHHp9eNE0AB17xjY84LmHnkMyE= sha1:sss+CEeVEGD+BkNFejvpzBy/ohA= User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) Xref: csiph.com comp.os.linux.development.system:702 crankypuss writes: [...] > But the caller (invoker of the command) receives as a result from the > command only a simple exit-code and whatever command-specific text has > been output to stdout (or stderr). It is up to the "caller" to parse > the "result" text and hopefully make sense of it. [...] > "shell" languages are forced to operate in this restrictive mode is > accepted because that's how the first crude shells were implemented > and they evolved ad-hoc from there. Possibly interesting in the context of this 'interesting' assertion: http://www.techworld.com.au/article/279011/a-z_programming_languages_bourne_shell_sh/? (somehat painful to access due to 'modern web technology' aka nginx/ varnish, but it'll eventually show up) Some remarks to the text: 1. This person is obviously 'older' than the unholy BSD-tradition (later on copied by everyone) of the code author (any code author) considering himself a godlike creature and everybody else a mindless cell aggregate which IMHO makes it a rather refreshing read. 2. Fork used to be a very expensive operation by the time the Bourne shell was written because there was no virtual memory support back then: A fork involved copying all of the forking process to the swap and then swapping it in for actual execution. This is no longer true on 'modern systems' and hasn't been for a while.