هنر طنز پردازی مثل ریچارد استالمن بزرگ! توی اینه که توی بخش تازه کارا بدون هیچ طنزی با دقت به سئوال ها از سر صبر جواب میده و از این نظر جناب ائی مشیری استاد من هستن:
اول - کامپایل کردن یعنی برگرداندن از کد به اسمبلی! یعنی چی؟ عرض می کنم: رایانه ها فقط زبان صفر و یک رو می فهمن: اگر جریان برق توی یک مداری باشه یعنی یک و اگر نباشه یعنی صفر! ولی ما این زبان رو نمی فهمیم! مثلا 0000101110001000 یعنی برابر است با! که ما نمی فهمیمش! خوب پس ما می اییم و با یک قواعد خاصی که از طرف یک گروه خاصی تعیین میشه یک کدهائی می نویسیم تا بعدا به زبان رایانه ترجمش کنیم! مثلا ; while success do try بعد از ترجمه شدن در یک قاعده خاصی به همون زبان صفر و یک به رایانه می فهمونه که تا موفق نشده تلاش کنه! (واقعا رایانه باید اینو بفهمه یا ما؟

) خوب چرا باید از این کدها استفاده کنیم تا بعد دوباره اونها رو به زبان رایانه ترجمه کنیم؟ بخاطر اینکه این کدها رو یک سری از نرم افزارها به صفر و یک تبدیل می کنن و این نرم افزارها (که اسمشون کامپایلر هست) باید یک استانداردی داشته باشن تا وقتی شما چیزی نوشتید بفهمن شما منظورتون چیه و تبدیل کنن و بعد من هم که دوباره اومدم سراغشون بازم بفهمن من منظورم چیه و باز اونو هم تبدیل کنن! و یادمون باشه که همین نرم افزارها هم زبان ما رو بلد نیستن! پس میایند (برنامه نویسان حرفه ائی) این قواعد رو تعریف می کنن: مثلا میگن برای تبدیل (کامپایل) با نرم افزار ما شما وقتی می خواهید یک کاری تکرار بشه تا به یک چیز که رسید متوقف بشه از این دستور استفاده کنید:
While ...... do ....;
و در اون بعد از کلمه While (به معنی تا اینکه) اون کاری که باید تکرار بشه رو قرار بده و بعد از اون کلمه Do (به معنی انجام دادن) اون چیزی که اگه انجام شد کار تمام بشه رو قرار بده! همین!

من در بالا در جای خالی اول موفقیت و در جای خالی دوم تلاش رو گذاشتم
خوب میان و یکسری از این قرار دادها رو تعیین می کنن و بعد یه نرم افزاری هم می سازن که بتونه این قرارداد ها رو بفهمه و تبدیل به صفر و یک بکنه! اسم این قواعد رو میذارن زبان برنامه نویسی و اسم اون نرم افزار رو هم میذارن کامپایلر ! به معنی تبدیل کن!

خوب لینوکس هم با همین روش ساخته شده ( و ویندوز هم) و شما میتونید کد نوشته شده و تبدیل نشده اون رو هم دانلود کنید و ببینید ، که بهش می گن سورس (source) ولی کدهای ویندوز رو هیچکس بجز تولید کنندش که کارخانه مایکروسافت هست نمی دونه!
اینکه این کدهای منبع نرم افزار در اختیار شما باشه همون آزادی هست که ما ازش صحبت می کنیم! ( و البته یک سری آزادی های دیگری هم هست که بعدا خودتان خواهید تجربه نمودن!)
اما این کدها رو داشتن به چه دردی می خوره! هیچی!

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

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

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

):
ash
ash.static
bash2
csh
ksh
pdsh
rsh
sh
tcsh
tsh
خوب حالا ما این کدها مونو چطور به این پوسته بدیم تا برای هسته ترجمه کنه؟ جواب: خط فرمان ! یا به عبارت بهتر ترمینال! وقتی ترمینال رو باز می کنید یه محیط متنی می بینید که آمادست تا داخلش کدهاتونو بنویسید و اینتر رو بزنید و در صورت درست بودن به پوسته بفرسته و پوسته ترجمه کنه به صفر و یک و به هسته بفرسته و بعد جواب اونو هم باز بگیره و ترجمه کنه و برای شما بفرسته! و در صورت غلط بودن کدهای شما (یا دستوراتتون) یک پیغام خطای مناسب به شما نشون بده! خوب یه چندتا کلمه همینطوری توی ترمینال بزنید و اینتر رو بزنید و ببینید چه خطائی به شما بر می گردونه!

خوب در لینوکس 6 عدد کنسول هم وجود داره! کنسول همون ترمینال هست که شما رو کاملا از محیط گرافیکی می بره بیرون! یعنی همه مانیتور شما تبدیل به یه ترمینال میشه! کافی دگمه های Alt+Ctrl+F1 رو بزنید تا به اولی وارد بشید! در این دستور با F2 به دومی و همینطور به کلیدهای اف بعدی به کنسول های بعدی وارد می شید! خوب برای برگشتن مجدد به محیط گرافیکی هم کافیه همون دستور را با F7 بزنید!
امتحان کنید! نهایتا اگر نشد ریستارت خواهید کرد

