ஒவ்வொரு டெவலப்பரும் இதைக் கேட்டிருப்பார், பெரும்பாலும் அதிகாலை இரண்டு மணி அளவில் கடித்தபடி சொல்லும் ஒரு வாசகம்: "இது என் மெஷினில் வேலை செய்கிறது." ஒரு பில்ட் (build) லோக்கலாக (locally) வெற்றிகரமாக முடிந்து, ஸ்டேஜிங்கில் (staging) தோல்வியடையும் போது, நாம் இயல்பாகவே ஃபிரேம்வொர்க் வெர்ஷன் (framework version), விடுபட்ட என்விரான்மென்ட் வேரியபிள் (environment variable) அல்லது Docker-ஐக் குற்றம் சாட்டுகிறோம். நாம் ஒப்புக்கொள்ள விரும்புவதை விட அடிக்கடி, இயங்குதளமே (operating system) உண்மையான குற்றவாளியாக இருக்கிறது. கோப்புப் பாதைகள் (File paths), சிஸ்டம் கால்கள் (system calls), பேக்கேஜ் மேனேஜர்கள் (package managers) மற்றும் கர்னல் (kernel) நடத்தை ஆகிய அனைத்தும் ஒரு கோட் (code) எவ்வாறு இயங்குகிறது என்பதைத் தீர்மானிக்கின்றன. சரியான OS-ஐத் தேர்ந்தெடுப்பது என்பது ஒரு குழுவில் இணைவதற்காக அல்ல; அது உங்கள் லேப்டாப்பிற்கும் ப்ரொடக்ஷனுக்கும் (production) இடையிலான தடைகளை நீக்குவதற்காக ஆகும்.

Windows: ஒரு பொதுவானத் தேர்வு

Windows ஒரு எளிய காரணத்திற்காகவே இயல்பான தேர்வாக உள்ளது: வன்பொருள் (hardware) எளிதாக வேலை செய்யும். ஒரு பெரிஃபரலை (peripheral) இணைத்தால், அதற்கான டிரைவர் (driver) பெரும்பாலும் இருக்கும். .NET ecosystem-இல் பணிபுரியும் டெவலப்பர்களுக்கு, Visual Studio இன்றும் ஒரு சிறந்த தரநிலையாக (gold standard) உள்ளது. IntelliSense, டீபக்கிங் டூல்கள் (debugging tooling) மற்றும் புராஜெக்ட் ஸ்காஃபோல்டிங் (project scaffolding) ஆகியவை இந்தத் தளத்திற்காகவே உருவாக்கப்பட்டதால், அவை இயல்பான உணர்வைத் தருகின்றன.

Windows Subsystem for Linux 2 மூலம், Microsoft, Windows மற்றும் Unix சார்ந்த பணிப்பாய்வுகளுக்கு (workflows) இடையிலான இடைவெளியைக் குறைத்துள்ளது. WSL2 ஒரு லேசான யூட்டிலிட்டி VM-க்குள் உண்மையான Linux கர்னலை இயக்குகிறது, இதன் பொருள் நீங்கள் dual-boot செய்யாமலேயே bash-ஐ அழைக்கலாம், apt-ஐப் பயன்படுத்தலாம் மற்றும் Ubuntu-வை இயக்கலாம். இந்த ஒருங்கிணைப்பு மிகவும் சீராக இருப்பதால், பல டெவலப்பர்கள் தாங்கள் இயல்பான Linux-இல் இல்லை என்பதை மறந்துவிடுகிறார்கள்.

