Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
FDD-book — FreeBSD Device Driver पुस्तक | Kitploit
उपकरण/GitHubGitHub/ebrandi/fdd-book
एम्बेडेड सिस्टम सुरक्षारिवर्स इंजीनियरिंगडीबगर्सहार्डवेयर हैकिंगहार्डवेयर सुरक्षालर्निंग और शिक्षालर्निंग पाथ और कोर्सफर्मवेयर विश्लेषणलैब और अभ्यास
GitHubebrandi/fdd-book

FDD-book

FreeBSD Device Driver पुस्तक

6005071 महीना पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

FreeBSD Device Drivers पुस्तक कवर

FreeBSD Device Drivers

पहले कदम से कर्नेल निपुणता तक

एडसन ब्रांडी द्वारा · संस्करण 2.0 (अप्रैल 2026)

License FreeBSD Pages Status Languages


इस पुस्तक के बारे में

FreeBSD Device Drivers: पहले कदम से कर्नेल निपुणता तक एक मुफ्त, ओपन-सोर्स पुस्तक है जो आपको "मैंने कभी कर्नेल कोड नहीं लिखा" से लेकर "मैं उत्पादन-गुणवत्ता वाले FreeBSD ड्राइवर लिख, डीबग और सबमिट कर सकता हूँ" तक ले जाती है। यह एक संदर्भ पुस्तक नहीं, बल्कि एक निर्देशित पाठ्यक्रम है, जो 38 अध्यायों, 6 परिशिष्टों और दर्जनों हाथों-हाथ प्रयोगशालाओं के रूप में संरचित है जो वास्तविक FreeBSD 14.x सिस्टम पर संकलित और लोड होते हैं।

यह पुस्तक उन पाठकों के लिए है जो सीखने को तैयार हैं बजाय इसके कि वे पहले से योग्य हों। यह UNIX की मूल बातों और C भाषा से शुरू होती है, कर्नेल द्वारा आपसे मांगे जाने वाले प्रत्येक अवधारणा को कदम-दर-कदम समझाती है, और तभी ड्राइवर विकास का द्वार खोलती है। जब तक आप DMA, इंटरप्ट और PCI कार्य तक पहुंचते हैं, तब तक शब्दावली स्वाभाविक लगती है, थोपी नहीं।

"कर्नेल प्रोग्रामिंग अभी भी प्रोग्रामिंग है, केवल अधिक स्पष्ट नियमों, अधिक जिम्मेदारी और थोड़ी अधिक शक्ति के साथ। एक बार जब आप इसे समझ लेते हैं, तो डर उत्साह में बदल जाता है।" (अध्याय 1 से)

यह पुस्तक क्यों?

पहले से ही उत्कृष्ट FreeBSD कर्नेल संदर्भ मौजूद हैं, जिनमें man 9, आर्किटेक्चर हैंडबुक और Newbus पेपर शामिल हैं। जो कमी थी वह एक एकल पाठ है जो:

  • शून्य से शुरू होता है। किसी भी कर्नेल कोड को लिखने से पहले UNIX, C और FreeBSD वातावरण सिखाया जाता है।
  • विशेष रूप से FreeBSD 14.x को लक्षित करता है। प्रत्येक API, प्रत्येक उदाहरण, प्रत्येक प्रयोगशाला FreeBSD 14.3 स्रोत वृक्ष के विरुद्ध सत्यापित किया गया।
  • प्रयोगशालाओं को प्रथम श्रेणी मानता है। लगभग आधा अनुशंसित अध्ययन समय हाथों-हाथ है। वही पैटर्न (अटैच, सफाई, लॉकिंग) अध्यायों में दोहराए जाते हैं जब तक कि वे प्रतिवर्त न बन जाएं।
  • पूरी पुस्तक में एक ही ड्राइवर बनाता है। myfirst ड्राइवर अध्याय दर अध्याय विकसित होता है, सिंक्रोनाइज़ेशन, फिर हार्डवेयर एक्सेस, फिर इंटरप्ट, फिर DMA प्राप्त करता है। आप अपने हाथों में एक ही कोड को परिपक्व होते देखते हैं।
  • पूर्ण जीवनचक्र को कवर करता है। "Hello Kernel Module" से लेकर Phabricator समीक्षा सबमिट करने और एक ड्राइवर को FreeBSD वृक्ष में शामिल कराने तक।

