راهنمای ساخت یک توزیع جدید
چگونه یک توزیع لینوکسی شخصی ایجاد و از آن استفاده کنیم؟
به لطف انعطاف‌پذیری داخلی، گسترش‌پذیری و انطباق‌پذیری نرم‌افزارهای منبع باز کارهای زیادی می‌توان انجام داد. به‌طوری که این امکان فراهم است تا بر اساس نیازهای خاص خود تصمیم‌گیری کنید که محصول جدیدی بسازید. در این مقاله قصد داریم به شما نشان دهیم که چگونه توزیع لینوکسی شخصی خود را بر مبنای توزیع‌های رایج ایجاد و از آن‌ها استفاده کنید. قبل از شروع کار اجازه دهید دورنمای انجام این فرآیند را بررسی کنید.

دنیای سیستم‌عامل‌ها

همه ما روزانه از کامپیوتر استفاده می‌کنیم و اغلب درباره ویندوز و مک اطلاعات کافی داریم. با این حال‌، آیا در مورد قابلیت‌های سیستم‌عامل لینوکس اطلاع دارید؟ درست است که ویندوز و macOS سیستم‌عامل‌های قالب بازار در حوزه دسکتاپ هستند و در مکان سوم سیستم‌عامل لینوکس قرار دارد، اما برخی قابلیت‌های ارائه شده توسط لینوکس فراتر از دو سیستم‌عامل مذکور است. مایکروسافت ویندوز حدود 80٪ بازار و macOS حدود 16٪ بازار را به خود اختصاص داده‌اند، بنابراین مشاهده می‌کنیم که سهم کمی از بازار به لینوکس اختصاص پیدا کرده است، اما صبر کنید، واقعیت چیز دیگری است. این اعداد تنها منعکس کننده میزان استفاده از سیستم‌عامل‌های دسکتاپی هستند. آیا می‌دانید اندروید بر مبنای سیستم‌عامل لینوکس اجرا می‌شود؟ هنگامی که از فیسبوک، اینستاگرام یا گوگل استفاده می‌کنید در حقیقیت در حال استفاده از لینوکس هستید. جالب آن‌که در دنیای سیستم‌عامل‌های سرور، با اختلاف کم لینوکس پیشتاز است. 

تعریف دقیق یک سیستم‌عامل چیست؟ 

سیستم‌عامل نوعی نرم‌افزار است که میان سخت‌افزاری که با آن ارتباط برقرار می‌کنید و نرم‌افزاری که می‌خواهید اجرا کنید قرار می‌گیرد. وقتی روی صفحه‌کلید، کلیدی را فشار می‌دهید یا به صفحه‌نمایش نگاه می‌کنید، به شکل غیر ملموس در حال برقراری ارتباط با سخت‌افزار هستید. هنگامی که مرورگر وب خود را اجرا می‌کنید و از مرورگر برای تعامل با وب استفاده می‌کنید، مرورگر وب در حال اجرای کدها روی واحد پردازشی مرکزی است. با این حال، این فرآیندها به شکل مستقیم انجام نمی‌شود، زیرا ابتدا با سیستم‌عامل و سپس با سخت‌افزار در تعامل هستید. در اصل، سیستم‌عامل صحبت‌های سخت‌افزار را ترجمه و مدیریت می‌کند تا نرم‌افزارها بتوانند از آن استفاده کنند. برای درک بهتر این موضوع به شکل 1 دقت کنید. 

شکل 1

همان‌گونه که در شکل 1 مشاهده می‌کنید سه لایه انتزاعی سخت‌افزار، حالت هسته و حالت کاربری قرار دارند که ترکیب این لایه‌ها با یکدیگر اجازه می‌دهد تا بتوانید از سخت‌افزار سیستم به شکل درستی استفاده کنید. سیستم‌عامل لایه واسط میان سخت‌افزار، برنامه‌های کاربری و برنامه‌های سیستمی است. سیستم‌عامل از طریق کتابخانه‌هایی که ارائه می‌کند به برنامه‌ها و توسعه‌دهندگان اجازه می‌دهد به تعامل با سخت‌افزار بپردازند. 

لینوکس چیست؟