ஆனால் இந்தத் தழுவல் (abstraction) சில எல்லைகளைக் கொண்டுள்ளது. Windows-இல் உள்ள Docker Desktop அதன் இன்ஜினுக்கு ஒரு Linux VM-ஐச் சார்ந்துள்ளது, மேலும் Windows NT கர்னலுக்கும் Linux கன்டெய்னருக்கும் இடையிலான ஃபைல் சிஸ்டம் மாற்றம் தாமதத்தை (latency) ஏற்படுத்துகிறது. பெரிய node_modules கோப்புறைகளை (directories) மவுண்ட் செய்வது அல்லது ஒரு வால்யூமிற்குள் (volume) கம்பைல் செய்வது போன்ற I/O-அதிகப்படியான செயல்பாடுகள், நேரடி Linux-ஐ விடக் குறிப்பிடத்தக்க அளவு மெதுவாக இயங்குகின்றன. மேலும், நீங்கள் ஒரு டீபக்கிங் (debugging) அமர்வில் தீவிரமாக இருக்கும்போது, Windows அப்டேட்கள் உங்கள் மெஷினை ரீபூட் (reboot) செய்யும் பழக்கமும் உள்ளது, இது சரியானதல்ல.

மாணவர்கள், கேமர்கள் மற்றும் .NET அப்ளிகேஷன்களை உருவாக்கும் பொறியாளர்களுக்கு Windows சிறந்தது. வேலை நேரத்திற்குப் பிறகு Steam விளையாடவும், பகலில் Visual Studio பயன்படுத்தவும் ஒரே ஒரு மெஷின் தேவைப்பட்டால், இதுவே நடைமுறைச் சாத்தியமான தேர்வாகும்.

Linux: சர்வர் தரநிலை

ப்ரொடக்ஷன் (production) Linux-இல் இருந்தால், Linux-இல் டெவலப் செய்வது ஆச்சரியங்களைத் தவிர்க்கும். இந்த இயங்குதளம் சர்வர்களுக்காகவே உருவாக்கப்பட்டது, மேலும் அதன் வடிவமைப்பு அனுமானங்கள் கிளவுட் சூழல்கள் (cloud environments) எதிர்பார்ப்பதற்கு இணையாக உள்ளன. அனைத்தையும் ஒரு கோப்பாகக் கருதும் Unix தத்துவம், கான்ஃபிகரேஷன் (configuration), வன்பொருள் சாதனங்கள் மற்றும் இயங்கும் செயல்முறைகள் (processes) ஆகிய அனைத்தும் ஃபைல் சிஸ்டம் மரத்தில் (filesystem tree) எங்கோ இருக்கும் என்பதைக் குறிக்கிறது. அந்தத் தொடர்ச்சியான தன்மை ஆட்டோமேஷனை (automation) எளிதாக்குகிறது. நீங்கள் bash மூலம் டிப்ளாய்மென்ட்களை (deployments) ஸ்கிரிப்ட் செய்யலாம், systemd மூலம் சேவைகளை நிர்வகிக்கலாம் மற்றும் இரண்டு வெவ்வேறு கர்னல் கட்டமைப்புகளுக்கு இடையே மாற்ற வேண்டிய அவசியம் இன்றி கன்டெய்னர்களை ஒருங்கிணைக்கலாம் (orchestrate).

Docker, Linux அடிப்படையிலான கூறுகளின் (primitives) மீது உருவாக்கப்பட்டது. Namespaces மற்றும் cgroups ஆகியவை இங்கு இயல்பானவை, எனவே கன்டெய்னர்கள் மற்ற தளங்களை விட வேகமாகத் தொடங்கும் மற்றும் நேரடி (bare-metal) வேகத்திற்கு நெருக்கமாக இயங்கும். இதில் கூடுதல் சுமை (overhead) மிகக் குறைவு, பேக்கேஜ் மேனேஜர்கள் முதிர்ச்சியடைந்தவை, மேலும் உங்களுக்குத் தேவையானவற்றை மட்டும் வைத்துக்கொண்டு சிஸ்டத்தை எளிமையாக்கலாம். ஒரு ஹெட்லெஸ் (headless) Linux சர்வர் ரீபூட் செய்யாமலேயே பல ஆண்டுகள் இயங்க முடியும்.