यह पुस्तक किसके लिए है

  • शुरुआती जो C, UNIX या कर्नेल के बारे में बहुत कम जानते हैं लेकिन सीखने को तैयार हैं।
  • डेवलपर्स जो उत्सुक हैं कि ऑपरेटिंग सिस्टम वास्तव में हुड के नीचे कैसे काम करते हैं।
  • पेशेवर जो पहले से FreeBSD (या समान सिस्टम) का उपयोग करते हैं और व्यवहार में ड्राइवर कैसे बनाए जाते हैं, यह सीखकर अपने ज्ञान को गहरा करना चाहते हैं।

यह पुस्तक किसके लिए नहीं है

  • त्वरित कॉपी-पेस्ट मैनुअल खोजने वाले पाठक। पुस्तक समझ पर जोर देती है, शॉर्टकट पर नहीं।
  • अनुभवी कर्नेल डेवलपर्स जिन्हें मूल बातों की आवश्यकता नहीं है। गति जमीन से शुरू होती है।
  • विश्वकोशीय हार्डवेयर संदर्भ चाहने वाले पाठक। ध्यान वास्तविक दुनिया के FreeBSD ड्राइवर विकास पर है, न कि विस्तृत बस या डिवाइस विनिर्देशों पर।

आप क्या सीखेंगे

पुस्तक सात भागों में संगठित है जो एक दूसरे पर निर्मित होते हैं:

अंत तक, आपने अपने स्वयं के कर्नेल मॉड्यूल लिखे और लोड किए होंगे, एक कैरेक्टर ड्राइवर बनाया होगा, वास्तविक इंटरप्ट और DMA को संभाला होगा, कर्नेल पैनिक को डीबग किया होगा, लोड के तहत अपने ड्राइवर को प्रोफाइल किया होगा, और अपने कार्य को FreeBSD प्रोजेक्ट में वापस योगदान करने के हर चरण से गुज़रे होंगे।

पुस्तक के आँकड़े

पूर्ण विषय-सूची

पूरी अध्याय सूची देखने के लिए क्लिक करें

भाग 1: FreeBSD, C और कर्नेल के आधार

  1. परिचय: जिज्ञासा से योगदान तक
  2. अपनी प्रयोगशाला स्थापित करना
  3. UNIX का एक सौम्य परिचय
  4. C प्रोग्रामिंग भाषा पर पहली नज़र
  5. FreeBSD कर्नेल प्रोग्रामिंग के लिए C को समझना
  6. FreeBSD ड्राइवर की शारीरिकी

भाग 2: अपना पहला ड्राइवर बनाना

  1. अपना पहला ड्राइवर लिखना
  2. डिवाइस फ़ाइलों के साथ काम करना
  3. डिवाइसों से पढ़ना और लिखना
  4. इनपुट और आउटपुट को कुशलतापूर्वक संभालना

भाग 3: समवर्तीता और सिंक्रोनाइज़ेशन

  1. ड्राइवरों में समवर्तीता
  2. सिंक्रोनाइज़ेशन तंत्र
  3. टाइमर और विलंबित कार्य
  4. टास्कक्यू और स्थगित कार्य
  5. अधिक सिंक्रोनाइज़ेशन: शर्तें, सेमाफोर और समन्वय

भाग 4: हार्डवेयर और प्लेटफ़ॉर्म-स्तरीय एकीकरण

  1. हार्डवेयर तक पहुंचना
  2. हार्डवेयर का अनुकरण
  3. PCI ड्राइवर लिखना
  4. इंटरप्ट संभालना
  5. उन्नत इंटरप्ट हैंडलिंग
  6. DMA और उच्च-गति डेटा स्थानांतरण
  7. पावर प्रबंधन

भाग 5: डीबगिंग, उपकरण और वास्तविक दुनिया के अभ्यास

  1. डीबगिंग और ट्रेसिंग
  2. कर्नेल के साथ एकीकरण
  3. उन्नत विषय और व्यावहारिक सुझाव

भाग 6: परिवहन-विशिष्ट ड्राइवर लिखना

पुस्तक कैसे पढ़ें

अनुशंसित गति एक सप्ताह में एक अध्याय है, लगभग पाँच घंटे साप्ताहिक अध्ययन के साथ। वह अनुसूची पूरी पुस्तक को एक शैक्षणिक वर्ष में पहुँचने योग्य बनाती है। कुछ अध्याय (विशेष रूप से अध्याय 4 C पर, और भाग 4 के हार्डवेयर अध्याय) स्वाभाविक रूप से कई सप्ताह फैलते हैं।

प्रयोगशालाओं की दृढ़ता से अनुशंसा की जाती है। कर्नेल प्रोग्रामिंग मांसपेशी स्मृति को इस तरह पुरस्कृत करती है जैसे कुछ अन्य विषय करते हैं। वही अटैच पैटर्न, वही सफाई श्रृंखला, और वही लॉकिंग आकृति अध्याय दर अध्याय और ड्राइवर दर ड्राइवर दोहराई जाती है। उन पैटर्न को टाइप करना, उन्हें संकलित करना, उन्हें चालू कर्नेल में लोड करना, और उन्हें जानबूझकर विफल होते देखना उन्हें आंतरिक करने का सबसे प्रभावी तरीका है।

यदि आप पहले से C, UNIX और एक OS कर्नेल के सामान्य आकार को जानते हैं, तो पूरे भाग 1 में फास्ट-पथ नोट्स बताते हैं कि किन अनुभागों को ध्यान से पढ़ना है और किन्हें आप स्किम कर सकते हैं।

पुस्तक डाउनलोड करें

संस्करण 2.0 अब रिलीज़ पृष्ठ पर तीन भाषाओं और तीन प्रारूपों में उपलब्ध है:

आप Markdown स्रोत को सीधे content/ निर्देशिका में ब्राउज़ कर सकते हैं, या scripts/build-book.sh के साथ स्वयं पुस्तक बना सकते हैं।

अनुवादों के बारे में

अंग्रेज़ी संस्करण पुस्तक का मूल और आधिकारिक संस्करण है। ब्राज़ीलियाई पुर्तगाली और स्पेनिश संस्करणों का अनुवाद AI का उपयोग करके किया गया था और अभी तक पूर्ण मानव तकनीकी समीक्षा से नहीं गुज़रे हैं। उन्हें सामग्री को अधिक पाठकों के लिए सुलभ बनाने के लिए प्रकाशित किया गया है, लेकिन उनमें अनुवाद की गलतियाँ, अजीब शब्दावली या अनुवाद के दौरान उत्पन्न तकनीकी अशुद्धियाँ हो सकती हैं।

यदि अनुवादित संस्करण में कुछ अस्पष्ट, असंगत या तकनीकी रूप से संदिग्ध लगता है, तो कृपया सत्य के स्रोत के रूप में अंग्रेज़ी संस्करण देखें। अनुवादों की समीक्षा और सुधार में सहायता का बहुत स्वागत है (नीचे योगदान देखें)।

v2.0 में ज्ञात मुद्दे

यह एक बहुत बड़ी पुस्तक का ड्राफ्ट रिलीज़ है। कुछ बातों का ध्यान रखें:

  • PDF, EPUB और HTML संस्करणों में कुछ स्रोत-कोड ब्लॉक पृष्ठ से बाहर निकल सकते हैं या अजीब तरह से लपेट सकते हैं। ये प्रस्तुति समस्याएँ हैं जिन्हें भविष्य के रिलीज़ में सुधारा जाएगा; सामग्री स्वयं सही है।
  • यदि कोई कोड उदाहरण किसी भी प्रस्तुत प्रारूप में पढ़ने में कठिन है, इस रिपॉजिटरी में Markdown फ़ाइलें सत्य का स्रोत हैं। साफ संस्करण के लिए content/ के अंतर्गत प्रासंगिक फ़ाइल खोलें।
  • pt_BR और es_ES के लिए अनुवाद समीक्षा निकट भविष्य में नियोजित है, जैसे-जैसे लेखक का खाली समय अनुमति देता है।

