From: Kyle Moffett <mrmacman_g4@mac.com>
To: lsorense@csclub.uwaterloo.ca (Lennart Sorensen)
Cc: Ben Crowhurst <Ben.Crowhurst@stellatravel.co.uk>,
linux-kernel@vger.kernel.org
Subject: Re: Kernel Development & Objective-C
Date: Fri, 30 Nov 2007 10:26:03 -0500 [thread overview]
Message-ID: <53ADBDBF-9B65-441E-B867-D68DE48ABD64@mac.com> (raw)
In-Reply-To: <20071130143445.GA2310@csclub.uwaterloo.ca>
On Nov 30, 2007, at 09:34:45, Lennart Sorensen wrote:
> On Thu, Nov 29, 2007 at 12:14:16PM +0000, Ben Crowhurst wrote:
>> Has Objective-C ever been considered for kernel development?
>
> Doesn't objective C essentially require a runtime to provide a lot
> of the features of the language? If it does (as I suspect) then it
> is totally unsiatable for kernel development.
>
> That and object oriented languages in general are badly designed
> and a bad idea. Having not used objective C I have no idea if it
> qualifies as badly designed or not. Certainly C++ and java are
> both very badly designed.
Objective-C is actually a pretty minimal wrapper around C; it was
originally implemented as a C preprocessor. It generally does not
have any kind of memory management, garbage collection, or anything
else (although typically a "runtime" will provide those features).
There are no first-class exceptions, so there would be nothing to
worry about there (the exceptions used in GUI programs are built
around the setjmp/longjmp primitives). Objective-C is also almost
completely backwards-compatible with C, much more so than C++ ever
was. As far as the runtime goes the kernel would be expected to
write its own, the same way that it implements "kmalloc()" as part of
a "C runtime". Since the runtime itself never does any implicit
memory allocation, I think it would conceivably even be relatively
safe for kernel usage.
With that said, there is a significant performance penalty as all
Objective-C method calls are looked up symbolically at runtime for
every single call. For GUI programs where large chunks of the code
are event-loops and not performance-sensitive that provides a huge
amount of extra flexibility. In the kernel though, there are many
codepaths where *every* *single* instruction counts; that could be a
serious performance hit.
Cheers,
Kyle Moffett
next prev parent reply other threads:[~2007-11-30 15:26 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-29 12:14 Ben Crowhurst
2007-11-30 10:02 ` Xavier Bestel
2007-11-30 10:09 ` KOSAKI Motohiro
2007-11-30 10:20 ` Xavier Bestel
2007-11-30 10:54 ` Jan Engelhardt
2007-11-30 14:21 ` David Newall
2007-11-30 23:31 ` Bill Davidsen
2007-11-30 23:40 ` Alan Cox
2007-12-01 0:05 ` Arnaldo Carvalho de Melo
2007-12-01 18:27 ` Bill Davidsen
2007-12-01 18:18 ` Alan Cox
2007-12-03 1:23 ` Bill Davidsen
2007-11-30 22:52 ` J.A. Magallón
2007-11-30 10:29 ` Loïc Grenié
2007-11-30 11:16 ` Ben Crowhurst
2007-11-30 11:36 ` Karol Swietlicki
2007-11-30 14:37 ` Lennart Sorensen
2007-12-08 8:54 ` Rogelio M. Serrano Jr.
2007-11-30 23:19 ` J.A. Magallón
2007-11-30 23:53 ` Nicholas Miell
2007-12-01 0:31 ` Al Viro
2007-12-01 0:34 ` Al Viro
2007-12-01 1:09 ` J.A. Magallón
2007-12-01 19:55 ` Avi Kivity
2007-12-04 17:54 ` Lennart Sorensen
2007-12-04 21:10 ` Avi Kivity
2007-12-04 21:24 ` J.A. Magallón
2007-11-30 11:37 ` Matti Aarnio
2007-11-30 14:34 ` Lennart Sorensen
2007-11-30 15:26 ` Kyle Moffett [this message]
2007-11-30 18:40 ` H. Peter Anvin
2007-11-30 19:35 ` Kyle Moffett
2007-12-01 20:03 ` Avi Kivity
2007-12-02 19:01 ` Andi Kleen
2007-12-03 5:12 ` Avi Kivity
2007-12-03 9:50 ` Andi Kleen
2007-12-03 11:46 ` Avi Kivity
2007-12-03 11:50 ` Andi Kleen
2007-12-03 21:13 ` Willy Tarreau
2007-12-03 21:39 ` J.A. Magallón
2007-12-03 21:57 ` Alan Cox
2007-12-04 21:47 ` J.A. Magallón
2007-12-04 22:20 ` Diego Calleja
2007-12-05 10:59 ` Giacomo A. Catenazzi
2007-12-04 21:07 ` Avi Kivity
2007-12-04 22:43 ` Willy Tarreau
2007-12-05 17:05 ` Micro vs macro optimizations (was: Re: Kernel Development & Objective-C) Avi Kivity
2007-12-03 12:35 ` Kernel Development & Objective-C Gilboa Davara
2007-12-03 12:44 ` Gilboa Davara
2007-12-03 16:28 ` Casey Schaufler
2007-12-04 17:50 ` Lennart Sorensen
2007-12-05 10:31 ` Gilboa Davara
2007-12-01 19:59 ` Avi Kivity
2007-12-02 19:44 ` Jörn Engel
2007-12-03 16:53 ` Lennart Sorensen
2007-11-30 15:00 ` Chris Snook
2007-12-01 9:50 ` David Newall
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=53ADBDBF-9B65-441E-B867-D68DE48ABD64@mac.com \
--to=mrmacman_g4@mac.com \
--cc=Ben.Crowhurst@stellatravel.co.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=lsorense@csclub.uwaterloo.ca \
/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
all inboxes | Powered by JetHome®