यदि आप computers का इस्तमाल करते हैं तब आपने Kernel का नाम जरुर सुना होगा. लेकिन क्या आप जानते हैं की Kernel क्या होता है? इसकी जरुरत कहाँ पर होती है? यदि नहीं तब आज के article के अंत तक आपको Kernel से जुड़ी सभी बातों के विषय में पता चल जायेगा. पूरी जानकारी के लिए हमारे साथ बनें रहें।
यह kernel एक बहुत ही महत्वपूर्ण center होता है एक computer operating system (OS) का. यह एक core होता है जो की सभी basic services प्रदान करता है OS के अलग अलग हिस्सों को. यह वो मुख्य layer होता है OS और hardware, के बीच में जो की मदद करता है process और memory management, file systems, device control और साथ में networking में भी।
एक kernel को ज्यादातर समय में एक shell के साथ तुलना किया जाता है, जो की असल में OS का एक outermost part होता है जो की user commands के साथ interact करता है. Kernel और shell ऐसे terms हैं जिन्हें की ज्यादा frequently Unix OSes में इस्तमाल किय जाता है, किसी IBM mainframe या Microsoft Windows systems के बदले में।
वहीँ एक kernel को किसी एक basic input/output system (BIOS) के साथ confuse न हों, बल्कि यह एक independent program होता है जिसे की एक chip में store किया गया होता है computer के circuit board में।
इसलिए आज मैंने सोचा की क्यूँ न आप लोगों को कर्नेल क्या है और ये कैसे काम करता है के बारे में पूरी जानकारी प्रदान की जाये. इससे आपको इस basic सी computer के हिस्से के बारे में पता चल सकें. तो बिना देरी किये चलिए शुरू करते हैं।
कर्नेल क्या होता है (What is Kernel in Hindi)
Operating system हमें एक graphic interface प्रदान करता है जिससे की हम computer system को command दे सकें. लेकिन system इन commands को directly समझ नहीं सकता है।
इसलिए code की translation की जाती है binary language में जिसके लिए Operating System की core component को इस्तमाल में लाया जाता है, इसे ही Kernel कहते हैं।
हम User Kernel के lowest layer से deal करते हैं और वहीँ kernel फिर system के साथ deal करता है।
Kernel एक mediator का role निभाता है system hardware और software के बीच में . ये kernel एक operating system (OS) नहीं होता है; बल्कि ये एक central module होता है operating system का. ये वो पहला program होता है जिसे की booting process के दौरान protected memory area में load किया जाता है. यह उस memory में तब तक स्तिथ होता है जब तक system power on हो।
ये kernel एक low-level abstraction layer होता है. User की operation एक system का इस्तमाल करती हैं system से interact करने के लिए. System calls invoke करती हैं kernel को, और फिर kernel execute करता है user के operation को।
Kernel इसी बिच system के दुसरे processes को manage करता है जैसे की process management, memory management, device management, I/O management।
कर्नेल क्या काम करता है?
जैसे की मैंने पहले भी बताया है की एक kernel Operating System का core component होता है. यह interprocess communication और system calls, का इस्तमाल कर एक bridge के तरह act करता है applications और data processing के बीच जिसे की performed किया जाता है hardware level में।
जब एक operating system को load किया जाता है memory में, तब kernel सबसे पहले load होता है और ये memory में तब तक रहता है जब तक की operating system फिर से shut down न हो जाये. ये kernel ही responsible होता है सभी low-level tasks जैसे की disk management, task management और memory management के लिए।
Overall देखा जाये तो एक computer kernel interface करता है तीन major computer hardware components, और साथ में services भी प्रदान करता है application/user interface को, CPU, memory और दुसरे hardware I/O devices।
ये kernel प्रदान करने के साथ साथ manage भी करता है computer resources को, जिससे ये allow कर सके दुसरे programs को run करने के लिए और इन resources का इस्तमाल कर सकें।
इसके साथ kernel applications के लिए memory address space setup करता है, files load करता है application code से memory में, programs के लिए execution stack set up करता है और इसके साथ branches out करता है किसी particular locations को programs के भीतर execution के लिए।
Kernel के Features क्या हैं?
चलिए kernel के features के विषय में जानते हैं।
Kernel की Responsibilities क्या हैं?
अब चलिए Kernel की responsibilities के विषय में जानते हैं।
1. Central Processing Unit : ये Kernel ही ये responsibility लेती है की किस समय में कितने running programs को allocate किया जाये processors को।
2. Random Access Memory: RAM का इस्तमाल दोनों program instructions और data को store करने के लिए किया जाता है. वहीँ अक्सर multiple programs चाहते हैं इस memory को access करने के लिए, वहीँ ये ज्यादा memory की चाह रखते हैं जो की computer में available memory से ज्यादा होती है।
ऐसे में Kernel का ये दयित्व होता है की वो allocate करे कौन सी memory कौन सी process इस्तमाल करेगी, इसके साथ ये भी तय करना की आखिर क्या करें जब ज्यादा memory available न हो तब।
3. Input/output Devices : ये Kernel ही allocate करती हैं requests को अलग अलग applications से जिससे की सही device में I/O perform किया जा सके, साथ में ये convenient methods भी प्रदान करता है device को इस्तमाल करने के लिए।
4. Memory Management : ये Kernel के पास full access होता है system के memory के ऊपर और ये उन्हें safely access करने के लिए allow भी करता है जब उनकी जरुरत पड़ती है तब।
5. Device Management : Kernel सभी available devices की एक list maintain करनी चाहिए. यह list पहले से ही configured होती है user के द्वारा या इसे detect कर लिया गया होता है operating system के द्वारा run time में (normally इसे ही plug and play कहते हैं)।
Features जो की Kernel प्रदान करता है?
तो चलिए अब जानते हैं की ऐसे क्या features हैं जो की kernel प्रदान करता है।
1) Scheduling of Process (Dispatching)
2) Interprocess Communication
3) Process Synchronization
4) Context Switching
5) Process Control Blocks की Manipulation करना
6) Interrupt Handling
7) Process Creation और Destruction करना
8) Process Suspension और Resumption करना
कर्नेल की परिभाषा
OS process का function manager होता है ये kernel. ये OS के सभी primary tasks को control और manage करती है।
Memory Management : Kernel processes को virtual और physical memory प्रदान करता है उनके execution को पूर्ण करने के लिए. अगर एक process खत्म नहीं हो पा रही है physical memory में, तब kernel प्रदान करता है एक virtual space वो भी hard disk में जिससे की वो operation को वहां पर store कर सके।
इसी concept को virtual mapping कहा जाता है. जब एक program को data की जरुरत होती है जो की currently present नहीं होती है RAM में, तब CPU signal करता है kernel को data के लिए और फिर kernel भी respond करता है CPU को, जिसमें वो contents को एक inactive memory block में write कर सके disk में (इसके लिए एक space create किया गया होता है data के requirement के अनुसार) और फिर इसे replace भी किया जाता है data के द्वारा जिसे की program के द्वारा request किया जाता है. इसी scheme को demand paging कहा जाता है।
Scheduler : ये Kernel एक scheduler के तरह act करता है processes के लिए execution के दौरान. एक समय में single process को execute किया जाता है processor के द्वारा. ये kernel allocate करती है processor को list of running applications में से एक program को।
Device Management : Kernel बाकि peripheral devices की activities को control करता है device drivers के मदद से. Device drivers ऐसे program होते हैं जो की operating system को मदद करते हैं hardware devices के साथ interact करने के लिए।
Device driver program एक interface प्रदान करती है और ये मदद करती है OS को दुसरे peripheral devices जैसे की printer, scanner, modems, keyboard, mouse, इत्यादि से deal करने के लिए।
ये driver translate करती है operating system function calls को device-specific calls में. Device drivers detect करती हैं installed devices को और साथ में search भी करती हैं device drivers को जब system start हो रहा होता है।
यह process इस्तमाल करता है system call mechanism का Operating System के Kernel के साथ deal करने के लिए. एक system call ऐसा service call होता है kernel को जिससे ये permission लेता है process execution करने के लिए. एक system call machine code instruction होता है जो की application program के द्वारा इस्तमाल होता है जिससे ये service permission पा सके Operating system से।
Memory Management: – ये kernel Random Access Memory को भी manage करता है. ये allocate करता है memory दोनों instruction और data को execution के लिए. ये decide करता है की कौन सी process रहे RAM में और कितनी memory की जरुरत होती है एक process को implement करने के लिए? ये kernel handle करती है बहुत सारे operations को different mechanism के इस्तमाल से।
कर्नेल के प्रकार (Types of Kernel in Hindi)
चलिए अब kernel के अलग अलग types या प्रकार के विषय में जानते हैं।
Monolithic Kernels
Monolithic Kernels run करते हैं सभी basic system services जैसे की process और memory management, interrupt handling और I/O Communication, file system इत्यादि Kernel space के भीतर ही।
Monolithic kernels की typically सबसे ज्यादा data throughput होती बाकि सभी kernels की तुलना में और इसलिए इसे बड़े servers या job dedicated servers में इस्तमाल किया जाता है।
Monolithic Kernel के Advantages
1) ये छोटे होते हैं Source और Compiled forms में
2) कम code का मतलब है की कम bugs और security problems भी कम होते हैं.
3) System calls का इस्तमाल किया जाता है operations करने के लिए monolithic kernel में
4) Execution बहुत ही fast होती है
5) इसमें सभी चीज़ें kernel में ही होती है इसलिए हमें कोई extra mechanism की जरुरत ही नहीं होती है I/O और Process को handle करने के लिए application बनाने के दौरान।
Monolithic Kernel के Disadvantages
1) Coding करना वो भी kernel space में बहुत hard होता है, क्यूंकि आप इसमें common libraries का इस्तमाल नहीं कर सकते हैं.
2) इसमें Debugging करना कठिन होता है, क्यूंकि computer की rebooting करना बार बार पड़ता है
3) Kernel के एक हिस्स्से में स्तिथ Bugs बहुत ज्यादा side effects पैदा करते हैं
4) Kernels अक्सर बड़े बन जाते हैं और उन्हें maintain करना कठिन हो जाता है.
5) ये portable नहीं होता है – Monolithic kernels को बार बार rewritten करना होता है प्रत्येक नए architecture के लिए जिन्हें OS में इस्तमाल किया जाने वाला होता है।
Micro Kernel
वहीँ microkernel में, kernel प्रदान करता है basic functionality जिससे ये allow करता है servers और separate programs का execution. Kernel को तोडा जाता है separate processes में जिन्हें की servers कहा जाता है. यहाँ कुछ servers run करते हैं user space में तो कुछ kernel space में।
सभी servers को अलग अलग ही रखा जाता है और अलग अलग address space में run किया जाता है.
Microkernels को आप typically real-time systems में देख सकते हैं।
MicroKernel के Advantages
1) ये आसान होता है maintain करने के लिए Monolithic Kernel की तुलना में.
2) ये Crash resistant होता है (मतलब की अगर एक server fail होता है, तब दूसरा servers तब भी efficiently काम कर रहे होते हैं).
3) Portable
4) Size में छोटे होते हैं
5) इसमें कम मात्रा में code होती है. इससे इनकी stability और security दोनों बढ़ जाती है।
Hybrid Kernel
इसमें दोनों monolithic kernel और micro kernel का best मिला हुआ होता है।
जैसे Speed और simple design एक monolithic kernel का + Modularity और stability एक micro kernel का
इसमें दोनों monolithic और micro kernels के qualities मेह्जुद होते हैं लेकिन हम इसे एक specific kernel exclusively नहीं बता सकते हैं।
इन kernels को आप typically desktops, आपके Windows, Mac और Linux OS में देख सकते हैं।
Nano kernel
इस प्रकार के kernel केवल hardware abstraction ही offer करते हैं, इसमें कोई services नहीं होती है और साथ में kernel space भी minimum में होती है. एक nanokernel a hypervisor का आधार होता है जिसके ऊपर आप multiple systems को emulate कर सकते हैं via virtualisation. Nanokernels बहुत ही बढ़िया होते हैं embedded projects के लिए।
Exo-Kernel
ये kernel सबसे छोटा होता है. ये केवल offer करता है process protection और resource handling. वो programmer जो की इस kernel का इस्तमाल कर रहा हो वो responsible होता है device को correctly access करने के लिए जिसे वो इस्तमाल करना चाहें।
कर्नेल और ऑपरेटिंग सिस्टम में अंतर
OS एक system software package होता है वहीँ kernel एक हिस्सा होता है OS का जो की manage करता है सभी processes और devices को।
जहाँ operating system एक interface होता है user और hardware के बीच. वहीँ kernel एक interface होता है software और hardware के बीच।
Kernel मदद करता है program को दुसरे peripheral devices के साथ communicate करने के लिए।
LINUX एक Kernel है या फिर एक Operating System?
वैसे kernel और Os में अंतर तो होता है. जैसे की मैंने आपको पहले ही बता दिया है की Kernel OS का दिल होता है जो की उसके सभी core features को manage करता है, वहीँ अगर कुछ useful applications और utilities को उस kernel में add कर दिया जाये, तब ये complete package एक OS कहलाता है।
इससे ये कहा जा सकता है की एक operating system में एक kernel space के साथ साथ एक user space भी होता है।
इससे ये बात साफ़ होता है की Linux एक kernel है क्यूंकि इसमें कोई दूसरा applications जैसे की file-system utilities, windowing systems और graphical desktops, system administrator commands, text editors, compilers इत्यादि कुछ भी नहीं होते हैं।
वहीँ बहुत से companies इन प्रकार के applications को linux kernel में add करते हैं और अपने operating system तैयार करते हैं जैसे की ubuntu, suse, centOS, redHat इत्यादि।
Kernel Panics क्या होता है?
चूँकि kernel handle करता है एक computer के ज्यादातर basic functions को, इसलिए अगर ये crash होता है तब ये अपने साथ पुरे computer को भी नीचे ले जायेगा. इसी undesirable event को एक “kernel panic” कहा जाता है macOS और Unix systems में।
ये Windows में blue screen death के तरह ही होता है. इस परिस्तिथि से उभरने के लिए आपको अपने computer को restart करना होता है।
NOTE Kernel panics अक्सर hardware communication issues के कारण ही उत्पन्न होते हैं. इसलिए, अगर आपका computer बहुत बार kernel panics जैसे issue show कर रहा है, तब आपको सभी unnecessary devices को unplug कर देना चहिये, इससे आपका problem समाप्त हो सकता है.
Conclusion
मुझे उम्मीद है की आपको मेरी यह लेख कर्नेल क्या है (What is Kernel in Hindi) जरुर पसंद आई होगी. मेरी हमेशा से यही कोशिश रहती है की readers को Kernel के विषय में पूरी जानकारी प्रदान की जाये जिससे उन्हें किसी दुसरे sites या internet में उस article के सन्दर्भ में खोजने की जरुरत ही नहीं है।
इससे उनकी समय की बचत भी होगी और एक ही जगह में उन्हें सभी information भी मिल जायेंगे. यदि आपके मन में इस article को लेकर कोई भी doubts हैं या आप चाहते हैं की इसमें कुछ सुधार होनी चाहिए तब इसके लिए आप नीच comments लिख सकते हैं।
यदि आपको यह post Kernel क्या होता है in hindi पसंद आया या कुछ सीखने को मिला तब कृपया इस पोस्ट को Social Networks जैसे कि Facebook, Twitter इत्यादि पर share कीजिये।
Aap amp ke liye kaun sa plugin use kar rahe hai sir???
Ye Google ka AMP plugin hai.
sir aapne amp version me custom ads kaise lagaye hai? pls bata sakte ho kya…?
Humne koi custom ads nahi lagaye.
Ye normal AMP ads hai.
aapne link ad wagera kaise lagaye hai kyuki amp official plugin me to ads lagane ka option he nhi hai?