یک باور اشتباه در مورد لینوکس  وجود دارد که برخی کاربران تصور می‌کنند لینوکس به معنای واقعی کلمه یک سیستم‌عامل است. این برداشت از لینوکس صحیح نیست، زیرا لینوکس نرم‌افزاری است که مستقیماً با سخت‌افزار ارتباط برقرار می‌کند، در حالی که یک سیستم‌عامل واقعی کاری به مراتب بیشتر از تعامل انجام می‌دهد و شامل کتابخانه‌های نرم‌افزاری، مولفه زمان اجرا و به‌طور معمول مجموعه ابزارهای اجرایی پیش‌فرض است. بیشتر توزیع‌های لینوکس از GNU که توسط ریچارد استالمن به صورت رایگان و منبع باز طراحی شده به عنوان سیستم‌عامل استفاده می‌کنند. GNU  سرنام GNU’s Not Unix یک سیستم‌عامل شبه‌یونیکسی است که توسط GNU Project توسعه یافته و به شکل یک نرم‌افزار متن‌باز عرضه شده است. گنو از کامپایلر تا کتابخانه‌های سیستمی و برنامه‌های سیستمی را شامل می‌شود.  در دنیای لینوکس ما اغلب از اصطلاح GNU + Linux و به شکل عامیانه‌تر از GNU/Linux استفاده می‌کنیم تا نشان دهیم سیستم‌عامل لینوکس ترکیبی از این دو پروژه است. امروزه توزیع‌های زیاد لینوکسی وجود دارند که اغلب سبک هستند و در سامانه‌های توکار استفاده می‌شوند. با این‌حال بخش اعظمی از توزیع‌های لینوکس مبتنی بر توزیع‌های معروفی نظیر دبیان و اوبونتو هستند. 

نرم‌افزار متن‌باز در مقابل نرم‌افزار رایگان

هسته لینوکس به عنوان یک نرم‌افزار متن باز شناخته می‌شود به این معنا که کد منبع آن در دسترس کاربران قرار دارد. هر کاربری می‌تواند کدها را خوانده و تغییراتی در سورس کدها ایجاد کند. در این حالت، توسعه‌دهندگان می‌توانند به عنوان عضوی از جامعه لینوکس باگ‌ها را پیدا و اصطلاح کنند یا قابلیت‌های جدیدی به توزیع مدنظر اضافه کنند. نرم‌افزارهای متن‌باز بر پایه مفهوم جامعه توسعه‌دهندگان انعطاف‌پذیری بیشتری نسبت به نرم‌افزارهای اختصاصی و بسته نظیر ویندوز دارند. زیرا توسعه‌دهندگان در سراسر جهان قادر به مشاهده و ویرایش کدها هستند که در نهایت بهبود کیفیت نرم‌افزارها، رفع مشکلات و ارتقا امنیت نرم‌افزارها را به همراه دارد. به‌طور معمول نرم‌افزار‌های متن‌باز رایگان هستند که از معروف‌ترین آن‌ها می‌توان به VLC، MediaWiki و فایرفاکس اشاره کرد. به همین دلیل است که مدل توسعه منبع باز به یک اکوسیستم گسترده و مورد توجه تبدیل شده است. در نقطه مقابل نرم‌افزارهای رایگان قرار دارند که تعداد آن‌ها بیشتر از نرم‌افزارهای متن‌باز است. نرم‌افزارهای رایگان روش‌های جالبی در اختیار توسعه‌دهندگان قرار می‌دهند که از طریق این مدل توسعه نرم‌افزار کسب درآمد کنند. توسعه‌دهندگان می‌توانند با ارائه راه‌حل‌های مبتنی بر تبلیغات یا خرید‌های درون برنامه‌ای از مدل رایگان کسب درآمد کنند. در نقطه مقابل این دو مدل، نرم‌افزارهای اختصاصی نظیر سیستم‌عامل ویندوز مایکروسافت قرار دارند که مالیکت نرم‌افزار با کاربر نیست و کاربر تنها مجاز به استفاده از نرم‌افزار است. در این حالت کاربران نه تنها قادر به مشاهده کدها نیستند، بلکه هرگونه مهندسی معکوس، ویرایش یا بازنشر کدها توسط کاربران غیر‌قانونی است. به همین دلیل است که نرم‌افزارها و سیستم‌عامل‌های متن‌باز مورد توجه توسعه‌دهندگان قرار گرفته‌اند. اکنون که تا حدودی با فلسفه لینوکس و دنیای نرم‌افزارهای متن‌باز آشنا شدید، وقت آن رسیده با ابزارهایی که اجازه می‌دهند توزیع‌های سفارشی لینوکس را ایجاد کنیم آشنا شویم.

