State of FPC target Native NT kernel mode (was: Re: [fpc-pascal] Re: Building kernel modules using fpc (for fun))

Sven Barth pascaldragon at googlemail.com
Sun Jan 16 11:19:48 CET 2011


On 16.01.2011 04:39, Paul Breneman wrote:
> Sven Barth wrote:
>> On 15.01.2011 21:10, Lukasz Sokol wrote:
>>> Henry Vermaak<henry.vermaak at ...> writes:
>>>
>>>>
>>>> On 15 January 2011 19:48, Sven Barth<pascaldragon at ...> wrote:
>>>>> I might not be able to help you regarding this topic, but I believe
>>>>> that
>>>>> you'll get a wall of "use C, god damnit" if you ask there :P
>>>
>>> @Sven : it's for fun. Whether I'd be having fun is probably debatable
>>> but it may
>>> be fun for many ;) And then, you know the steps : first they laugh at
>>> you...
>>
>> Yes, I don't want to spoil your fun. I even do such things myself
>> sometimes. See the port to Native NT (which also allows you basically
>> to write Windows NT drivers). But the developers on a Linux kernel
>> list might not be that open minded ^^
>
> I have hopes that ReactOS might be usable for some embedded stuff, and
> it is good to know if I need any custom drivers that something exists in
> FPC. :)

It's not fully implemented currently. The last big update from me was to 
get the RTL nearly completly running for user mode applications. I 
haven't tested it inside kernel mode yet. But even if it works I 
wouldn't recommend to use the functions provided by the RTL inside a 
device driver, because you have to less control over what happens inside 
those functions (especially regarding paged vs. non-paged memory).

The state of the kernel mode part of Native NT is currently this:
* only legacy type device drivers tested (none of the more current 
driver frameworks)
* no usage of the kernel's exception handling (also applies to user 
mode); currently you'd need to do this manually in assembler
* no thread related functions
* only x86 currently

It should be not a big problem to enable x86_64, but currently I don't 
have a machine to test this (when I upgrade my "server" I hope to be 
able to run x86_64 Windows in a VM).

I also plan to add ARM support once ReactOS' ARM port can boot to user 
mode (I'd need to test this...)

You might want to keep an eye on this wiki page: 
http://wiki.freepascal.org/Target_NativeNT

Regards,
Sven



More information about the fpc-pascal mailing list