linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Timothy Miller <miller@techsource.com>
To: Sergiy Lozovsky <serge_lozovsky@yahoo.com>
Cc: root@chaos.analogic.com, Horst von Brand <vonbrand@inf.utfsm.cl>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: kernel stack challenge
Date: Tue, 06 Apr 2004 18:44:48 -0400	[thread overview]
Message-ID: <407332E0.2040809@techsource.com> (raw)
In-Reply-To: <20040406211550.30263.qmail@web40514.mail.yahoo.com>



Sergiy Lozovsky wrote:

> 
> So, you still didn't say a word why it was a bad
> choice. Can you share your thought on that?

I've seen (and produced) lots of words to that effect.

> 
> I didn't just pick up LISP - I EXPLAINED my reasons.
> if you missed my explanation here is a short summary.
> 
> 1. I needed solution to implement some procedural
> functionality within the kernel. This functionality
> should be expressed with some high level language
> (shorter development time and more compact source
> code). This functionality should be
> loadable/unloadable to the kernel.

This isn't a problem.

> 
> 2. Size of the interpreter should be minimal.

You say your LISP interpreter is about 100K.  This is hardly minimal. 
There are things which are much smaller which will do the job AND won't 
have the stack-exploding side-effects.

> 
> 3. Kind of real time - no ordinary garbage collector.
> And automatic memory management at the same time.

How about one which doesn't NEED garbage collection?  For instance, if 
you were to make it object-based, rather than object-oriented, then 
you'd pre-allocate all structures at compile time.  Ada is(was?) like this.

> 
> 4. Easiest syntax possible - so interpreter would be
> compact. Simpler - the better :-) I don't like
> complicated things :-)

LISP completely violates this requirement.  There are languages which 
have MUCH simpler syntax than LISP.

And I'm talking simpler for the PROGRAMMER.  It can be as complex as you 
like for the compiler, because THE COMPILER WOULD BE IN USERSPACE.

> 
> 5. Well known. So there would be people around who
> already know this language and expectations are clear.
> And there are books around about this language.

LISP completely violates this requirement.  While I appreciate the power 
of LISP for abstraction, list processing, and how it lends itself 
towards many AI-related tasks, it's not a commonly-used language.

Besides, you have already invalidated this point by stating that the 
people actually USING this policy engine would never look at the code, 
because they would select amongst a set of canned policies using a web 
browser.  In this case, the form of the policy code is completely 
irrelevant.

> 6. Ability to handle/represent complex data
> structures.

LISP is not superior to other languages in this regard.  I 
handle/represent complex data structures in C, C++, Java, Javascript, 
PHP, SQL, BASIC, Pascal, Tcl... I guess FORTRAN is the only one I don't 
do complex structures in.

> 7. Errors/bugs in loadable functions should not cause
> trouble for other tasks and kernel itself. (To the
> extent possible for sure).

The only way to be sure of this is to do the processing in userspace. 
Putting that aside, any carefully-written interpreter would be able to 
provide this security.  Furthermore, something simpler than a LISP 
interpreter would be easier to VERIFY that it was secure.

> 
> 8. It should be universal (general purpose) language
> which gives ability to make any manipulations with
> numbers, strings, bits and data structures. So I would
> be sure that functionality I want to express is not
> limited by the language.

Again, LISP is not superior to other languages in this regard.

> That's why particular LISP interpreter was chosen.
> It's wrong to say that just language was chosen. I
> would never start work of fitting Common Lisp into the
> kernel. Particular general purpose language
> interpreter was chosen.

You have to understand that you're speaking to a list full of zealots 
that understand zealotry VERY WELL.  Even Linux scratches his head (or 
so I assume) every time some Linux zealot comes along wanting to run 
Linux on some two-bit (pun intended) processor that was never designed 
to run an OS.

Thus, when someone comes along suggesting that they put a beast like a 
LISP interpreter into the Kernel, something that violates Linux 
philosophy on SOOO many levels, the "he must be a LISP zealot" red 
lights start flashing, because only a LISP/whatever zealot would choose 
to do something so ostensibly impractical.  That is to say, someone who 
was NOT a LISP/whatever zealot would have chosen something more 
appropriate, while we have observed so many times 
Linux/LISP/MacOS/BeOS/Perl/Ruby/Python/whatever zealots who want to push 
their square peg into every round hole they can find.  (so to speak)

