முக்கிய விஷயங்கள்
- GitHub-ல் Linus Torvalds நிர்வகிக்கும் அதிகாரப்பூர்வ Linux Kernel Repo (https://github.com/torvalds/linux) 2,52,482 Stars கடந்து சாதனை படைத்திருக்கிறது.
- முழு கோட் ஹிஸ்டரியையும் டவுன்லோட் செய்யாமல், git clone --depth 1 கமாண்ட் பயன்படுத்தினால் குறைவான Data-விலேயே கோடை உடனே பார்க்கலாம்.
- பெங்களூரு, புனே போன்ற நகரங்களில் Automotive Software, Embedded Systems மற்றும் Cloud Server பணிகளுக்கு Linux Kernel அறிவு மிகப்பெரிய சம்பள வாய்ப்பை தருகிறது.
- இந்த GitHub Repo வெறும் Mirror மட்டுமே; இங்கே Pull Request (PR) அனுப்ப முடியாது, திருத்தங்களை Mailing List (LKML) வழியாகத்தான் சமர்ப்பிக்க வேண்டும்.
torvalds/linux அப்படின்னா என்ன?
எளிமையா சொல்லணும்னா, நம்ம டிஜிட்டல் உலகத்தை இயக்கும் இதயத் துடிப்புதான் இந்த Repository. நீங்க கையில வெச்சிருக்க Android Phone, பைக் புக் பண்ணும் Ola ஆப், பணம் அனுப்பும் PhonePe, அல்லது தட்கல் டிக்கெட் புக் பண்ணும் IRCTC Server என எல்லாமே ஓடுவது Linux OS மேலதான். இந்த கம்ப்யூட்டர் ஹார்டுவேர் பாகங்களுக்கும் சாப்ட்வேர்களுக்கும் நடுவுல ஒரு பாலமா செயல்படுற Kernel கோட் மொத்தமும் இந்த Repo-வுக்குள் தான் இருக்கு. Linus Torvalds தலைமையிலான டெவலப்பர்கள் இதை C மொழியில உருவாக்கியிருக்காங்க. அக்டோபர் 18, 2026 அன்னைக்கு கூட இதுல புது Commit பதிவாகியிருக்கு.
அதாவது, GitHub-ல் இருக்கும் மத்த Python அல்லது JavaScript லைப்ரரிகள் மாதிரி இதை ஒரு பட்டன் கிளிக் பண்ணி இன்ஸ்டால் பண்ண முடியாது. இது சிஸ்டம் லெவல் புரோகிராமிங். ஒரு சின்ன பாயிண்டர் தப்பானாலும் மொத்த சிஸ்டமும் Crash ஆகிவிடும் அளவுக்கு பவர்புல்லான இடம் இது.
இதை உங்க System-ல எப்படி Clone பண்ணி Compile பண்ணலாம்?
பல இன்ஜினியரிங் காலேஜ் மாணவர்கள் பண்ற முதல் தப்பு, எடுத்த உடனே நார்மல் git clone கமாண்டை ரன் பண்றதுதான். 30 வருஷ Commit ஹிஸ்டரி இருக்கிறதுனால, உங்க 5G டேட்டா அல்லது வைஃபை பேக் மொத்தமும் காலியாகி சிஸ்டம் தொங்கிடும்.
அதனால வெறும் லேட்டஸ்ட் கோடை மட்டும் எடுக்க Shallow Clone வழியை பயன்படுத்துங்க. உங்க Ubuntu, Fedora அல்லது Windows WSL2 டெர்மினல்ல இந்த கமாண்டை மட்டும் போடுங்க:
git clone --depth 1 https://github.com/torvalds/linux.git
இப்போ உள்ளே போனதும் முப்பது மில்லியன் வரிகளையும் பார்த்து பயப்பட வேண்டாம். முக்கியமா நாலு ஃபோல்டர்களை மட்டும் கவனிங்க. arch ஃபோல்டரில் x86, ARM, RISC-V போன்ற பிராசஸர் சார்ந்த கோட்கள் இருக்கும். drivers ஃபோல்டரில் நெட்வொர்க், கிராபிக்ஸ் கார்டுகளுக்கான டிரைவர்கள் இருக்கும். fs ஃபோல்டரில் ext4, btrfs போன்ற ஃபைல் சிஸ்டம் கோட்களும், kernel ஃபோல்டரில் பிராசஸ் ஷெட்யூலிங் கோட்களும் அமைந்திருக்கும்.
இதை கம்பைல் பண்ணி பார்க்க Linux மெஷினில் தேவையான டூல்ஸ்களை இன்ஸ்டால் செய்யணும். Ubuntu-வில் sudo apt update && sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev கமாண்ட் கொடுத்தால் Build Tools தயாராகிவிடும்.
அடுத்து அந்த ஃபோல்டருக்குள் சென்று make defconfig கொடுத்தால் உங்க மெஷினுக்கு ஏத்த டீஃபால்ட் கான்பிகரேஷன் ரெடியாகிவிடும். அப்புறம் make -j$(nproc) கொடுத்தால் உங்க சிஸ்டம் சிபியூ முழு வேகத்தில் இயங்கி கர்னலை கம்பைல் செய்ய ஆரம்பிக்கும்.
Indian Developers-க்கு இதனால என்ன Real-world பயன் இருக்கு?
முதல் விஷயம், காலேஜ் ஃபைனல் இயர் ப்ராஜெக்ட். வழக்கமான வெப் டெவலப்மென்ட் அல்லது சாட்பாட் ப்ராஜெக்ட்டுகளுக்கு நடுவில், ஒரு Custom Linux Driver அல்லது Embedded Linux ஆட்டோமேஷன் ப்ராஜெக்ட் செய்து காட்டினால் கேம்பஸ் இன்டர்வியூவில் தனித்து தெரிவீர்கள்.
இரண்டாவது, பெங்களூரு, புனே, ஹைதராபாத் நகரங்களில் இயங்கும் Automotive நிறுவனங்கள். இப்போ வர்ற எலக்ட்ரிக் ஸ்கூட்டர் மற்றும் கார்களில் டிஜிட்டல் டேஷ்போர்டு முதல் பேட்டரி மேனேஜ்மென்ட் வரை Embedded Linux தான் பயன்படுத்துறாங்க. அங்கே கர்னல் லெவலில் கோடிங் தெரிந்த இன்ஜினியர்களுக்கு மிகப்பெரிய டிமாண்ட் இருக்கிறது.
மூன்றாவது, Cloud மற்றும் DevOps வேலைகள். பெரிய கார்ப்பரேட் கம்பெனிகளில் AWS அல்லது Azure சர்வர்கள் நெட்வொர்க் டிராஃபிக்கால் திணறும்போது, சாதாரண ரீஸ்டார்ட் உதவாது. கர்னல் அளவிலான eBPF, மெமரி மேனேஜ்மென்ட் தெரிந்த IT இன்ஜினியர்களால் மட்டுமே பிரச்சனையை வேரிலிருந்து தீர்க்க முடியும்.
பல Developers பண்ற பெரிய Mistake என்ன?
GitHub-ல் இருக்கும் மத்த ப்ராஜெக்ட்டுகள் மாதிரி நினைச்சுக்கிட்டு, ஒரு சின்ன Speling Mistake திருத்தி உடனே ஒரு Pull Request (PR) தட்டி விட்ருவாங்க. அப்படி செஞ்சா அது அங்கே பரிசீலிக்கப்படவே மாட்டாது.
ஏன்னா, இந்த GitHub பக்கம் ஒரு Read-only Mirror மட்டுமே. லினக்ஸ் கர்னல் கம்யூனிட்டி இன்னமும் பழைமையான Linux Kernel Mailing List (LKML) வழியாதான் இயங்குது. அதாவது, உங்க மாற்றங்களை ஒரு Patch ஃபைலாக மாற்றி இமெயில் மூலமாகத்தான் Maintainer-களுக்கு அனுப்பணும்.
அதே மாதிரி, C மொழியில் Point-ers, Data Structures மற்றும் Memory Allocation அடிப்படைகள் தெரியாமல் இந்த கோடை படிக்க போனால் குழப்பம்தான் மிஞ்சும். ஒரு சின்ன டிரைவர் கோடை மட்டும் எடுத்து வரி வரியாக படித்து புரிந்துகொள்வதுதான் சரியான அணுகுமுறை.
நீங்க இப்போ என்ன பண்ணணும்?
முதல் வேலையா உங்க லேப்டாப்பில் WSL அல்லது Ubuntu ஓபன் பண்ணி, shallow clone வழியில இந்த Repo-வை டவுன்லோட் பண்ணுங்க. drivers/gpio அல்லது drivers/usb ஃபோல்டருக்குள் போய் எளிய டிரைவர் ஃபைல்களை திறந்து வாசித்து பாருங்க.
கர்னல் டெவலப்மென்ட் என்பது ஒரே இரவில் கற்றுக்கொள்ளும் வித்தை இல்லை. தினமும் ஒரு அரை மணி நேரம் இந்த சிஸ்டம் கோடுகளை படித்து பழகினாலே, எந்தவொரு பெரிய பிரேம்வொர்க்கையும் எளிதாக புரிந்துகொள்ளும் திறன் உங்களுக்கு வந்துவிடும்.
நம்ம ஊர் ஸ்மார்ட் டிவி முதல் ரேஷன் கடை மெஷின் வரை Linux எப்படி வேலை செய்யுது?
நீங்க காலையில எழுந்து மொபைல்ல பாக்குற வாட்ஸ்அப் மெசேஜ் முதல், வீட்ல ஓடுற ஆண்ட்ராய்டு ஸ்மார்ட் டிவி வரை எல்லாமே லினக்ஸ் கர்னல் மேலதான் ரன் ஆகுது. தமிழ்நாட்டுல இருக்கிற நியாயவிலைக் கடைகள்ல கைரேகை வெச்சு அரிசி, பருப்பு வாங்குற பயோமெட்ரிக் PoS மெஷின், மற்றும் அரசு விரைவுப் போக்குவரத்துக் கழக (TNSTC) கண்டக்டர் கையில வெச்சிருக்க டிக்கெட் மெஷின் எல்லாமே எம்படட் லினக்ஸ் சிஸ்டம் மூலமாதான் இயங்குது. இந்த மெஷின்கள்ல இருக்கிற சின்ன டிஸ்ப்ளே, தெர்மல் பிரிண்டர், ஃபிங்கர்பிரிண்ட் ஸ்கேனர் மற்றும் 4G சிம்கார்டு போன்ற ஹார்டுவேர் பாகங்களை லினக்ஸ் ஆப்பரேட்டிங் சிஸ்டத்தோடு பேச வைக்கிறது இந்த torvalds/linux ரெப்போசிட்டரியில் இருக்கும் டிரைவர் கோடுகள்தான். ஒரு சாதாரண சாப்ட்வேர் இன்ஜினியர் சிஸ்டம் லெவல்ல யோசிக்க ஆரம்பிக்கும் போதுதான், நம்ம ஊர் அன்றாட பயன்பாட்டில் உள்ள மெஷின்கள் எப்படி கிராஷ் ஆகாம பல வருஷங்களா வேலை செய்யுதுன்னு முழுசா புரியும்.
இதே மாதிரி சென்னை மற்றும் கோயம்புத்தூரில் இயங்கி வரும் ஏராளமான IoT மற்றும் எலக்ட்ரானிக்ஸ் ஸ்டார்ட்அப் நிறுவனங்கள் புதிய ஹார்டுவேர் தயாரிப்புகளை உருவாக்கும் போது, லினக்ஸ் கர்னல் கஸ்டமைசேஷன் மிக முக்கிய தேவையாக மாறுகிறது. உதாரணமாக, ஒரு நவீன எலக்ட்ரிக் ஸ்கூட்டரின் ஸ்பீடோமீட்டர் திரையில் மேப் வழிகாட்டுதல் காட்ட வேண்டும் என்றாலும், அல்லது தொழிற்சாலைகளில் சென்சார்கள் மூலம் இயங்கும் தானியங்கி ரோபோடிக் மெஷின்களை இயக்க வேண்டும் என்றாலும், பொதுவான விண்டோஸ் அல்லது மேக் ஓஎஸ் அங்கு வேலைக்கு ஆகாது. குறைந்த மெமரி மற்றும் குறைந்த பேட்டரி பவரில் தடங்கலின்றி இயங்கக்கூடிய ஒரு கஸ்டம் லினக்ஸ் போர்டு சப்போர்ட் பேக்கேஜ் (BSP) உருவாக்க இந்த ஓபன் சோர்ஸ் கர்னல் கோடுதான் அடித்தளமாக அமைகிறது. உலகத்தரம் வாய்ந்த இதுபோன்ற ஆட்டோமோட்டிவ் மற்றும் இண்டஸ்ட்ரியல் சாப்ட்வேர் வேலைகளுக்கு உள்ளூர் பொறியாளர்களுக்கு மிகப்பெரிய வரவேற்பு எப்போதும் சந்தையில் நிலவி வருகிறது.
Kernel படிக்க ஆரம்பிக்கிறப்போ வரக்கூடிய நடைமுறை சவால்கள் என்னென்ன?
முதல் சவால், கோடின் பிரம்மாண்டமான அளவைப் பார்த்து ஏற்படும் தயக்கம்தான்; முப்பது மில்லியனுக்கும் அதிகமான வரிகள் கொண்ட ஒரு பிராஜக்ட்டை ஒரே ஆளாக யாராலும் படித்துவிட முடியாது என்பதை ஆரம்பத்திலேயே நாம் புரிந்துகொள்ள வேண்டும். கல்லூரிகளில் நாம் படிக்கும் சி புரோகிராமிங் பாடங்களில் பெரும்பாலும் பிரிண்ட்-எஃப் (printf) மற்றும் எளிய லூப்கள் மட்டுமே சொல்லித் தரப்படுவதால், கர்னல் கோடில் பயன்படுத்தப்படும் ஸ்பின்லாக்ஸ் (spinlocks), பாயிண்டர் டு பாயிண்டர் லாஜிக், மற்றும் கன்கரன்சி கன்ட்ரோல் போன்ற நிஜ சிஸ்டம் நுணுக்கங்கள் தொடக்கத்தில் மிரட்டலாகத் தோன்றலாம். இதைப் போக்க, ஆரம்பத்தில் கர்னல் முழுவதையும் படிக்க முயற்சிக்காமல், டாக்குமென்டேஷன் (Documentation/) ஃபோல்டரில் உள்ள எளிய வழிகாட்டிகளைப் படித்துவிட்டு, சிறிய ஹார்டுவேர் டிரைவர் கோடுகளை மட்டுமே தனியாகப் பிரித்து படிக்கப் பழகுவது மன அழுத்தத்தைக் கணிசமாகக் குறைக்கும்.
இரண்டாவது பெரிய சவால், கர்னலில் நாம் செய்யும் சின்ன தவறுகூட சிஸ்டத்தையே கிராஷ் செய்து கர்னல் பேனிக் (Kernel Panic) நிலைக்குக் கொண்டு சென்றுவிடும் அபாயம் இருப்பதாகும். உங்களுடைய அன்றாட பயன்பாட்டுக்கான லேப்டாப்பில் நேரடியாக மெயின் கர்னலை மாற்றி டெஸ்ட் செய்தால், ஓஎஸ் பூட் ஆகாமல் டேட்டா அழியும் சிக்கல் வரலாம்; அதனால்தான் அனுபவம் வாய்ந்த இன்ஜினியர்கள் எப்போதும் QEMU போன்ற விர்ச்சுவல் எமுலேட்டர்கள் அல்லது ஆரக்கிள் விர்ச்சுவல்பாக்ஸ் விர்ச்சுவல் மெஷின்களை மட்டுமே டெஸ்டிங் செய்யப் பயன்படுத்துகிறார்கள். விர்ச்சுவல் மெஷினில் புதிய கர்னல் பில்டை சோதிக்கும் போது சிஸ்டம் கிராஷ் ஆனாலும் உங்களுடைய மெயின் கம்ப்யூட்டருக்கு எந்த ஆபத்தும் வராது. இந்த பாதுகாப்பான சூழலில் தைரியமாக புதிய சிஸ்டம் கால்களை (system calls) எழுதிப் பழகி, பிழைகளைத் திருத்தி பயிற்சி எடுப்பதுதான் ஒரு திறமையான சிஸ்டம் டெவலப்பராக உருவாவதற்கான சரியான பாதையாக இருக்கும்.




கருத்துகள் (0)
Be the first to comment!