can python do some kernel stuff?

Andrew Lee fiacre.patrick at gmail.com
Fri May 23 07:20:21 EDT 2008


Diez B. Roggisch wrote:
> Andrew Lee schrieb:
>> 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 understood the OP's question as "can one program kernelspace routines 
> in python". Which I don't think is possible. And I don't see how py-pf 
> does that either.
> 
> Diez


OP: "I am wondering if python can do some kernel coding that
used to be the private garden of C/C++."

The answer is yes.  IPC and py-pf are examples.  If you don't think of 
packet filtering as kernel coding, I can understand.  But clearly the 
Python interfaces to fork(), waitpid(), signal(), alarm() and so forth 
are forays into the once private garden of C.



More information about the Python-list mailing list