रिपॉजिटरी संरचना```

FDD-book/ ├── content/ # Book content (Markdown) │ ├── chapters/ # Chapters by Part │ └── appendices/ # Appendices A-F ├── examples/ # Source code from the book ├── translations/ │ ├── pt_BR/ # Brazilian Portuguese (AI-translated) │ └── es_ES/ # Spanish (AI-translated) └── scripts/ # Build and utility scripts

root@kitploit:~
## योगदान

सभी प्रकार के योगदानों का स्वागत है, जिनमें सुधार, स्पष्टीकरण, नए उदाहरण, अनुवाद और FreeBSD डेवलपर्स तथा शिक्षार्थियों दोनों की समीक्षाएँ शामिल हैं।

### योगदान करने के तरीके

- **सामग्री:** नए अध्याय जोड़ें, मौजूदा सामग्री को परिष्कृत करें
- **तकनीकी समीक्षा:** FreeBSD 14.x के सापेक्ष अध्यायों की सटीकता की समीक्षा करें
- **अनुवाद समीक्षा:** AI-अनुवादित **pt_BR** और **es_ES** संस्करणों की समीक्षा और सुधार में सहायता करें; FreeBSD/कर्नेल अनुभव वाले देशी वक्ताओं का विशेष रूप से स्वागत है
- **नए अनुवाद:** पुस्तक का दूसरी भाषा में अनुवाद करने में सहायता करें
- **कोड:** उदाहरण, बिल्ड स्क्रिप्ट और टूलिंग में सुधार करें
- **मुद्दे:** बग, तथ्यात्मक त्रुटियाँ, अस्पष्ट अंश, या फ़ॉर्मेटिंग समस्याओं की रिपोर्ट करें

### मुद्दा रिपोर्ट करना

मुद्दा दर्ज करते समय कृपया शामिल करें:

- आप जो भाषा संस्करण पढ़ रहे थे (`en_US`, `pt_BR`, `es_ES`)
- उपयोग किया गया प्रारूप (PDF, EPUB, HTML, या Markdown)
- अध्याय या अनुभाग जहाँ समस्या दिखाई देती है
- समस्या का संक्षिप्त विवरण, और यदि आपके पास हो तो सुझाया गया सुधार

### कार्यप्रवाह

1. रिपॉजिटरी को फ़ोर्क करें
2. एक ब्रांच बनाएँ: `git checkout -b feature/your-change`
3. अपने परिवर्तन करें और `scripts/build-book.sh` के साथ बिल्ड का परीक्षण करें
4. स्पष्ट संदेश के साथ कमिट करें: `git commit -m "Chapter 18: clarify BAR mapping"`
5. पुश करें और एक पुल रिक्वेस्ट खोलें

जब आप पुस्तक पढ़ते समय अटक जाते हैं, तो **मुद्दा दर्ज करना मददगार होता है**। यदि कोई अंश गलत लगता है या कोई प्रयोग अप्रत्याशित रूप से विफल होता है, तो हर रिपोर्ट अगले पाठक का मार्ग सुगम बनाती है।

## अक्सर पूछे जाने वाले प्रश्न

### यह पुस्तक क्यों मौजूद है?

ईमानदार जवाब यह है कि FreeBSD प्रोजेक्ट को नए योगदानकर्ताओं की आवश्यकता है, और कर्नेल और ड्राइवर कार्य में प्रवेश का मार्ग हमेशा से जितना होना चाहिए था उससे अधिक कठिन रहा है। अधिकांश मौजूदा सामग्री मान लेती है कि आप पहले से UNIX जानते हैं, C अच्छी तरह जानते हैं, जानते हैं कि बस क्या होती है, और जानते हैं कि कर्नेल स्रोत ट्री को कैसे पढ़ा जाता है। यह उन लोगों के लिए काम करता है जो पहले से ही अधिकांश रास्ता तय कर चुके हैं। यह उस उत्सुक डेवलपर के लिए बहुत कम करता है जो शुरुआत करना चाहता है। इस पुस्तक का उद्देश्य उस प्रवेश-मार्ग को सरल बनाना है। यदि पाठकों की एक छोटी संख्या भी इसे पूरा करती है और आगे बढ़कर पैच सबमिट करती है, कोड की समीक्षा करती है, नए ड्राइवर लिखती है, या अंततः FreeBSD कमिटर बनती है, तो पुस्तक ने अपना काम कर लिया है। **FreeBSD योगदानकर्ताओं की अगली पीढ़ी को प्रशिक्षित करना ही इस कार्य को लिखे जाने का कारण है**।

### क्या शुरुआत करने से पहले मुझे C जानना आवश्यक है?

नहीं। अध्याय 4 और 5 C को बुनियाद से सिखाते हैं, जिसमें भाषा के वे भाग शामिल हैं जो कर्नेल कार्य के लिए मायने रखते हैं (पॉइंटर्स, स्ट्रक्चर, मेमोरी लेआउट, प्रीप्रोसेसर, और कॉलिंग कन्वेंशन)। यदि आप पहले से C अच्छी तरह जानते हैं, तो उन अध्यायों में साइडबार बताते हैं कि क्या छोड़ना है और क्या ध्यान से पढ़ना है।

### क्या मुझे UNIX या FreeBSD जानना आवश्यक है?

नहीं। अध्याय 2 आपको VM या बेयर मेटल पर FreeBSD स्थापित करने में मार्गदर्शन करता है, और अध्याय 3 UNIX कमांड लाइन, फ़ाइल सिस्टम, प्रक्रियाओं, अनुमतियों और संपादकों का परिचय देता है। भाग 1 के अंत तक आपके पास एक कार्यशील प्रयोगशाला और उसका उपयोग करने के लिए शब्दावली होगी।

### क्या मुझे वास्तविक हार्डवेयर की आवश्यकता है?

अधिकांश पुस्तक के लिए, नहीं। FreeBSD 14.x चलाने वाला एक वर्चुअल मशीन बुनियादी बातों, पहले ड्राइवर अध्यायों, समवर्तीता और तुल्यकालन, और डिबगिंग सामग्री के एक बड़े भाग के लिए पर्याप्त है। वास्तविक हार्डवेयर तब उपयोगी हो जाता है (लेकिन फिर भी कड़ाई से आवश्यक नहीं है) जब आप भाग 4 में PCI, इंटरप्ट और DMA अध्यायों तक पहुँचते हैं। वे अध्याय इस प्रकार लिखे गए हैं कि अवधारणाएँ समझ में आएँ भले ही आप उन्हें केवल VM में चलाएँ।

### क्या इससे मुझे Linux ड्राइवर लिखने में मदद मिलेगी?

अप्रत्यक्ष रूप से, हाँ। कर्नेल प्रोग्रामिंग अनुशासन बहुत अच्छी तरह से स्थानांतरित होता है: लॉकिंग रणनीति, मेमोरी प्रबंधन, इंटरप्ट संदर्भ, DMA मैपिंग, स्लीपिंग और नॉन-स्लीपिंग कोड पथों के बीच अंतर, रक्षात्मक सफाई क्रम। विशिष्ट API भिन्न होते हैं। इस पुस्तक को पढ़ने के बाद आप Linux डिवाइस मॉडल को नहीं जान पाएंगे, लेकिन आप इसकी समस्याओं और उनके समाधानों के आकार को पहचान पाएंगे, और आप Linux Device Drivers (LDD) को बहुत आसानी से पढ़ पाएंगे।

### विशेष रूप से FreeBSD 14.x ही क्यों?

प्रत्येक API, प्रत्येक उदाहरण, और प्रत्येक प्रयोग FreeBSD 14.3 स्रोत ट्री और संबंधित `man 9` पृष्ठों के अंतर्गत निष्पादित करने की योजना बनाई गई थी। किसी विशिष्ट रिलीज़ को लक्षित करने से पुस्तक फ़ंक्शन हस्ताक्षर, हेडर स्थान और व्यवहार के बारे में सटीक हो सकती है। अवधारणाएँ 14.x से कई वर्षों तक जीवित रहेंगी; सटीक पंक्ति संख्याएँ और छोटे API विवरण नहीं रहेंगे, और पुस्तक इस बारे में ईमानदार है।

### क्या यह एक आधिकारिक FreeBSD प्रोजेक्ट प्रकाशन है?

नहीं। यह FreeBSD डिवाइस ड्राइवर विकास के बारे में एक स्वतंत्र शैक्षिक पुस्तक है। यह FreeBSD प्रोजेक्ट का आधिकारिक प्रकाशन नहीं है। लेखक एक FreeBSD कमिटर और दस्तावेज़ीकरण अभियांत्रिकी टीम (DocEng) का सदस्य है, लेकिन पुस्तक उसके कार्य और विचारों को दर्शाती है, न कि कोई आधिकारिक प्रोजेक्ट स्थिति।

### वास्तव में इसमें मुझे कितना समय लगेगा?

यदि आप ध्यान से पढ़ते हैं और प्रयोग करते हैं, तो कुल लगभग 200 घंटे के काम की योजना बनाएँ। यह मोटे तौर पर 100 घंटे पढ़ने और 100 घंटे हाथों-हाथ प्रयोग का समय है। पाँच घंटे प्रति सप्ताह पर यह लगभग छह महीने का शाम का प्रोजेक्ट है; दस घंटे प्रति सप्ताह पर, एक केंद्रित दो महीने का स्प्रिंट। प्रयोग किए बिना पढ़ने से समय मोटे तौर पर आधा हो जाता है लेकिन मूल्य भी आधा हो जाता है: कर्नेल प्रोग्रामिंग मांसपेशी स्मृति को ऐसे पुरस्कृत करती है जैसे कुछ अनुशासन करते हैं।

### क्या मैं प्रयोग छोड़ सकता हूँ?

आप कर सकते हैं, लेकिन शायद नहीं करना चाहिए। प्रयोग वह जगह हैं जहाँ गद्य प्रतिवर्त बन जाता है। अटैच ऑर्डरिंग, क्लीनअप अनवाइंडिंग, और लॉक अधिग्रहण आकार जैसे पैटर्न हर अध्याय में दोहराए जाते हैं, और उन्हें आत्मसात करने का एकमात्र विश्वसनीय तरीका है उन्हें टाइप करना, संकलित करना, उन्हें चल रहे कर्नेल में लोड करना, और उन्हें जानबूझकर विफल होते देखना। प्रयोग छोड़ने वाले पाठक प्रगति की रिपोर्ट करते हैं जो पहले सहज लगती है और फिर भाग 3 या भाग 4 के आसपास चुपचाप रुक जाती है।

### इसे पढ़ने के बाद मैं FreeBSD में वापस योगदान कैसे करूँ?

अध्याय 37 पूर्ण सबमिशन वर्कफ़्लो को कवर करता है: पैच कैसे तैयार करें, Phabricator (FreeBSD कोड समीक्षा प्रणाली) का उपयोग कैसे करें, अपने काम को प्रायोजित करने के लिए कमिटर कैसे खोजें, समीक्षा फीडबैक का जवाब कैसे दें, और ड्राइवर को ट्री में कैसे शामिल कराएँ। पिछले अध्याय तकनीकी कौशल का निर्माण करते हैं; अध्याय 37 सामाजिक वर्कफ़्लो का निर्माण करता है। दोनों मायने रखते हैं।

### पुस्तक बहुत बड़ी है। मुझे कहाँ से शुरुआत करनी चाहिए?

अध्याय 1 से शुरुआत करें जब तक कि आपके पास न करने का कोई कारण न हो। पुस्तक संचयी है; बाद के अध्याय पहले स्थापित शब्दावली और आदतों पर निर्भर करते हैं। यदि आप पहले से C, UNIX, और OS कर्नेल के सामान्य आकार को जानते हैं, तो भाग 1 के अंदर फास्ट-पथ नोट्स बताते हैं कि क्या छोड़ना है। यदि कोई विशिष्ट उपतंत्र आपको यहाँ लाया है (USB, नेटवर्किंग, स्टोरेज, PCI), तो भाग 1 और 2 को ध्यान से पढ़ना और फिर आगे बढ़ना ठीक है, लेकिन जब पिछले अध्यायों के शब्द फिर से दिखाई दें तो वापस आने की अपेक्षा करें।

### मुझे एक गलती मिली। मुझे क्या करना चाहिए?

GitHub पर एक मुद्दा खोलें। भाषा संस्करण, आप जो प्रारूप पढ़ रहे थे, अध्याय या अनुभाग, समस्या का संक्षिप्त विवरण, और यदि आपके पास हो तो सुझाया गया सुधार शामिल करें। हर रिपोर्ट अगले पाठक के अनुभव को बेहतर बनाती है। pt_BR और es_ES संस्करणों में अनुवाद संबंधी मुद्दों का विशेष रूप से स्वागत है, क्योंकि उनकी अभी तक पूर्ण मानव तकनीकी समीक्षा नहीं हुई है।

### क्या पुस्तक वास्तव में मुफ्त है?

हाँ। यह MIT लाइसेंस के तहत जारी की गई है। आप इसे पढ़ सकते हैं, साझा कर सकते हैं, प्रिंट कर सकते हैं, उद्धृत कर सकते हैं, इस पर निर्माण कर सकते हैं, और इसका अनुवाद कर सकते हैं। व्यक्तिगत उपयोग के लिए श्रेय की सराहना की जाती है लेकिन आवश्यक नहीं है। यदि आप कार्य का समर्थन करना चाहते हैं, तो सबसे उपयोगी चीज़ें जो आप कर सकते हैं वे हैं: पुस्तक के बारे में अन्य लोगों को बताएँ, जब समस्याएँ मिलें तो मुद्दे दर्ज करें, समीक्षा या अनुवाद में योगदान दें, और (यदि यह अंततः आपको वहाँ ले जाए) FreeBSD प्रोजेक्ट में अपना काम सबमिट करें।

## लेखक के बारे में

मैं एडसन ब्रांडी हूँ। प्रौद्योगिकी में मेरा मार्ग पारंपरिक नहीं था। मैंने 1995 में ब्राज़ील में Unicamp में एक रसायन विज्ञान छात्र के रूप में शुरुआत की, कंप्यूटर के साथ काम करने की कोई योजना नहीं थी, लेकिन एक निरंतर प्रश्न था: *यह वास्तव में कैसे काम करता है?* उस प्रश्न ने मुझे FreeBSD तक पहुँचाया, और FreeBSD ने तब से मेरे करियर को आकार दिया है।

बाद के वर्षों में मैंने **ब्राज़ीलियाई FreeBSD उपयोगकर्ता समूह (FUG-BR)** की स्थापना की, **FreeBSD LiveCD Tool Set** का सह-निर्माण किया, और 2002 में **FreeBSD Brasil** की सह-स्थापना की, जो एक कंपनी है जो FreeBSD प्रशिक्षण, परामर्श और सहायता प्रदान करती है और आज भी संचालित होती है। मैं एक FreeBSD कमिटर हूँ और वर्तमान में **FreeBSD दस्तावेज़ीकरण अभियांत्रिकी टीम (DocEng)** का सदस्य हूँ, उन प्रणालियों को बनाए रखने में मदद कर रहा हूँ जो FreeBSD के दस्तावेज़ीकरण को दुनिया भर में जीवित और सुलभ रखती हैं।

पेशेवर रूप से, मैंने अपना करियर कई उद्योगों में बुनियादी ढाँचे और इंजीनियरिंग नेतृत्व में बिताया है, और आज मैं लंदन में एक फिनटेक कंपनी में IT निदेशक के रूप में कार्य करता हूँ।

मैंने यह पुस्तक इसलिए लिखी क्योंकि मैं चाहता हूँ कि अन्य उत्सुक लोगों के पास वह प्रवेश-मार्ग हो जो मेरे पास कभी नहीं था। कर्नेल कोड लिखने के लिए आपको कंप्यूटर विज्ञान की डिग्री की आवश्यकता नहीं है। आपको जिस चीज़ की आवश्यकता है वह है जिज्ञासा, दृढ़ता, धैर्य, और एक मार्गदर्शक जो आपसे आपकी जगह पर मिलता है।

एडसन ब्रांडी · [email protected]

## लाइसेंस

यह पुस्तक और इसके साथ आने वाला स्रोत कोड **MIT लाइसेंस** के तहत जारी किए गए हैं। पूरा पाठ देखने के लिए [LICENSE](https://github.com/ebrandi/fdd-book/blob/main/LICENSE) देखें। आप इस कार्य को पढ़ने, साझा करने और इस पर निर्माण करने के लिए स्वतंत्र हैं; श्रेय की सराहना की जाती है।

## आभार

- FreeBSD विकास समुदाय
- सभी योगदानकर्ता, समीक्षक और अनुवादक
- वह हर कोई जिसने कभी कोई मुद्दा दर्ज किया या कोई प्रश्न पूछा जिसने किसी अध्याय में सुधार किया

## लिंक

- **रिपॉजिटरी:** https://github.com/ebrandi/FDD-book
- **मुद्दे:** https://github.com/ebrandi/FDD-book/issues
- **चर्चाएँ:** https://github.com/ebrandi/FDD-book/discussions
- **लेखक:** एडसन ब्रांडी · [email protected]

---

<p align="center"><em>यदि यह पुस्तक आपकी मदद करती है, तो कृपया रिपॉजिटरी को स्टार करें और इसे किसी और के साथ साझा करें जो उत्सुक है कि कंप्यूटर वास्तव में कैसे काम करते हैं।</em></p>
टूल डाउनलोड करें
भागशीर्षकफोकस
1आधार: FreeBSD, C और कर्नेलप्रयोगशाला सेटअप, UNIX, कर्नेल कार्य के लिए C, ड्राइवर शारीरिकी
2अपना पहला ड्राइवर बनानाकैरेक्टर ड्राइवर, डिवाइस फ़ाइलें, रीड/राइट, I/O
3समवर्तीता और सिंक्रोनाइज़ेशनथ्रेड्स, म्यूटेक्स, कॉन्डवर, टाइमर, टास्कक्यू, सेमाफोर
4हार्डवेयर और प्लेटफ़ॉर्म-स्तरीय एकीकरणPCI, इंटरप्ट, MSI/MSI-X, DMA, पावर प्रबंधन
5डीबगिंग, उपकरण और वास्तविक दुनिया के अभ्यासट्रेसिंग, KGDB, उन्नत डीबगिंग, प्रदर्शन ट्यूनिंग
6परिवहन-विशिष्ट ड्राइवर लिखनाUSB, सीरियल, स्टोरेज/VFS, नेटवर्क ड्राइवर
7निपुणता विषय: विशेष परिदृश्य और किनारे के मामलेपोर्टेबिलिटी, वर्चुअलाइज़ेशन, सुरक्षा, एम्बेडेड, रिवर्स इंजीनियरिंग, अपस्ट्रीम सबमिशन
पृष्ठ4,500+
अध्याय38
परिशिष्ट6
पढ़ने का समय~100 घंटे
प्रयोगशाला समय~100 घंटे
कुल अध्ययन समय~200 घंटे (≈6 महीने प्रति सप्ताह 5 घंटे)
लक्ष्य FreeBSD रिलीज़14.3
भाषाएँअंग्रेज़ी (मूल) · ब्राज़ीलियाई पुर्तगाली (AI-अनुवादित) · स्पेनिश (AI-अनुवादित)
प्रारूपPDF · EPUB · HTML · Markdown स्रोत
  1. USB और सीरियल ड्राइवर
  2. स्टोरेज डिवाइस और VFS परत के साथ कार्य
  3. नेटवर्क ड्राइवर लिखना

भाग 7: निपुणता विषय

  1. पोर्टेबिलिटी और ड्राइवर एब्सट्रैक्शन
  2. वर्चुअलाइज़ेशन और कंटेनरीकरण
  3. सुरक्षा सर्वोत्तम अभ्यास
  4. डिवाइस ट्री और एम्बेडेड विकास
  5. प्रदर्शन ट्यूनिंग और प्रोफाइलिंग
  6. उन्नत डीबगिंग तकनीक
  7. एसिंक्रोनस I/O और इवेंट हैंडलिंग
  8. दस्तावेज़ीकरण के बिना ड्राइवर बनाना (रिवर्स इंजीनियरिंग)
  9. अपने ड्राइवर को FreeBSD प्रोजेक्ट में सबमिट करना
  10. अंतिम विचार और अगले कदम

परिशिष्ट

  • A: FreeBSD कर्नेल API संदर्भ
  • B: सिस्टम प्रोग्रामिंग के लिए एल्गोरिदम और तर्क
  • C: ड्राइवर डेवलपर्स के लिए हार्डवेयर अवधारणाएँ
  • D: ऑपरेटिंग सिस्टम अवधारणाएँ
  • E: FreeBSD कर्नेल आंतरिक में नेविगेट करना
  • F: बेंचमार्क हार्नेस और परिणाम
भाषाPDFEPUBHTML
अंग्रेज़ी (मूल)PDFEPUBHTML
पोर्तुगीज़ (ब्राज़ील), AI-अनुवादितPDFEPUBHTML
स्पेनिश, AI-अनुवादितPDFEPUBHTML