लिखने पर mmap / copy का उपयोग करके की संपूर्णताfork()
लागू की जाती है।
यह न केवल ढेर को प्रभावित करता है, बल्कि पुस्तकालयों, स्टैक, बीएसएस क्षेत्रों को भी साझा करता है।
जो, संयोग से, इसका मतलब है कि कांटा एक अत्यंत हल्का ऑपरेशन है, जब तक कि परिणामस्वरूप 2 प्रक्रियाएं (माता-पिता और बच्चे) वास्तव में मेमोरी रेंज में लिखना शुरू नहीं करते हैं। यह विशेषता कांटा-बमों की सुस्ती के लिए एक प्रमुख योगदानकर्ता है - आप पृष्ठ प्रतिकृति और विभेदन के साथ कर्नेल के अतिभारित होने से पहले कई प्रक्रियाओं को समाप्त कर देते हैं।
आपको आधुनिक OS में एक ऑपरेशन का एक उदाहरण खोजने के लिए मुश्किल से दबाया जाएगा जहां कर्नेल एक हार्ड कॉपी करता है (डिवाइस ड्राइवर अपवाद रहा है) - यह वीएम कार्यक्षमता को नियोजित करने के लिए अभी तक बहुत आसान और अधिक कुशल है।
यहां तक execve()
कि अनिवार्य रूप से "कृपया एमएमपी बाइनरी / ld.so / whatnot, उसके बाद निष्पादित" - और वीएम रैम और निष्पादन के लिए प्रक्रिया के वास्तविक लोडिंग को संभालता है। स्थानीय अनइंस्टाल्यूटेड वैरिएबल 'शून्य-पृष्ठ' से मिमीपेड किए जा रहे हैं - विशेष रीड-ओनली कॉपी-ऑन-राइट पेज जिसमें जीरो हैं, स्थानीय इनिशियलाइज्ड वैरिएबल अंत में मिमीपेड (कॉपी-ऑन-राइट, फिर से) बाइनरी फाइल से ही होते हैं। आदि।