اما این محیط گرافیکی که ما خاموش و روشنش کردیم چیه؟ به این محیط که موس داره و میشه توش همه چیز رو دید و روش دوبار کلیک کرد تا باز بشه می گیم میزکار!
میزکار (یا Desktop ) کارش راحتتر کردن کار با این هسته و پوسته هست: وقتی روی یه فایلی با کرسور (همون سر موس) می رید و دوبار روش کلیک می کنید درواقع در محیطی کاملا تصویری به پوسته می گید که می خوام کدهای داخل این فایل رو برای هسته ترجمه و ارسال کنی! و جوابش رو هم برام بیاری همینجا! که من بتونم ببینمش!
پس میز کارها ، محیط گرافیکی ارتباط با پوسته هستن: میزکارهای مختلفی وجود دارن که هر کدوم خصوصیات خودشونو دارن:
KDE رو روی مثلا کوبونتو می تونید ببینید و خیلی قشنگه اما مقداری از PF رایانه رو برای گرافیک و زیبائی می گیره (سرعت رایانه کمتر میشه).
Gnome رو روی اوبونتو می بینید که پایداری خوبی داره و ایراد (باگ) کمتر داره
Xfce رو روی زوبونتو می بینید که خیلی سبک هست و برای رایانه های قدیمیتر مناسبه!
و همینطور چندین میز کار دیگه هم هست. حتی یکی از اونها بسیار به محیط گرافیکی ویندوز شبیه هست!
خسته تر که نشدین؟ نگران نباشید! چائیه تلافیشو در میاره!
سوم - یک توزیع لینوکس چیه؟ خوب نویسنده هسته (که بهش کرنل هم می گیم) لینوکس چیزی که ارائه داد فقط یک هسته و یک پوسته و یک خط فرمان بود که روی بعضی رایانه ها کار می کرد و روی بعضی هم نه. اما برای اینکه این سیستم عامل خیلی ساده بتونه بیاد بین مردم و همه براحتی ازش استفاده کنن و مجبور نباش تا کدهای دستورات رو حفظ کنن یا براش برنامه هائی رو که می خوان استفاده کنن رو خودشون کامپایل کنن لازم بود تا برنامه های مختلف به این هسته خام اضافه بشه:
کسی آمد و برنامه های مربوط به برنامه نویس های رایانه رو روی این هسته نصب کرد!
کس دیگری آمد و برنامه های محیط های آموزشی رو روش نصب کرد!
کس دیگری آمد و ..... !
یه دفعه در یک مدت کوتاهی نسخه های زیادی بوجود اومدن که هر کدوم با یک میز کار و یک سری برنامه های خاص روشون همراه بودن ولی همشون از همون هسته و پوسته اصلی استفاده می کردن!
اسم این نسخه های متفاوت رو که هر کدوم برای هدفی ساخته شده اند رو گذاشتن توزیع (با کلمه توضیح قاطی نشه و بشه توضیع!

). اسم یه توزیع شد اوبونتو ، یکی کوبونتو ، یکی ادوبونتو ، یکی ردهت ، یکی سوزه ، یکی دبیان ، یکی پارسیکس ، ........... !
و هر کدوم برای یک سری از مخاطبان خاص با خود برنامه های خاصی رو دارن! مثلا یک ایرانی به نام آقای آلن باغومیان یک توزیعی برای ایرانیان ایجاد کرد به نام پارسیکس! توی این توزیع لینوکس زبان فارسی بطور پیش فرض هست و کانکشن برای ارتباط با اینترنت از خطوط دیال آپ (که دیگه توی دنیا منسوخ شده ولی ما هنوز تبلیغ پر سرعتشو می کنیم!) و کلا نیاز های یک کاربر ایرانی با شرایط و فرهنگ خودش! ، آلمانی ها توزیع سوزه رو می پسندن و برنامه نویس ها دبیان!
پس می تونیم نتیجه بگیریم که دستوراتی که توسط پوسته برای هسته می فرستیم در همه توزیع ها یکسان هستند ولی بسته های نرم افزار آماده شده برای توزیع های مختلف لزوما یکسان نیستند!
حالا دیگه اینو نمی گی دوست من:
من در این باره هیچی نمی دونم لطفا زاهنمایی ام نمایید
تقریبا کلیات رو بطور خوب می دونی! این توضیحات که عرض کردم هرچند به زبان ساده بودند ولی تا حد قابل قبولی علمی و مستند هستن! و می تونی ازشون مطمئن باشی!
حالا زحمت بکش و ارتباطت با اینترنت رو ببند و برو سراغ اون چائی که قراره خودتو مهمون کنی تا خستگیت در بره
خسته نباشی دوست من! باز هم پرسیدن از شما و پاسخ در حد توان از ما