The 2D part does need a kernel mode driver though, for features such as
suspend-and-resume, and for getting rid of the security issues associated
with /dev/xsvc & allowing user space processes to have ring-0 access so
that the Xserver can access the hardware from user space.

Solaris & Linux are both moving this direction on x86 (Solaris has always
had kernel mode drivers for graphics on SPARC) - see:
        http://www.keithp.com/blog/kernel-mode-drivers.html
        http://blogs.sun.com/alanc/entry/moving_x86_video_drivers_into

        -Alan Coopersmith-           [EMAIL PROTECTED]
         Sun Microsystems, Inc. - X Window System Engineering



Freeman Liu wrote:

Hi, Douglas,

Glad to hear from you.

As for moving X drivers to kernel, I have investigated on it. We must be aware that nowadays the display card include two functions, 2d and 3d, the first part does not need dma, thus can be implemented in user space conveniently, as the 3d part, it relies on dma heavily and must have a kernel driver. The advantages of user space drivers is portability, while it make the implementation some complex. IMHO, the situation of 2d user space drivers plus 3d kernel drivers will last for a long period beside all these small bearable flaws.

Respecting to interrupt handling, it works now on the speed of about 7 times slower. It works well for the audio device. I will try other hardware later.

For register access, thanks to pcitool, it is not a problem anymore.

The DMA part, which I think is the most dangerous part, is far from perfect, though it works.

You suggestion on microkernel approach is a very good one. I think we should go this direction, in an evolutional way. We should leave the primitive hardware operation mechanism inside kernel, while how to leverage them to achieve specific function outside in user space. I will look at the minix approach you referred. Thanks a lot.

Looking forward to talk with you again.

Thank you
 --Freeman

Douglas Atique wrote:
Hi Freeman,
I have seen blogs talking about the opposite direction (I recall having read some blog entry about moving X drivers into the kernel). However, with every new build of Solaris Express, I get some good or bad surprise. The bad ones usually have to do with new kernel modules that don't like my hardware and make my machine hang on boot or thereafter. So to me it looks just great if the kernel becomes really compact and changes seldom or never and new drivers are added as SMF services running in userland. I don't know much about the feasibility of this, but I have heard about others that tried. If you are really going to carry out this project, I recommend you take a look at this thesis: http://www.cs.vu.nl/~jnherder/masters-thesis.php It talks about some primitives that could be provided by the kernel so that it handles high-level interrupts on behalf of user mode drivers. Direct hardware access is, I think, the greatest difficulty of moving a driver out of kernel space. Maybe you can have some inspiration on Minix's approach.
Good luck.

-- Douglas
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to