VPS மற்றும் கணினி வரலாற்றின் பரிணாமம்: ஒரு பார்வை
இன்று நீங்கள் பயன்படுத்தும் VPS தொழில்நுட்பம் 1960-களின் time-sharing முறையின் தொடர்ச்சியாகும். CTSS முதல் KVM வரை கணினி வளங்கள் எவ்வாறு பகிரப்படுகின்றன என்பதை விரிவாகக் காண்போம்.
உங்கள் VPS எங்கிருந்து வருகிறது
மெயின்பிரேமிலிருந்து கிளவுட் வரையிலான கணினி வரலாறானது, ஒரு குறிப்பிட்ட தொழில்நுட்பம் மலிவாவதையே காட்டுகிறது. அந்தத் தொழில்நுட்பம் 'டைம்-ஷேரிங்' (time-sharing) ஆகும்: ஒரு விலையுயர்ந்த இயந்திரத்தை ஒரே நேரத்தில் பலரை பயன்படுத்த அனுமதித்து, ஒவ்வொருவருக்கும் தனிப்பட்ட அணுகலை வழங்குவதே இதன் அடிப்படை. 1960-களில், கணினியின் விலை அதை இயக்குபவர்களின் ஊதியத்தை விட அதிகமாக இருந்ததால் இது உருவாக்கப்பட்டது. இன்று நீங்கள் வாடகைக்கு எடுக்கும் VPS-ன் ஒவ்வொரு பகுதியும் அந்தப் சிக்கலைத் தீர்க்கவே கட்டமைக்கப்பட்டது: பயனர்களுக்கு இடையிலான தனிமைப்படுத்தல் (isolation), CPU நேரத்தைப் பகிர்ந்து அளிக்கும் scheduler, hypervisor மற்றும் மணிநேர அடிப்படையில் கணக்கிடப்படும் கட்டணம். இந்தச் சிக்கல் இன்னும் நீங்கவில்லை. வன்பொருள் மலிவானதால், ஒரு காலத்தில் ஆராய்ச்சி மானியம் தேவைப்பட்ட ஒரு கணினித் திறன், இன்று மாதத்திற்குச் சில டாலர்களில் கிடைக்கிறது.
1959 முதல் 1961 வரை: time-sharing ஏன் உருவாக்கப்பட்டது
1950-களில் கணினிகள் batch முறையில் இயங்கின. உங்கள் நிரலை (program) அட்டைகளில் (cards) துளையிட்டு, அந்தத் தொகுப்பை ஒரு இயக்குநரிடம் (operator) கொடுத்துவிட்டு, பின்னர் அச்சுப்பிரதிக்காகத் திரும்ப வர வேண்டும். ஒரு எழுத்துப் பிழை கூட ஒரு நாள் முழுவதையும் வீணாக்கும். IBM 7090 போன்ற கணினிகள் பல மில்லியன் டாலர் மதிப்புடையவை என்பதால், இயந்திரம் எப்போதும் வேலையில் இருக்க வேண்டும் என்பதே முக்கிய நோக்கமாக இருந்தது; இதற்காகக் காத்திருக்கும் மனிதர்களின் நேரம் எந்தக் கணக்கிலும் (invoice) சேர்க்கப்படவில்லை.
ஜனவரி 1959-ல், MIT-ல் பணிபுரிந்த John McCarthy இதற்கு நேர்மாறான கருத்தை ஒரு குறிப்பில் முன்வைத்தார். இயந்திரம் மனிதருக்காகக் காத்திருக்க வேண்டும் என்பதே அது. அதே ஆண்டு UNESCO மாநாட்டில் Christopher Strachey ஒரு வகை time-sharing முறையை விவரித்தார்; ஆனால் அவர் பல பயனர்கள் ஒரே நேரத்தில் தட்டச்சு செய்வதைக் குறிக்காமல், மற்ற பணிகள் நடக்கும்போது ஒரு நிரலர் பிழைத்திருத்தம் (debugging) செய்வதையே குறிப்பிட்டார். 1961-ல் MIT-ன் நூற்றாண்டு விழாவில் பேசிய McCarthy, இதையும் தாண்டி ஒரு கருத்தைச் சொன்னார்: கணினித் திறனை மின்சாரம் போல அளவீடு செய்து, ஒரு பொதுப் பயன்பாட்டுச் சேவையாக (public utility) விற்க முடியும்.
அக்காலத்தில் எழுந்த எதிர்ப்பு என்னவென்றால், time-sharing இயந்திரத்தின் திறனை வீணாக்குகிறது என்பதுதான். பயனர்களுக்கு இடையே மாறுவதற்கு (switching) கணினி சுழற்சிகள் (cycles) தேவைப்படும், அந்தச் சுழற்சிகள் மிகவும் விலை உயர்ந்தவை. இந்த எதிர்ப்பு உண்மையானதுதான், ஆனால் காலப்போக்கில் அது முக்கியத்துவத்தை இழந்தது. ஏனெனில், அறுபது ஆண்டுகளாக கணினிச் சுழற்சிகளின் விலை குறைந்து கொண்டே வந்தது, ஆனால் மனித உழைப்பின் ஒரு மணி நேர மதிப்பு குறையவில்லை.
CTSS எவற்றைக் கண்டறிய வேண்டியிருந்தது
MIT Computation Center-ல் Fernando Corbató-வின் குழு, இந்த விவாதத்தைத் தீர்க்க Compatible Time-Sharing System (CTSS)-ஐ உருவாக்கியது. இது முதன்முதலில் நவம்பர் 1961-ல் IBM 709-ல் செயல்முறைப்படுத்தப்பட்டது. இது நான்கு பயனர்களுக்குச் சேவை செய்தது; ஒவ்வொரு பயனரின் பணியையும் அதன் சொந்த magnetic tape drive-க்கு மாற்றியது. "Compatible" என்பது, அந்த இயந்திரம் பழைய batch system-ஐயும் தொடர்ந்து இயக்க முடியும் என்பதைக் குறித்தது; ஏனெனில், புதிய வசதியை மட்டுமே கொண்ட கணினியை யாரும் வாங்க மாட்டார்கள்.
நான்கு பயனர்கள் என்பது சிறிய எண்ணிக்கைதான். இந்த நிலையை அடையத் தீர்க்க வேண்டிய சிக்கல்களின் பட்டியல் சிறியதல்ல; உங்கள் kernel தற்போது கையாளும் அதே பட்டியல் இதுதான். CTSS-க்கு ஒரு scheduler தேவைப்பட்டது, அப்போதுதான் ஒரு நீண்ட பணி மற்ற அனைத்து terminal-களையும் முடக்காது. அதற்கு memory protection தேவைப்பட்டது, அப்போதுதான் ஒரு program செயலிழக்கும்போது முழு system-ம் முடங்காமல், அந்த ஒரு பயனர் மட்டும் பாதிக்கப்படுவார். logout செய்த பிறகும் அழியாத storage அதற்குத் தேவைப்பட்டது; இதனால்தான் நவீன பயனர்கள் அறியும் வகையில் அமைந்த முதல் file systems-ல் ஒன்றாக CTSS இருந்தது. மேலும், ஒரு பயனர் மற்றொரு பயனரின் file-களைப் படிக்காமல் இருக்க, அதற்கு passwords தேவைப்பட்டன.
அந்தப் பாகங்களுக்குப் பெயர் மாற்றினால், அது ஒரு 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-ன் அடுத்த கணினி அமைப்பு, McCarthy விவரித்த பயன்பாட்டுத் தன்மையைக் கொண்டிருக்க வேண்டும் என்று திட்டமிடப்பட்டது. 1963-ல் Project MAC தொடங்கியது; ஆகஸ்ட் 1964-ல் General Electric GE-645 கணினிக்கான ஒப்பந்தம் கையெழுத்தானது; 1965-ல் Multics குறித்த முதல் ஆய்வுக் கட்டுரைகள் வெளியிடப்பட்டன. இதன் பெயரே இதற்கான விளக்கத்தைத் தருகிறது: Multiplexed Information and Computing Service. Service என்பது, நீங்கள் மணிநேர அடிப்படையில் வாங்கும் ஒரு சேவையைக் குறிக்கிறது.
Multics திட்டமிட்டதை விட அதிக காலம் எடுத்துக்கொண்டது. முன்மாதிரி GE-645 இயந்திரங்கள் ஜனவரி 1967-ல் MIT மற்றும் Bell Labs-க்கு வந்தடைந்தன. ஏப்ரல் 1969-ல் Bell Labs இந்தத் திட்டத்திலிருந்து விலகியது. அக்டோபர் 1 1969 அன்று MIT Information Processing Center வாடிக்கையாளர்களுக்காக Multics பயன்பாட்டுக்கு வந்தது; அதன் பிறகு முப்பத்தியொரு ஆண்டுகள் இது செயல்பாட்டில் இருந்தது. கனடாவின் Halifax, Nova Scotia-வில் உள்ள Department of National Defence-ல் இயங்கிய கடைசி Multics அமைப்பு, அக்டோபர் 30 2000 அன்று நிறுத்தப்பட்டது.
Multics தாமதமாக வந்ததாலும், மெதுவாக இயங்கியதாலும் இது ஒரு தோல்வி என்று அடிக்கடி வகைப்படுத்தப்படுகிறது. ஆனால், இதன் தொழில்நுட்பக் கலைச்சொற்கள் வேறுவிதமாகச் சொல்கின்றன. இதுவே நமக்கு கோப்பகங்களுக்குள் கோப்பகங்கள் கொண்ட படிநிலை கோப்பு முறைமையை (hierarchical file system) வழங்கியது. ஒவ்வொரு கோப்பிற்கும் ஒரு access control list, ஒரு நிரல் கோப்பை நினைவகமாகவே அணுக அனுமதிக்கும் segmented virtual memory, மற்றும் குறியீட்டின் நம்பகத்தன்மைக்கு ஏற்ப வகைப்படுத்தும் protection rings ஆகியவற்றை இது அறிமுகப்படுத்தியது. இந்த rings இப்போதும் உங்கள் கணினியின் silicon-ல் உள்ளன. Kernel-க்கான ring 0 மற்றும் பயனர் குறியீட்டிற்கான ring 3 ஆகியவை Multics-ன் கலைச்சொற்களே. பிற்காலத்தில், hardware virtualisation மூலம் hypervisor-க்காக ring 0-க்கு கீழே ஒரு நிலை சேர்க்கப்பட்டது, அதை மக்கள் முறைசாரா முறையில் ring -1 என்று அழைக்கிறார்கள்.
Unix: உங்களால் வாங்கக்கூடிய ஒரு கணினியில் time-sharing
Multics-லிருந்து வெளியேறிய பிறகு, Ken Thompson-க்கு Bell Labs-ல் அவர் பயன்படுத்த விரும்பிய ஒரு system இல்லாமல் போனது. 1969-ல், கைவிடப்பட்ட ஒரு PDP-7 கணினியில் மிகச்சிறிய ஒரு system-ஐ அவர் உருவாக்கத் தொடங்கினார். முதல் Unix Programmer's Manual நவம்பர் 1971 தேதியிட்டது; அந்த நேரத்தில் பணிகள் PDP-11-க்கு மாறியிருந்தன. 1973-ல், Thompson மற்றும் Dennis Ritchie ஆகியோர் kernel-ஐ C மொழியில் மீண்டும் எழுதினர். இதனால், ஒவ்வொரு முறையும் கையால் எழுத வேண்டிய அவசியம் இல்லாமல், புதிய hardware-க்கு system-ஐ மாற்ற முடிந்தது.
இதனால்தான் நீங்கள் Multics-ன் வழித்தோன்றலில் அல்லாமல், Unix-ன் வழித்தோன்றலில் தட்டச்சு செய்கிறீர்கள். Multics-க்கு அதற்கென பிரத்யேகமாக உருவாக்கப்பட்ட hardware தேவைப்பட்டது. Unix மலிவாகவும் எளிதாகவும் கிடைத்த எந்த hardware-லும் இயங்கியது; இதுவே அதன் வெற்றியைத் தீர்மானித்த முக்கிய அம்சமாக அமைந்தது.
Ritchie மற்றும் Thompson எழுதிய "The UNIX Time-Sharing System" என்ற கட்டுரை ஜூலை 1974-ல் Communications of the ACM இதழில் வெளியானது. அந்தக் கட்டுரை உங்கள் VPS-ஐ விவரிக்கிறது: processes, ஒரு படிநிலை கோப்பு முறைமை (hierarchical file system), plain byte streams-ஆக இருக்கும் கோப்புகள், fork, permission bits கொண்ட பயனர்கள் மற்றும் குழுக்கள், மற்றும் kernel-ன் ஒரு பகுதியாக இல்லாமல் ஒரு சாதாரண program-ஆக இருக்கும் shell. ஐம்பத்திரண்டு ஆண்டுகளுக்குப் பிறகும் அந்த interface நீட்டிக்கப்பட்டுள்ளதே தவிர, ஒருபோதும் மாற்றப்படவில்லை.
1972-ல் மெயின்பிரேம்கள் உண்மையில் virtual machines-ஐ இயக்கினவா?
ஆம், இதுவே பெரும்பாலானோர் கவனிக்கத் தவறிய கதையின் ஒரு பகுதி. MIT, Multics-ஐ உருவாக்கியபோது, IBM-ன் Cambridge Scientific Center அதே இலக்கை வேறு கோணத்தில் அணுகியது. பல பயனர்களுக்குச் சேவை செய்யும் ஒரே operating system-க்கு பதிலாக, Robert Creasy மற்றும் Les Comeau ஆகியோர் ஒவ்வொரு பயனருக்கும் ஒரு முழுமையான simulated கணினியை வழங்கும் control program-ஐ உருவாக்கினர். CP-40 ஜனவரி 1967-ல் பயன்பாட்டுக்கு வந்தது. ஒவ்வொரு பயனரும் ஒரு virtual System/360-ஐப் பெற்றனர், அதற்குள் CMS என்ற சிறிய single-user operating system-ஐ இயக்கினர்.
CP-40, 1968-ல் System/360-67-ல் CP-67 ஆக மாறியது, மேலும் IBM ஆகஸ்ட் 2, 1972 அன்று VM/370-ஐ அறிவித்தது. இது ஐம்பத்து நான்கு ஆண்டுகளுக்கு முன்பே வாடிக்கையாளர்களுக்கு விற்பனை செய்யப்பட்ட ஒரு commercial hypervisor ஆகும். ஒரு control program உண்மையான hardware-ஐ multiplex செய்தது, மேலும் guest operating systems தங்களுக்குச் சொந்தமான கணினி என்று நம்பிய virtual machines-க்குள் மாற்றங்கள் ஏதுமின்றி இயங்கின.
இதற்கான கோட்பாடு இரண்டு ஆண்டுகளுக்குப் பிறகு, Unix பற்றிய கட்டுரை வெளியான அதே ஜூலை 1974-ன் Communications of the ACM இதழில் வந்தது. Gerald Popek மற்றும் Robert Goldberg எழுதிய "Formal Requirements for Virtualizable Third Generation Architectures" என்ற கட்டுரை, ஒரு processor virtualisable ஆக இருக்க என்ன செய்ய வேண்டும் என்பதை வரையறுத்தது. அதன் அடிப்படை விதி சுருக்கமானது. கணினியின் நிலையை வாசிக்க அல்லது மாற்றக்கூடிய ஒவ்வொரு instruction-ம், ஒரு guest அதை kernel mode-க்கு வெளியே இயக்கும்போது trap ஆக வேண்டும்; அப்போதுதான் hypervisor கட்டுப்பாட்டை எடுத்துக்கொண்டு, அந்த guest-ன் சொந்தத் தரவுகளின் அடிப்படையில் பதிலளிக்க முடியும். இது trap and emulate என்று அழைக்கப்படுகிறது. IBM-ன் hardware இந்த விதியைப் பின்பற்றியது.
மினிகணினி எவ்வாறு மாதிரியை மாற்றியது
DEC நிறுவனம் 22 March 1965 அன்று PDP-8-ஐ அறிமுகப்படுத்தியது. இதன் விலை 1965-ன் பணமதிப்பில் சுமார் $18,000 ஆகும். $20,000-க்கும் குறைவான விலையில் அறிமுகமான முதல் மினிகணினி இதுவே; இது 50,000-க்கும் மேற்பட்ட அலகுகள் விற்பனையானது. பின்னர் மைக்ரோபிராசஸர் தொழில்நுட்பம் விலையை மேலும் குறைத்தது. ஒரு துறை தனது சொந்த கணினியை வாங்க முடிந்ததும், பின்னர் ஒரு தனிநபர் வாங்க முடிந்ததும், ஒரே மையக் கணினியைப் பகிர்ந்துகொள்ளும் முறை தீர்க்கப்பட்ட ஒரு பிரச்சினையாகக் கருதப்பட்டது. 1980-கள் மற்றும் 1990-களில் கணினி பயன்பாடு மேசைக்கும், சிறிய x86 servers கொண்ட ரேக்குகளுக்கும் மாறியது.
வீணாகும் வளங்கள் மீண்டும் வேறு வடிவில் வந்தன. ஒரு server-க்கு ஒரு application என்பது புரிந்துகொள்ள எளிதானது, ஆனால் இது வன்பொருளின் பெரும்பகுதியைச் சும்மா வைத்திருக்கும் அதே வேளையில், மின்சாரம் மற்றும் ரேக் இடத்திற்கான முழுச் செலவையும் ஏற்க வைக்கிறது. இது புதிய அளவில் மீண்டும் CTSS சிக்கலாக மாறியது; இப்போது விலையுயர்ந்த வளமாக பிராசஸருக்குப் பதிலாக அறையும் மின்சாரமும் மாறியுள்ளன. இதற்கான தீர்வு பழைய தீர்வே. கணினியைப் பகிர்ந்துகொள்ளுங்கள்.
x86 கட்டமைப்பை virtualise செய்வது ஏன் கடினமாக இருந்தது?
x86 கட்டமைப்பு Popek மற்றும் Goldberg விதியை மீறியதே இதற்குக் காரணம். ஆகஸ்ட் 2000-ல் நடைபெற்ற 9-வது USENIX Security Symposium-ல், John Scott Robin மற்றும் Cynthia Irvine ஆகியோர் Pentium instruction set-ஐ ஆய்வு செய்தனர். பயனர் பயன்முறையில் (user-mode) இயங்கும் குறியீடு, privileged state-ஐ மாற்றவோ அல்லது படிக்கவோ முயலும்போது, பிழையை (fault) ஏற்படுத்தாத 17 instructions இருப்பதை அவர்கள் கண்டறிந்தனர். popf இதற்கு ஒரு சிறந்த உதாரணம். இதை பயனர் பயன்முறையில் இயக்கும்போது, processor அந்த நிரலுக்கு அனுமதி இல்லாத பிட்களை (bits) அமைப்பதைத் தடுக்காமல், அமைதியாகப் புறக்கணித்துவிடும். இதனால் trap மற்றும் emulate முறையில் இயங்கும் hypervisor-க்கு, guest அந்த செயலைச் செய்ய முயன்றது தெரியவராது.
வன்பொருள் (hardware) சரிசெய்யப்படுவதற்கு முன்பே இரண்டு தீர்வுகள் முன்வைக்கப்பட்டன. 1998-ல் Stanford-ன் Disco ஆராய்ச்சியின் மூலம் தொடங்கப்பட்ட VMware, guest kernel குறியீட்டை ஆய்வு செய்து, சிக்கலான instructions-ஐ அவை இயங்குவதற்கு முன்பே மாற்றியமைத்தது. இந்த நுட்பம் binary translation என்று அழைக்கப்படுகிறது. Cambridge பல்கலைக்கழகத்தின் Computer Laboratory-ல் உருவாக்கப்பட்ட Xen, guest-ஐ மாற்றியமைக்கும் முறையைத் தேர்ந்தெடுத்தது. அக்டோபர் 2003-ல் SOSP-ல் சமர்ப்பிக்கப்பட்ட "Xen and the Art of Virtualization" என்ற கட்டுரை, paravirtualisation முறையை விளக்கியது. இதில், hypervisor-ஆல் இடைமறிக்க முடியாத instructions-ஐ இயக்குவதற்குப் பதிலாக, மாற்றியமைக்கப்பட்ட guest kernel நேரடியாக hypervisor-ஐ அழைக்கும்.
பின்னர், 1960-களில் IBM செய்தது போல வன்பொருள் சரிசெய்யப்பட்டது. Intel நிறுவனம் 14 நவம்பர் 2005 அன்று இரண்டு Pentium 4 மாடல்களில் VT-x-ஐ அறிமுகப்படுத்தியது, AMD நிறுவனம் மே 2006-ல் AMD-V-ஐ அறிமுகப்படுத்தியது. இவை இரண்டும் guest kernel-க்குக் கீழே ஒரு புதிய processor பயன்முறையைச் சேர்த்தன. இதனால், hypervisor தனக்குத் தேவையான நிகழ்வுகளைக் கட்டுப்படுத்தும் அதே வேளையில், guest அதன் சொந்த kernel-ஐ முழு வேகத்தில் இயக்க முடிந்தது. இது ஒரு சாதாரண operating system-க்குள் அடங்கும் அளவுக்கு hypervisor-ஐச் சிறியதாக மாற்றியது. Qumranet-ல் Avi Kivity உருவாக்கிய KVM இதைத்தான் செய்தது; அது Linux kernel-ஐயே hypervisor-ஆக மாற்றியது. பிப்ரவரி 2007-ல் வெளியான Linux 2.6.20 பதிப்பில் KVM இணைக்கப்பட்டது. இன்று பெரும்பாலான VPS hosts இதையே பயன்படுத்துகின்றன.
VPS-க்கு அந்தப் பெயர் எப்படி வந்தது
2000-களின் தொடக்கத்தில் இரண்டு பாதைகள் இணைந்தன. ஒன்று x86 கட்டமைப்பில் இயங்கும் முழுமையான virtual machine, இது தனது சொந்த kernel-ஐ boot செய்யும் விருந்தினர் (guest) ஆகும். மற்றொன்று operating-system-level virtualisation: இது ஒரே Linux kernel-ஐப் பகிர்ந்து கொண்டு, தனித்தனி சூழல்களாகப் பிரிக்கப்படும்; ஒவ்வொன்றிற்கும் தனித்தனி root user மற்றும் process table இருக்கும். Linux-VServer மற்றும் SWsoft-ன் Virtuozzo ஆகிய இரண்டும் 2001-ல் தோன்றின, மேலும் 2005-ல் SWsoft தனது Virtuozzo-வின் ஒரு பகுதியை open-source திட்டமான OpenVZ-ஆக வெளியிட்டது. "virtual private server" என்ற சொல் அந்த வம்சாவளியிலிருந்து வந்தது, இது virtual private network-ன் ஒப்புமையால் உருவாக்கப்பட்டது.
Amazon இந்த வாடகை முறையை ஒரு API அழைப்பாக மாற்றியது. S3 மார்ச் 14, 2006 அன்று தொடங்கப்பட்டது, மேலும் EC2 ஆகஸ்ட் 25, 2006 அன்று ஒரு வரையறுக்கப்பட்ட public beta-வாக, Xen-ல் இயங்கும் ஒரே ஒரு instance type-உடன் அறிமுகமானது. கணினித் திறனை வாங்குவது என்பது ஒரு service bureau-வுடன் ஒப்பந்தம் செய்வதாக இல்லாமல், ஒரு நிமிடத்தில் முடிவடையும் கோரிக்கையாக மாறியது.
இந்த இரண்டு பாதைகளும் இன்றும் நீடிக்கின்றன, மேலும் இந்த வேறுபாடே நீங்கள் வாடகைக்கு எடுக்கும் server-ல் எதைச் செய்ய முடியும் என்பதைத் தீர்மானிக்கிறது. ஒரு KVM VPS தனது சொந்த kernel-ஐ boot செய்கிறது, எனவே நீங்கள் kernel modules-ஐ ஏற்றலாம், ஏன் உங்கள் VPS-க்குள் ஒரு hypervisor-ஐயே இயக்கலாம். container அடிப்படையிலான திட்டம் host kernel-ஐப் பகிர்ந்துகொள்வதால், அதைச் செய்ய முடியாது. ஒரு விலைப்பட்டியலில் உள்ள அந்த ஒரு வரியின் பின்னால் அறுபது ஆண்டுகால வரலாறு உள்ளது, அதனால்தான் நீங்கள் ஒன்றைத் தேர்ந்தெடுக்கும் முன் VPS, VM மற்றும் VPC எவ்வாறு வேறுபடுகின்றன என்பதைப் புரிந்துகொள்வது பயனுள்ளது.
Mainframe-க்கும் உங்கள் VPS-க்கும் இடையே மாறியவை மற்றும் மாறாதவை
நான்கு விஷயங்கள் மாறியுள்ளன. இயந்திரம் உங்கள் கட்டிடத்தில் இல்லை. Terminal என்பது ஒரு தளபாடத்திற்குப் பதிலாக இப்போது ஒரு மென்பொருள். நீங்கள் வாடகைக்கு எடுக்கும் அலகு, வேறொருவரின் operating system-ல் உள்ள ஒரு கணக்கு அல்ல; அது சொந்த kernel-ஐக் கொண்ட ஒரு முழுமையான கணினி. விலை மிகவும் குறைந்துவிட்டதால், இப்போது கொள்முதல் செயல்முறைக்கு பதிலாக, ஒரு card payment மூலம் அதை வாங்க முடிகிறது.
இதன் அடிப்படை நுட்பம் எள்ளளவும் மாறவில்லை.
- உங்கள் ssh session என்பது ஒரு time-sharing terminal ஆகும். உங்களுக்கு ஒரு login மற்றும் shell கிடைக்கிறது; உங்கள் process எப்போது இயங்க வேண்டும் என்பதை ஒரு scheduler தீர்மானிக்கிறது.
- Isolation இப்போதும் வன்பொருள் (hardware) மூலமே அமல்படுத்தப்படுகிறது. 1967-ல் CP-40-க்குத் தேவைப்பட்டது போலவே, இப்போதும் MMU மற்றும் processor-ன் privilege levels இந்த வேலையைச் செய்கின்றன.
- service bureaus முன்பு connect hours-க்கு கட்டணம் வசூலித்தது போலவே, இப்போதும் நீங்கள் ஒரு இயந்திரத்தின் பங்கிற்கு, அது இயங்கிய நேரத்தின் அடிப்படையில் கட்டணம் செலுத்துகிறீர்கள்.
- மற்ற பயனர்களின் தாக்கத்தை நீங்கள் இப்போதும் உணர முடியும். ஒரு host அதிகப்படியான பயன்பாட்டில் இருக்கும்போது, உங்கள் guest ஒரு physical CPU-க்காகக் காத்திருக்க வேண்டியிருக்கும்; இந்த காத்திருப்பு நேரத்தை Linux CPU steal time from a noisy neighbour என்று குறிப்பிடுகிறது.
அந்த கடைசிப் புள்ளிதான் முழு வரலாற்றின் உண்மையான சுருக்கம். ஒரு இயந்திரத்தைப் பகிர்ந்து கொள்வது ஒரு வர்த்தகம். 1961-ல் கணினியின் விலை மனிதர்களை விட அதிகமாக இருந்ததால் இது ஏற்றுக்கொள்ளப்பட்டது; 2026-ல் ஒரு server அதன் திறனில் பத்து சதவீதம் மட்டுமே இயங்குவது பணத்தை வீணாக்குவதற்குச் சமம் என்பதால் இது ஏற்றுக்கொள்ளப்படுகிறது. இந்த வர்த்தகத்தில் operator பக்கத்தில் இருக்க நீங்கள் விரும்பினால், running Proxmox on hardware you own உங்களுக்கு hypervisor-ஐயும், அதனுடன் வரும் operator-ன் சிக்கல்களையும் வழங்கும்.
விகிதத்தை நினைவில் கொள்ளுங்கள். 1961-ல் பல மில்லியன் டாலர்கள் செலவில், ஒரு அறையை நிரப்பிய இயந்திரத்தில் CTSS நான்கு பயனர்களுக்குச் சேவை செய்தது. 2026-ல், மாதத்திற்குச் சில டாலர்கள் செலவில் கிடைக்கும் உங்கள் VPS, Corbató-வின் குழுவினர் சிக்கனமாகப் பயன்படுத்திய கணினியை விட மிகச் சிறந்ததாகும், மேலும் அது முழுமையாக உங்களுடையது. அறுபத்தைந்து ஆண்டுகளுக்கு முந்தைய ஒரு யோசனை, மலிவான வன்பொருளுடன் இணைந்ததால் மட்டுமே உங்களால் இதை வாடகைக்கு எடுக்க முடிகிறது. அதில் எதை நிறுவுவது என்று நீங்கள் திட்டமிடுகிறீர்கள் என்றால், what a VPS actually gives you என்பதிலிருந்து தொடங்கி, பிறகு what people run on one என்பதைப் பாருங்கள்.
FAQ
முதல் time-sharing கணினி அமைப்பு எது?
CTSS (Compatible Time-Sharing System), இது MIT Computation Center-ல் Fernando Corbató தலைமையிலான குழுவால் உருவாக்கப்பட்டது. இது முதன்முதலில் நவம்பர் 1961-ல் IBM 709 கணினியில் செயல்முறைப்படுத்தப்பட்டது. இது நான்கு பயனர்களுக்குச் சேவை வழங்கியது; ஒவ்வொரு பயனரின் தரவும் தனித்தனி tape drive-க்கு மாற்றப்பட்டது. ஒரு முழு சமூகத்திற்குமான முதல் time-sharing சேவை Dartmouth Time-Sharing System ஆகும்: மே 1, 1964 அன்று, John Kemeny மற்றும் ஒரு மாணவர் நிரலர் (student programmer) இருவர் ஒரே நேரத்தில் இரண்டு terminals-ல் BASIC நிரல்களை இயக்கினர், இருவருக்கும் சரியான விடைகள் கிடைத்தன.
virtual machines உண்மையில் 1960-களில் கண்டுபிடிக்கப்பட்டதா?
ஆம். IBM-ன் Cambridge Scientific Center, ஜனவரி 1967-ல் CP-40-ஐ பயன்பாட்டிற்கு கொண்டு வந்தது. இது ஒவ்வொரு பயனருக்கும் ஒரு முழுமையான virtual System/360-ஐ வழங்கியது, அதில் CMS operating system இயங்கியது. இதனைத் தொடர்ந்து 1968-ல் System/360-67-ல் CP-67 உருவாக்கப்பட்டது, மேலும் ஆகஸ்ட் 2, 1972 அன்று IBM VM/370-ஐ அறிவித்தது. இவை மாற்றப்படாத guest operating systems-ஐ இயக்கும் உண்மையான hypervisors ஆகும். இவை வணிக ரீதியாக விற்கப்பட்டன, x86 வன்பொருள் (hardware) இந்தத் திறனைப் பெறுவதற்கு பல தசாப்தங்களுக்கு முன்பே இவை பயன்பாட்டில் இருந்தன.
mainframes-ல் இல்லாத சிக்கல் ஏன் x86-ல் இருந்தது?
Popek மற்றும் Goldberg-ன் 1974-ம் ஆண்டு விதிப்படி, கணினியின் நிலையை (machine state) வாசிக்க அல்லது மாற்றக்கூடிய ஒவ்வொரு கட்டளையும் (instruction), ஒரு guest அதை kernel mode-க்கு வெளியே இயக்கும்போது trap செய்யப்பட வேண்டும். x86 இந்த விதியை மீறியது. Robin மற்றும் Irvine ஆகியோர், user mode-ல் trap செய்வதற்குப் பதிலாக அமைதியாகத் தோல்வியடையும் பதினேழு Pentium கட்டளைகளைக் கண்டறிந்தனர். இதனால் ஒரு பாரம்பரிய trap-and-emulate hypervisor-ஆல் அவற்றைக் கவனிக்க முடியாது; popf இதற்கு ஒரு பொதுவான உதாரணமாகும். VMware binary translation மூலமும், Xen paravirtualisation மூலமும் இதைச் சரிசெய்தன. பின்னர் நவம்பர் 2005-ல் Intel VT-x மற்றும் மே 2006-ல் AMD-V ஆகியவை hypervisor-க்காக ஒரு hardware mode-ஐச் சேர்த்தன.
VPS வாடகைக்கு எடுப்பது time-sharing கணக்கு வைத்திருப்பதற்குச் சமமானதா?
பணம் செலுத்தும் முறை (billing model) மற்றும் தனிமைப்படுத்தும் சிக்கல் (isolation problem) ஆகிய இரண்டும் ஒன்றுதான். ஆனால், அதன் அலகு (unit) வேறுபட்டது. ஒரு time-sharing பயனர் மற்றவர்களுடன் பகிரப்பட்ட ஒரு operating system-ல் கணக்கைப் பெற்றார், எனவே கணினி மையத்தில் உள்ள ஒருவரே அதன் நிர்வாகியாக இருந்தார். ஒரு KVM VPS உங்களுக்குச் சொந்தமான kernel மற்றும் root கணக்குடன் கூடிய ஒரு virtual machine-ஐ வழங்குகிறது, எனவே அதன் நிர்வாகி நீங்களே. ஒரு container-based VPS இவ்விரண்டிற்கும் இடைப்பட்டது; ஏனெனில் இது host kernel-ஐப் பகிர்ந்துகொண்டாலும், உங்கள் சொந்த சூழலுக்குள் உங்களுக்கு root அதிகாரத்தை வழங்குகிறது.