چرا باید یک توزیع لینوکسی ایجاد کنیم؟

وقتی این همه توزیع لینوکسی وجود دارد، به احتمال زیاد از خود می‌پرسید چرا باید به دنبال ساخت یک توزیع جدید باشیم، در حالی که توزیع‌های موجود قابلیت‌های مختلفی ارائه می‌کنند؟ هیچ سیستم‌عاملی در جهان نمی‌تواند به ‌طور کامل موردپسند کاربران باشد. به‌طور مثال، برخی سازمان‌ها ترجیح می‌دهند از سیستم‌عاملی استفاده کنند که به‌طور ذاتی دسترسی به برخی پورت‌ها را مسدود کرده باشد یا والدین ترجیح می‌دهند از سیستم‌عاملی که مناسب فرزندانشان است استفاده کنند، در چنین شرایطی ممکن است مجبور شوید توزیع لینوکس خود را ایجاد کنید. زمانی‌که از ابزارهای مناسبی استفاده کنید، مشاهده می‌کنید که ساخت یک توزیع لینوکسی آن‌گونه که به نظر می‌رسد سخت نیست، با این‌حال فرآیند زمان‌بری است. ابزارهای زیادی برای این منظور وجود دارد که برخی کاملا شناخته شده هستند. در این مقاله با هشت مورد از این ابزارها آشنا می‌شویم.

1. Linux Respin

Linux Respin انشعابی از ابزار محبوب Remasterys است که به‌روزرسانی آن متوقف شده است. Remasterys یکی از محبوب‌ترین ابزارها برای ساخت توزیع‌های لینوکسی یا تهیه نسخه پشتیبان بود، با این‌حال Linux Respin جایگزین مناسبی برای این ابزار است، هرچند قابلیت‌هایی محدودتر نسبت به Remasterys ارائه می‌کند، اما در زمینه ساخت توزیع‌های لینوکسی عملکرد قابل قبولی دارد. Linux Respin تنها در ارتباط با توزیع دبیان، مینت (Mint) و Trisquel در دسترس است که باعث شده کاربری آن تا حدودی محدود باشد. نکته منفی در ارتباط با ابزار فوق مستندات نه چندان قدرتمندی است که برای این ابزار ارائه شده‌اند. 

2. Linux Live Kit

Linux Live Kit ابزاری است که می‌توانید برای ساخت توزیع لینوکسی سفارشی یا تهیه پشتیبان از سیستم استفاده کنید. Linux Live Kit به‌طور پیش‌فرض از دبیان پشتیبانی می‌کند، اما امکان به‌کارگیری آن در ارتباط با سایر توزیع‌ها فراهم است، البته به شرط این‌که توزیع مدنظر از ماژول‌های هسته aufs و squashfs پشتیبانی کند. Linux Live Kit یک ابزار کارآمد کوتاه و به دور از پیچیدگی‌های مرسوم در اختیار کاربر قرار می‌دهد تا بدون مشکل امکان ساخت توزیع مدنظر کاربر فراهم شود. 

3. Ubuntu Imager

Ubuntu Imager ابزاری ایده‌آل برای ساخت توزیع‌های لینوکسی مبتنی بر اوبونتو است. Ubuntu Imager تنها گزینه در دسترس برای اوبونتو نیست، اما به دلیل امکانات خوبی که ارائه می‌کند گزینه ایده‌آلی برای ساخت توزیع‌های اوبونتومحور است. 

4. Linux from Scratch

اگر در زمان ساخت یک توزیع تمایل دارید نظارت دقیقی بر قابلیت‌ها و کاربردهایی داشته باشید که به یک توزیع سفارشی اضافه می‌شود، پیشنهاد می‌کنم از ابزار Linux from Scratch غافل نشوید. خوشبختانه مستندات مفصل و کاملی برای LFS ارائه شده و نه تنها برای ساخت یک توزیع لینوکسی عملکرد ایده‌آلی دارد، بلکه یک منبع عالی برای یادگیری لینوکس است. Linux from Scratch به شما امکان می‌دهد تا سیستم شخصی‌سازی شده لینوکس خود را کاملاً از کد منبع ایجاد کنید. LFS عملکردی متفاوت نسبت به سایر ابزارهایی دارد که در این مقاله به معرفی آن‌ها پرداختیم، اما برای ساخت یک توزیع لینوکس شخصی ایده‌آل است. 