இதன் சவாலான விஷயம் டெஸ்க்டாப் பயன்பாட்டின் மெருகூட்டல் (desktop polish). வணிக ரீதியான மென்பொருள் ஆதரவு இதில் பின்தங்கியுள்ளது. நீங்கள் Adobe Creative Cloud ஆப்ஸ்களை இயல்பாகக் காண முடியாது, மேலும் சில பிரத்யேக IDE-கள் அல்லது ஒத்துழைப்பு கருவிகளுக்கு (collaboration tools) மாற்று வழிகள் தேவைப்படலாம். வன்பொருள் அமைப்பிற்கு (hardware setup) பொறுமை தேவைப்படலாம். Wi-Fi கார்டுகள், Bluetooth அடாப்டர்கள் மற்றும் ஹைப்ரிட் கிராபிக்ஸ் ஆகியவற்றிற்கு சில நேரங்களில் மேனுவல் டிரைவர் இன்ஸ்டாலேஷன் அல்லது கர்னல் மாட்யூல் மாற்றங்கள் தேவைப்படலாம். NVIDIA டிரைவர்கள் கணிசமாக மேம்பட்டுள்ளன, ஆனால் CUDA-வைச் சரியாகக் கட்டமைக்க, டெர்மினல் (terminal) பற்றித் தெரிந்திருக்க வேண்டும் என்று கருதும் ஆவணங்களைப் படிக்க வேண்டியிருக்கும்.

Backend பொறியாளர்கள், DevOps நிபுணர்கள் மற்றும் AI உள்கட்டமைப்பை (infrastructure) உருவாக்கும் எவரும் Linux-ஐத் தங்களின் இயல்பான தேர்வாகக் கருத வேண்டும். உங்கள் ப்ரொடக்ஷன் சூழல் Ubuntu அல்லது RHEL-இல் இயங்கும்போது, அதை லோக்கலாகவே (locally) பிரதிபலிப்பது டிப்ளாய்மென்ட் டீபக்கிங்கில் பல மணிநேரங்களைக் மிச்சப்படுத்தும்.

macOS: மெருகூட்டப்பட்ட Unix

macOS ஒரு இடைப்பட்ட நிலையில் உள்ளது, இது Linux போலச் செயல்படும் டெர்மினலையும், ஒரு நுகர்வோர் தயாரிப்பு போலச் செயல்படும் GUI-யையும் விரும்பும் டெவலப்பர்களைக் கவரும். இதன் உட்புறத்தில் இது ஒரு சான்றளிக்கப்பட்ட Unix இயங்குதளமாகும், அதாவது bash, zsh, make, ssh மற்றும் git ஆகிய அனைத்தும் ஒரு சர்வரில் நீங்கள் எதிர்பார்ப்பது போலவே செயல்படும். Apple Silicon கணக்கீடுகளை முற்றிலும் மாற்றியமைத்துள்ளது. M-series சிப்கள் டெஸ்க்டாப் அளவிலான செயல்திறனை வழங்கும் அதே வேளையில், லேப்டாப் பேட்டரி ஆயுளை 10 முதல் 20 மணிநேரம் வரை நீட்டிக்கின்றன. ஃபேன் (fan) சத்தம் இன்றி ஒரு புராஜெக்ட்டை கம்பைல் செய்யவும், லோக்கல் ஸ்டேக்கை (local stack) இயக்கவும் மற்றும் வீடியோ காலில் பேசவும் முடியும்.

மொபைல் டெவலப்பர்களுக்கு, macOS என்பது தவிர்க்க முடியாதது. Xcode மற்றும் iOS simulator ஆகியவை Apple வன்பொருளில் மட்டுமே இயங்கும். இந்தச் சூழல் கிரியேட்டிவ் மற்றும் ஃபுல்-ஸ்டாக் (full-stack) பணிப்பாய்வுகளுக்கும் சாதகமாக உள்ளது. இதன் டிராக்பேட்கள் (trackpads) மற்றும் டிஸ்ப்ளேக்கள் சிறந்தவை, மேலும் sleep/wake நம்பகத்தன்மை காரணமாக, நீங்கள் மூடியைத் திறந்தவுடன் உடனடியாக வேலையைத் தொடர முடியும்.

