sosend() and mbuf

Julian Elischer julian at elischer.org
Tue Aug 4 23:04:10 UTC 2009


Maslan wrote:
>> When you did kern_open() without creating kernel thread, it worked,
>> because kern_open() used file descriptor table from your current
>> (userland) process. In FreeBSD 7.x kthread_create() creates a process
>> without file descriptor table, so you can't use kern_open() and actually
>> you shouldn't do this either.
> I understood now. Thanks
> 
>> Take a look at sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c,
>> where you can find functions to do what you want.
>>
>> I guess you already considered doing all this in userland?:)
> 
> I'm not deploying this http server for any production, i just want to
> study its performance compared to a userland http server.
> And to experience FreeBSD kernel hacking.
> 
> I'm still trying to figure out, how to play with soreceive() now.
> But Thanks a lot, It's now clearer for me.
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"




have a look at the netgraph modules.
There is a module called ksocket that allows other netgraph modules to 
use sockets. more than one person has implemented an in-kernel http 
server in a netgraph module.



More information about the freebsd-hackers mailing list