Linux distribution-களின் வரலாறு மற்றும் அதன் பரிணாமம்
Linux distribution-கள் எவ்வாறு Slackware, Debian மற்றும் Red Hat ஆகியவற்றிலிருந்து உருவானவை என்பதை அறியுங்கள். உங்கள் VPS இயங்குதளத்தின் பின்னணியை விரிவாகப் புரிந்துகொள்ளுங்கள்.
Linux distribution என்பது உண்மையில் என்ன
Linux distribution-ன் வரலாறு ஒரு இடைவெளியுடன் தொடங்குகிறது: Linux kernel மட்டும் தனியாகப் பயனருக்குப் பயன்படும் எதையும் செய்வதில்லை. அது boot ஆகி hardware-ஐக் கண்டறியும். பிறகு நின்றுவிடும். யாராவது ஒருவர் userland-ஐச் சேர்க்க வேண்டும், மென்பொருள் எவ்வாறு நிறுவப்பட வேண்டும் மற்றும் புதுப்பிக்கப்பட வேண்டும் என்பதைத் தீர்மானிக்க வேண்டும், மேலும் பல ஆண்டுகளுக்கு அதைச் சரிசெய்வதாக உறுதியளிக்க வேண்டும். ஒரு distribution என்பது அந்தத் தேர்வுகளின் தொகுப்பு, அதனுடன் அதைத் தொடர்ந்து பராமரிக்கும் நபர்களின் குழு.
இதில் ஐந்து பகுதிகள் உள்ளன. இதில் எதை மாற்றினாலும், பெரும்பாலான binaries ஒன்றாக இருந்தாலும், அது ஒரு மாறுபட்ட distribution ஆகிவிடும்:
- ஒரு kernel: அந்தத் திட்டம் தேர்ந்தெடுத்த பதிப்பில், அது சேர்த்த patches மற்றும் drivers-உடன்.
- ஒரு userland: C library, shell, init system, மற்றும் standard commands.
- ஒரு package format: மற்றும் அதை நிறுவும் கருவி.
- ஒரு release policy: எவை மாறலாம், எவ்வளவு அடிக்கடி, மற்றும் ஒவ்வொரு release-ம் எவ்வளவு காலம் நிலைநிறுத்தப்படும் என்பது.
- நபர்கள்: package maintainers, ஒரு security team, மற்றும் ஒரு package பழுதடையும் போது பதிலளிக்கும் நபர்.
Kernel என்பது பகிரப்பட்ட பகுதி, எனவே இரண்டு Linux distributions-ம் ஒன்றுக்கொன்று மிக நெருக்கமாக இருக்கும், அவை மற்ற Unix-களுடன் இருப்பதை விட. Linux மற்றும் FreeBSD-ஐ server தளங்களாக ஒப்பிடும்போது இதைக் கவனத்தில் கொள்ள வேண்டும், அங்கு kernel மற்றும் base userland ஆகியவை ஒரே திட்டத்தால் உருவாக்கப்பட்டு ஒன்றாக வெளியிடப்படுகின்றன. Linux-ல் அந்தப் பாகங்கள் தனித்தனி upstreams-லிருந்து வருகின்றன, அவற்றை ஒருங்கிணைக்கும் காரணியே distribution ஆகும்.
Linux விநியோகங்களின் வரலாறு: மூன்று குடும்பங்கள்
1993 மற்றும் 1994-ல் தொடங்கப்பட்ட மூன்று திட்டங்கள் முக்கிய குடும்பங்களாக உருவெடுத்தன: Slackware, Debian மற்றும் Red Hat. இன்று ஒரு VPS control panel-ல் நீங்கள் காணும் பெரும்பாலான images, இந்த மூன்றில் ஒன்று அல்லது அவற்றின் வழித்தோன்றல்களாகவே உள்ளன. ஒரு வழித்தோன்றல், அதன் முன்னோடியின் package format, file layout மற்றும் வழக்கமான release முறைகளைப் பின்பற்றும். இதனால்தான், ஒரு Debian derivative-ல் உள்ள branding-ஐ நீக்கினாலும், அது Debian போலவே செயல்படும்.
சுயாதீனமான விநியோகங்கள் தனித்துவமானவை, ஏனெனில் அவை எதிலிருந்தும் பிரியவில்லை (fork). Arch, Gentoo, Alpine, NixOS மற்றும் Void ஆகிய ஒவ்வொன்றும் தங்களுக்கென சொந்த package manager-ஐயும், விதிகளையும் உருவாக்கியுள்ளன. இவற்றில் Arch மற்றும் Alpine ஆகிய இரண்டும், desktop பயன்பாட்டிற்கு அப்பாற்பட்ட காரணங்களுக்காக, உங்கள் provider-ன் image பட்டியலில் இடம் பெற்றுள்ளன.
1992: குடும்பங்களுக்கு முந்தைய விநியோகங்கள் (distributions)
MCC Interim Linux பிப்ரவரி 1992-ல் Manchester Computing Centre-ல் Owen Le Blanc என்பவரால் உருவாக்கப்பட்டது. இது kernel மற்றும் GNU (GNU's not Unix) கருவிகளை இரண்டு floppy images-ல் மெனு மூலம் இயங்கும் installer-உடன் வழங்கியது. இதை கைமுறையாகச் செய்ய ஒரு நாள் வேலை தேவைப்பட்டதால், அந்த சிரமத்தைத் தவிர்க்க இது உருவாக்கப்பட்டது.
Peter MacDonald என்பவரால் 1992-ல் வெளியிடப்பட்ட SLS (Softlanding Linux System), மேலும் ஒரு படி மேலே சென்று X (the X Window System) மற்றும் TCP/IP networking வசதிகளைச் சேர்த்தது. distribution என்ற சொல் இன்று குறிக்கும் பொருளுக்கு SLS-தான் காரணம். இது பல பிழைகளைக் கொண்டிருந்தது மற்றும் மெதுவாகவே பராமரிக்கப்பட்டது. 1993-ல் இருவர் தனித்தனியாக இதைச் சரிசெய்ய முடிவெடுத்தனர். ஒருவர் அதை மீண்டும் கட்டமைத்தார். மற்றொருவர் எழுதப்பட்ட விதிகளுடன் புதிதாகத் தொடங்கினார்.
Slackware, 1993: இன்றும் பயன்பாட்டில் உள்ள பழமையான குடும்பம்
Patrick Volkerding, 1993 ஜூலை 16 அன்று Slackware 1.00-ஐ வெளியிட்டார். இது SLS-ஐ அடிப்படையாகக் கொண்டு, அதில் இருந்த பிழைகள் நீக்கப்பட்டு உருவாக்கப்பட்டது. இது இன்றும் பராமரிக்கப்படுவதால், தற்போதுள்ள Linux விநியோகங்களில் இதுவே பழமையானது.
Slackware package என்பது உள்ளே install script-ஐக் கொண்ட ஒரு compressed tar archive ஆகும். இதில் dependency resolution கிடையாது: உங்கள் புதிய package-க்குத் தேவையான library ஏற்கனவே வட்டில் (disk) உள்ளதா என்பதை எந்தக் கருவியும் சரிபார்க்காது. இந்த ஒற்றைத் தீர்மானமே மற்ற அனைத்தையும் வடிவமைத்தது. ஒரு கருவி dependency-களைத் தீர்க்காது என்றால், தொகுப்பில் உள்ள அனைத்தும் ஒன்றோடொன்று இணக்கமாக இருக்க வேண்டும். எனவே, இதன் releases அரிதாகவும், பழமைவாத அணுகுமுறையுடனும் இருக்கும். Slackware 14.2 வெளியாகி ஆறு ஆண்டுகளுக்குப் பிறகு, 2022 பிப்ரவரியில் Slackware 15.0 வெளியானது.
இந்தக் குடும்பம் சிறியது. 1990-களின் மத்தியில் SUSE-ன் ஆரம்பகால releases, Slackware-ஐ அடிப்படையாகக் கொண்டு உருவாக்கப்பட்டன. பின்னர், அந்தத் திட்டம் YaST மற்றும் RPM package format-ஐப் பயன்படுத்தித் தனிப்பாதையில் சென்றது. இந்த இறுதிப் பகுதி பலருக்குக் குழப்பத்தை ஏற்படுத்துகிறது. SUSE மற்றும் openSUSE ஆகியவை RPM package-களைப் பயன்படுத்துகின்றன, ஆனால் அவை Red Hat-ன் வழித்தோன்றல்கள் அல்ல. format மட்டுமே இடம் பெயர்ந்தது, அதன் வம்சாவளி அல்ல.
Debian, 1993: ஒரு சமூக ஒப்பந்தம் மற்றும் மூன்று தொகுப்புகளைக் கொண்ட pipeline
Ian Murdock, 16 ஆகஸ்ட் 1993 அன்று Debian-ஐ அறிவித்தார். Slackware வெளியான மூன்று வாரங்களுக்குப் பிறகு, அதே காரணத்திற்காக இது தொடங்கப்பட்டது. அவரது துணைவியார் Debra மற்றும் அவரது பெயர்களை இணைத்து Debian என்ற பெயர் உருவானது. ஜனவரி 1994-ல் Debian Manifesto வெளியிடப்பட்டது; ஒரு நிறுவனம் அல்லாமல், தன்னார்வலர்களால் வெளிப்படையாக இந்த distribution பராமரிக்கப்படும் என்பதே அதன் நிபந்தனை.
அதன்பின் Debian தனது விதிமுறைகளை ஆவணப்படுத்தியது. ஜூலை 1997-ல் Debian Social Contract மற்றும் DFSG (Debian free software guidelines) ஏற்றுக்கொள்ளப்பட்டன. 1998-ல் Open Source Definition-க்கு DFSG அடிப்படையாக அமைந்தது. ஒரு distribution-ல் எவை இருக்க வேண்டும் என்பதைத் தீர்மானிக்க எழுதப்பட்ட ஆவணம், ஒட்டுமொத்த மென்பொருள் துறைக்குமான உரிம வகையை வரையறுத்தது. இதனால்தான் உங்கள் sources.list-ல் பல்வேறு கூறுகள் உள்ளன: main-ல் வழிகாட்டுதல்களைப் பூர்த்தி செய்யும் மென்பொருட்கள் உள்ளன; contrib மற்றும் non-free-ல் அந்த நிபந்தனைகளை நிறைவேற்றாதவை உள்ளன. Debian 12-ல் non-free-firmware சேர்க்கப்பட்டது, இதனால் வயர்லெஸ் கார்டு கொண்ட மடிக்கணினிகளில் கூடுதல் தேடல்கள் இன்றி மென்பொருட்களை நிறுவ முடியும்.
இதன் கருவிகள் மற்றொரு முக்கிய பாரம்பரியமாகும். dpkg ஒரு தொகுப்பை நிறுவும்போது, ஏதேனும் விடுபட்டிருந்தால் அதைத் தடுத்து, dpkg: dependency problems prevent configuration of-ஐக் காட்டும். 1999-ல் Debian 2.1-ல் இயல்பானதாக மாறிய APT (advanced package tool), எதை, எந்த வரிசையில் பதிவிறக்க வேண்டும் என்பதைத் தீர்மானிக்கும் அடுக்காகும். Debian-ஐ அடிப்படையாகக் கொண்ட அனைத்து distribution-களிலும் உள்ள ஒவ்வொரு apt கட்டளையும் இந்த உழைப்பின் விளைவே.
வெளியீட்டு முறையில் மூன்று தொகுப்புகள் மற்றும் ஒரு விதி உள்ளது. ஒரு பராமரிப்பாளர் (maintainer) மென்பொருளை unstable தொகுப்பில் பதிவேற்றுவார், இதற்கு sid என்று நிரந்தரக் குறியீட்டுப் பெயர் உண்டு. ஒரு script, அந்தத் தொகுப்பு release architectures-ல் சரியாக build ஆகி, புதிய release critical bug ஏதும் இல்லை என்றால், சுமார் 5 முதல் 10 நாட்களில் அதை testing தொகுப்பிற்கு மாற்றும். பின்னர் testing தொகுப்பு முடக்கப்படும் (freeze), release குழு எஞ்சியிருக்கும் பிழைகளைச் சரிசெய்யும். பிழைகளின் பட்டியல் போதுமான அளவு குறைந்தவுடன் stable பதிப்பு வெளியாகும். இது தேதியை அடிப்படையாகக் கொண்டதல்ல. இதனால்தான் Debian stable பதிப்பு பழையதாகத் தெரிந்தாலும், சிறப்பாகச் செயல்படுகிறது: freeze செய்யப்படும்போது version எண்கள் நிறுத்தப்படும், ஆனால் பாதுகாப்புத் திருத்தங்கள் (security fixes) தொடர்ந்து backport செய்யப்படும்.
நிர்வாகமும் ஆவணப்படுத்தப்பட்டுள்ளது; தேர்ந்தெடுக்கப்பட்ட திட்டத் தலைவர் மற்றும் பொதுத் தீர்மானங்கள் (general resolutions) மூலம் இது இயங்குகிறது. 2014-ல் இந்த அமைப்பு systemd-ஐ இயல்பான init system-ஆகத் தேர்ந்தெடுத்தது. இதை ஏற்காதவர்கள் Devuan-ஐ உருவாக்கினர், அது 2017-ல் தனது முதல் பதிப்பை வெளியிட்டது. இந்த மாற்றத்தைச் செய்த முதல் அல்லது கடைசி distribution Debian அல்ல. இது ஏன் தொடர்ந்து நிகழ்ந்தது மற்றும் அதில் முன்வைக்கப்பட்ட சரியான ஆட்சேபனைகள் குறித்த விவரங்களை systemd எவ்வாறு SysV init-க்கு மாற்றாக வந்தது என்பதற்கான விளக்கம் பகுதியில் காணலாம். Ubuntu, Raspberry Pi OS, Proxmox VE, Kali மற்றும் Linux Mint ஆகியவை இதன் பெரிய வழித்தோன்றல்கள் ஆகும்.
Red Hat, 1994: RPM, மற்றும் Fedora மற்றும் RHEL எனப் பிரிதல்
Marc Ewing, 1994-ஆம் ஆண்டு Halloween சமயத்தில் முதல் Red Hat Linux-ஐ வெளியிட்டார். Bob Young-ன் நிறுவனம் 1995-ல் அதை வாங்கியது. மென்பொருளுக்குப் பதிலாக ஆதரவை (support) விற்பனை செய்யும் முதல் Linux வணிகத்தை இவர்கள் இருவரும் உருவாக்கினர். Red Hat நிறுவனம் 1999 ஆகஸ்ட் 11 அன்று பொதுப் பங்குகளை வெளியிட்டது. IBM நிறுவனம் சுமார் 34 பில்லியன் டாலர்களுக்கு, 2019 ஜூலையில் இந்த நிறுவனத்தைக் கையகப்படுத்தியது. எனவே, பெரும்பாலான enterprise மென்பொருள்கள் சான்றளிக்கப்பட்ட (certified) இந்த விநியோகம், அன்றிலிருந்து IBM-ன் சொத்தாக உள்ளது.
இதன் நீடித்த தொழில்நுட்ப பங்களிப்பு RPM (Red Hat package manager) ஆகும். இது 1995-ல் Red Hat Linux 2.0-க்காக Erik Troan மற்றும் Marc Ewing ஆகியோரால் எழுதப்பட்டது. ஒரு RPM அதன் dependencies-ஐ அறிவிக்கிறது. இது ஒரு spec file-லிருந்து உருவாக்கப்படுகிறது; இது எவரும் இயக்கக்கூடிய ஒரு build recipe ஆகும். இந்த இரண்டாவது பண்புதான், பிற்காலத்தில் Red Hat-ன் enterprise தயாரிப்பைச் சுதந்திரமாக மீண்டும் உருவாக்க (independent rebuilds) வழிவகுத்தது.
2003-ல் வெளியான Red Hat Linux 9, அதன் அசல் வரிசையின் கடைசி பதிப்பாகும். நிறுவனம் அதை இரண்டாகப் பிரித்தது: 2003 நவம்பரில் வேகமான சமூக வெளியீடாக (community release) Fedora Core 1, மற்றும் 2002-ல் Advanced Server 2.1-ஆகத் தொடங்கி, மெதுவான கட்டணச் சேவையாக RHEL (Red Hat Enterprise Linux). இதற்கான காரணம் தெளிவானது. புதிய பதிப்புகளைச் சோதிக்கும் இடமாகவும், ஒரு வங்கி பத்து ஆண்டுகள் மாற்றமில்லாமல் இயக்கும் தளமாகவும் ஒரே தயாரிப்பு இருக்க முடியாது. இந்த இரண்டு பகுதிகளும் இணைக்கப்பட்டுள்ளன: ஒரு RHEL major version, ஒரு Fedora வெளியீட்டிலிருந்து கிளைத்து (branches), நிலைப்படுத்தப்பட்டு (stabilised), பின்னர் முடக்கப்படுகிறது (frozen). package tool-ம் அதே கால அட்டவணையில் நகர்ந்தது; 2000-களில் yum-லிருந்து, 2015-ல் Fedora-வின் இயல்புநிலை கருவியாக dnf-க்கு மாறியது, இவை இரண்டிற்கும் அடியில் rpm செயல்படுகிறது.
CentOS ஏன் இலவச RHEL மறுஉருவாக்கமாக (rebuild) இருப்பதை நிறுத்தியது
2004-ல் CentOS ஒரு எளிய நோக்கத்துடன் தொடங்கியது: Red Hat வெளியிடும் source packages-ஐ எடுத்து, அதன் வர்த்தக முத்திரைகளை நீக்கி, அவற்றை மீண்டும் உருவாக்கி (rebuild), இலவசமாக வழங்குவது. ஒரு தசாப்த காலத்திற்கு இதுவே இயல்பான இலவச server distribution-ஆக இருந்தது. 2014-ல் Red Hat இந்தத் திட்டத்தைத் தனது கட்டுப்பாட்டிற்குள் கொண்டு வந்தது.
8 டிசம்பர் 2020 அன்று, CentOS Linux 8-ன் ஆயுட்காலம் 31 டிசம்பர் 2021-ல் முடிவடையும் என்று Red Hat அறிவித்தது. இது அறிவிக்கப்பட்ட தேதியை விட எட்டு ஆண்டுகள் முன்னதாகவே முடிவுக்கு வந்தது. மேலும், CentOS என்ற பெயர் CentOS Stream என்ற பெயரில் தொடரும் என்றும் அறிவிக்கப்பட்டது. Stream என்பது ஒரு மறுஉருவாக்கம் அல்ல. இது RHEL-ன் minor releases உருவாக்கப்படும் ஒரு கிளை (branch) ஆகும். எனவே, இது RHEL-க்கு பின்னால் இல்லாமல், அதற்கு முன்னால் இயங்குகிறது. பல ஆண்டுகள் பயன்படுத்தத் திட்டமிடும் ஒரு machine-க்கு, இது தவறான திசையாகும். ஏனெனில், Red Hat-ன் பணம் செலுத்தும் வாடிக்கையாளர்களுக்குக் கிடைப்பதற்கு முன்பே மாற்றங்கள் உங்களுக்கு வந்துவிடும்.
2021-ல் இரண்டு மறுஉருவாக்கங்கள் தோன்றின. CentOS-ஐ உருவாக்கியவர்களில் ஒருவரான Gregory Kurtzer என்பவரால் Rocky Linux தொடங்கப்பட்டது. AlmaLinux, CloudLinux நிறுவனத்தால் நிதியளிக்கப்பட்டது. ஜூன் 2023-ல், CentOS Stream மற்றும் அதன் வாடிக்கையாளர் போர்ட்டலைத் தவிர மற்ற இடங்களில் RHEL source-களை வெளியிடுவதை Red Hat நிறுத்தியது. Rocky Linux தொடர்ந்து அப்படியே மறுஉருவாக்கம் செய்வதை நோக்கமாகக் கொண்டது. AlmaLinux தனது இலக்கை ABI (application binary interface) இணக்கத்தன்மைக்கு மாற்றியது. இதன் பொருள், RHEL-க்காக உருவாக்கப்பட்ட மென்பொருள் இதில் இயங்கும், ஆனால் பிழைப் பட்டியல் (bug list) அப்படியே ஒத்துப்போகும் என்ற உறுதிமொழி இல்லை. அந்த ஆண்டின் பிற்பகுதியில், பகிரப்பட்ட source-களை வெளியிட Oracle, SUSE மற்றும் CIQ ஆகியவை இணைந்து OpenELA-வை உருவாக்கின. 2003-ல் தொடங்கிய பிரிவினை முதல் 2023-ல் ஏற்பட்ட source மாற்றங்கள் மற்றும் ஒவ்வொரு மறுஉருவாக்கமும் தற்போது என்ன உறுதி அளிக்கின்றன என்பது வரையிலான முழு வரலாறும் Red Hat, CentOS, Rocky மற்றும் AlmaLinux பற்றிய விரிவான கட்டுரையில் விவரிக்கப்பட்டுள்ளது.
ஒரு service provider-ன் image பட்டியலில் இன்னும் CentOS என்று இருந்தால், அதைத் தேர்ந்தெடுக்கும் முன் அது எதைக் குறிக்கிறது என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்.
cat /etc/os-releaseNAME="CentOS Stream" என்பது RHEL-க்கு முன்னோடியாக இருக்கும் ஒரு rolling development branch ஆகும். NAME="AlmaLinux" அல்லது NAME="Rocky Linux" என்பது அதைத் தொடர்ந்து வரும், பத்து ஆண்டு கால அவகாசம் கொண்ட ஒரு மறுஉருவாக்கம் (rebuild) ஆகும்.
Ubuntu 20.04: Debian unstable-ன் காலண்டர் அடிப்படையிலான ஒரு snapshot
Ubuntu 4.10, அக்டோபர் 20, 2004 அன்று Mark Shuttleworth-ன் நிதியுதவியுடன் வெளியிடப்பட்டது. Debian-உடனான இதன் உறவு உணர்வுப்பூர்வமானது அல்ல, தொழில்நுட்ப ரீதியானது. ஒவ்வொரு சுழற்சியின் தொடக்கத்திலும், Debian unstable-லிருந்து packages இறக்குமதி செய்யப்பட்டு புதிய Ubuntu release உருவாக்கப்படுகிறது. இந்த இறக்குமதி செயல்முறை சுழற்சியின் பாதியில் உள்ள Debian Import Freeze வரை தொடரும்; அதன் பிறகு Ubuntu தனது சொந்த மாற்றங்களைச் செய்துகொள்ளும். பல Ubuntu packages, Debian package-உடன் ஒரு delta-வைச் சேர்த்தே உருவாக்கப்படுகின்றன; இதை changelog-ல் காணலாம்.
மற்றொரு பாதி காலண்டர் முறை. Debian தயாரானவுடன் வெளியிடப்படும். Ubuntu ஏப்ரல் மற்றும் அக்டோபர் மாதங்களில் வெளியிடப்படும், அதன் version எண் அந்தத் தேதியைக் குறிக்கும்: 24.04 என்பது ஏப்ரல் 2024-ல் வெளியானது. ஒவ்வொரு இரண்டாவது ஏப்ரல் வெளியீடும் LTS (long term support) ஆகும்; ஒரு provider எந்தக் கூடுதல் விளக்கமும் இன்றி Ubuntu-வை வழங்கினால், அது இந்த LTS பதிப்பையே குறிக்கும். ஒரு server-க்கு இவ்விரண்டில் எது சிறந்தது என்பது Ubuntu LTS மற்றும் interim releases-க்கு இடையிலான தேர்வு என்ற தலைப்பில் விவாதிக்கப்படுகிறது. ஒரு LTS-லிருந்து அடுத்த LTS-க்கு மாறுவதற்கான வழிமுறைகள் 24.04-லிருந்து 26.04-க்கு upgrade செய்தல் என்ற பகுதியில் விளக்கப்பட்டுள்ளன.
ஒவ்வொரு ஆண்டும் server admins-ஐக் குழப்பும் ஒரு நுணுக்கமான விஷயம் உண்டு. Ubuntu-வின் archive பல கூறுகளாகப் பிரிக்கப்பட்டுள்ளது. main, முழு ஆதரவு காலத்திற்கும் Canonical நிறுவனத்தால் பராமரிக்கப்படுகிறது. universe, சமூகத்தால் (community) பராமரிக்கப்படுகிறது, இதற்கான பாதுகாப்பு உத்தரவாதம் மாறுபட்டது. apt install, இந்த வேறுபாட்டைப் பற்றி எதையும் குறிப்பிடுவதில்லை. ஒரு கட்டளை மூலம் இதை அறியலாம்:
apt-cache policy nginxஒரு repository வரி /main என்று முடிந்தால், அந்த package-க்கு Canonical-ன் பாதுகாப்பு குழு பொறுப்பு என்று பொருள். /universe என்று முடிந்தால், அதற்குச் சமூகம் பொறுப்பு என்று பொருள். இணையத்தை எதிர்கொள்ளும் எந்தவொரு சேவைக்கும் இதைச் சரிபார்க்கவும்.
Arch, 2002: rolling releases மற்றும் partial upgrade-ன் விளைவுகள்
Judd Vinet, 11 March 2002 அன்று Arch 0.1-ஐ வெளியிட்டார். இதற்காக அவர் சொந்தமாக எழுதிய pacman என்ற package manager-ஐயும், plain shell scripts-ஆக அமைந்த build recipes-களையும் பயன்படுத்தினார். Arch-ல் versioned releases என்ற முறையே கிடையாது. இதன் install media என்பது rolling repositories-ன் குறிப்பிட்ட காலக்கட்ட snapshots மட்டுமே. எனவே, 2019-ல் install செய்யப்பட்டு வாரந்தோறும் update செய்யப்படும் ஒரு machine-ம், இன்று புதிதாக install செய்யப்பட்ட machine-ம் ஒரே Arch-ஐத்தான் இயக்குகின்றன. AUR (Arch user repository) பயனர்களால் பங்களிக்கப்படும் build recipes-களைக் கொண்டுள்ளது. இவை சரிபார்க்கப்பட்ட packages அல்ல, வெறும் recipes மட்டுமே. எனவே, ஒரு PKGBUILD-ஐ இயக்குவதற்கு முன்பு அதை வாசிப்பது உங்கள் பணியின் ஒரு பகுதியாகும்.
Rolling முறையில் ஒரு தோல்விக்கான வாய்ப்பு உள்ளது, அது எப்போதும் பயனரின் தவறாலேயே நிகழ்கிறது. pacman -Sy foo மூலம் ஒரு தனிப்பட்ட package-ஐ மட்டும் install செய்யும்போது, அது package database-ஐ refresh செய்துவிட்டு, வட்டில் (disk) உள்ள பழைய libraries-ஐ விட புதிய libraries-உடன் இணைக்கப்பட்ட ஒரு புதிய binary-ஐ நிறுவுகிறது. இதனால் programs பின்வருமாறு தோல்வியடையும்:
error while loading shared libraries: libcrypto.so.3: cannot open shared object file: No such file or directoryஇதற்கு ஆதரவளிக்கப்படும் முறை pacman -Syu ஆகும், இது அனைத்தையும் ஒன்றாகவே update செய்கிறது. சில குறிப்பிட்ட upgrades-க்கு முன்னதாக கைமுறையாக (manual) சில மாற்றங்களைச் செய்ய வேண்டும் என்று இந்தத் திட்டம் செய்திகளை வெளியிடுகிறது. அவற்றை வாசிக்காமல் upgrade செய்தால், machine boot ஆகாத நிலைக்குச் செல்லக்கூடும்.
எனவே, நீங்கள் கவனிக்காமல் விட்டுவிடத் திட்டமிடும் ஒரு server-க்கு Arch சிறந்த தேர்வாக இருக்காது. வாரந்தோறும் update செய்யப்படும் ஒரு machine-க்கு இது பொருத்தமானது. ஆனால், ஒரு வருடம் கழித்து ஒரே ஒருமுறை மட்டும் update செய்யப்படும் machine, நீங்கள் தவிர்த்த அனைத்து manual மாற்றங்களையும் ஒரே நேரத்தில் உங்கள் முன் கொண்டு வந்து நிறுத்தும்.
Alpine: கன்டெய்னர்கள் மூலம் புகழ்பெற்ற ஒரு சிறிய விநியோகம்
Alpine 2005-ஆம் ஆண்டு வாக்கில் LEAF (Linux embedded appliance framework)-ன் ஒரு கிளையாகத் தொடங்கியது. இதுவே Linux Router Project-லிருந்து உருவானது. Natanael Copa இதை டெஸ்க்டாப்புகளுக்காக அல்லாமல், அப்ளையன்ஸ்களுக்காக (appliances) உருவாக்கினார். இது வழக்கமான userland-ன் பெரும்பகுதியை மாற்றுகிறது: GNU C library-க்கு பதிலாக musl, GNU core utilities-க்கு பதிலாக BusyBox, systemd-க்கு பதிலாக OpenRC மற்றும் package manager-ஆக apk ஆகியவற்றைப் பயன்படுத்துகிறது. 2014-ல் வெளியான Alpine 3.0 தான் musl-க்கு மாறிய பதிப்பாகும்.
கன்டெய்னர்கள் இதை பிரபலமாக்கின. Debian அல்லது Ubuntu base-ஐ விட Alpine base layer மிகச் சிறியது. எனவே, 2016-லிருந்து இது ஒரு பொதுவான base image-ஆக மாறியது. Alpine-ஐ ஒருமுறை கூட இன்ஸ்டால் செய்யாத பலர், தினமும் அதைப் பயன்படுத்தி வருகின்றனர்.
இதன் விலை என்னவென்றால், musl என்பது glibc அல்ல. இந்த இடைவெளி, தொடர்பில்லாதது போலத் தோன்றும் பிழைகளாக வெளிப்படும். glibc-உடன் இணைக்கப்பட்ட (linked) ஒரு binary, Alpine-ல் இயங்காது. ஏற்கனவே இருக்கும் ஒரு கோப்பைத் தேட வைக்கும் செய்தியை அது காட்டும்:
sh: ./myapp: not foundஅந்த நிரல் (program) அங்கேயே இருக்கிறது. ஆனால் அதன் ELF interpreter இல்லை, ஏனெனில் glibc-ன் loader அங்கு இல்லை. Python மற்றொரு வழக்கமான ஆச்சரியம்: manylinux-க்காக உருவாக்கப்பட்ட prebuilt wheels, musl-ல் இன்ஸ்டால் ஆகாது. எனவே, pip source-லிருந்து compile செய்ய முயற்சிக்கும்; compiler இன்ஸ்டால் செய்யப்படாதபோது அது நின்றுவிடும். 2021-ல் வந்த musllinux wheel standard, அந்த wheels-ஐ வெளியிடும் திட்டங்களுக்கு மட்டுமே இந்தச் சிக்கலைத் தீர்த்தது, மற்றவர்களுக்கு அல்ல.
ஒரு VPS-ல் host operating system-ஆக, Alpine சிறிய அளவில் இன்ஸ்டால் ஆகி, வேகமாக அப்டேட் ஆகும். ஆனால், பெரும்பாலான ஆவணங்கள் (documentation) குறிப்பிடும் பாதையிலிருந்து இது உங்களை விலக்கி வைக்கும். systemctl enable-ஐ இயக்கச் சொல்லும் ஒவ்வொரு வழிகாட்டியையும் rc-update add-க்கு மாற்ற வேண்டியது அவசியம்.
மாறாத தலைமுறை: அணுநிலை மேம்படுத்தல்கள் மற்றும் image அடிப்படையிலான server-கள்
புதிய கிளை, package பட்டியலுக்குப் பதிலாக மேம்படுத்தல் மாதிரியையே மாற்றுகிறது. ostree அடிப்படையிலான அமைப்பு /usr-ஐ read only நிலையில் வைத்திருக்கும். ஒரு மேம்படுத்தல் என்பது முழுமையான புதிய filesystem tree ஆகும்; இது தரவிறக்கம் செய்யப்பட்டு, தயார் நிலையில் வைக்கப்பட்டு, அடுத்த reboot-ன் போது மாற்றப்படும். முந்தைய tree ஒரு boot entry-ஆகத் தங்கிவிடும், எனவே தவறான மேம்படுத்தல் ஏற்பட்டால், பழைய tree-க்கு reboot செய்வதன் மூலம் அதைச் சரிசெய்யலாம்.
Fedora Silverblue இதை 2018-ல் desktop-க்குக் கொண்டு வந்தது, Red Hat 2018-ல் CoreOS-ஐ வாங்கிய பிறகு, 2019-ல் Fedora CoreOS இதை server-களுக்குக் கொண்டு வந்தது. 2020-ல் Container Linux நிறுத்தப்பட்டபோது, Flatcar Container Linux அதன் தொடர்ச்சியாகச் செயல்பட்டது. openSUSE MicroOS, btrfs snapshots மற்றும் transactional-update மூலம் இதே இலக்கை அடைகிறது. 2024-ல் Red Hat, RHEL-ல் image அடிப்படையிலான முறையைச் சேர்த்தது. இது bootc-ன் மேல் கட்டமைக்கப்பட்டுள்ளது; இதில் operating system ஒரு container image-ஆக வழங்கப்படுகிறது மற்றும் ஒரு புதிய tag-ஐக் குறிப்பிடுவதன் மூலம் machine மேம்படுத்தப்படுகிறது. Talos Linux மிகத் தொலைதூரம் சென்று shell மற்றும் SSH-ஐ முழுமையாக நீக்கிவிட்டது: machine ஒரு API மூலம் கட்டமைக்கப்படுகிறது, எனவே login செய்வதற்கு எதுவும் இல்லை. 2007-ல் முதன்முதலில் வெளியிடப்பட்ட NixOS, வேறு ஒரு திசையிலிருந்து வருகிறது. முழு அமைப்பும் ஒரு declarative configuration மூலம் கட்டமைக்கப்படுகிறது, மேலும் முந்தைய தலைமுறைகளை boot செய்ய முடியும்.
உங்கள் provider இவற்றில் எதையும் one click image-ஆக வழங்க வாய்ப்பில்லை, ஏனெனில் இவை administrator SSH மூலம் கோப்புகளைத் திருத்துவதற்குப் பதிலாக, முதல் boot-ன் போது Ignition அல்லது cloud-init மூலம் கட்டமைக்கப்படும் என்று அவர்கள் எதிர்பார்க்கிறார்கள். நீங்கள் ஒரே நேரத்தில் பல Linux server-களை நிர்வகிக்கும் நிலைக்கு வரும்போது, ஒவ்வொரு server-ம் மற்றவற்றைப் போலவே இருப்பதை உறுதிப்படுத்த வேண்டியிருக்கும்; அப்போது இத்தகைய முறைகள் பல ஒரே மாதிரியான machine-களில் பயனுள்ளதாக இருக்கும்.
ஒரு release எவ்வளவு காலம் ஆதரிக்கப்படுகிறது?
ஒரு distribution-ன் release கொள்கையே நீங்கள் நீண்ட காலம் பயன்படுத்த வேண்டிய பகுதியாகும், இது பல ஆண்டுகள் என்ற அடிப்படையில் வெளியிடப்படுகிறது. தற்போதைய 5 server release-களுக்கான காலக்கெடு இதோ.
The data behind this chart
[
{
"distro": "Alpine 3.x",
"standard_years": 2,
"extended_total_years": 2
},
{
"distro": "Debian 13",
"standard_years": 3,
"extended_total_years": 5
},
{
"distro": "Ubuntu 26.04 LTS",
"standard_years": 5,
"extended_total_years": 10
},
{
"distro": "AlmaLinux 10",
"standard_years": 10,
"extended_total_years": 10
},
{
"distro": "RHEL 10",
"standard_years": 10,
"extended_total_years": 13
}
]Alpine ஒவ்வொரு 3.x branch-ஐயும் 2 ஆண்டுகளுக்கு ஆதரிக்கிறது, இதனால்தான் அடிக்கடி rebuild செய்யப்படும் container image-க்கு இது பொருத்தமானது, நீண்ட காலம் மாற்றமில்லாமல் இருக்கும் host-க்கு இது அவ்வளவு பொருத்தமானதல்ல. Debian-ன் பாதுகாப்பு குழு ஒரு stable release-ஐ சுமார் 3 ஆண்டுகளுக்கு கவனிக்கிறது, அதன் பிறகு LTS குழு பொதுவான architecture-களை மொத்தம் சுமார் 5 ஆண்டுகள் வரை கொண்டு செல்கிறது. ஒரு Ubuntu LTS, main-ல் உள்ள packages-க்கு 5 ஆண்டுகளை வழங்குகிறது, மேலும் Ubuntu Pro சந்தா அதை 10 ஆண்டுகளாக நீட்டிக்கிறது, இது குறைந்த எண்ணிக்கையிலான கணினிகளில் தனிப்பட்ட பயன்பாட்டிற்கு இலவசம். RHEL 10 10 ஆண்டுகளை வெளியிடுகிறது, கட்டணத்துடன் கூடிய extended life cycle support add-on இதை 13 ஆண்டுகள் வரை நீட்டிக்கிறது. AlmaLinux 10, RHEL-ன் 10 ஆண்டுகள் என்ற காலக்கெடுவை எந்த சந்தாவும் இன்றி வழங்குகிறது, இதுவே இத்தகைய rebuild-கள் இருப்பதற்கான முழுமையான காரணம்.
Arch-க்கு இங்கே வரிசை ஏதுமில்லை, ஏனெனில் rolling distribution-க்கு ஆதரவு அளிக்கப்படும் release என்று எதுவும் இல்லை. Arch-ஐப் பொறுத்தவரை ஒரு கணினியை எவ்வளவு காலம் மாற்றமில்லாமல் வைத்திருக்க முடியும் என்பதே முக்கியம், அது வாரங்களில் கணக்கிடப்படுகிறது.
இந்த எண்கள் எங்கிருந்து வருகின்றன
ஒவ்வொரு எண்ணும் அந்தந்த vendor-ன் சொந்தக் கொள்கையின்படி, ஆகஸ்ட் 2026-ல் வாசிக்கப்பட்டது. ஒரு தேதியைத் திட்டமிடும் முன் அவற்றைச் சரிபார்க்கவும், ஏனெனில் டிசம்பர் 2020-ல் CentOS பயனர்கள் கண்டறிந்தபடி, vendor-கள் அவற்றை மாற்றக்கூடும்.
உங்கள் VPS image பட்டியல் ஏன் இப்படி இருக்கிறது
ஒரு service provider, வாடிக்கையாளர்கள் கேட்கும் பெயர்களில் உள்ள images-ஐ அதன் hypervisor-ல் தானியங்கி முறையில் (unattended) நிறுவுகிறது. இதனால்தான் ஒவ்வொரு பட்டியலும் Ubuntu LTS மற்றும் Debian stable ஆகியவற்றுடன் தொடங்குகிறது. RHEL-ஐ அடிப்படையாகக் கொண்ட மென்பொருட்களைப் பயன்படுத்துபவர்களுக்காக AlmaLinux அல்லது Rocky சேர்க்கப்படுகின்றன. Alpine, Arch மற்றும் Fedora ஆகியவை பட்டியலின் இறுதியில் வைக்கப்படுகின்றன. VPS என்றால் என்ன மற்றும் image எப்படி disk-க்கு வருகிறது என்பதை நீங்கள் அறிந்தால், இந்தப் பட்டியல் முறை தெளிவாகப் புரியும்: தானியங்கி நிறுவலுக்குப் பொருத்தமான மற்றும் வாடிக்கையாளர் ஒரு server-ஐப் பயன்படுத்தும் காலத்தை விட நீண்ட காலம் ஆதரவு (support) கிடைக்கக்கூடிய operating systems-ஐயே provider தேர்வு செய்கிறது.
இந்தத் தேர்வு, நீங்கள் பயன்படுத்தும் package manager-ஐ மட்டும் தீர்மானிப்பதில்லை. இது மூன்று ஆண்டுகளுக்குப் பிறகு நீங்கள் செய்யப்போகும் upgrade முறையையும் தீர்மானிக்கிறது; இவை ஒவ்வொன்றும் அந்தந்த family-க்கு ஏற்ப முற்றிலும் மாறுபடும். Debian மற்றும் Ubuntu ஆகியவை in-place major upgrades-ஐ ஆதரிக்கின்றன. Red Hat family, leapp மூலம் அவற்றைச் செய்கிறது. Arch-க்கு பதிப்புகள் (version) இல்லாததால், அதற்கு upgrade கிடையாது. Alpine-ல் /etc/apk/repositories-ஐத் திருத்தி, apk upgrade --available-ஐ இயக்குவதன் மூலம் upgrade செய்யப்படுகிறது. மேலும், மூன்றாம் தரப்பு repository-களைச் சேர்க்காமல் எந்த மென்பொருளை நிறுவலாம், CVE (common vulnerabilities and exposures) பாதிப்பு ஏற்படும்போது யார் patch-ஐ வெளியிடுவார்கள், மற்றும் உங்கள் எதிர்கால மென்பொருள் எந்த init system மற்றும் C library-ஐ எதிர்பார்க்கும் என்பதையும் இந்தத் தேர்வுதான் தீர்மானிக்கிறது.
குறைவாக மதிப்பிடப்படும் மற்றொரு விளைவும் உள்ளது. இணையத்தில் உள்ள பெரும்பாலான பதில்கள் Debian family அல்லது Red Hat family-ஐ அடிப்படையாகக் கொண்டே எழுதப்படுகின்றன. எனவே, இந்த இரண்டைத் தவிர மற்றொன்றைத் தேர்ந்தெடுப்பது என்பது, அந்த machine-ன் வாழ்நாள் முழுவதும் வழிமுறைகளை நீங்களே மொழிபெயர்க்க வேண்டியிருக்கும் என்பதாகும். நீங்கள் எவ்வளவு அடிக்கடி server-ஐ நிர்வகிக்க விரும்புகிறீர்களோ, அதற்கு ஏற்ற release policy கொண்ட family-யைத் தேர்ந்தெடுத்து, அதிலேயே தொடருங்கள். அதன் மேல் உள்ள packages-ஐ மாற்றுவது எளிது. ஆனால், அடிப்படையான distribution-ஐ மாற்றுவது என்பது அந்த server-ஐ மீண்டும் புதிதாக உருவாக்குவதற்குச் சமம்.
FAQ
எனது server எந்த Linux distribution குடும்பத்தைச் சேர்ந்தது?
cat /etc/os-release கட்டளையை இயக்கவும். ID புலம் distribution-ன் பெயரையும், ID_LIKE புலம் அதன் குடும்பப் பெயரையும் குறிப்பிடும். உதாரணமாக, ஒரு Ubuntu machine ID_LIKE=debian என்றும், ஒரு AlmaLinux machine ID_LIKE="rhel centos fedora" என்றும் காட்டும். Package manager-ஐ வைத்தும் இதை அறியலாம். apt மற்றும் dpkg ஆகியவை Debian குடும்பத்தையும், dnf மற்றும் rpm ஆகியவை Red Hat குடும்பத்தையும், apk என்பது Alpine-ஐயும், pacman என்பது Arch-ஐயும் குறிக்கும்.
CentOS இன்னும் RHEL-ன் இலவசப் பதிப்பாக உள்ளதா?
இல்லை. CentOS Linux 8, அந்தப் பெயரில் வந்த கடைசி rebuild, 31 December 2021 அன்று முடிவடைந்தது. CentOS Linux 7-ன் ஆயுட்காலம் 30 June 2024 அன்று முடிந்தது. தற்போதுள்ள CentOS Stream, RHEL-ன் minor releases உருவாக்கப்படும் ஒரு கிளையாகும். எனவே, இதில் மாற்றங்கள் RHEL-க்கு முன்பே வந்துவிடும். பழைய CentOS-ன் இடத்தைப் பிடித்துள்ள இலவச rebuild-கள் AlmaLinux மற்றும் Rocky Linux ஆகும். இவை இரண்டுமே பத்து வருட ஆதரவு காலத்தைக் கொண்டுள்ளன.
Debian stable ஏன் இவ்வளவு பழைய version எண்களைக் கொண்டுள்ளது?
ஏனெனில், version எண் மாற்றப்படாமல் இருக்கும் அதே வேளையில், பிழைத்திருத்தங்கள் (fixes) தொடர்ந்து வழங்கப்படுகின்றன. Debian புதிய upstream release-ஐ இறக்குமதி செய்வதற்குப் பதிலாக, தான் வெளியிட்ட version-லேயே பாதுகாப்புத் திருத்தங்களை (security patches) backport செய்கிறது. எனவே, 2.4.57-2+deb13u1 என்று காட்டும் ஒரு package-ல் கடந்த வாரம் வெளியான திருத்தம் கூட இருக்கலாம். Upstream version-க்கு அடுத்துள்ள suffix என்பது Debian revision ஆகும். apt changelog <package> கட்டளை அதில் என்னென்ன மாற்றங்கள் செய்யப்பட்டுள்ளன என்பதைப் பட்டியலிடும். Version எண்களை மட்டும் வைத்து ஒரு Debian server-ன் பாதுகாப்பை மதிப்பிடுவது எப்போதும் தவறான முடிவையே தரும்.
VPS-ல் Arch போன்ற rolling release-ஐப் பயன்படுத்தலாமா?
நீங்கள் அதைத் திட்டமிட்டபடி update செய்வீர்கள் என்றால் மட்டுமே பயன்படுத்தலாம். ஒரு rolling distribution, அனைத்து machine-களும் தற்போதைய package தொகுப்பிலேயே இருக்க வேண்டும் என்று எதிர்பார்க்கிறது. எனவே, pacman -Sy foo மூலம் ஒரு package-ஐ மட்டும் update செய்வது, பொருந்தாத libraries மற்றும் cannot open shared object file போன்ற பிழைகளை உருவாக்கும். pacman -Syu கட்டளையைத் தொடர்ந்து இயக்கவும், ஒவ்வொரு முறை இயக்கும் முன்பும் project news பக்கத்தைப் படிக்கவும்; அப்போதுதான் system நிலையாக இருக்கும். ஒரு வருடம் கழித்து update செய்தால், அந்த முதல் upgrade ஆபத்தானதாக மாறக்கூடும்.
Immutable அல்லது atomic distribution எதை மாற்றுகிறது?
இது updates எப்போது அமல்படுத்தப்படுகின்றன மற்றும் அவற்றை எப்படித் திரும்பப் பெறுவது (undo) என்பதை மாற்றுகிறது. /usr read-only முறையில் mount செய்யப்படுகிறது. ஒரு update முழுமையான புதிய tree-ஆகத் தயார் செய்யப்பட்டு, reboot செய்யும்போது மாற்றப்படுகிறது. முந்தைய tree ஒரு boot entry-ஆகச் சேமிக்கப்படுவதால், தேவைப்பட்டால் rollback செய்யலாம். இதனால் உங்கள் machine முழுமையாக update செய்யப்பட்டிருக்கும் அல்லது பழைய நிலையிலேயே இருக்கும்; பாதியளவு update ஆன நிலை ஏற்படாது. கோப்புகளை நேரடியாகத் திருத்தி software நிறுவும் முறை இதில் கிடையாது; எனவே applications containers அல்லது layered packages-க்கு மாற்றப்படுகின்றன.