Every time a fork() is callled in any user-space code, it internally invokes the clone() sys call, But if we linux kernel source code there is a system call by name fork(). So, what i really want to know is that, is there any case in which this syscall is getting called, or this code is deprecated. Regards, Rohan
On Wed, Sep 7, 2011 at 5:38 PM, rohan puri <rohan.puri15@gmail.com> wrote:
Every time a fork() is callled in any user-space code, it internally invokes the clone() sys call, But if we linux kernel source code there is a system call by name fork().
So, what i really want to know is that, is there any case in which this syscall is getting called, or this code is deprecated.
Have a look at this link, http://books.google.co.in/books?id=1nCQJE0oRE0C&pg=PA31&lpg=PA31&dq=fork+rob...
Regards, Rohan
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Darshan®
Thanks Darshan. I went through that section of the book. I do agree that fork(), vfork() in turn calls the clone() sys call which internally calls do_fork() method. The doubt which I have is there is a sys_fork() method which gets called when fork() system call is invoked. But from userspace is there any way in which we can make execute this code path, because if we make use of fork() it will call clone() sys call and follow that code path. What I am trying to figure out is that is that code (sys_fork() ) is redundant now or is something still using it. Regards, Rohan. On Wed, Sep 7, 2011 at 5:44 PM, Darshan Ghumare <darshan.ghumare@gmail.com>wrote:
On Wed, Sep 7, 2011 at 5:38 PM, rohan puri <rohan.puri15@gmail.com> wrote:
Every time a fork() is callled in any user-space code, it internally invokes the clone() sys call, But if we linux kernel source code there is a system call by name fork().
So, what i really want to know is that, is there any case in which this syscall is getting called, or this code is deprecated.
Have a look at this link,
http://books.google.co.in/books?id=1nCQJE0oRE0C&pg=PA31&lpg=PA31&dq=fork+rob...
Regards, Rohan
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Darshan®
Hi Rohan, On Wed, Sep 7, 2011 at 8:45 PM, rohan puri <rohan.puri15@gmail.com> wrote:
Thanks Darshan. I went through that section of the book. I do agree that fork(), vfork() in turn calls the clone() sys call which internally calls do_fork() method.
The doubt which I have is there is a sys_fork() method which gets called when fork() system call is invoked. But from userspace is there any way in which we can make execute this code path, because if we make use of fork() it will call clone() sys call and follow that code path. What I am trying to figure out is that is that code (sys_fork() ) is redundant now or is something still using it.
My guess is that the fork syscall is still there because it is part of the kernel API. Yes the clone call made fork redundant. But since fork was already part of the API, they left it in. This way programs which might use alternative runtime libraries, or which perhaps do system calls directly, will continue to work. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com
Thanks Dave, it seems a very reasonable answer. Regards, Rohan. On Thu, Sep 8, 2011 at 9:50 AM, Dave Hylands <dhylands@gmail.com> wrote:
Hi Rohan,
On Wed, Sep 7, 2011 at 8:45 PM, rohan puri <rohan.puri15@gmail.com> wrote:
Thanks Darshan. I went through that section of the book. I do agree that fork(), vfork() in turn calls the clone() sys call which internally calls do_fork() method.
The doubt which I have is there is a sys_fork() method which gets called when fork() system call is invoked. But from userspace is there any way in which we can make execute this code path, because if we make use of fork() it will call clone() sys call and follow that code path. What I am trying to figure out is that is that code (sys_fork() ) is redundant now or is something still using it.
My guess is that the fork syscall is still there because it is part of the kernel API. Yes the clone call made fork redundant. But since fork was already part of the API, they left it in. This way programs which might use alternative runtime libraries, or which perhaps do system calls directly, will continue to work.
-- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com
participants (3)
-
Darshan Ghumare -
Dave Hylands -
rohan puri