Linux distributions చరిత్ర: Slackware, Debian, Red Hat
Linux distributions కుటుంబ వృక్షాన్ని, Slackware, Debian, Red Hat వారసత్వాన్ని, package managers ను పరిశీలించి మీ VPS images వెనుక ఉన్న ఎంపికలను అర్థం చేసుకోండి.
Linux distribution అంటే వాస్తవానికి ఏమిటి
Linux distributions చరిత్ర ఒక ఖాళీతో ప్రారంభమవుతుంది: Linux kernel మాత్రమే ఉంటే, మనిషి ఉపయోగించగల పని ఏదీ అది చేయదు. అది boot అయి hardware ను గుర్తిస్తుంది. తరువాత ఆగిపోతుంది. ఎవరో userland ను జోడించాలి, software ఎలా install చేసి update చేయాలో నిర్ణయించాలి, అలాగే సంవత్సరాల పాటు దాన్ని సరిచేస్తామని హామీ ఇవ్వాలి. Distribution అంటే ఈ నిర్ణయాల సమాహారం, అలాగే తరువాత కూడా కొనసాగుతూ పనిచేసే వ్యక్తుల సమూహం.
దీనిలో ఐదు భాగాలు ఉంటాయి. వీటిలో ఏ ఒక్కదాన్ని మార్చినా, ఎక్కువ binaries ఒకేలా ఉన్నప్పటికీ, మీకు వేరే distribution లభిస్తుంది:
- Project ఎంచుకున్న version లోని kernel, దానికి జోడించిన patches మరియు drivers తో.
- Userland: C library, shell, init system, standard commands.
- Package format మరియు దాన్ని install చేసే tool.
- Release policy: ఏమి మారవచ్చు, ఎంత తరచుగా మారవచ్చు, ప్రతి release కు ఎంతకాలం fixes అందుతాయి.
- వ్యక్తులు: package maintainers, security team, అలాగే package విఫలమైనప్పుడు సమాధానం ఇచ్చే వ్యక్తి.
Kernel భాగం shared గా ఉంటుంది. అందువల్ల రెండు Linux distributions, ఏదైనా ఒకటి మరో Unix తో పోలిస్తే, పరస్పరం చాలా దగ్గరగా ఉంటాయి. server platforms గా Linux మరియు FreeBSD ను పోల్చేటప్పుడు ఈ విషయాన్ని గుర్తుంచుకోవాలి. అక్కడ kernel మరియు base userland ను ఒకే project నిర్మించి, కలిపి release చేస్తుంది. Linux లో ఈ భాగాలు వేర్వేరు upstreams నుంచి వస్తాయి. వాటి మధ్య అనుకూలత కల్పించేది distribution.
Linux distributions చరిత్ర: మూడు కుటుంబాలు
1993 మరియు 1994లో ప్రారంభమైన మూడు ప్రాజెక్టులు తరువాత కుటుంబాలుగా మారాయి: Slackware, Debian మరియు Red Hat. నేటి VPS control panel లో కనిపించే దాదాపు ప్రతి image వీటిలో ఒకటి లేదా వీటి నుంచి వచ్చిన derivative అయి ఉంటుంది. ఒక derivative package format, file layout మరియు సాధారణంగా release పద్ధతులను వారసత్వంగా పొందుతుంది. అందుకే branding తొలగించిన తర్వాత కూడా Debian derivative, Debian లాగే అనిపిస్తుంది.
స్వతంత్ర distributions కు ప్రత్యేకంగా ప్రస్తావన అవసరం, ఎందుకంటే అవి ఏ project నుంచీ fork కాలేదు. Arch, Gentoo, Alpine, NixOS మరియు Void తమ స్వంత package manager లను, స్వంత నియమాలను రూపొందించుకున్నాయి. వీటిలో Arch మరియు Alpine అనే రెండు distributions మీ provider image list లోకి కూడా వచ్చాయి. దానికి desktop తో ఎలాంటి సంబంధం లేదు.
1992: కుటుంబాలకు ముందు ఉన్న distributions
MCC Interim Linux 1992 ఫిబ్రవరిలో Manchester Computing Centreలో Owen Le Blanc చేత రూపొందించబడింది. ఇది kernel మరియు GNU (GNU's not Unix) tools ను menu ఆధారిత installerతో రెండు floppy imagesలో అందించింది. ఈ పనిని చేతితో చేయడానికి ఒక రోజు సమయం పట్టేది కాబట్టి ఇది రూపొందించబడింది.
Peter MacDonald 1992లో విడుదల చేసిన SLS (Softlanding Linux System) మరింత ముందుకు వెళ్లి X (the X Window System) మరియు TCP/IP networkingను కూడా జోడించింది. distribution అనే పదానికి ప్రస్తుత అర్థం రావడానికి SLS ఒక కారణం. అయితే అది bugsతో నిండి ఉండేది మరియు maintenance నెమ్మదిగా సాగేది. అందువల్ల 1993లో ఇద్దరు వ్యక్తులు వేర్వేరుగా దాన్ని సరిచేయాలని నిర్ణయించుకున్నారు. ఒకరు దాన్ని మళ్లీ నిర్మించారు. మరొకరు లిఖితపూర్వక నియమాలతో మొదటి నుంచి ప్రారంభించారు.
Slackware, 1993: ఇప్పటికీ విడుదలవుతున్న అత్యంత పాత కుటుంబం
Patrick Volkerding 16 July 1993న Slackware 1.00ను విడుదల చేశారు. ఇది SLS ఆధారంగా రూపొందించబడింది మరియు అందులోని bugs తొలగించబడ్డాయి. ఇది ఇప్పటికీ నిర్వహించబడుతోంది. అందువల్ల ఇప్పటికీ కొనసాగుతున్న అత్యంత పాత Linux distribution ఇదే.
Slackware package అనేది దాని లోపల install script ఉన్న compressed tar archive. ఇందులో dependency resolution ఉండదు. కొత్త package కు అవసరమైన library ఇప్పటికే diskలో ఉందో లేదో ఏ వ్యవస్థా తనిఖీ చేయదు. ఈ ఒక్క నిర్ణయం మిగతా నిర్మాణాన్ని మొత్తం ప్రభావితం చేసింది. Tool dependencies ను resolve చేయకపోతే, విడుదలయ్యే package set నిర్మాణపరంగానే పరస్పర అనుకూలంగా ఉండాలి. అందువల్ల releases అరుదుగా, సంప్రదాయబద్ధంగా ఉంటాయి. Slackware 15.0, 14.2 విడుదలైన ఆరు సంవత్సరాల తరువాత, February 2022లో వచ్చింది.
ఈ కుటుంబం చిన్నది. 1990ల మధ్యకాలంలో SUSE యొక్క ప్రారంభ releases Slackware ఆధారంగా రూపొందించబడ్డాయి. తరువాత ఆ project YaSTతో, ఆపై RPM package formatతో, తనదైన మార్గంలో సాగింది. చివరి విషయం చాలామందిని గందరగోళానికి గురిచేస్తుంది. SUSE మరియు openSUSE RPM packages ఉపయోగిస్తాయి. అవి Red Hat derivatives కావు. Format మాత్రం ఇతర projectలకు చేరింది. Lineage మాత్రం మారలేదు.
Debian, 1993: ఒక సామాజిక ఒప్పందం మరియు మూడు suiteల pipeline
Ian Murdock, Slackware ప్రకటించబడిన మూడు వారాల తర్వాత, అదే కారణంతో 16 August 1993న Debianను ప్రకటించారు. ఈ పేరులో ఆయన భాగస్వామి Debra పేరు మరియు ఆయన స్వంత పేరు కలిశాయి. Debian Manifesto 1994 Januaryలో వెలువడింది. అందులో ఈ distributionను కంపెనీ కాకుండా volunteers బహిరంగంగా నిర్వహిస్తారని నిబంధనలు నిర్ణయించబడ్డాయి.
తర్వాత Debian ఆ నిబంధనలను లిఖితపూర్వకంగా రూపొందించింది. Debian Social Contract మరియు DFSG (Debian free software guidelines) July 1997లో ఆమోదించబడ్డాయి. 1998లో DFSG, Open Source Definitionకు ఆధారంగా మారింది. ఒకే distributionలో ఏవి చేర్చవచ్చో నిర్ణయించడానికి రాసిన పత్రం, చివరికి మొత్తం industry కోసం ఒక licence categoryను నిర్వచించింది. మీ sources.list లో components ఉండటానికి ఇదే కారణం: main లో guidelinesకు అనుగుణమైన software ఉంటుంది, contrib మరియు non-free లో వాటికి అనుగుణంగా లేని software ఉంటుంది. Laptopలో wireless card ఉన్నప్పుడు అదనపు శోధన లేకుండా install చేయడానికి Debian 12లో non-free-firmware చేర్చబడింది.
Tooling కూడా Debian నుంచి వచ్చిన మరో ముఖ్యమైన వారసత్వం. dpkg ఒక packageను install చేస్తుంది. అవసరమైనది ఏదైనా లేకపోతే, dpkg: dependency problems prevent configuration of ను చూపిస్తూ ఆపివేస్తుంది. 1999లో Debian 2.1తో defaultగా మారిన APT (advanced package tool), ఇంకా ఏ packagesను ఏ క్రమంలో fetch చేయాలో నిర్ణయించే layer. ప్రతి Debian derivativeలోని ప్రతి apt command ఈ పనినుంచే అభివృద్ధి చెందింది.
Release ప్రక్రియలో మూడు suites మరియు ఒక నియమం ఉంటాయి. Maintainer packageను unstableకు upload చేస్తారు. దీనికి శాశ్వత codenameగా sid ఉంటుంది. అది release architecturesపై build అయి, కొత్త release-critical bug ఏదీ లేకపోతే, ఒక script సుమారు 5 to 10 రోజుల తర్వాత packageను testingకు migrate చేస్తుంది. తరువాత testing freeze అవుతుంది. Release team మిగిలిన సమస్యలను పరిష్కరిస్తుంది. Bug list తగినంత చిన్నదైనప్పుడు stable release అవుతుంది. ఇది నిర్దిష్ట తేదీ ఆధారంగా జరగదు. అందుకే Debian stable పాతదిగా కనిపించినా స్థిరంగా పనిచేస్తుంది: freeze సమయంలో version numbers ఆగిపోతాయి, అయితే security fixesను వాటిలో backport చేస్తూనే ఉంటారు.
Governance కూడా లిఖితపూర్వకంగానే ఉంటుంది. ఇందులో ఎన్నికైన project leader మరియు binding general resolutions ఉంటాయి. 2014లో ఈ వ్యవస్థ systemdను default init systemగా ఎంచుకుంది. దీనికి విభేదించినవారు Devuanను fork చేశారు. Devuan తన మొదటి releaseను 2017లో చేసింది. Ubuntu, Raspberry Pi OS, Proxmox VE, Kali మరియు Linux Mint ముఖ్యమైన downstream distributions.
Red Hat, 1994: RPM, ఆపై Fedora మరియు RHEL గా విభజన
Marc Ewing 1994 Halloween సమయానికి మొదటి Red Hat Linux ను విడుదల చేశారు. Bob Young కు చెందిన కంపెనీ 1995లో దాన్ని కొనుగోలు చేసింది. వీరిద్దరూ software ను విక్రయించకుండా support ను విక్రయించిన మొదటి Linux వ్యాపారాన్ని నిర్మించారు. Red Hat 11 August 1999న public company అయింది. IBM 2019 Julyలో ఆ కంపెనీ కొనుగోలును సుమారు 34 billion dollars కు పూర్తి చేసింది. అందువల్ల ఎక్కువ enterprise software ధృవీకరించబడే distribution అప్పటి నుంచి IBM యాజమాన్యంలోనే ఉంది.
దీర్ఘకాలిక సాంకేతిక సహకారం RPM (Red Hat package manager). దీనిని Erik Troan మరియు Marc Ewing 1995లో Red Hat Linux 2.0 కోసం రూపొందించారు. RPM తన dependencies ను ప్రకటిస్తుంది. ఇది spec file నుంచి తయారవుతుంది. spec file అనేది ఎవరైనా అమలు చేయగల build recipe. ఈ రెండో లక్షణం వల్ల Red Hat enterprise product కు independent rebuilds చేయడం తరువాత సాధ్యమైంది.
2003లోని Red Hat Linux 9 అసలు శ్రేణిలో చివరిది. కంపెనీ దాన్ని రెండు భాగాలుగా విభజించింది: వేగంగా మారే community release గా November 2003లో Fedora Core 1, మరియు నెమ్మదిగా విడుదలయ్యే paid product గా RHEL (Red Hat Enterprise Linux). RHEL 2002లో Advanced Server 2.1గా ప్రారంభమైంది. కారణం స్పష్టంగా ఉంది. కొత్త versions ను పరీక్షించే స్థలం మరియు bank పదేళ్లపాటు మార్పులేకుండా నడిపే platform ఒకే product కాలేవు. ఈ రెండు భాగాలు పరస్పరం అనుసంధానమై ఉంటాయి. ఒక RHEL major version, ఒక Fedora release నుంచి branch అవుతుంది. తరువాత దాన్ని stabilise చేసి freeze చేస్తారు. Package tool కూడా ఇదే schedule ను అనుసరించింది: 2000sలో yum నుంచి 2015లో Fedora default గా ఉన్న dnf కు మారింది. రెండింటి కింద rpm ఉంటుంది.
CentOS ఉచిత RHEL rebuild గా ఉండటం ఎందుకు ఆగిపోయింది
CentOS 2004లో ఒక సరళమైన లక్ష్యంతో ప్రారంభమైంది: Red Hat ప్రచురించిన source packages ను తీసుకుని, trademarks ను తొలగించి, వాటిని మళ్లీ build చేసి, ఫలితాన్ని ఉచితంగా అందించడం. ఇది ఒక దశాబ్దం పాటు default free server distribution గా నిలిచింది. 2014లో Red Hat ఈ ప్రాజెక్ట్ను తన సంస్థలోకి తీసుకుంది.
8 December 2020న Red Hat, CentOS Linux 8 31 December 2021న ముగుస్తుందని ప్రకటించింది. ఇది ముందుగా ప్రకటించిన తేదీకంటే ఎనిమిది సంవత్సరాలు ముందుగా జరిగింది. CentOS పేరు CentOS Streamగా కొనసాగుతుందని కూడా ప్రకటించింది. Stream ఒక rebuild కాదు. RHEL minor releases రూపొందించబడే branch ఇది. అందువల్ల ఇది RHEL కంటే ముందుగా నడుస్తుంది, వెనుకగా కాదు. ఒక machine ను అనేక సంవత్సరాలు కొనసాగించాలని మీరు భావిస్తే, ముందుగా నడిచే branch సరైన దిశ కాదు. ఎందుకంటే Red Hat చెల్లింపు కస్టమర్లకు అందించే మార్పులకంటే ముందే మీరు మార్పులను స్వీకరిస్తారు.
2021లో రెండు rebuilds వచ్చాయి. CentOS సహవ్యవస్థాపకుడైన Gregory Kurtzer, Rocky Linux ను ప్రారంభించారు. AlmaLinux కు CloudLinux నిధులు సమకూర్చింది. June 2023లో Red Hat, CentOS Stream మరియు తన customer portal మినహా మరెక్కడా RHEL sources ను ప్రచురించడం ఆపింది. Rocky, పూర్తిగా ఒకేలా ఉండే rebuilds లక్ష్యాన్ని కొనసాగించింది. AlmaLinux తన లక్ష్యాన్ని ABI (application binary interface) compatibility గా మార్చింది. అంటే RHEL కోసం build చేసిన software నడుస్తుంది. అయితే bug list ప్రతి అంశంలోనూ అచ్చంగా సరిపోతుందని హామీ ఉండదు. అదే సంవత్సరం తరువాత Oracle, SUSE మరియు CIQ కలిసి OpenELA ను ఏర్పాటు చేసి, భాగస్వామ్య sources ను ప్రచురించడం ప్రారంభించాయి.
ఒక provider యొక్క image listలో ఇప్పటికీ CentOS అని ఉంటే, దానిపై build చేయడానికి ముందు అది ఏ CentOS ను సూచిస్తుందో తెలుసుకోండి.
cat /etc/os-releaseNAME="CentOS Stream" RHEL కు దారితీసే rolling development branch. NAME="AlmaLinux" లేదా NAME="Rocky Linux" దానిని అనుసరించే rebuild. దీనికి పది సంవత్సరాల వ్యవధి ఉంటుంది.
Ubuntu, 2004: ఒక క్యాలెండర్పై Debian unstable యొక్క snapshot
Mark Shuttleworth నిధులతో Ubuntu 4.10 20 October 2004న విడుదలైంది. Debianతో దాని సంబంధం భావోద్వేగపరమైనది కాదు; అది విధానపరమైనది. ప్రతి cycle ప్రారంభంలో Debian unstable నుంచి packages ను కొత్త Ubuntu releaseలోకి import చేస్తారు. ఈ imports cycle మధ్యలో వచ్చే Debian Import Freeze వరకు కొనసాగుతాయి. ఆ తరువాత Ubuntu తన స్వంత మార్పులను నిర్వహిస్తుంది. అనేక Ubuntu packages అనేవి Debian package కు అదనంగా చేసిన delta రూపంలో ఉంటాయి. ఏ మార్పులు చేశారో changelogలో ఉంటుంది.
మిగిలిన భాగం క్యాలెండర్కు సంబంధించినది. సిద్ధమైనప్పుడు Debian విడుదలవుతుంది. Ubuntu ఏప్రిల్ మరియు అక్టోబర్ నెలల్లో విడుదలవుతుంది. Version number ఆ తేదీని సూచిస్తుంది: 24.04 ఏప్రిల్ 2024లో విడుదలైంది. ప్రతి రెండో ఏప్రిల్ release ఒక LTS (long term support) release. Provider Ubuntuని ఎలాంటి అదనపు qualifier లేకుండా పేర్కొన్నప్పుడు సాధారణంగా దానినే సూచిస్తుంది. Serverకు ఈ రెండింటిలో ఏది సరిపోతుందో Ubuntu LTS మరియు interim releases మధ్య ఎంపిక అనే అంశంలో పూర్తిగా వివరించబడింది. ఒక LTS నుంచి తదుపరి LTSకు మారడానికి ప్రత్యేక procedure ఉంటుంది. అది 24.04 నుంచి 26.04 upgradeలో వివరించబడింది.
ప్రతి సంవత్సరం server admins దృష్టికి వచ్చే ఒక విషయం ఉంది. Ubuntu archive components గా విభజించబడి ఉంటుంది. main ను పూర్తి support windowలో Canonical నిర్వహిస్తుంది. universe ను community నిర్వహిస్తుంది. దానికి security coverage వేరే హామీ. apt install ఈ తేడా గురించి ఏమీ చూపించదు. ఒక commandతో దీనిని చూడవచ్చు:
apt-cache policy nginx/main తో ముగిసే repository line అంటే ఆ packageకు Canonical security team బాధ్యత వహిస్తుందని అర్థం. /universe తో ముగిసే line అంటే community బాధ్యత వహిస్తుందని అర్థం. Internetను ఎదుర్కొనే ప్రతి అంశానికి దీన్ని పరిశీలించండి.
Arch, 2002: rolling releases మరియు partial upgrade వ్యయం
Judd Vinet 11 March 2002న Arch 0.1ను విడుదల చేశారు. ఇందులో ఆయన స్వయంగా రాసిన package manager pacman ఉంది. Build recipes సాధారణ shell scriptsగా ఉంటాయి. Archలో versioned releases అసలు ఉండవు. Install media అనేవి అదే rolling repositoriesకు చెందిన తేదీతో గుర్తించిన snapshots మాత్రమే. అందువల్ల 2019లో install చేసి ప్రతి వారం update చేసిన machine, ఈరోజు install చేసిన machine రెండూ ఒకే Archను నడుపుతాయి. AUR (Arch user repository)లో users అందించిన build recipes ఉంటాయి. అవి reviewed packages కావు. కాబట్టి వాటిని అమలు చేయడానికి ముందు PKGBUILD చదవడం నిర్వహణలో భాగం.
Rolling modelలో ఒక failure mode ఉంటుంది. ప్రతి సారి అది administrator చేసిన తప్పిదం వల్లే వస్తుంది. pacman -Sy fooతో ఒకే packageను install చేస్తే ముందుగా package database refresh అవుతుంది. తరువాత diskలో ఉన్న వాటికంటే కొత్త librariesకు link అయిన ఒక కొత్త binary install అవుతుంది. అప్పుడు programs ఇలా fail అవుతాయి:
error while loading shared libraries: libcrypto.so.3: cannot open shared object file: No such file or directoryమద్దతు ఉన్న operation pacman -Syu. ఇది అన్నింటినీ కలిపి update చేస్తుంది. కొన్ని upgradesకు ముందు manual intervention అవసరమని project news entriesలో తెలియజేస్తుంది. వాటిని చదవకుండా upgrade అమలు చేస్తే machine boot కాకుండా మిగిలిపోవచ్చు.
కాబట్టి మీరు పట్టించుకోకుండా వదిలేయాలనుకునే serverకు Arch సరైన ఎంపిక కాదు. ప్రతి వారం update చేసే machine సరిగానే ఉంటుంది. ఒకసారి update చేసి, ఏడాది తరువాత మళ్లీ update చేసే machineలో, మధ్యలో అవసరమైన అన్ని interventionsను ఒకే runలో నిర్వహించాల్సి వస్తుంది.
Alpine: చిన్న పంపిణీకి containers అందించిన ప్రాచుర్యం
Alpine సుమారు 2005లో LEAF (Linux embedded appliance framework) యొక్క fork గా ప్రారంభమైంది. LEAF స్వయంగా Linux Router Project నుంచి ఉద్భవించింది. Natanael Copa దీన్ని desktops కోసం కాకుండా appliances కోసం రూపొందించారు. ఇది సాధారణంగా ఉపయోగించే userland లోని చాలా భాగాలను మార్చింది: GNU C library స్థానంలో musl, GNU core utilities స్థానంలో BusyBox, systemd స్థానంలో OpenRC, మరియు package manager గా apk. 2014లో విడుదలైన Alpine 3.0 musl కు మారిన release.
Containers దీనికి ప్రాచుర్యం తెచ్చాయి. Debian లేదా Ubuntu base తో పోలిస్తే Alpine base layer పరిమాణం చాలా తక్కువగా ఉంటుంది. అందువల్ల 2016 నుంచి ఇది సాధారణ base image గా మారింది. Alpine ను ఎప్పుడూ install చేయని అనేక మంది కూడా దీన్ని ప్రతిరోజూ ఉపయోగించారు.
దీని ప్రతికూలత ఏమిటంటే musl, glibc కాదు. ఈ తేడా సంబంధం లేనట్టుగా కనిపించే bugs రూపంలో బయటపడుతుంది. glibc తో link చేసిన binary Alpineలో ఇప్పటికే ఉన్న file కోసం వెతకమని సూచించే message తో విఫలమవుతుంది:
sh: ./myapp: not foundProgram ఉంది. కానీ దాని ELF interpreter లేదు, ఎందుకంటే glibc loader అందుబాటులో లేదు. Python మరో సాధారణ ఆశ్చర్యం. manylinux కోసం build చేసిన prebuilt wheels ను muslలో install చేయలేరు. అందువల్ల pip source నుంచి compile చేయడానికి ప్రయత్నిస్తుంది. Compiler install చేయకపోతే ఆ ప్రక్రియ ఆగిపోతుంది. 2021లో వచ్చిన musllinux wheel standard, ఆ wheels ను publish చేసే projects కు ఈ సమస్యను పరిష్కరించింది. ఇతర projects కు మాత్రం కాదు.
VPSలో host operating system గా Alpine చిన్న పరిమాణంలో install అవుతుంది, వేగంగా update అవుతుంది. అయితే చాలా documentation ఊహించే విధానానికి ఇది భిన్నమైన మార్గంలోకి తీసుకెళ్తుంది. systemctl enable run చేయమని చెప్పే ప్రతి guide ను rc-update add కు అనువదించాలి.
అమరమైన generation: atomic updates మరియు image ఆధారిత servers
కొత్త branch package list ను మార్చదు; update model ను మారుస్తుంది. ostree ఆధారిత system /usr ను read-only గా ఉంచుతుంది. ఒక update అనేది పూర్తిగా కొత్త filesystem tree. అది download అయి, stage చేయబడి, తదుపరి reboot సమయంలో స్విచ్ అవుతుంది. మునుపటి tree boot entry గా మిగిలి ఉంటుంది. అందువల్ల చెడ్డ update ను పాత tree లోకి reboot చేయడం ద్వారా రద్దు చేయవచ్చు.
Fedora Silverblue దీనిని 2018లో desktop కు తీసుకువచ్చింది. Red Hat 2018లో CoreOS ను కొనుగోలు చేసిన తర్వాత, Fedora CoreOS దీనిని 2019లో servers కు తీసుకువచ్చింది. 2020లో అసలు Container Linux నిలిపివేసినప్పుడు Flatcar Container Linux దాని అభివృద్ధిని కొనసాగించింది. openSUSE MicroOS btrfs snapshots మరియు transactional-update ద్వారా ఇదే విధానాన్ని అందిస్తుంది. 2024లో Red Hat bootc పై నిర్మించిన image ఆధారిత mode ను RHEL కు జోడించింది. ఇందులో operating system ఒక container image గా విడుదలవుతుంది. కొత్త tag ను సూచించేలా machine ను మార్చడం ద్వారా update జరుగుతుంది. Talos Linux ఇంకా ముందుకు వెళ్లి shell మరియు SSH ను పూర్తిగా తొలగిస్తుంది. Machine ను API ద్వారా configure చేస్తారు. అందువల్ల దానికి login చేయాల్సిన అవసరం ఉండదు. 2007లో మొదట విడుదలైన NixOS వేరే దిశనుంచి ఇదే ఫలితానికి చేరుతుంది. మొత్తం system ఒకే declarative configuration నుంచి build అవుతుంది. మునుపటి generations boot చేయగలిగే స్థితిలోనే ఉంటాయి.
మీ provider వీటిలో ఏదీ one-click image గా అందించే అవకాశం లేదు. ఎందుకంటే administrator SSH ద్వారా files ను edit చేయడం కాకుండా, మొదటి boot సమయంలో Ignition లేదా cloud-init ద్వారా వీటిని configure చేయాలని అవి ఆశిస్తాయి. ఒకే విధంగా ఉండే అనేక machines పై ఇవి ప్రయోజనం అందిస్తాయి. మీరు ఒకేసారి అనేక Linux servers ను నిర్వహిస్తున్నప్పుడు ఇదే పరిస్థితి ఏర్పడుతుంది. ప్రతి machine మిగిలిన వాటితో నిర్ధారించగలిగేంత సమానంగా ఉండాలి.
ఒక release కు ఎంతకాలం support ఉంటుంది?
Release policy అనేది మీరు distribution తో అత్యంత ఎక్కువకాలం అనుసరించాల్సిన అంశం. ఇది సంవత్సరాల సంఖ్యగా ప్రచురించబడుతుంది. ప్రస్తుతం ఉన్న 5 server releases కోసం support వ్యవధులు ఇవి.
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 సంవత్సరాల support ఇస్తుంది. అందువల్ల తరచుగా rebuild చేసే container image కు ఇది అనుకూలంగా ఉంటుంది; మార్పులు లేకుండా ఎక్కువకాలం ఉంచే host కు అంతగా అనుకూలం కాదు. Debian యొక్క security team ఒక stable release ను సుమారు 3 సంవత్సరాలు నిర్వహిస్తుంది. తరువాత LTS team సాధారణ architectures కు మొత్తం సుమారు 5 సంవత్సరాల వరకు support కొనసాగిస్తుంది. Ubuntu LTS లో main లోని packages కు 5 సంవత్సరాల support లభిస్తుంది. Ubuntu Pro subscription దీనిని 10 సంవత్సరాలకు పెంచుతుంది. కొద్దిపాటి machines పై వ్యక్తిగత వినియోగానికి ఇది ఉచితం. RHEL 10 10 సంవత్సరాల support ను ప్రకటిస్తుంది. Paid extended life cycle support add-on దీనిని 13 సంవత్సరాలకు పెంచుతుంది. AlmaLinux 10 subscription ఏదీ లేకుండానే 10 సంవత్సరాల RHEL support వ్యవధిని అందిస్తుంది. AlmaLinux rebuilds ఉనికికి ఇదే ప్రధాన కారణం.
Arch కు ఇక్కడ row లేదు. Rolling distribution కు support చేయాల్సిన release ఉండదు. Arch విషయంలో ముఖ్యమైనది machine ను ఎన్ని రోజులపాటు మార్చకుండా ఉంచగలరన్నది. దీనిని వారాలుగా కొలుస్తారు.
ఈ సంఖ్యలు ఎక్కడి నుంచి వచ్చాయి
ప్రతి సంఖ్య vendor స్వయంగా ప్రచురించిన policy నుంచి తీసుకున్నది. ఈ సమాచారాన్ని August 2026 లో పరిశీలించాం. ఒక తేదీ ఆధారంగా planning చేయడానికి ముందు వీటిని తనిఖీ చేయండి. Vendors policies ను మార్చవచ్చు. December 2020 లో CentOS users దీనిని అనుభవించారు.
మీ VPS image జాబితా ఇలా ఎందుకు కనిపిస్తుంది
ఒక provider, కస్టమర్లు పేరుతో కోరే మరియు తన hypervisor లో unattended గా install చేయగల images ను విడుదల చేస్తుంది. అందుకే దాదాపు ప్రతి జాబితా Ubuntu LTS మరియు Debian stable తో ప్రారంభమవుతుంది. RHEL కు అనుగుణంగా తమ software ధృవీకరించబడిన వినియోగదారుల కోసం AlmaLinux లేదా Rocky ను చేర్చుతుంది. Alpine, Arch, Fedora లను జాబితాలో మరింత దిగువన ఉంచుతుంది. VPS అంటే ఏమిటి, image disk కు ఎలా చేరుతుంది అనే విషయం తెలిసిన తర్వాత ఈ నమూనా స్పష్టమవుతుంది: unattended install ను విజయవంతంగా పూర్తి చేసి, సాధారణ కస్టమర్ server ను ఉపయోగించే కాలానికంటే ఎక్కువకాలం support పొందే operating systems ను provider ఎంచుకుంటుంది.
ఈ ఎంపిక package manager కంటే ఎక్కువ విషయాలను నిర్ణయిస్తుంది. మూడు సంవత్సరాల తర్వాత మీరు చేయబోయే upgrade విధానాన్ని ఇది నిర్ణయిస్తుంది. ఆ విధానాలు ప్రతి family లో పూర్తిగా భిన్నంగా ఉంటాయి. Debian మరియు Ubuntu లో ఉన్న installation పైనే major upgrades చేయవచ్చు. Red Hat family లో major upgrades ను leapp ద్వారా నిర్వహిస్తారు. Arch కు version ఉండదు కాబట్టి upgrade కూడా ఉండదు. Alpine లో /etc/apk/repositories ను సవరించి, apk upgrade --available ను అమలు చేస్తారు. మీరు third-party repository జోడించకుండా install చేయగల software ను కూడా ఈ ఎంపిక నిర్ణయిస్తుంది. మీరు నడుపుతున్న software లో CVE (common vulnerabilities and exposures) entry వచ్చినప్పుడు patch ను ఎవరు విడుదల చేస్తారో ఇది నిర్ణయిస్తుంది. భవిష్యత్తులోని software ఏ init system మరియు C library అందుబాటులో ఉంటుందని భావిస్తుందో కూడా ఇదే నిర్ణయిస్తుంది.
తక్కువగా అంచనా వేయకూడని మరో ప్రభావం ఉంది. Internet లోని చాలా సమాధానాలు Debian family లేదా Red Hat family విధానాన్ని అనుసరిస్తాయి. అందువల్ల ఆ రెండు family లకు వెలుపల ఎంపిక చేస్తే, machine పనిచేసే మొత్తం కాలంలో ఆ సూచనలను అనువదించాల్సి ఉంటుంది. మీరు server ను ఎంత తరచుగా నిర్వహించడానికి సిద్ధంగా ఉన్నారో, ఆ వ్యవధికి సరిపోయే release policy కలిగిన family ను ఎంచుకుని, అదే family లో కొనసాగండి. దాని పైన ఉన్న packages ను మార్చడం సులభం. వాటి కింద ఉన్న distribution ను మార్చాలంటే box ను మళ్లీ నిర్మించాలి.
FAQ
నా server ఏ Linux distribution కుటుంబంలో ఉంది?
cat /etc/os-release ను అమలు చేయండి. ID field distribution పేరును, ID_LIKE field దాని కుటుంబాన్ని చూపిస్తాయి. అందువల్ల 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 యొక్క ఉచిత versionనా?
కాదు. ఆ పేరుతో వచ్చిన చివరి rebuild అయిన CentOS Linux 8, 31 December 2021న ముగిసింది. CentOS Linux 7 తన జీవితకాలం 30 June 2024న ముగించింది. ప్రస్తుతం కొనసాగుతున్న CentOS Stream project, RHEL minor releases నిర్మించబడే branch. అందువల్ల ఇది RHEL కంటే ముందు changes పొందుతుంది, తర్వాత కాదు. పాత పాత్రను భర్తీ చేసిన ఉచిత rebuilds AlmaLinux మరియు Rocky Linux. రెండింటికీ ten year windows ఉన్నాయి.
Debian stableలో version numbers ఎందుకు ఇంత పాతగా ఉంటాయి?
Version number freeze అయినప్పటికీ fixes నిరంతరం వస్తాయి. Debian కొత్త upstream releaseను దిగుమతి చేయకుండా, విడుదల చేసిన versionలోనే security patchesను backport చేస్తుంది. అందువల్ల 2.4.57-2+deb13u1గా కనిపించే packageలో గత వారం ప్రచురించిన fix ఉండవచ్చు. Upstream version తర్వాత ఉన్న suffix Debian revisionను సూచిస్తుంది. apt changelog <package> దానిలో చేర్చిన మార్పులను చూపిస్తుంది. Debian server భద్రతను version numbers ఆధారంగా అంచనా వేస్తే ప్రతిసారీ తప్పు నిర్ణయానికి వస్తారు.
VPSపై Arch వంటి rolling releaseను అమలు చేయాలా?
మీరు దాన్ని నిర్దిష్ట schedule ప్రకారం update చేస్తే మాత్రమే. Rolling distributionలో ప్రతి machine ప్రస్తుత package setకు అనుగుణంగా ఉండాలని భావిస్తారు. అందువల్ల pacman -Sy fooతో ఒక packageను update చేస్తే libraries పరస్పరం సరిపోక, cannot open shared object file వంటి errors రావచ్చు. pacman -Syu ను క్రమం తప్పకుండా అమలు చేయండి. ప్రతి runకు ముందు project news page చదవండి. అప్పుడు system స్థిరంగా ఉంటుంది. దాన్ని ఒక సంవత్సరం update చేయకుండా వదిలేస్తే, మొదటి upgrade ప్రమాదకరంగా మారుతుంది.
Immutable లేదా atomic distribution వాస్తవంగా ఏమి మారుస్తుంది?
Updates ఎప్పుడు వర్తించాలి, వాటిని ఎలా వెనక్కి తీసుకోవాలి అనే విషయాలను ఇది మారుస్తుంది. /usr read-onlyగా mount అవుతుంది. Updateను పూర్తి కొత్త treeగా ముందుగా సిద్ధం చేస్తారు. Reboot సమయంలో switch జరుగుతుంది. Rollback కోసం మునుపటి treeను boot entryగా ఉంచుతారు. దాంతో machine పూర్తిగా updatedగా లేదా పూర్తిగా పాత స్థితిలో ఉంటుంది; మధ్యలో సగం వర్తించిన స్థితి ఉండదు. Filesను నేరుగా మార్చడం ద్వారా softwareను install చేసే విధానాన్ని మీరు వదులుకుంటారు. అందువల్ల applications containersలోకి లేదా layered packagesలోకి మారతాయి.