5. Slax Modules Tool 

اگر به دنبال ابزاری با کاربری ساده و شبیه به Slax هستید که یک توزیع مبتنی بر Slackware است، Slax Modules Tool برای شما طراحی شده است. ابزار فوق به ویژه برای افرادی مناسب است که تمایل دارند یک نسخه لایو و سبک برای راه‌اندازی یک سیستم ایجاد کنند. Slax Modules Tools بر پایه Slackware طراحی شده و به کاربر اجازه می‌دهد ماژول‌های مختلفی را فراخوانی کند. البته توجه داشته باشید که رویکرد فوق تا حدودی قدیمی و منسوخ شده و برای نسخه‌های جدید Slax پیشنهاد می‌شود به جای استفاده از ماژول‌ها از apt برای نصب نرم‌افزار استفاده کنید.

6. Live Magic

Live Magic یکی دیگر از ابزارهایی است که برای ساخت توزیع‌های مبتنی بر دبیان طراحی شده است. با این‌حال ابزار فوق قابلیت‌هایی به مراتب فراتر از ساخت توزیع‌های مبتنی بر دبیان دارد. Live Magic می‌تواند سی‌دی‌ها، حافظه‌های فلش و ایمیج‌های netboot ایجاد کند. استفاده از این ابزار ساده‌تر از گزینه‌های معرفی شده در این مطلب است، با این‌حال قادر نیست از توزیعی که در حال استفاده از آن هستید یک ایمیج تهیه کند. با این‌حال، ویزارد ابزار فوق به شما اجازه می‌دهد پیکربندی‌های مدنظر خود را اعمال کنید. این برنامه می‌تواند بسته‌ها را از مخازن واکشی کند و در ایمیج مدنظرتان قرار دهد. 

7. Revisor

یکی دیگر از ابزارهای قدرتمندی است که برای ساخت توزیع‌های سفارشی در دسترس کاربران قرار دارد. Revisor به شما امکان می‌دهد توزیع‌های شخصی مبتنی بر فدورا را آماده کنید. Revisor امکان ساخت Media Installation برای نصب دائمی توزیع در کامپیوتر، آماده‌سازی یک نسخه لایو که قابلیت راه‌اندازی یک سیستم را دارد فراهم می‌‌کند. راه‌کار فوق به ویژه برای مواقعی که قصد بازیابی داده‌ها و حل مشکلات سیستم‌عامل را دارید مفید است. 

8. Customizer

Customizer ابزاری است که اجازه می‌دهد یک توزیع مبتنی بر اوبونتو را ایجاد کنید، هرچند از Xubuntu و Kubuntu نیز پشتیبانی می‌کند. تنها ایراد اساسی ابزار فوق این است که در زمان ساخت یک توزیع، سیستم میزبانی که از آن استفاده می‌کنید باید معماری مشابه با سیستم‌عاملی را داشته باشد که قصد بازسازی آن‌را دارید. 

تجربه واقعی ساخت توزیع لینوکس TOS

