Linux vs FreeBSD: சர்வர் பயன்பாட்டிற்கு எது சிறந்தது?
Linux மற்றும் FreeBSD ஆகிய இரண்டின் அடிப்படை கட்டமைப்பு, ZFS, Jails, மற்றும் உரிமங்களை ஒப்பிடுகிறோம். உங்கள் சர்வர் தேவைக்கு எதை தேர்வு செய்வது என்பதற்கான தெளிவான வழிகாட்டி இதோ.
சுருக்கமான பதில்
Linux மற்றும் FreeBSD ஆகிய இரண்டுமே சிறந்த server operating systems ஆகும். "எது சிறந்தது" என்ற கேள்விக்கு, "எந்த பயன்பாட்டிற்கு சிறந்தது" என்பதே உண்மையான பதில். வன்பொருள் ஆதரவு (hardware support), container ecosystem, மற்றும் அதற்காக உருவாக்கப்பட்ட மென்பொருள்கள் மற்றும் பயிற்சிகளின் எண்ணிக்கை ஆகியவற்றில் Linux முன்னணியில் உள்ளது. ஒருங்கிணைந்த base system, உள்ளமைக்கப்பட்ட ZFS மற்றும் jails, தாராளமான உரிமம் (permissive licence), மற்றும் தெளிவான, கணிக்கக்கூடிய மேம்படுத்தல்கள் (upgrades) ஆகியவற்றில் FreeBSD சிறந்து விளங்குகிறது. நீங்கள் பொதுவான cloud மற்றும் container workloads-ஐ இயக்குகிறீர்கள் என்றால், Linux-ஐத் தேர்ந்தெடுப்பதே எளிதான வழியாகும். நீங்கள் ஒரு storage box, firewall, அல்லது நீண்ட காலம் இயங்க வேண்டிய, நம்பகத்தன்மை முக்கியத்துவம் வாய்ந்த ஒரு சேவையை உருவாக்குகிறீர்கள் என்றால், FreeBSD-ஐக் கருத்தில் கொள்வது பயனுள்ளதாக இருக்கும். கீழே உள்ளவை இந்த சுருக்கத்திற்கான விரிவான விளக்கங்கள்.
அடிப்படை அமைப்பு: ஒரு ஒற்றை திட்டம் மற்றும் ஒரு தொகுப்பு
FreeBSD ஒரு ஒற்றை அமைப்பாக உருவாக்கப்படுகிறது: kernel, core commands, C library, மற்றும் boot loader ஆகியவை ஒரே source tree-லிருந்து, ஒரே version எண்ணுடன் வருகின்றன. இவை ஒரு அலகாகவே மேம்படுத்தப்படுகின்றன. FreeBSD 15 முதல், இந்த அடிப்படை அமைப்பை pkg packages மூலமாகவும் நிர்வகிக்க முடியும் (இந்த மாற்றம் pkgbase என்று அழைக்கப்படுகிறது). Linux என்பது ஒரு kernel ஆகும்; ஒவ்வொரு distribution-ம் பல தனித்தனி திட்டங்களை இணைத்து ஒரு முழுமையான அமைப்பாக உருவாக்குகிறது. இது மிகப்பெரிய நெகிழ்வுத்தன்மையையும், ஒவ்வொருவரின் தேவைக்கும் ஏற்றவாறு பல releases-களையும் வழங்குகிறது. ஒரு ஒற்றை-tree அடிப்படை அமைப்பு அன்றாட பயன்பாட்டில் எத்தகைய தாக்கத்தை ஏற்படுத்துகிறது என்பதை ஆழமாக அறிய, FreeBSD-ன் அடிப்படை அமைப்பு நடைமுறையில் எவ்வாறு செயல்படுகிறது என்பதைப் படிக்கவும்.
Licensing: GPL versus BSD
Linux, GPL எனப்படும் copyleft உரிமத்தைப் பயன்படுத்துகிறது: நீங்கள் மாற்றியமைக்கப்பட்ட kernel-ஐ விநியோகித்தால், அதே நிபந்தனைகளின் கீழ் உங்கள் மாற்றங்களையும் பகிர வேண்டும். FreeBSD, permissive BSD உரிமத்தைப் பயன்படுத்துகிறது; இது எவரும் குறியீட்டைப் பயன்படுத்தவும் மாற்றவும் அனுமதிக்கிறது, மூடிய தயாரிப்புகளுக்குள் (closed products) பயன்படுத்துவது உட்பட, இதற்கு கிட்டத்தட்ட எந்தக் கடப்பாடும் இல்லை. இதனால்தான் BSD உரிமம் பெற்ற குறியீடு வணிக ரீதியான operating systems மற்றும் network appliances-க்குள் காணப்படுகிறது. ஒரு server-ஐ இயக்கும் பெரும்பாலான பயனர்களுக்கு இது அன்றாட செயல்பாட்டில் எந்த மாற்றத்தையும் ஏற்படுத்தாது, ஆனால் எந்த அமைப்பு யாரால் ஏற்றுக்கொள்ளப்படுகிறது மற்றும் விற்பனையாளர்கள் அதை எவ்வாறு உருவாக்குகிறார்கள் என்பதை இது தீர்மானிக்கிறது.
Packages: pkg மற்றும் ports - apt உடன் ஒப்பீடு
FreeBSD-ல் மென்பொருளை நிறுவ இரண்டு வழிகள் உள்ளன. pkg முன்கூட்டியே உருவாக்கப்பட்ட binary packages-ஐ நிறுவுகிறது; இது Linux-ல் உள்ள apt அல்லது dnf போன்ற அனுபவத்தைத் தருகிறது:
pkg install nginxஅதன் கீழே உள்ள ports collection, உங்களுக்குத் தேவைப்படும்போது custom options-உடன் source-லிருந்து எந்தவொரு package-ஐயும் உருவாக்க அனுமதிக்கிறது. ஒவ்வொரு Linux distribution-க்கும் தனித்தனி package manager மற்றும் repositories உள்ளன; Debian மற்றும் Ubuntu-வில் apt, Fedora-வில் dnf ஆகியவை பயன்படுகின்றன. பொதுவாக Linux-ல் அதிக எண்ணிக்கையிலான prebuilt packages கிடைக்கின்றன, ஏனெனில் பெரும்பாலான மென்பொருள்கள் முதலில் Linux-ஐ இலக்காகக் கொண்டு உருவாக்கப்படுகின்றன. நடைமுறையில், Linux-ல் அதிக அளவிலான தயாராக உள்ள packages-ஐயும், FreeBSD-ல் build-time நெகிழ்வுத்தன்மையையும் (flexibility) நீங்கள் காணலாம்.
ZFS மற்றும் jails: உள்ளமைக்கப்பட்டவை மற்றும் கூடுதலாகச் சேர்க்கப்படுபவை
FreeBSD, ZFS-ஐ ஒரு முதன்மை filesystem-ஆகவும், jails-ஐ முதன்மை container-களாகவும் வழங்குகிறது. இவை installer, boot loader மற்றும் அடிப்படை கருவிகளுடன் ஒருங்கிணைக்கப்பட்டுள்ளன. Linux-ல் இந்த இரண்டு வசதிகளும் உள்ளன: OpenZFS சிறப்பாக இயங்குகிறது, மேலும் Docker, Podman மற்றும் LXC மூலம் container-கள் நவீன சூழல் அமைப்பின் முக்கிய அங்கமாக உள்ளன. இவற்றிற்கு இடையேயான வேறுபாடு அவற்றின் இயல்புநிலை அணுகுமுறையில் உள்ளது. FreeBSD-ல், storage மற்றும் isolation-க்கு ZFS மற்றும் jails-ஐப் பயன்படுத்துவதே இயல்புநிலை முறையாகும். Linux-ல், container-கள் இயல்புநிலை முறையாக உள்ளன; இவை image-registry கலாச்சாரம் மற்றும் Kubernetes உடனான orchestration வசதிகளைக் கொண்டுள்ளன, இவை FreeBSD-ல் அந்த அளவில் இல்லை. உங்கள் பணி Docker Compose மற்றும் container images சார்ந்தது என்றால், Linux சிறந்த தேர்வாகும். இந்த server-களில் மக்கள் உண்மையில் எதை இயக்குகிறார்கள் என்பதைப் பற்றிய விரிவான பார்வைக்கு, self-hosting மேலோட்டம் ஒரு சிறந்த வழிகாட்டியாகும்.
Hardware and drivers
Linux அனைத்து operating system-களிலும் மிக விரிவான hardware ஆதரவைக் கொண்டுள்ளது. ஏனெனில், vendors முதலில் Linux-க்கான drivers-ஐ உருவாக்குகிறார்கள்; பெரும்பாலும் Linux-க்கு மட்டுமே உருவாக்குகிறார்கள். புதிய network cards, accelerators மற்றும் storage controllers ஆகியவை முதலில் Linux ஆதரவைப் பெறுகின்றன. FreeBSD ஒரு குறிப்பிட்ட அளவிலான server hardware-ஐ ஆதரிக்கிறது. VPS-ல் virtual hardware சிறப்பாகச் செயல்படுகிறது. இருப்பினும், மிகப்புதிய அல்லது அரிதான சாதனங்களுக்கு Linux-ஐத் தேர்ந்தெடுப்பதே பாதுகாப்பானது. உங்களுக்கு ஏதேனும் குறிப்பிட்ட accelerator அல்லது vendor management tool தேவைப்பட்டால், முடிவெடுப்பதற்கு முன் FreeBSD-ன் ஆதரவைச் சரிபார்க்கவும்.
எனவே நீங்கள் எதை இயக்க வேண்டும்?
மிகப்பெரிய மென்பொருள் தொகுப்பு (software catalogue), container ecosystem, விரிவான hardware ஆதரவு மற்றும் அதிகப்படியான பயிற்சிகள் தேவைப்படும்போது Linux-ஐ இயக்கவும்; இது பெரும்பாலான cloud மற்றும் web பணிகளுக்குப் பொருந்தும். ZFS மற்றும் jails ஆகியவற்றை முதன்மை கருவிகளாகப் பயன்படுத்தவும், முழு அமைப்பையும் ஒரே அலகாக மேம்படுத்தவும், தாராளமான உரிமம் (permissive licence) மற்றும் நிலையான கணிப்புத்தன்மை (predictability) தேவைப்படும்போது FreeBSD-ஐ இயக்கவும்; இது சேமிப்பகம் (storage), நெட்வொர்க்கிங் மற்றும் நீண்டகாலம் இயங்கும் சேவைகளுக்கு ஏற்றது. பலர் இரண்டையும் பயன்படுத்துகின்றனர்; container தொகுப்புகளுக்கு Linux-ஐயும், சேமிப்பகம் மற்றும் firewall பெட்டிகளுக்கு FreeBSD-ஐயும் பயன்படுத்துகின்றனர். உங்கள் தேர்வு Linux மற்றும் FreeBSD-க்கு இடையிலானதாக இல்லாமல், Linux மற்றும் Windows-க்கு இடையிலானதாக இருந்தால், Linux மற்றும் Windows Server ஒப்பீடு அந்தப் பகுதியை விளக்குகிறது.
FAQ
FreeBSD, Linux-ஐ விட வேகமானதா?
இதற்கு எளிமையான பதில் இல்லை. பெரும்பாலான பணிகளில் இவை இரண்டும் நெருக்கமான செயல்திறனையே கொண்டுள்ளன. கணினியின் பெயர் என்பதை விட, குறிப்பிட்ட பணி, வன்பொருள் (hardware) மற்றும் செய்யப்படும் மாற்றங்களே (tuning) வேகத்தைத் தீர்மானிக்கின்றன. FreeBSD-ன் network stack மற்றும் ZFS ஒருங்கிணைப்பு வலிமையானவை; Linux-ன் scheduler மற்றும் driver ஆதரவு வலிமையானவை. பொதுவான வேகக் கூற்றுகளை நம்பாமல், அம்சங்கள், சூழல் (ecosystem) மற்றும் நீங்கள் கணினியை எவ்வாறு கையாள விரும்புகிறீர்கள் என்பதன் அடிப்படையில் தேர்வு செய்யவும்.
FreeBSD-ல் Linux மென்பொருட்களை இயக்க முடியுமா?
பெரும்பாலும் முடியும். FreeBSD-ல் Linux compatibility layer உள்ளது, இது பல Linux binaries-ஐ இயக்கும். பெரும்பாலான open-source server மென்பொருட்கள் native FreeBSD package அல்லது port-ஆகக் கிடைக்கின்றன. Linux container image-ஆக மட்டுமே கிடைக்கும் மென்பொருட்கள் அல்லது Linux-க்கு மட்டுமே உரிய அம்சங்களைக் கொண்ட மென்பொருட்களில் சிக்கல் ஏற்படலாம்; இங்குதான் container சூழலில் வேறுபாடு உள்ளது. நீங்கள் பயன்படுத்தும் stack-க்கு FreeBSD-ல் வழி உள்ளதா என்பதை மாறுவதற்கு முன் சரிபார்க்கவும்.
Linux அல்லது FreeBSD, இதில் எது அதிக பாதுகாப்புடையது?
இரண்டையுமே பாதுகாப்பாக இயக்க முடியும், இரண்டிற்கும் வலுவான வரலாறு உண்டு. FreeBSD-ன் ஒருங்கிணைந்த அடிப்படை அமைப்பு (base) மற்றும் jails ஆகியவை சில isolation முறைகளை எளிதாக்குகின்றன. Linux-ன் பரந்த பயன்பாடு காரணமாக, அதற்கு அதிக பாதுகாப்பு கருவிகளும், அதிக நபர்களின் கண்காணிப்பும் உள்ளன. பாதுகாப்பானது, நீங்கள் server-ஐ எவ்வாறு கட்டமைக்கிறீர்கள், பராமரிக்கிறீர்கள், patch செய்கிறீர்கள், firewall-ஐ அமைக்கிறீர்கள் மற்றும் குறைந்தபட்ச அதிகாரங்களை (least privilege) வழங்குகிறீர்கள் என்பதிலேயே உள்ளது; இந்த இரண்டு அமைப்புகளில் எதைத் தேர்வு செய்கிறீர்கள் என்பதில் இல்லை.
ஒரு தொடக்கநிலையாளர் Linux-ல் தொடங்க வேண்டுமா அல்லது FreeBSD-ல் தொடங்க வேண்டுமா?
உங்கள் நோக்கம் பரந்த, வேலைக்குத் தேவையான திறன்களைப் பெறுவதும், அதிக tutorials-ஐப் பயன்படுத்துவதுமாக இருந்தால் Linux-ல் தொடங்கவும். ஏனெனில் அதன் சூழல் பெரியது மற்றும் பெரும்பாலான வழிகாட்டிகள் Linux-ஐ அடிப்படையாகக் கொண்டவை. உங்களுக்கு அதன் வடிவமைப்பு, ஆவணங்கள் (documentation) மற்றும் ZFS ஆகியவை முதல் நாளிலிருந்தே தேவைப்பட்டால் FreeBSD-ல் தொடங்கவும். அடிப்படைத் திறன்கள், shell, SSH மற்றும் service management போன்றவை இரண்டிற்கும் பொதுவானவை, எனவே எதில் செலவிடும் நேரமும் வீணாகாது.