I personally like to write Nuclear Bomb simulators in BASH to run on 
5mhz processors with 1K of RAM.  *snort*


  reply	other threads:[~2004-04-06 22:24 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200404061606.i36G6YLE003375@eeyore.valparaiso.cl>
2004-04-06 18:04 ` kernel stack challenge Sergiy Lozovsky
2004-04-06 18:28   ` John Stoffel
2004-04-06 18:48     ` Sergiy Lozovsky
2004-04-06 18:57   ` Richard B. Johnson
2004-04-06 21:15     ` Sergiy Lozovsky
2004-04-06 22:44       ` Timothy Miller [this message]
2004-04-06 22:57         ` viro
2004-04-06 23:32           ` Sergiy Lozovsky
2004-04-06 23:45             ` Robin Rosenberg
2004-04-07  2:25       ` Horst von Brand
     [not found] <20040409182517.330.qmail@web40508.mail.yahoo.com>
2004-04-10  4:17 ` Horst von Brand
     [not found] <58907794@toto.iv>
2004-04-07  4:29 ` Peter Chubb
     [not found] <24DA9B48-8827-11D8-87A5-000A9585C204@able.es>
2004-04-07  0:27 ` Sergiy Lozovsky
     [not found] <200404061618.i36GIHgW003419@eeyore.valparaiso.cl>
2004-04-06 18:16 ` Sergiy Lozovsky
2004-04-06 20:01   ` Valdis.Kletnieks
2004-04-06 21:38     ` Sergiy Lozovsky
2004-04-06 22:46       ` Timothy Miller
     [not found] <200404052026.i35KQh5g004342@eeyore.valparaiso.cl>
2004-04-05 21:21 ` Sergiy Lozovsky
2004-04-06 20:01   ` Horst von Brand
     [not found] <200404052043.i35KhDvS020176@turing-police.cc.vt.edu>
2004-04-05 21:06 ` Sergiy Lozovsky
     [not found] <1H9LV-5Jb-1@gated-at.bofh.it>
2004-04-04 11:27 ` Andi Kleen
2004-04-04 18:24   ` Sergiy Lozovsky
2004-04-04 18:38     ` Muli Ben-Yehuda
2004-04-04  6:48 Sergiy Lozovsky
2004-04-05  9:39 ` Helge Hafting
2004-04-05 17:05   ` Sergiy Lozovsky
2004-04-05 18:06     ` Timothy Miller
2004-04-05 17:59       ` Sergiy Lozovsky
2004-04-05 19:27         ` Valdis.Kletnieks
2004-04-05 21:14           ` Timothy Miller
2004-04-05 20:09         ` John Stoffel
2004-04-05 20:54           ` Sergiy Lozovsky
2004-04-05 21:08             ` Chris Wright
2004-04-05 21:40               ` Sergiy Lozovsky
2004-04-05 21:53                 ` Chris Wright
2004-04-05 22:22                 ` Timothy Miller
2004-04-05 23:49                   ` Sergiy Lozovsky
2004-04-06 13:25                     ` Jesse Pollard
     [not found]                     ` <20040406132750$3d4e@grapevine.lcs.mit.edu>
     [not found]                       ` <mit.lcs.mail.linux-kernel/20040406132750$3d4e@grapevine.lcs.mit.edu>
2004-04-06 16:40                         ` Patrick J. LoPresti
2004-04-06 19:10                           ` Timothy Miller
2004-04-06 20:53                             ` Patrick J. LoPresti
2004-04-06 21:24                               ` Timothy Miller
2004-04-07 14:36                           ` Jesse Pollard
2004-04-05 21:28             ` Timothy Miller
2004-04-05 21:21               ` Stephen Smoogen
2004-04-05 22:25                 ` Timothy Miller
2004-04-05 21:30               ` Sergiy Lozovsky
2004-04-05 21:45                 ` Kevin Fox
2004-04-05 21:59                 ` Robin Rosenberg
2004-04-05 22:52                   ` Sergiy Lozovsky
2004-04-06  0:46                     ` Robin Rosenberg
2004-04-06  0:55                     ` Robin Rosenberg
2004-04-06  3:02                       ` Sergiy Lozovsky
2004-04-06  3:04                         ` Randy.Dunlap
2004-04-05 22:20                 ` Timothy Miller
2004-04-05 23:27                   ` Sergiy Lozovsky
2004-04-06 20:16                 ` Horst von Brand
2004-04-06 20:58                   ` Timothy Miller
2004-04-06 22:05                     ` Sergiy Lozovsky
2004-04-06 22:56                       ` Timothy Miller
2004-04-06 23:17                         ` Sergiy Lozovsky
2004-04-08 13:11                           ` Martin Waitz
2004-04-08 22:33                             ` Sergiy Lozovsky
2004-04-07  2:44                       ` Horst von Brand
2004-04-07 17:54                         ` Sergiy Lozovsky
2004-04-08  2:43                           ` Horst von Brand
2004-04-08  4:07                             ` Sergiy Lozovsky
2004-04-08  4:29                               ` Horst von Brand
2004-04-08 22:51                                 ` Sergiy Lozovsky
2004-04-08 15:44                               ` Valdis.Kletnieks
2004-04-08 22:22                                 ` Sergiy Lozovsky
2004-04-09 15:27                                   ` Jesse Pollard
2004-04-05 21:12         ` Timothy Miller
2004-04-06 13:32     ` Helge Hafting
2004-04-06 17:44       ` Sergiy Lozovsky
2004-04-07  1:02         ` Horst von Brand
2004-04-07  1:34           ` Sergiy Lozovsky
2004-04-07  8:57             ` David Weinehall
2004-04-07 13:38               ` Chris Friesen
2004-04-07 17:12                 ` Sergiy Lozovsky
2004-04-07 17:16               ` Sergiy Lozovsky
2004-04-07  2:30           ` viro
2004-04-06 18:33       ` Jamie Lokier
2004-04-06 18:51         ` Sergiy Lozovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=407332E0.2040809@techsource.com \
    --to=miller@techsource.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=root@chaos.analogic.com \
    --cc=serge_lozovsky@yahoo.com \
    --cc=vonbrand@inf.utfsm.cl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).