توزیع TOS که به احتمال زیاد مطلبی در مورد آن نشنیده‌اید، یک توزیع شخصی است که توسط تام مایر بر مبنای توزیع اوبونتو طراحی شده است. او می‌گوید: «زمانی که تصمیم گرفتم این توزیع را ایجاد کنم، اطلاعات بسیار زیادی در ارتباط با چگونگی استفاده از لینوکس به‌دست آوردم و توانستم یک توزیع پایدار استفاده کنم. توزیعی که امروزه برای انجام فعالیت‌های روزمره از آن استفاده می‌کنم. زمانی‌که فرآیند ساخت را آغاز کردم، کنجکاو شدم تا توزیع‌های مختلفی نظیر اوبونتو، کوبونتو، فدورا، مانجارو، آرچ لینوکس را آزمایش کنم تا ببینم چه قابلیت‌های کاربردی در سایر توزیع‌ها قرار دارد که می‌توان در TOS از آن‌ها استفاده کنم. زمانی که آرچ لینوکس را روی لپ‌تاپ شخصی نصب کردم، تصمیم گرفتم آن‌را روی کامپیوتر دسکتاپ نصب کنم. برای این منظور یک شل اسکریپت نوشتم که به‌طور خودکار آرچ لینوکس را با تمامی وابستگی‌ها و برنامه‌های کاربردی که نیاز داشتم نصب کند. به سرعت باگ‌های اسکریپت نصب را شناسایی و برطرف کردم. در این مدت قابلیت‌های جدیدی که نیاز داشتم را به اسکریپت فوق اضافه کردم. این‌کار باعث شد در مدت زمان کوتاهی حجم عظیمی از قابلیت‌های کاربردی به وجود آید. سرانجام دیگر با یک اسکریپت روبرو نبودم، بنابراین تصمیم گرفتم مولفه‌های کاربردی و زیربنایی که قادر به برقراری ارتباط با یکدیگر هستند را ایجاد کنم و به این‌ شکل TOS GNU/LINUX متولد شد.»TOX Linux  یک نصاب گرافیکی دارد که مسئولیت نصب سیستم‌عامل روی سخت‌افزار را بر عهده دارد. این نصاب فرآیند‌های مختلفی نظیر پارتیشن‌بندی هارددیسک دیسک/ حافظه حالت جامد، ساخت گروه‌ها و کاربران، نصب بسته‌های ضروری از مخزن TOS، پیکربندی سیستم‌عامل (صفحه‌کلید، مجوزها، مخازن پشتیبانی و نمونه‌های مشابه)، تنظیم فرآیند بوت، آماده‌سازی و اعتبارسنجی محیط را بر عهده‌ دارد. هر یک از مولفه‌های مذکور پیکربندی‌های خاص خود را دارند. به‌طور مثال، کاربران می‌توانند مشخص کنند که چگونه محیط را پیکربندی کنند، از چه سیستم‌ فایلی استفاده کنند و اگر تمایل دارند داده‌ها را رمزگذاری کنند. برای پیشگیری از بروز حمله‌های مرد میانی، TOS از مفهوم امضا بسته‌ها استفاده می‌کند. به عبارت دیگر، هر بسته به شکل فشرده شده (در یک فایل زیپ یا zstd) ساخته شده و پس از فشرده‌سازی با یک کلید خصوصی امضاء می‌شود و در مخزن مربوطه قرار می‌گیرد. محیط دسکتاپ توزیع TOS در شکل 2 نشان داده شده است. محیط دسکتاپ اصلی‌ترین بخش سیستم‌عامل است که یک رابط گرافیکی برای مدیریت فعالیت‌های روزانه ارائه می‌کند.

شکل 2

از مهم‌ترین کارهای انجام شده توسط این محیط دسکتاپ می‌توان به مدیریت برنامه‌ها/پنجره‌ها، ارائه یک مجموعه برنامه‌های پیش‌فرض (پردازشگر متن، مدیر فایل، تنظیمات و نمونه‌های مشابه)، مدیریت حالت‌های ارتباطی (وای‌فای، بلوتوث، تنظیمات صفحه‌نمایش، لایه‌بندی صفحه‌کلید)، مدیریت مجوز‌ها (درخواست برای گذرواژه یا اثرانگشت)، مدیریت جلوه‌های بصری آیکن‌ها، قالب‌ها، پوشه‌ها، اشاره‌گر ماوس، تصویر پس‌زمینه و مدیریت لاگین اشاره کرد. بوت‌لودر TOX قابلیت پشتیبانی چند سیستم‌عاملی را دارد. به بیان دیگر می‌تواند با توزیع‌های دیگر لینوکس، BSD، macOS و ویندوز استفاده شود. بنابراین امکان به‌کارگیری TOS Linux در کنار سیستم‌عامل ویندوز فراهم است. شکل 3 معماری این توزیع را نشان می‌دهد. 

شکل 3

کلام آخر

این ابزارها با ارائه راه‌کارهای مختلف به شما در ساخت توزیع‌های شخصی لینوکس کمک می‌کنند. با این‌حال، سطح پیچیدگی و قابلیت‌هایی که ارائه می‌کنند یکسان نیست، با این‌حال در این مطلب سعی کردیم به معرفی ابزارهایی بپردازیم که اجازه می‌دهند یک توزیع متناسب با نیازهای کاری را آماده کنید

 

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