இதன் குறைபாடுகள் செலவு மற்றும் நெகிழ்வுத்தன்மை (flexibility). ஒரு தனிப்பயனாக்கப்பட்ட (custom) PC அல்லது ThinkPad-இல் மிக எளிதாகச் செய்யக்கூடிய மெமரி (memory) மற்றும் ஸ்டோரேஜ் (storage) மேம்படுத்தல்களுக்கு நீங்கள் அதிக விலை கொடுக்க வேண்டியிருக்கும். வன்பொருள் வரிசை (hardware lineup) மிகவும் குறைவானது. உள்ளூர் மாடல் பயிற்சியளிக்க (local model training) ஒரு குறிப்பிட்ட GPU அல்லது ஆய்வக உபகரணங்களுக்கான அசாதாரண போர்ட்கள் (unusual ports) உங்களுக்குத் தேவைப்பட்டால், வெளிப்புற என்க்ளோசர்கள் (external enclosures) மற்றும் டாங்கிள்கள் (dongles) இல்லாமல் ஒரு Mac உங்களுக்குப் போதுமானதாக இருக்காது.

எளிதில் எடுத்துச் செல்லும் வசதியை (portability) விரும்புபவர்கள், அதாவது Full-stack developers, iOS engineers மற்றும் startup founders ஆகியோர் பெரும்பாலும் இதையே தேர்ந்தெடுக்கிறார்கள். இது ஒரு செலவு மிகுந்த தேர்வாக இருந்தாலும், அன்றாடப் பணிகளில் ஏற்படும் சிரமங்களைக் குறைக்கிறது.

AI-க்கு OS முக்கியமா?

மாடல் (model) விஷயத்தில் இதற்கு எந்த வித்தியாசமும் இல்லை. உங்கள் kernel என்பது Microsoft, Linus Torvalds அல்லது Apple மூலம் தொகுக்கப்பட்டதாக (compiled) இருந்தாலும், Ollama, LM Studio அல்லது vLLM மூலம் இயங்கும் ஒரு Large Language Model ஒரே மாதிரியான டோக்கன்களைத்தான் (tokens) உருவாக்கும். உங்கள் இயங்குதளத்தை (operating system) விட உங்கள் கருவிகளே (tools) மிக முக்கியமானவை. நீங்கள் AI agents-களை உருவாக்கும்போது, Python dependency management, Node.js runtimes, மீண்டும் உருவாக்கக்கூடிய சூழல்களுக்கான (reproducible environments) Docker, API integrations மற்றும் context windows-க்கான memory management ஆகியவற்றில் தேர்ச்சி பெறுவதில் கவனம் செலுத்துங்கள்.

இருப்பினும், தயாரிப்பு நிலை (production) AI அமைப்புகள் பெரும்பாலும் Linux-லேயே இயங்குகின்றன. NVIDIA-வின் datacenter GPU drivers மற்றும் CUDA toolkit ஆகியவை முதலில் Linux-க்காகவே உருவாக்கப்பட்டு மேம்படுத்தப்படுகின்றன. கிராஃபிக்கல் டெஸ்க்டாப் (graphical desktop) சார்ந்த கூடுதல் சுமைகள் நீக்கப்படுவதால், பயிற்சி (training) மற்றும் அனுமானத்திற்கு (inference) அதிக VRAM மற்றும் CPU cycles கிடைக்கின்றன. நீங்கள் கிளவுட் கம்ப்யூட் (cloud compute) வாடகைக்கு எடுத்தால், நீங்கள் பெரும்பாலும் ஒரு Linux instance-க்குள் SSH செய்துகொண்டிருப்பீர்கள். உள்ளூர் சோதனைகளுக்கு (local experimentation), Apple Silicon கொண்ட MacBook அமைதியானது மற்றும் ஆற்றல் திறன் வாய்ந்தது (power-efficient), ஆனால் பயிற்சியளிக்க வேண்டிய நேரம் வரும்போது