Re: kernel socket program

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi....

On Tue, Jul 14, 2009 at 8:39 PM, Robert
Parkhurst<robert.parkhurst@xxxxxxxxx> wrote:
> Why should it be avoided at all costs?
>
>
> On Tue, Jul 14, 2009 at 3:12 AM, Mulyadi Santosa <mulyadi.santosa@xxxxxxxxx>
> wrote:
>>
>> On Tue, Jul 14, 2009 at 11:25 AM, krushnaal pai<krisonearth@xxxxxxxxx>
>> wrote:
>> > can someone please send me a socket program written in kernel
>> >
>> > i want the server  and client modules
>>
>> Check http://kernelnewbies.org/Simple_UDP_Server
>>
>> Mind you, socket programming in kernel space isn't really recommended,
>> in fact you should avoid it at all cost.

First of all, please don't top post :)

OK, here's my understanding:

1. Kernel developers tend to keep "mechanism" separate to "policy". In
this case, kernel land is where you define "mechanism", while in user
space you use this "mechanisms" into programs ("policy").

When you write a program that uses sockets, it's better to put it into
user space.

2. easier debugging. Errors in your code won't repeatedly yell "ooops"
:) Virtual machines make it less scary, but you still need more
complicated debugging, while in user space you have freedom (single
step etc).

3. near zero code adaptation when new kernel version is released.
IIRC, as stated by Greg KH, kernel ABI is likely unstable from version
to version. In kernel space, you need to directly use kernel ABIs,
thus if these ABIs change (let's say the prototype), your codes must
change too. While in user space, you simply rely on provided functions
of glibc

of course, there is one pros almost everyone agree about implementing
something in kernel space: speed. But again, with proper coding, user
space code could almost match kernel space code. For example, when
sendfile() syscall was introduced, daemon such as vsftpd could do very
fast data transfer.

Please CMIIW people...

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer
blog: the-hydra.blogspot.com

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux