PDA

View Full Version : سوال: چگونه توزیع لینوکس خودمان را بسازیم؟



online68
دوشنبه 19 بهمن 1388, 11:56 صبح
من می خواستم بدونم برای اینکه بتوان یک توزیع لینوکس را از اول نوشت چه کاری باید انجام داد؟ چه ملاکهایی را باید برای انتخاب محیط گزافیکی ( kDE یا Gnome ) در نظر گرفت. نحوه کامپایل هسته چگونه است.
میدونم گزینه های زیادی برای یک توزیع وجود داره و میخوام از تجربه شما دوستان استفاده کنم.
لطفا نگویید که یک توزیع لینوکس را انتخاب کن و بر روی آن کار کن. هدفم دونستن اینکه چطور میشه از اول یک توزیع ساخت.
اگر لینکی هست که میتونه کمک کنه لطفا قرار دهید.مرسی

online68
دوشنبه 19 بهمن 1388, 20:15 عصر
کسی نیست جواب ما رو بده لطفا

vbehzadan
سه شنبه 20 بهمن 1388, 03:46 صبح
اگه با انگلیسی مشکلی نداری، لینک زیر رو ببین:
http://www.linuxfromscratch.org/

به نظرم فوق العاده جامع و کامل توضیح داده.

blue_lotus
سه شنبه 20 بهمن 1388, 23:18 عصر
من می خواستم بدونم برای اینکه بتوان یک توزیع لینوکس را از اول نوشت چه کاری باید انجام داد؟

سلام

سوالتون خیلی کلی هست. یعنی میخواید یک چیزی مثل اوبونتو یا دبیان و فدورا رلیز کنین؟

بیشتر توزیح بدین.


چه ملاکهایی را باید برای انتخاب محیط گزافیکی ( kDE یا Gnome ) در نظر گرفت. نحوه کامپایل هسته چگونه است.

بازم کلیه ولی به نظر میاد منظورتون یک چیزی مثل اوبونتو باشه. اگر اینطوره باید شما نیاز و استفاده کاربر و خیلی چیزای دیگه رو مد نظر بگیرین.

compile کردن هم بستگی به نیاز افراد داره. مثلا اگر برای خودتون اینکارو انجام بدین طبعا خیلی موارد رو حذف میکنین و سرعت بالا اومدن و خیلی چیزهای دیگه بهبود پیدا میکنه. ولی اگر مثل اوبونتو یا توزیع های گرافیکی بخواین برای یک حجم انبوه تغییرات رو اعمال کنین باید تمام سخت افزار و نیاز کاربر به علاوه ی راحتی اون و خیلی چیزای دیگه رو مد نظر داشته باشین.

در کل باید خیلی چیزها بلد باشین که بتونین پاسخ گوی این کارها بشین. الان بعضی توزیع ها هستن مثل جنتو که تمام میزکار و هسته و ... رو خود کاربر دستی compile میکنه. انگار یک توزیع ساخته باشه! و همینطور آرچ لینوکس در نصب ABS

online68
چهارشنبه 21 بهمن 1388, 10:05 صبح
هدف من اینکه با ساختن یک توزیع آشنا بشم و بدونم که برای ساختن یک توزیع جدید چی کار باید کرد. برای یک کار دانشجویی و تیمی می خوام.
شما اینطور فرض کنید که ما یک توزیع میخواهیم که Desktop باشه و کار برای عموم راحت .دارای محیط گرافیکی و قابلیت نصب و LivrCD مثل خیلی از توزیع ها.
آقای vbehzadan به من سایت lfs رو معرفی کردند و من کتابش رو دانلود کردم ولی هنوز موفق نشدم که با حوصله بخونم. آیا شما این کتاب رو توصیه می کنید؟ و یا خودتون خوندید اگه خوندید نظرتون در رابطه با اون چیه؟ برای شروع از کجا باید شروع کنیم؟
لطف کنید و بگویید که در این مسیر ممکنه با چه مشکلاتی روبه رو بشیم؟ ازتون می خوام که یک پاسخ جامع بدین (لطفا) تا شاید به درد دیگران هم بخورد.

blue_lotus
چهارشنبه 21 بهمن 1388, 11:31 صبح
اینکه بتونید یک توزیع رو از پایه بسازید باید چند نکته رو مد نظر داشته باشید:

۱- انتخاب بیس مورد نظر ( مانند دبیان، جنتو،فدورا، ...)
۲- آشنایی کامل با ابزارهای گنو/لینوکس ( مثلا نرم افزارها رو بشناسید که نیاز کاربر چیه و کدومش کارایی بهتری داره. شناخت مجوز ها gpl, lgpl ,... . بعد از اینها باید شاخه های مختلف رو بشناسید که کاراییشون چیه (مثل: var, temp,etc, ... )
۳- باید برنامه نویسی رو تا حدودی بلد باشین که بتونین برای توزیعتون یک نصاب بنویسید ( مثل پایتون،روبی، شل اسکریپت و ... )
۴- کمپایل کردن و تنظیمات مختلف سیستم مثل grub, xorg, ... رو بلد باشین. ( که تنظیمات و کمپایل کرنل هم شاملش میشه.)

فعلا همین ها توی ذهنم هست اگر کم یا نقضی داره دوستان تصحیح کنن. اینها رو شما باید تا حدودی بلد باشین تا در حین ساخت دچار مشکل نشین.

البته اگر به طور اصولی و سیستمی وار میخواین این کار رو بکنین این کارها پیش نیاز هست. در غیر اینصورت میتونین با نصب اوبونتو بوسیله ی یک برنامه که از سیستم یک بکاپ میگیره و سی دی لایو میسازه استفاده کنین. ولی نمیدونم نصاب برای نصب از سی دی live هم داره یا نه.

پیشنهاد میکنم اگر زبانتون خوبه و مقداری با گنو/لینوکس آشنایی دارین. Gentoo , Archlinux رو نصب کنین. چون در این سیستم ها شما میاین هسته و باقی چیزهارو از سورس به صورت شخصی کمپایل میکنین که باید تمام سخت افزار هارو و نیازهاتون رو موقع کمپایل داخل کرنل قرار بدین یا به طریقی اون رو بعد به کرنل اضافه کنین. بعد با توجه به اینکه دسکتاپ هست میزکار خودتون رو کمپایل و نصب کنید. بعد xorg, alsa, graphic, ... نصب کنین یا به طریقی همه ی کارت های گرافیک رو درون سی دی قرار بدین که بشه نصب کرد. بعد سرویس هارو فعال کنین و میزکار رو بالا بیارین. بعد با ابزاریی که وجود دارد به صورت اتوماتیک سی دی لایو تهیه کنین. ( برای آرچ میدونم وجود داره و جنتو رو اطلاع ندارم). بعدم نوشتن نصاب میمونه فقط.

البته آرچ نصب ABS اش به صورت کمپایل از سورس به صورت اتوماتیک با تنظیمات اضافی هست و مقداری به جنتو متفاوت هست. ( اگر هم دیدین به دردتون نمیخوره گزینه های آسونتری هم هست که نتیجه دلخواه رو بده.)

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

irc میتونه کمک خوبی برای شما باشه هر وقت سوالی داشته باشین. با pidgin یا هر کلاینت دیگه به irc وصل بشین و به اتاق های گنو/لینوکس که مخصوص سوال و بحث و تبادل نظر هست استفاده کنین. مثل
ubuntu-ir, #technotux# ....

Babak.Hassanpour
پنج شنبه 22 بهمن 1388, 11:29 صبح
فکر نمی کنم این دوستمون بخواد از اول چرخ رو اختراع کنه.بنده این طور استنباط کردم که سوالشون ریمستر کردن یک توزیع و سفارشی سازی بر اساس سلیقه خودشون و احیانا در مرحله بعدی فارسی سازی و ... باشه.
برای ریمسترینگ بر حسب نوع توزیع انتخابی ابزارهایی از قبل آماده شده وجود داره.در بعضی موارد هم خودتون باید آستین ها رو بالا بزنید.

online68
پنج شنبه 22 بهمن 1388, 13:00 عصر
فکر نمی کنم این دوستمون بخواد از اول چرخ رو اختراع کنه.بنده این طور استنباط کردم که سوالشون ریمستر کردن یک توزیع و سفارشی سازی بر اساس سلیقه خودشون و احیانا در مرحله بعدی فارسی سازی و ... باشه.
برای ریمسترینگ بر حسب نوع توزیع انتخابی ابزارهایی از قبل آماده شده وجود داره.در بعضی موارد هم خودتون باید آستین ها رو بالا بزنید.
خیلی از توزیع ها هستند که از روی یک توزیع دیگه منتشر میشه مثل Parsix. چند تن از دوستان به من گفته اند که توزیع pclinuxos کارایی خوبی داره و بر روی اکثر کامپیوترها بدون هیچ مشکلی به راحتی کار میکنه. (خودم هنوز امتحان نکردم) خب حالا من می خوام بدونم که مثلا برای کار کردن بر روی یک توزیع دیگه باید چه شرایطی رو در نظر گرفت.
از خیلی وقته که بحث سیستم عامل ملی مطرح شده و توی خیلی از فروم ها روی آن بحث میکنند که در بیشترشون به هیچ جواب درست و حسابی نمی رسیم. لطفا توضیح بدین که یک سیستم عامل ملی باید دارای چه امکاناتی باشه و آیا فقط فارسی کردن محیط کافیه؟ آیا مفهوم از سیستم عامل ملی یعنی اینکه فقط نیازهای کاربران عادی را بر طرف کند یعنی افراد مبتدی بتوانند با آن کار کنند یا کارهای دیگه نیز لازمه.
البته من اطلاعاتی در موردش دارم ولی می خوام واقعا به یک نتیجه ی درست و حسابی برسیم. لطفا از پاسخهایی مثل "یه سرچ کنی به نتیجه می رسی – قبلا بحث شده – بیهوده است و ..." نزارین.

BackTrace
پنج شنبه 22 بهمن 1388, 21:24 عصر
سلام، به نظر من سیستم عامل ملی یعنی اینکه ما(سازندگانش) تمام قسمت های اون رو نوشته و دارای اطلاعات تخصصی کافی از اون قسمت ها باشن. از ویژگی هاش میشه به انطباق کامل اون با زبان، فرهنگ، آداب و رسوم اون کشور اشاره کرد.

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

آیا مفهوم از سیستم عامل ملی یعنی اینکه فقط نیازهای کاربران عادی را بر طرف کند یعنی افراد مبتدی بتوانند با آن کار کنند یا کارهای دیگه نیز لازمه.
سیستم عامل ملی میتونه مثل سیستم عامل ویندوز در نسخه های مختلف مانند Professional, Home Edition, Media Center, ... ارائه بشه.

پیروز باشید./

masoud_pnu
جمعه 23 بهمن 1388, 00:53 صبح
با سلام. دوست عزيز اگه اجازه بدي منم نظرم رو بگم.
اولا سوالتون خيلي كلٌيه.با اين وجود:
من دنبال اين موضوع رفتم و به نظر خودم تا حدي به جواب رسيدم.تا اونجايي كه من فهميدم اين كار فراتر از يه پروژه(حتي بزرگ) دانشجوييه. اينو كه ميگم نه از اين جهت كه سه چهار تا سايت سرچ كردم و ديدم پر از كلمات قلمبه سلمبه است و ولش كردم.نه. باور كن با اساتيد و برنامه نويسايي صحبت كردم كه واقعا حاليشونه و سالهاست در اين زمينه كار مي كنن.
حالا اگه منظورت ساخت يه توزيع جديد از لينوكسه كه سواي اون 250 و خورده ايه، كه بحثش جداست. (و من هم دنبال همين موضوع رفتم) . اولا بايد گروهتون در سطح بالايي برنامه نويسي به زبانهاي سي، سي پلاس پلاس، جاوا، پايتون، اسمبلي و ... رو بلد باشه. ثانيا اصول طراحي نرم افزار رو بلد باشيد .چون به هر حال سيستم عامل هم يه نرم افزاره ديگه.(جاي اولي و دومي رو اشتباه گفتم:خجالت:ببخشيد). و چندين مساله ديگه از جمله پيوند زدن هسته با پوسته وسر آخر ساخت يه ديسك زنده از اون.البته اينا رو كه گفتم نه اينكه كار نشدني باشه . نه . چون اگه اينجوري بود الان اين همه سيستم عامل نداشتيم. ولي ميخوام بگم كار واقعا مشكليه.
اگرهم ميخوايد توزيع هاي قبلي رو سفارشي كنيد، مسلما ً موارد بالا لازمه، اما به ميزان كمتر.

اما در مورد سيستم عامل ملي.
اولا يه كلمه رو دوستان محبت كنن به منم توضيح بدن كه اصلا ملي سازي يعني چي؟
اينكه صفر تا صد يه چيزي رو خودمون بسازيم و بعد بگيم دنيا ما اينو ساختيم؟ خب بعدش چي؟
آلمان حداقل 5 تا خودرو ساز داره كه تو دور افتاده ترين مناطق هم اسمشون رو ميدونن.
تا حالا شنيدين كه آلمان بگه خودرو ملي من چيه؟ بنزه؟ بي ام و است؟ فولكسه؟آيوديه؟ پورشه ست؟چيه؟
بيايم تو بحث خودمون. شما تعداد نرم افزارايي كه براي ويندوز هست رو با مكينتاش مقايسه كنيد. كدومش بيشتره؟ اصلا شايد خيليا اسم مك رو هم نشنيده باشن. ميدونيد چرا؟ چون اپل فقط به فكر اين بود كه بگه مك مال منه .و درنتيجه سيستمش رو بسته ارايه كرد. اين بود كه همه به سمت MS رفتن.
قطع وابستگي در بعضي زمينه ها خوبه(مثل ابزار هاي نظامي و دفاعي و..) اما نه اينكه ما دور خودمون رو يه ديوار بكشيم و فقط بگيم وسايل ملي مصرف ميكنيم. زندگي بدون داشتن رابطه با خارج غير ممكنه. (انسان موجودي اجتماعيست):متفکر:
شما كرنل لينوكس رو در نظر بگير. فكر ميكني اگه لينوس توروالدز بعد از طراحي اوليه هسته اونو تو اينترنت نميذاشت و ميگفت توسعه اون فقط براي دانشجوهاي دانشگاه هلسينكيه، لينوكس اينقدر پيشرفت ميكرد؟الان بيش از چهارصد هزار برنامه نويس حرفه اي ،از سراسر جهان دارن رو لينوكس كار ميكنن و هر رور توسعه اش ميدن.

در مورد سيستم عامل ملي هم:
در تمام موارد بالا ما خيالمون راحته كه يه هسته از پيش ساخته شده داريم.يعني چارچوب كرنل دستمونه و ميدونيم داريم چيكار ميكنيم.اما در سيستم عامل ملي(با فرض ساختن صفر تا صدش توسط خودمون)، در درجه اول بايد يه هسته طراحي بشه كه كار فوق العاده سختيه.(اولا بايد يه پردازنده انتخاب بشه، بعد بر اساس اون به تك تك وقفه هاش پاسخ داده بشه(چه نرم افزاري، چه سخت افزاري). همون تغيير وضعيت CPU به حالت protected كه اولين قدم هست ، كار خيلي سختيه. ) و خيلي كاراي ديگه. تازه بعد از طراحي هسته نوبت به طراحي پوسته ميرسه كه اونم مختصات خاص خودشو داره تا بعد از طراحي يه عده نيان بگن همون ويندوز تغيير شكل يافته اس!

تازه گيريم كه يه سيستم عامل هم ساختيم. چجوري به دنيا معرفيش كنيم تا براش برنامه بنويسن و سيستم زنده بمونه؟

اميدوارم حرفام ناراحت و نا اميدت نكرده باشه.منم كشورم رو دوست دارم و آرزومه تو دنيا سربلند باشه.منم افتحار ميكنم كه اسم ايران رو تو مجامع علمي ميبرن. اما واقعيت رو بايد پذيرفت. به نظر من با اين نگرش نميتونيم(يا لا اقل به كندي) پيشرفت ميكنيم.
طراحي سيستم عامل سخته.خيلي هم سخته . اما نشدني نيست. چون اگه نشدني بود، الان من و شما نميتونستيم حرفمونو بزنيم.مسلماّ اگه يه عده وقت براش بذارن، ميشه .چون اگر علم در شاخه ثريا باشه، مردماني از پارس به اون دست پيدا ميكنن.
با تشكر و پوزش از اينكه سرتونو بردم:تشویق:

online68
جمعه 23 بهمن 1388, 11:42 صبح
خیلی از موضوعها مشخص شد.
خب دوستان بیایید اینطور فرض کنیم که میخواهیم یک توزیع ایجاد کنیم بر پایه ی دبیان. این توزیع فقط برای Desktop طراحی شده باشه و از KDE میخواهیم استفاده کنیم. حالا از آنجا که ما فارسی زبان هستیم باید چه امکاناتی رو باید مد نظر قرار بدیم تا نیازهای یک کاربر فارسی زبان را برآورده کنیم.
میدونم که این سئوال هم کلی است ولی در جلوتر به کمک شما به جزئیات هم خواهیم پرداخت. از آنجا که من مبتدی هستم می خوام از پایه یاد بگیرم (با توجه با سئوال بالا) و این کار میسر نمیشه جز با کمک شما.
آقای masoud_pnu گفتن که باید برنامه نویسی قوی داشته باشیم و در پاسخ باید عرض کنم من با زبانهای برنامه نویسی c,c++, assembly و ... آشنا هستم و بامفاهیم سیستم عامل از جمله الگوریتمها وقفه ها و ... (بالاخره دانشجوی کامپیوتریما). فکر نمیکنم ما با این موارد مشکلی داشته باشیم.
مشکل اینکه که بر روی دبیان چی کار و چه تغییراتی اعمال باید کرد که اسمش را بتوان یک توزیع گذاشت.

یه سئوال دیگه هم دارم: من با پارسیکس کار میکنم. چطور می توان یک صفحه لوگین طراحی کرد. یعنی با ظاهر و سلیقه خودمان, کجا را مورد جستجو قرار بدم و تغییرات را کجا اعمال کنم. اگر لینکی در این مورد هست معرفی کنید.مرسی

Babak.Hassanpour
جمعه 23 بهمن 1388, 18:38 عصر
عزیز جان اینجا رو ببین:
http://www.myrinix.com/www/index.php?option=com_content&task=view&id=53&Itemid=39
براای کاربر ایرانی برنامه و کدک های پخش تصویر و صوت ؛ واین ؛ دایرکت ایکس واسه بازی ؛ فونت ؛ برنامه های متداولی که خودت حس می کنی لازمه مثلا انواع مرورگر وب برنامه رایت سی دی ، و یک کم گرافیک (مثلا کی دی ای 4 یا کامپیز و ...)