مین فریم سے VPS تک: computing کی تاریخ
آپ کا VPS 1960 کی time-sharing کا وارث ہے۔ CTSS، Multics، Unix، IBM VM/370، Xen اور KVM کے ذریعے جانیں کہ isolation، scheduling اور billing کیسے بدلے۔
آپ کا VPS کہاں سے آتا ہے
مین فریم سے cloud تک computing کی تاریخ دراصل ایک خیال کے سستا ہونے کی تاریخ ہے۔ اس خیال کا نام time-sharing ہے: بہت سے لوگوں کو ایک ہی مہنگی مشین بیک وقت استعمال کرنے دیں، اور ہر شخص کو اس کا نجی view فراہم کریں۔ یہ طریقہ تقریباً 1960 میں اس لیے ایجاد ہوا کہ computer کی لاگت اسے استعمال کرنے والے لوگوں سے زیادہ تھی۔ آج آپ جس VPS کو کرائے پر لیتے ہیں، اس کا ہر حصہ اسی مسئلے کے حل کے لیے بنایا گیا تھا: users کے درمیان isolation، CPU time تقسیم کرنے والا scheduler، hypervisor، اور hours کا حساب رکھنے والا bill۔ یہ مسئلہ کبھی ختم نہیں ہوا۔ hardware سستا ہو گیا، اس لیے جو slice پہلے research grant کا محتاج ہوتا تھا، اب اس کی قیمت چند dollars ماہانہ ہے۔
1959 تا 1961: time-sharing کیوں ایجاد کیا گیا
1950 کی دہائی میں کمپیوٹر batch mode میں چلتا تھا۔ آپ اپنا program cards پر punch کرتے، deck operator کے حوالے کرتے، اور printout لینے کے لیے بعد میں واپس آتے۔ ایک غلط typed character کی وجہ سے پورا دن ضائع ہو سکتا تھا۔ مشین مصروف رہتی تھی، اور یہی بنیادی مقصد تھا، کیونکہ IBM 7090 جیسی مشین کی قیمت millions of dollars تھی، جبکہ اس کے انتظار میں بیٹھے لوگوں کا وقت کسی invoice میں ظاہر نہیں ہوتا تھا۔
January 1959 میں John McCarthy نے MIT میں ایک memo کے ذریعے اس کے برعکس مؤقف پیش کیا۔ مشین کو شخص کا انتظار کرنا چاہیے۔ اسی سال Christopher Strachey نے UNESCO conference میں time-sharing کی ایک صورت بیان کی، اگرچہ ان کی مراد یہ تھی کہ ایک programmer debugging کر رہا ہو جبکہ دوسرے jobs چل رہے ہوں، نہ کہ بہت سے لوگ ایک ہی وقت میں typing کر رہے ہوں۔ 1961 میں MIT کی centennial تقریب سے خطاب کرتے ہوئے McCarthy نے بات مزید آگے بڑھائی: computing کو public utility کے طور پر فروخت کیا جا سکتا ہے، اور اس کی پیمائش electricity کی طرح usage کے حساب سے کی جا سکتی ہے۔
اس وقت اعتراض یہ تھا کہ time-sharing مشین کے وسائل ضائع کرتا ہے۔ Users کے درمیان switching میں cycles خرچ ہوتے ہیں، اور cycles ہی مہنگی چیز تھے۔ یہ اعتراض درست تھا، لیکن پھر اس کی اہمیت ختم ہو گئی، کیونکہ 60 سال تک ایک cycle کی قیمت کم ہوتی رہی، جبکہ انسانی توجہ کے ایک گھنٹے کی قیمت کم نہیں ہوئی۔
CTSS کو کیا کچھ ایجاد کرنا پڑا
Fernando Corbató کے گروپ نے MIT Computation Center میں Compatible Time-Sharing System (CTSS) بنایا تاکہ اس بحث کو ختم کیا جا سکے۔ اسے پہلی بار November 1961 میں IBM 709 پر دکھایا گیا۔ یہ چار users کو service فراہم کرتا تھا اور ہر user کا کام اس کی اپنی magnetic tape drive پر منتقل کرتا تھا۔ "Compatible" کا مطلب تھا کہ machine اب بھی بنیادی طور پر پرانا batch system چلا سکتی تھی، کیونکہ کوئی بھی ایسی computer نہیں خریدتا جو صرف نئی چیز انجام دے۔
چار users ایک کم تعداد ہے۔ یہاں تک پہنچنے کے لیے جن مسائل کو حل کرنا پڑا، ان کی فہرست مختصر نہیں ہے، اور یہی وہ فہرست ہے جس پر آپ کا kernel اس وقت بھی کام کرتا ہے۔ CTSS کو scheduler درکار تھا تاکہ ایک طویل job ہر دوسرے terminal کو freeze نہ کر دے۔ اسے memory protection درکار تھی تاکہ crash ہونے والا program پورے system کے بجائے صرف ایک user کو متاثر کرے۔ اسے ایسی storage درکار تھی جو logout کے بعد بھی برقرار رہے، اسی لیے CTSS میں ابتدائی file systems میں سے ایک موجود تھا جسے جدید user پہچان سکتا ہے۔ اسے passwords بھی درکار تھے تاکہ ایک user دوسرے user کی files نہ پڑھ سکے۔
ان حصوں کے نام بدل دیں تو آپ کے پاس ایک Linux box ہے۔ scheduler EEVDF ہے، جس نے Linux 6.6 میں CFS کی جگہ لی۔ Memory protection، MMU (memory management unit) کے ذریعے فراہم ہوتی ہے، جو ہر process کو اس کا اپنا virtual address space دیتی ہے۔ Logout کے بعد برقرار رہنے والی storage آپ کی home directory ہے۔ Password file کو اب بھی /etc/passwd کہا جاتا ہے۔
Multics اور computer utility
MIT کا اگلا system وہ utility بننے کے لیے تیار کیا گیا تھا جس کی McCarthy نے وضاحت کی تھی۔ Project MAC کا آغاز 1963 میں ہوا، اگست 1964 میں General Electric GE-645 کے لیے معاہدہ کیا گیا، اور Multics کے پہلے مقالے 1965 میں شائع ہوئے۔ نام ہی اس تصور کی وضاحت کرتا ہے: Multiplexed Information and Computing Service۔ یہاں Service سے مراد ایسی سہولت ہے جس کے لیے آپ فی گھنٹہ ادائیگی کرتے ہیں۔
Multics کی تکمیل منصوبے سے کہیں زیادہ وقت لے گئی۔ Prototype GE-645 machines جنوری 1967 میں MIT اور Bell Labs پہنچیں۔ Bell Labs اپریل 1969 میں project سے الگ ہو گیا۔ Multics نے 1 October 1969 کو MIT Information Processing Center کے customers کے لیے کام شروع کیا، اور اس کے بعد اکتیس سال تک کہیں نہ کہیں production میں چلتا رہا۔ آخری فعال Multics system، جو Halifax، Nova Scotia میں Canadian Department of National Defence کے پاس تھا، 30 October 2000 کو بند کر دیا گیا۔
Multics کو اکثر failure سمجھا جاتا ہے کیونکہ یہ دیر سے آیا اور سست رفتار تھا۔ لیکن اس کی terminology کچھ اور بتاتی ہے۔ اس نے directories کے اندر directories پر مشتمل hierarchical file system، ہر file کے لیے access control list، segmented virtual memory فراہم کی جس سے program کسی file کو memory کی طرح address کر سکتا تھا، اور protection rings متعارف کرائے جو code کو اس کے trust level کے مطابق درجہ دیتے تھے۔ یہ rings آج بھی آپ کے سامنے موجود silicon میں شامل ہیں۔ Kernel کے لیے ring 0 اور user code کے لیے ring 3، Multics کی terminology ہے۔ بعد میں hardware virtualisation نے ring 0 کے نیچے hypervisor کے لیے ایک mode شامل کیا، جسے لوگ غیر رسمی طور پر ring -1 کہتے ہیں۔
Unix: ایسی مشین پر وقت کی تقسیم جسے آپ خرید سکتے تھے
Multics چھوڑنے کے بعد Ken Thompson، Bell Labs میں ایسے نظام کے بغیر رہ گئے جسے وہ استعمال کرنا چاہتے تھے۔ 1969 میں انہوں نے ایک ضائع شدہ PDP-7 پر اس سے کہیں چھوٹا نظام بنانا شروع کیا۔ پہلا Unix Programmer's Manual نومبر 1971 کا ہے، اور اس وقت تک کام PDP-11 پر منتقل ہو چکا تھا۔ 1973 میں Thompson اور Dennis Ritchie نے kernel کو C میں دوبارہ لکھا، تاکہ نظام کو نئے hardware پر منتقل کرنے کے لیے اسے ہاتھ سے دوبارہ نہ لکھنا پڑے۔
اسی لیے آپ Unix کی کسی ذیلی نسل میں کمانڈ درج کرتے ہیں، Multics کی ذیلی نسل میں نہیں۔ Multics کے لیے اسی مقصد کا hardware درکار تھا۔ Unix ہر اس hardware پر چل جاتا تھا جو سستا اور دستیاب ہو، اور آخرکار یہی فیصلہ کن خصوصیت ثابت ہوئی۔
Ritchie اور Thompson کا مقالہ "The UNIX Time-Sharing System" جولائی 1974 میں Communications of the ACM میں شائع ہوا۔ اس مقالے میں آپ کے VPS کی خصوصیات بیان کی گئی ہیں: processes، ایک hierarchical file system، plain byte streams کی صورت میں files، fork، permission bits کے ساتھ users اور groups، اور ایسا shell جو kernel کا حصہ ہونے کے بجائے ایک عام program ہے۔ باون سال بعد بھی اس interface کو توسیع دی گئی ہے، اسے کبھی تبدیل نہیں کیا گیا۔
کیا mainframes نے واقعی 1972 میں virtual machines چلائی تھیں؟
ہاں، اور کہانی کا یہی حصہ اکثر لوگوں کی نظر سے رہ جاتا ہے۔ جب MIT نے Multics تیار کیا، تو IBM کے Cambridge Scientific Center نے اسی مقصد پر دوسری سمت سے کام کیا۔ ایک operating system سے متعدد صارفین کو سروس دینے کے بجائے، Robert Creasy اور Les Comeau نے ایسا control program بنایا جو ہر صارف کو ایک مکمل simulated computer فراہم کرتا تھا۔ CP-40 جنوری 1967 میں production میں شامل ہوا۔ ہر صارف کو ایک virtual System/360 ملتا تھا، جس کے اندر وہ CMS نامی ایک چھوٹا single-user operating system چلاتا تھا۔
CP-40، 1968 میں System/360-67 پر CP-67 بن گیا، اور IBM نے 2 August 1972 کو VM/370 کا اعلان کیا۔ یہ ایک commercial hypervisor تھا، جو paying customers کو فروخت کیا جاتا تھا، اور یہ سب آج سے fifty-four years ago ہوا۔ ایک control program حقیقی hardware کو متعدد صارفین کے درمیان تقسیم کرتا تھا، جبکہ guest operating systems virtual machines کے اندر بغیر ترمیم کے چلتے تھے اور سمجھتے تھے کہ machine انہی کی ملکیت ہے۔
اس نظریے کی باقاعدہ وضاحت دو سال بعد سامنے آئی۔ یہ Communications of the ACM کے July 1974 کے اسی شمارے میں شائع ہوئی جس میں Unix پر مقالہ بھی شامل تھا۔ Gerald Popek اور Robert Goldberg کے مقالے "Formal Requirements for Virtualizable Third Generation Architectures" نے بتایا کہ virtualisation کے قابل بنانے کے لیے processor کو کیا کرنا چاہیے۔ بنیادی اصول مختصر ہے۔ machine کی حالت پڑھنے یا تبدیل کرنے والی ہر instruction کو اس وقت trap کرنا چاہیے جب guest اسے kernel mode سے باہر چلاتا ہے، تاکہ hypervisor control حاصل کرے اور اس guest کی اپنی نجی state version کے ساتھ جواب دے۔ اسے trap and emulate کہا جاتا ہے۔ IBM کا hardware اس اصول پر پورا اترتا تھا۔
منی کمپیوٹر نے ماڈل کو کیوں بدل دیا
DEC نے PDP-8 کو 22 March 1965 کو 1965 کے ڈالرز میں تقریباً $18,000 کی قیمت پر متعارف کرایا۔ یہ $20,000 سے کم قیمت والا پہلا منی کمپیوٹر تھا، اور بعد میں اس کی 50,000 سے زیادہ یونٹس فروخت ہوئیں۔ پھر microprocessor نے قیمت مزید کم کر دی۔ جب کسی department کے لیے اپنی machine خریدنا ممکن ہوا، اور بعد میں کسی فرد کے لیے بھی، تو ایک مرکزی computer کو share کرنا ایسا حل معلوم ہونے لگا جو پہلے ہی مکمل ہو چکا تھا اور جس پر مزید کام کی ضرورت نہیں تھی۔ 1980s اور 1990s کے دوران computing desk پر اور چھوٹے x86 servers کی racks میں منتقل ہو گئی۔
وسائل کا ضیاع ایک مختلف شکل میں واپس آیا۔ ہر server پر ایک application رکھنا سمجھنے اور manage کرنے میں آسان ہے، لیکن اس سے hardware کا زیادہ تر حصہ idle رہتا ہے، جبکہ power اور rack space کی پوری قیمت ادا کی جاتی ہے۔ یہ CTSS کا مسئلہ نئے scale پر دوبارہ سامنے آ گیا؛ اب مہنگا resource processor کے بجائے room اور electricity تھے۔ حل وہی پرانا تھا۔ machine کو share کریں۔
x86 کو virtualise کرنا اتنا مشکل کیوں تھا؟
کیونکہ x86 نے Popek اور Goldberg کے اصول کی خلاف ورزی کی۔ اگست 2000 میں 9th USENIX Security Symposium کے دوران John Scott Robin اور Cynthia Irvine نے Pentium instruction set کا جائزہ لیا اور ایسے 17 instructions دریافت کیے جو user-mode code کے ذریعے چلائے جانے پر fault پیدا کیے بغیر privileged state کو پڑھتے یا تبدیل کرتے تھے۔ popf اس کی معیاری مثال ہے۔ اسے user mode میں چلانے پر processor خاموشی سے ان bits کو نظرانداز کر دیتا ہے جنہیں program set کرنے کا مجاز نہیں ہوتا، trap پیدا نہیں کرتا۔ اس لیے trap and emulate پر مبنی hypervisor کو یہ معلوم ہی نہیں ہوتا کہ guest نے ایسا کرنے کی کوشش کی تھی۔
hardware درست ہونے سے پہلے دو حل سامنے آئے۔ 1998 میں Stanford کی Disco research سے قائم ہونے والے VMware نے guest kernel code کا جائزہ لے کر مشکل instructions کو ان کے اجرا سے پہلے rewrite کیا۔ اس تکنیک کو binary translation کہا جاتا ہے۔ University of Cambridge Computer Laboratory سے تعلق رکھنے والے Xen نے اس کے بجائے guest کو تبدیل کیا۔ اکتوبر 2003 میں SOSP میں پیش کیے گئے مقالے "Xen and the Art of Virtualization" میں paravirtualisation بیان کی گئی: modified guest kernel جان بوجھ کر hypervisor کو call کرتا ہے، بجائے اس کے کہ وہ ایسی instructions چلائے جنہیں hypervisor intercept نہیں کر سکتا۔
پھر hardware درست کر دیا گیا، اسی طرح جیسے IBM نے 1960s میں کیا تھا۔ Intel نے 14 November 2005 کو دو Pentium 4 models میں VT-x جاری کیا، اور AMD نے May 2006 میں AMD-V جاری کیا۔ دونوں نے guest kernel کے نیچے processor mode شامل کیا۔ اس سے guest اپنا kernel full speed پر چلا سکتا تھا، جبکہ hypervisor ان events کا control برقرار رکھتا تھا جن کے بارے میں اسے اطلاع درکار ہوتی تھی۔ اس سے hypervisor اتنا چھوٹا ہو گیا کہ وہ عام operating system کے اندر رہ سکتا تھا۔ Avi Kivity کا Qumranet میں تیار کردہ KVM نے بالکل یہی کیا: اس نے خود Linux kernel کو hypervisor میں تبدیل کر دیا۔ KVM کو Linux 2.6.20 میں شامل کیا گیا، جو February 2007 میں release ہوا، اور آج VPS hosts کے ایک بڑے حصے میں یہی چلتا ہے۔
VPS کو یہ نام کیسے ملا
2000 کی ابتدائی دہائی میں دو سلسلے آپس میں ملے۔ ایک x86 پر مکمل virtual machine تھا، جس میں guest اپنا kernel boot کرتا تھا۔ دوسرا operating-system-level virtualisation تھا: ایک مشترکہ Linux kernel کو الگ environments میں تقسیم کیا جاتا تھا، اور ہر environment کا اپنا root user اور اپنی process table ہوتی تھی۔ Linux-VServer اور SWsoft کا Virtuozzo دونوں 2001 میں سامنے آئے، اور SWsoft نے 2005 میں Virtuozzo کے ایک حصے کو open-source OpenVZ کے طور پر جاری کیا۔ "virtual private server" کی اصطلاح اسی سلسلے سے نکلی، اور virtual private network کی طرز پر بنائی گئی۔
Amazon نے computing کی rental کو API call میں تبدیل کر دیا۔ S3، 14 March 2006 کو launch ہوا، اور EC2 نے 25 August 2006 کو محدود public beta کے طور پر آغاز کیا۔ اس میں ایک ہی instance type تھا، جو Xen پر چلتا تھا۔ Compute خریدنا اب service bureau کے ساتھ contract کرنا نہیں رہا، بلکہ ایسی request بن گیا جس کا جواب ایک منٹ میں مل جاتا ہے۔
دونوں سلسلے آج بھی موجود ہیں، اور یہ تقسیم اب بھی طے کرتی ہے کہ آپ اپنے کرائے کے server کے ساتھ کیا کر سکتے ہیں۔ KVM VPS اپنا kernel boot کرتا ہے، اس لیے آپ kernel modules load کر سکتے ہیں اور حتیٰ کہ اپنے VPS کے اندر hypervisor بھی چلا سکتے ہیں۔ Container-based plan host kernel کا اشتراک کرتا ہے اور یہ کام نہیں کر سکتا۔ ساٹھ سالہ تاریخ pricing page کی اس ایک سطر کے پس پشت موجود ہے۔ اسی لیے VPS منتخب کرنے سے پہلے یہ سمجھنا ضروری ہے کہ VPS، VM اور VPC میں کیا فرق ہے۔
مین فریم سے آپ کے VPS تک کیا بدلا، اور کیا نہیں بدلا
چار چیزیں بدلیں۔ مشین اب آپ کی عمارت میں نہیں ہے۔ ٹرمینل فرنیچر کا ایک ٹکڑا نہیں بلکہ ایک پروگرام ہے۔ آپ جو unit کرائے پر لیتے ہیں وہ اپنے kernel والا مکمل کمپیوٹر ہے، کسی اور کے operating system پر موجود account نہیں۔ اور قیمت اتنی کم ہو گئی ہے کہ خریداری procurement process کے بجائے card payment سے ہو جاتی ہے۔
طریقۂ کار میں ذرا بھی تبدیلی نہیں آئی۔
- آپ کا
sshsession time-sharing terminal ہے۔ آپ کو login اور shell ملتے ہیں، اور scheduler طے کرتا ہے کہ آپ کا process اگلی بار کب چلے گا۔ - Isolation اب بھی hardware کے ذریعے نافذ ہوتی ہے۔ MMU اور processor کے privilege levels یہ کام کرتے ہیں، بالکل اسی طرح جیسے 1967 میں CP-40 کے لیے کرتے تھے۔
- آپ اب بھی machine کے ایک حصے کے لیے elapsed time کے حساب سے ادائیگی کرتے ہیں، جیسے service bureaus connect hours کے حساب سے بل دیتے تھے۔
- آپ اب بھی دوسرے tenants کے اثرات محسوس کرتے ہیں۔ جب host پر oversubscription ہو تو آپ کا guest physical CPU کے دستیاب ہونے کا انتظار کرتا ہے، اور Linux اس انتظار کو شور پیدا کرنے والے پڑوسی سے CPU steal time کے طور پر رپورٹ کرتا ہے۔
یہ آخری نکتہ پوری تاریخ کا دیانت دار خلاصہ ہے۔ Machine share کرنا ایک trade-off ہے۔ اسے 1961 میں اس لیے قبول کیا گیا کہ computer کی قیمت لوگوں سے زیادہ تھی، اور اسے 2026 میں اس لیے قبول کیا جاتا ہے کہ اپنی capacity کے دس فیصد پر چلنے والا server ضائع ہونے والی رقم ہے۔ اگر آپ اس trade-off میں operator کی طرف رہنا پسند کریں تو اپنے hardware پر Proxmox چلانا آپ کو hypervisor اور operator کے مسائل دونوں فراہم کرتا ہے۔
اس تناسب کو ذہن میں رکھیں۔ CTSS نے 1961 کے لاکھوں dollars کی لاگت والی اور ایک پورا کمرہ گھیرنے والی machine پر چار users کو service دی۔ 2026 میں چند dollars ماہانہ کے عوض آپ کا VPS اس computer سے کہیں بہتر ہے جس کے resources Corbató کی team کو تقسیم کرنے پڑتے تھے، اور یہ computer صرف آپ کے استعمال میں ہے۔ آپ اسے کرائے پر لے سکتے ہیں کیونکہ پینسٹھ سال پرانا ایک خیال آخرکار سستے hardware سے مل گیا۔ اگر آپ طے کر رہے ہیں کہ اس پر کیا چلانا ہے تو پہلے دیکھیں کہ VPS حقیقت میں آپ کو کیا فراہم کرتا ہے اور پھر لوگ VPS پر کیا چلاتے ہیں۔
FAQ
پہلا time-sharing computer system کون سا تھا؟
CTSS، یعنی Compatible Time-Sharing System، MIT Computation Center میں Fernando Corbató کے گروپ نے بنایا تھا۔ اسے پہلی بار November 1961 میں IBM 709 پر دکھایا گیا اور اس نے چار users کو service دی؛ ہر user کو الگ tape drive پر swap کیا جاتا تھا۔ پوری community کے لیے پہلا time-sharing service Dartmouth Time-Sharing System تھا۔ 1 May 1964 کو John Kemeny اور ایک student programmer نے دو terminals پر بیک وقت BASIC programs چلائے اور دونوں کو درست answers موصول ہوئے۔
کیا virtual machines واقعی 1960s میں ایجاد ہوئی تھیں؟
ہاں۔ IBM's Cambridge Scientific Center نے January 1967 میں CP-40 کو production میں شامل کیا۔ اس میں ہر user کو مکمل virtual System/360 دیا جاتا تھا، جس کے اندر CMS operating system چلتا تھا۔ CP-67 اس کے بعد 1968 میں System/360-67 پر آیا، اور IBM نے 2 August 1972 کو VM/370 کا اعلان کیا۔ یہ حقیقی hypervisors تھے جو unmodified guest operating systems چلاتے تھے اور commercial طور پر فروخت ہوتے تھے۔ یہ سب x86 hardware کے اسی کام کے قابل ہونے سے کئی دہائیاں پہلے ہوا۔
mainframes کے مقابلے میں x86 کو virtualise کرنا مشکل کیوں تھا؟
Popek اور Goldberg کا 1974 کا اصول کہتا ہے کہ machine state کو پڑھنے یا تبدیل کرنے والی ہر instruction کو اس وقت trap ہونا چاہیے جب guest اسے kernel mode سے باہر چلاتا ہے۔ x86 اس اصول پر پورا نہیں اترتا تھا۔ Robin اور Irvine نے Pentium کی ایسی سترہ instructions شمار کیں جو user mode میں trap ہونے کے بجائے خاموشی سے fail ہو جاتی ہیں۔ اس لیے classic trap-and-emulate hypervisor انہیں دیکھ ہی نہیں پاتا، اور popf اس کی عام مثال ہے۔ VMware نے binary translation اور Xen نے paravirtualisation کے ذریعے اس مسئلے کو حل کیا، یہاں تک کہ Intel VT-x نے November 2005 اور AMD-V نے May 2006 میں hypervisor کے لیے hardware mode فراہم کیا۔
کیا VPS کرائے پر لینا time-sharing account رکھنے کے برابر ہے؟
Billing model اور isolation کا مسئلہ ایک جیسا ہے، لیکن unit مختلف ہے۔ time-sharing user کو ایسے operating system پر account ملتا تھا جو دوسرے تمام users کے ساتھ shared ہوتا تھا، اس لیے administrator computer centre میں موجود کوئی شخص ہوتا تھا۔ KVM VPS آپ کو اپنے kernel اور اپنے root account والی virtual machine دیتا ہے، اس لیے administrator آپ خود ہوتے ہیں۔ container-based VPS ان دونوں کے درمیان ہوتا ہے، کیونکہ یہ host kernel کو share کرتا ہے، لیکن پھر بھی آپ کو اپنے environment کے اندر root access دیتا ہے۔