Hi, I spoke too soon on the previous mail. I confirm there was only clone.S & vfork.S for i386. I wonder why is there no fork.S in ./sysdeps/unix/sysv/linux/i386 I also want to know which fork is the real in the glibc? Regards, Shinpei Kato -- original message -- From: Koichi Kawabata<kkoichi@lepoche.com> To: <kernelnewbies@nl.linux.org> Sent: Mon, 15 Dec 2003 10:54:29 +0900 (JST) Subject: Re: fork() source code >Hi: > >I'm not the original poster, but I come to have the similar question >as he may have. > >Ed L Cashin <ecashin@uga.edu> wrote on Sun, 14 Dec 2003 19:41:13 -0500 >> > Shinpei Kato <shinny@j02.itscom.net> writes: >> > So I want to know how the fork() set the parameter. >> > And to confirm it, I want the source code of fork(). >> >> In glibc, see ./sysdeps/unix/sysv/linux/i386/clone.S, where the >> registers are set up and the "int 0x80" instruction is used to trap >> into the O.S. system call handler. >> >> The clone system call is how forking is done nowadays. > >You mean to say "glibc implements fork() via clone()"? I saw the same >description about fork() in the book "Linux Kernel Development" >written by Mr. Robert Love. The page 23 of the book says : > > The fork(), vfork(), and __clone() library calls call clone() > with the requisite flags. The clone() system call, in turn, > calls do_fork(). > >I checked the glibc-2.3.2 source, and found the following files: > ./sysdeps/unix/sysv/linux/ia64/fork.S > ./sysdeps/unix/sysv/linux/ia64/vfork.S >implemented fork() and vfork() by using clone(). So I think the >description above is perfectly true as the glibc for the ia64 >architecture. > >But as for the i386 or ia32 architecture, I couldn't found any source >which implements fork() or vfork() via clone(). > >I (and maybe the original poster) want to know how clone() is called >by fork or vfork in the glibc for i386, and which fork or vfork source >is used. If you knew the trick of it, please let us know. > >=---=---=---=---=---=---=---=---=---=---=---=---=---= >Kawabata Koichi kkoichi@lepoche.com >L'epoche.com: Put all practical interests in brackets >=---=---=---=---=---=---=---=---=---=---=---=---=---= >-- >Kernelnewbies: Help each other learn about the Linux kernel. >Archive: http://mail.nl.linux.org/kernelnewbies/ >FAQ: http://kernelnewbies.org/faq/ > > -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/