Linux From Scratch
(linuxfromscratch.org)- उपयोगकर्ता को Linux सिस्टम को सीधे source code से बनाना सिखाने वाला step-by-step मैनुअल
- Version 12.4 1 सितंबर 2025 को जारी हुआ, जिसमें नवीनतम kernel 6.16.1, GCC 15.2.0, Glibc 2.42 आदि शामिल हैं
- सिस्टम build के लिए cross toolchain configuration, temporary tools installation, और bootable system completion तक पूरी प्रक्रिया को कवर करता है
- हर अध्याय में package list, build order, test procedure, system configuration को बारीकी से अलग-अलग व्यवस्थित किया गया है
- डेवलपर्स और सिस्टम इंजीनियर्स के लिए Linux की आंतरिक संरचना सीखने और custom distribution बनाने का महत्वपूर्ण संसाधन
अवलोकन
- Linux From Scratch(LFS) एक ऐसा प्रोजेक्ट है जिसे उपयोगकर्ता को किसी मौजूदा distribution के बिना Linux सिस्टम खुद बनाने के लिए डिज़ाइन किया गया है
- इसमें हर component को source code से compile और configure करने की प्रक्रिया step-by-step समझाई गई है
- Gerard Beekmans इसके संस्थापक हैं, और Bruce Dubbs संपादकीय प्रबंधन संभालते हैं
- दस्तावेज़ HTML-आधारित online manual के रूप में उपलब्ध है, जिसमें हर चरण के लिए विस्तृत links और package versions दिए गए हैं
संस्करण जानकारी
- वर्तमान stable version 12.4 है, जो 1 सितंबर 2025 को जारी हुआ
- copyright 1999–2025 Gerard Beekmans के पास है
- नवीनतम release में Linux 6.16.1, GCC 15.2.0, Glibc 2.42, Python 3.13.7 जैसे प्रमुख packages शामिल हैं
दस्तावेज़ संरचना
- दस्तावेज़ प्रस्तावना, build की तैयारी, cross toolchain निर्माण, system build, boot configuration, appendix जैसे 5 प्रमुख भागों में संगठित है
- प्रस्तावना(Preface) : लक्षित पाठक, आवश्यक ज्ञान, standards compliance, package selection के कारण आदि की व्याख्या
- बिल्ड की तैयारी(Preparing for the Build) : host system requirements, partition creation, environment variable setup आदि शामिल
- क्रॉस टूलचेन और अस्थायी tools build(Building the LFS Cross Toolchain and Temporary Tools) : Binutils, GCC, Glibc जैसे core compiler components का configuration
- LFS system build(Building the LFS System) : मुख्य system software की installation और configuration
- बूट करने योग्य सिस्टम पूर्ण करना(Making the LFS System Bootable) : kernel compilation और GRUB configuration
- परिशिष्ट(Appendices) : abbreviations, dependencies, bootscripts, license आदि शामिल
प्रमुख घटक
- package list में 100 से अधिक core utilities और libraries शामिल हैं
- उदाहरण: Coreutils 9.7, Bash 5.3, Perl 5.42.0, Python 3.13.7, OpenSSL 3.5.2, Systemd Udev 257.8
- हर package के लिए installation procedure, tests, cleanup चरण विस्तार से सूचीबद्ध हैं
- SysVinit 3.14 आधारित bootscripts और GRUB 2.12 bootloader configuration शामिल है
सिस्टम कॉन्फ़िगरेशन और बूट
- अध्याय 9(System Configuration) में network, locale, device management, input settings आदि शामिल हैं
- अध्याय 10(Making the LFS System Bootable) में
/etc/fstabलिखना, kernel build, और GRUB configuration की प्रक्रिया शामिल है - अध्याय 11(The End) में system reboot और आगे की learning materials का मार्गदर्शन है
परिशिष्ट और लाइसेंस
- परिशिष्ट D में
bootऔरsysconfigscripts का version 20250827 शामिल है - परिशिष्ट F में Creative Commons और MIT License दो लाइसेंस निर्दिष्ट हैं
- dependency list, glossary, acknowledgements जैसे संदर्भ सामग्री उपलब्ध हैं
महत्व
- LFS, Linux के संरचनात्मक सिद्धांतों और build system को प्रत्यक्ष अनुभव से समझने के लिए एक शैक्षिक और शोध-उन्मुख प्रोजेक्ट है
- system administrators, distribution developers, और security researchers के लिए यह न्यूनतम Linux environment बनाने का मानक संदर्भ माना जाता है
1 टिप्पणियां
Hacker News की राय
1999 में शुरू किया था और 2001 तक इस्तेमाल किया, लेकिन dependency management और recompilation इतना मुश्किल था कि छोड़ना पड़ा
उस समय documentation आज जितनी विस्तार से नहीं थी, इसलिए बहुत कुछ खुद ट्रैक करना पड़ता था, और कई obscure packages भी थे
फिर भी Slackware पर जाते हुए XFree86, GNOME जैसे packages को खुद build करना और उनमें योगदान देना बहुत मज़ेदार था
अगर समय मिले तो इसे ज़रूर आज़माने की सलाह दी गई है। Linux को देखने का नज़रिया पूरी तरह बदल जाता है
अब virtual machine में दोबारा आज़माने लायक लगता है
LFS/BLFS की असली ताकत यह है कि आप अपने उपयोग के हिसाब से सिस्टम को ढाल सकते हैं
मैं 4000 projects को Ruby script से ट्रैक कर रहा हूँ। अगर gem-coop, commercial rubygems.org का विकल्प बन गया, तो मैं अपना project फिर से public करूँगा
तैयार सिस्टम को वास्तव में इस्तेमाल नहीं किया, लेकिन इस पर बिताई गई कुछ शामें पूरी तरह सार्थक थीं
जानकारी तक आसान पहुँच Linux की बढ़ोतरी की बड़ी वजहों में से एक है
कम उम्र में LFS बनाते हुए सीखा कि कंप्यूटर के सबसे निचले स्तर तक पहुँचना संभव है
हालांकि Gentoo या Arch भी लगभग वैसा ही सीखने का अनुभव देते हैं, लेकिन install करने में बहुत कम समय लेते हैं
बहुत से लोग कहते हैं, “Gentoo नहीं, मैं LFS करूँगा,” लेकिन ज़्यादातर लोग बीच में छोड़ देते हैं या फिर हमेशा के लिए source-based distributions से नफ़रत करने लगते हैं
Slackware और LFS की तुलना Haskell से करते हुए कहा गया कि बहुत चरम पर जाना अलाभकारी हो सकता है
LFS में documentation बहुत समृद्ध है, और Slackware भले समय से पीछे रह गया हो, लेकिन Patrick की मेहनत वाकई शानदार थी
Seattle के एक PC recycling warehouse से 386/486 PC parts इकट्ठे करके मशीनें जोड़ीं और उन पर Linux install किया
उन Frankenstein computers के साथ Linux सीखते-सीखते बड़ा हुआ
RPM-आधारित सिस्टम में dnf की transaction functionality की वजह से install history और rollback मिल जाता है, इसलिए maintenance बहुत आसान हो जाती है
अगर आप एक बार किताब के साथ चलते हुए OS बनाते हैं, तो दूसरे distributions के फ़र्क समझना आसान हो जाता है और सिस्टम के प्रति ownership की भावना बनती है
ARMv6 के लिए cross-compilation होने की वजह से यह बहुत कठिन था, लेकिन बहुत कुछ सीखने को मिला
Jenkins से build automation किया, और bash scripts तथा Makefile से सिस्टम तैयार किया
अंतिम image लगभग 40MB की थी, और वही अपने आप में गर्व की बात थी
“tests को कभी skip मत करो” जैसी पंक्ति बहुत प्रभावशाली लगी
glibc भी कुछ test failures की अनुमति देता है, इसलिए मैंने भी अपने software tests में इसी तरह की पंक्ति डाल दी
“अगर आपने यह step तोड़ा, तो सिस्टम खराब हो सकता है” जैसी चेतावनी देखकर यह Dark Souls जैसी Linux distribution लगी
kernel को दोबारा compile करते समय बहुत सारे options होने से मुश्किल होती है, लेकिन यही सीखने की प्रक्रिया Linux को आकर्षक बनाती है
दूसरे OS, खासकर Windows में, ऐसी संस्कृति कम देखने को मिलती है
क्या BSD के लिए भी LFS जैसा कोई वर्शन है?