PDA

View Full Version : سوال: کامپایل ubuntu



kiarashk
چهارشنبه 07 اردیبهشت 1390, 11:30 صبح
دوستان لطف کنن بگن که سورس سیستم عامل ubuntu رو با چه کامپایلری می شه دست کاری و کامپایل کرد و تحت چع سیستم عاملی؟
ممنون.

pswin.pooya
چهارشنبه 07 اردیبهشت 1390, 16:34 عصر
سلام
شما براي دست كاري سورس به كامپايلر نياز ندارين.تنها براي كامپايل سورس نياز به كامپايلر دارين. هسته سيستم عامل معمولا (يعني هميشه) توسط gcc كامپايل ميشه كه براي هيچ كدوم از توضيعهاي لينوكس اين مورد فرقي نميكنه. شما مي تونيد از gcc تحت لينوكس و يا هر سيستم عامل يونيكس بيس مثل خود يونيكس و mac استفاده كنيد البته ترجيحا پيشنهاد ميشه اول از همه هسته يه سيستم عامل نصب شده رو به روز كنيد تا با روند كار و ... آشنا بشيد. كامپايل هسته لينوكس خيلي آسون و در عين حال پيچيده است. يعني كامپايل كردش آسونه و فقط كافيه توي شل دو تا دستور تايپ كني اما config اون خيلي سخته.

به هر حال قبل از اينكارها بهتره كه كاملا به زيان برنامه نويسي C و لينوكس اشراف داشته باشيد و گرنه توي حجم انبوهي از كدها و configها گم مي شيد. يكسري كتابها براي مطالعه هسته و دستكاري اون وجود داره كه معمولا تحت عنوان kernel hacking و يا Linux kernel هستند. اين كتابها معمولا با جزئيات كد رو توضيح ميدن (نحوه عملكرد و نه كد خالص)‌ كه همراه مطالعه اونها حتما بايد يك نمونه كد همراهتون باشه تا بتونيد متوجه بشيد كه چه خبره.

kiarashk
جمعه 09 اردیبهشت 1390, 11:47 صبح
سلام
شما براي دست كاري سورس به كامپايلر نياز ندارين.تنها براي كامپايل سورس نياز به كامپايلر دارين. هسته سيستم عامل معمولا (يعني هميشه) توسط gcc كامپايل ميشه كه براي هيچ كدوم از توضيعهاي لينوكس اين مورد فرقي نميكنه. شما مي تونيد از gcc تحت لينوكس و يا هر سيستم عامل يونيكس بيس مثل خود يونيكس و mac استفاده كنيد البته ترجيحا پيشنهاد ميشه اول از همه هسته يه سيستم عامل نصب شده رو به روز كنيد تا با روند كار و ... آشنا بشيد. كامپايل هسته لينوكس خيلي آسون و در عين حال پيچيده است. يعني كامپايل كردش آسونه و فقط كافيه توي شل دو تا دستور تايپ كني اما config اون خيلي سخته.

به هر حال قبل از اينكارها بهتره كه كاملا به زيان برنامه نويسي C و لينوكس اشراف داشته باشيد و گرنه توي حجم انبوهي از كدها و configها گم مي شيد. يكسري كتابها براي مطالعه هسته و دستكاري اون وجود داره كه معمولا تحت عنوان kernel hacking و يا Linux kernel هستند. اين كتابها معمولا با جزئيات كد رو توضيح ميدن (نحوه عملكرد و نه كد خالص)‌ كه همراه مطالعه اونها حتما بايد يك نمونه كد همراهتون باشه تا بتونيد متوجه بشيد كه چه خبره.

پس یه لطفی بکنید و بگید که چه کتابهایی تو این زمینه می تونه خوب و سریع کمکم کنه در ضمن من با نصب gcc توی ubuntu مشکل دارم . نصب نمی شه اگه یه توضیح بدید ممنون می شم.

pswin.pooya
جمعه 09 اردیبهشت 1390, 13:25 عصر
برای نصب GCC هم میتونید وارد ubuntu software center بشید و اون رو نصب کنبد و هم اینکه از طریق خط فرمان اینکار رو انجام بدید. برای اینکار کافیه وارد shell بشید و تایپ کنید gcc خودش میگه که چه شکلی باید نصبش کنید. احتمالا یه دستور مثل دستور زیر رو پیشنهاد کنه:


sudo apt-get install gcc

برای اینکار کتابهای زیادی هستن که من از کتابهای زر بیشتر خوشم میاد:


Understanding Linux kernel 3rd‌ (فکر کنم ویرایش چهارمش هم اومده)
Linux kernel development 3th
OReilly Linux Kernel in a Nutshell

البته بهتره خودت یه سرچ بزنی تا دقیقا کتابی رو که مد نظرت هست رو پیدا کنی. سطح کتابهای بالا خیلی بالاست و بهتره قبل از اون حتما با خود لینوکس، بش (bash programming) و کاملا با زبان برنامه نویسی C آشنا باشی (البته پیشنهاد میشه که سراغ کتاب جعفر نژاد برای اینکار نری و مسقیما یه کتاب زبان اصلی رو مطالعه کنی). هینطور برای دستکاری هسته باید با اسمبلی پاتفرم مقصد و ترجیحا اسمبلر nasm آشنا باشی. و به غیر اط اون باید به شکل کامل با makeُ و gcc و ld هم آشنا باشی و اکثر تنظیمات کامپایلر و لینکر رو بدونی که یه دفعه وسط راه شروع به روغن سوزی نکنی

مورد دیگه اینه که توی مبحث یادگیری سیستم عامل چیزی به اسم سریع وجود نداره. من خودم الان نزدیک ۳ ساله که دارم روی آراکس کار میکنم و هنوز نتونستم نتیجه درست و حسابی بگیرم و یا اینکه نزدیک دو ساله که تمرکزم اومده روی لینوکس و تقریبا دیگه برای ۹۰ درصد از کارهام از اون استفاده میکنم و هنوز که هنوزه نمی تونم به طور کامل ازش کار بکشم.