fork בגדול
לוקחת את כל הזכרון של ה-process הנוכחי, כולל מיקום ההרצה בקוד, ויוצרת תהליך חדש עם אותו זכרון. שני ה-process-ים השונים ימשיכו מנקודת היציאה מה-fork כאשר מה שמבדיל ביניהם זה הערך המוחזר מ-fork. ב-process הראשון שקרא ל-fork, הערך המוחזר יהיה ה-process ID של ה-process השני; וב-process השני יתקבל ערך מוחזר מיוחד (נדמה לי ש-0) שיציין שזה ה-process השני; ומאותה נקודה ימשיך כל תהליך בעבודתו. במערכות מתקדמות (כולל לינוקס) ממומש גם virtual fork שלא מעתיק את כל הזכרון אלא כשבאמת צריך (כלומר, כשהזכרון של ה-process משתנה). זה יכול לחסוך הרבה זמן בזמן ה-fork, שזו פעולה כבדה ותובענית מהמערכת.