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