can python do some kernel stuff?

Andrew Lee fiacre.patrick at gmail.com
Fri May 23 06:15:41 EDT 2008


Diez B. Roggisch wrote:
> Jimmy schrieb:
>> On May 23, 3:05 pm, Andrew Lee <fiacre.patr... at gmail.com> wrote:
>>> Jimmy wrote:
>>>> Hi to all
>>>> python now has grown to a versatile language that can
>>>> accomplish tasks for many different purposes. However,
>>>> AFAIK, little is known about its ability of kernel coding.
>>>> So I am wondering if python can do some kernel coding that
>>>> used to be the private garden of C/C++. For example, can python
>>>> intercept the input of keyboard on a system level? someone told me
>>>> it's a kernel thing, isn't it?
>>> http://wiki.python.org/moin/elmer
>>
>> well, straightly speaking, how can I know a key is pressed on a system-
>> level if
>> using python?
> 
> What has that todo with kernel programming? You can use e.g. pygame to 
> get keystrokes. Or under linux, read (if you are root) the keyboard 
> input file - I've done that to support several keyboards attached to a 
> machine.
> 
> And the original question: no, python can't be used as kernel 
> programming language. Amongst other reasons, performance & the GIL 
> prevent that.
> 
> Diez

http://www.kernel-panic.it/programming/py-pf/

Of course you can code kernel routines in Python -- you are just calling 
the underlying C interface.  The GIL means you have to manage 
threadsafety on your own -- it doesn't imply kernel programming can not 
be done.

I'm not talking about writing an OS in Python (though a simple DOS-like 
OS is very possible).  Nor would I suggest writing device drivers in 
Python -- but of course you can call kernel routines and manage some 
kernel resources effectively.  Python's IPC libraries expose kernel 
functionality.



More information about the Python-list mailing list