نصب دیسترو جدید از راه دور

موقعیتی رو تصور کنید که روی سروری که در اختیار دارید می‌خواید یک سیستم عامل از اول نصب کنید. اما دسترسی به kvm ندارید.

اگه روی سرور دسترسی به گراب داشته باشید به راحتی می‌شه بدون داشتن kvm یک سیستم عامل جدید رو نصب کرد.

حتی موقع خرید سرور جدید بجای اینکه پول بدید بابت فعال کردن kvm خیلی راحت با سنت‌اواس ۵.۹ میشه سرور ددیکیتد رو تهیه کرد و بعد با روشی که گفته میشه اکثر سیستم عامل‌های جدید رو از اول خودتون نصب کنید 🙂

برای کسایی هم که نمی‌دونن kvm چیه بگم یه چی تو همون مایه‌های مانیتور کنار کیس و به صورت ریموت تصویر نصب دیسترو جدید رو خواهید داشت و بنابراین می‌شه سیستم رو به نحو مطلوب پارتیشن بندی و به دیسترو مطلوب آپگرید کرد.

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

مثلا برای نصب سنت‌اواس ۶.۴ کافیه این مراحل رو انجام بدید.

cd /boot

mkdir centos6

cd centos6

wget http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/vmlinuz

wget http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/initrd.img

و حالا ویرایش گراب ( با فرض اینکه سنت‌اواس ۵.۹ و گراب یک دارید)‌

vi /boot/grub/menu.lst

این سه خط رو اضافه میکنید

title CentOS 6.4 VNC Installation
root (hd0,0)
kernel /centos6/vmlinuz vnc vncpassword=yourPassword headless ip=10.0.0.10 netmask=255.255.255.0 gateway=10.0.0.1 dns=8.8.8.8 ksdevice=eth0 method=http://mirror.centos.org/centos/6.4/os/x86_64/ lang=en_US keymap=us
initrd /centos6/initrd.img

رنگای آبی تعداد خطا رو نشون می ده که کلا ۴ خط خواهید داشت. همه‌شون رو هم با توجه به تنظیماتی که توی گراب وجود داره کپی‌ پیست می‌کنید. فقط خطی رو که مربوط به kernel و initrd هست رو به شکل بالا دستکاری میکنید. آی‌پی و نت مسک و گیت‌وی هم که با توجه به هر سروری فرق میکنه و خیلی مهمه! با این ای‌پی می تونید ریموت از طریق vnc وارد پروسه نصب بشید 🙂

پارامتر default=0 رو هم می‌تونید تغییر بدید تا به صورت خودکار بعد از ریست، سیستم با کرنل دیسترو جدید بوت بشه. اگرم چیزی ترکید و سیستم بالا نیومد می‌تونید زنگ بزنید به دیتاسنتر و بگید که سیستم رو ریست بدن و اینبار برن توی کرنل دیسترو قدیمی! :)‌ اما راه بهتری هم هست که کاری کنیم بدون ریست و تغییر گراب، کرنل و initrd بوت بشه! برای اینکار باید برنامه kexec-tools رو نصب داشته باشید.

kexec -l /boot/centos6/vmlinuz –initrd=/boot/centos6/initrd.img

kexec -e

دستور اول کرنل و initrd رو در مموری بارگذاری میکنه و دستور دوم باعث بالا اومدن کرنل جدید میشه.

برای اوبونتو و دبیان و اپن‌سوزه هم می‌تونید از ادرس‌های زیر برای نصب ریموت استفاده کنید.

http://cdimage.ubuntu.com/netboot/

http://www.debian.org/distrib/netinst

و اپن‌سوزه

 mkdir /boot/install

 cd /boot/install

 wget –output-document=oS-12.3.vmlinuz.install http://download.opensuse.org/distribution/12.3/repo/oss/boot/$(uname -i)/loader/linux

 wget –output-document=oS-12.3.initrd.install http://download.opensuse.org/distribution/12.3/repo/oss/boot/$(uname -i)/loader/initrd

و در گراب هم تنظیمات به این شکل میشه

  title install
root   (sdX,Y) # change this (sdX,Y)
kernel /boot/install/oS-12.3.vmlinuz.install install=http://download.opensuse.org/distribution/openSUSE-stable/repo/oss/
initrd /boot/install/oS-12.3.initrd.install

انتشار اولین نسخه کاندید کرنل ۲.۶.۳۸

امروز نسخه اول کاندید  کرنل ۲.۶.۳۸ به همراه دو ویژگی خیلی مهم منتشر شد.

اولین ویژگی مربوط میشه به اون پچ جادویی که باعث میشه سیستم در زیر فشار،  جواب کاربر رو به درستی بده  و طبیعی که از این به بعد دیگه نیازی به پچ کردن کرنل برای این مورد خاص نخواهید داشت.

ویزگی دوم اضافه شدن تعداد زیادی  درایور اپن سورس کارت  گرافیک که خبر خیلی خوبی می‌تونه باشه برای کسایی که با کارت گرافیکشون مشکل دارن 🙂

از درایورهای آزاد AMD Fusion و  AMD  Radeon HD 6000 بگیرید تا  Nouveau Fermi Acceleration  که برای سری پیشرفته کارت های گرافیکی GeForce 400/500 انویدیاست و قابلیت استفاده از ۲D و ۳D رو با هم دیگه دارند و به روش‌ مهندسی معکوس نوشته شده‌اند.

 

** دوستانی که وبلاگ رو از طریق فید وردپرس دنبال می‌کنند، لطف کنند و آدرس  فیدبرنر رو جایگزین کنند. به زودی قراره نقل مکان کنم به جای دیگه 😉

پچ جادویی

پچ جادویی باعث شد دل رو به دریا بزنم و برم تو نخش و خلاصه شب جمعیه، شور و شعفی بر من حاصل شد که همش ناشی از کامپایل کرنل ۲.۶.۳۶ بود البت در کنار این پچ خوشگل و نازنین 🙂

خلاصه کلام اینکه اگه میخواین از این پچ استفاده کنید، دو راه دارید! روش اول رو وب‌آپدیت بهش اشاره کرده که به دلم ننشست! روش دوم هم که دل و هوش رو ازم برد براتون میگم 🙂 باشد نثارمون کنید شب جمعه‌ای بهترین‌ها رو….

سورس کرنل ۲.۶.۳۶ رو میگیرید…. از حالت فشرده خارجش کنید….. حالا یه فولدر داریم به اسم linux-2.6.36 که توش یه سری خرت و پرت هست

حالا باید پچ جادویی رو بگیرید که حجمش خیلی کمه….. حالا پج رو که همچین اسمی داره Galbraith-patch.patch منتقل کنید به پوشه linux-2.6.36

از اینجا باید دست به دامن ترمینال شد …. وارد پوشه linux-2.6.36 بشید و با دستور زیر، کرنل رو وصله پینه کنید….

patch < Galbraith-patch.patch -p1

حالا میرسیم به جای ترسناک کار که همون سفارشی سازی کرنله….

برای غلبه به ترس، دست به دعا میشیم و دستور زیر رو می‌زنیم….

make localyesconfig

و بعد هم دستور زیر ….

make menuconfig

پچ رو اگه درست اعمال کرده باشید، باید در هنگام کانفیگ کردن چشتون به جمال Automatic process group scheduling از بخش General setup آشنا بشه….

برای سر در اوردن از بقیه بخش‌ها، کافیه راهنمای هر بخش رو بخونید و بعد هم به این پست مراجعه کنید 🙂

کرنل رو کامپایل میکنیم ….

make -j4

ماژول‌ها رو کامپیل میکنیم…

make modules

و حالا از آخر به اول… ماژول‌ها رو با بالاترین دسترسی، سر جاشون می‌شونیم….

sudo make modules_install

و حالا خود کرنل رو….

sudo make install

این دستور بالایی رو که بزنید…. آخرین خطش یا یکی مونده به آخرش…. یه عدددی می بینید مث ۲٫۶٫۳۶ …. این رو باید کپی کنید تو حافظه اگر اوبونتویی هستید…

از اینجا به بعد فقط مختص اوبونتو کاراست 🙂 بقیه هم باید یه جوری initramfs رو بسازن و با خود کرنل جا بدن توی گراب (اپن سوزه‌ای ها مراجعه کنن به پست هر نفر یک کرنل)

sudo update-initramfs -k 2.6.36 -c

اون عددی رو که توی حافظه داددیم، گذاشتیم توی دستور بالایی … دقیقا با ی فاصله بعد از حرف k

دستور آخر رو که بزنید، گراب کرنل جدید رو شناسایی میکنه ….

sudo update-grub

درایور انویدیا رو هم که از سایتش دانلود کردید قبلن… وارد کرنل جدید میشید… با دستور sudo sh NVI*.run درایور کارت گرافیکی رو نصب میکنید…..

کرنل ۲.۶.۳۶ با پچ جادویی

رسیدیم به قسمت هیجان انگیز کار 🙂 (برای دیدن سایز اصلی، روی عکس کلیک کنید)

همونطور که می‌بینید…. ۴ تا هسته پردازشگر چسبیده به صد … اونم به مدت چند دقیقه 🙂 و من خیلی راحت فیلم اچ‌دی (۱۰۸۰ پی) می‌بینم…. دنت میکنم به حدی که اسپم شناخته میشم! وبگردیم رو انجام میدم خیلی نرم و روون و از همه این اتفاقات عکس میگیرم :ی

خلاصه پچ خیلی خوبیه و خیلی خوشحالم که با کرنل در آینده یکی میشه …… (نمی دونم ۲.۶.۳۷ یا ۲.۶.۳۸)

* در صورت فعال بودن پچ، باید خروجی دستور زیر باید یک باشه…

cat /proc/sys/kernel/sched_autogroup_enabled

 

پی‌نوشت : پچ جادویی برای آرچ لینوکس روهم دوست خوبم فرود زحمت تهیش رو کشیده 🙂 آرچ کارا از دستش ندن :ی

دویست خط پچ کرنل لینوکس که باعث شگفتی می‌شود

قبلا در مورد پچ معروف BFS و تاثیر اون  در افزایش کارایی  سیستم‌های خانگی (دسکتاب) صحبت کرده بودم.

حالا یه بابایی به اسم مایک گالبریث یه پچ (وصله) خیلی کوچولو نوشته (۲۳۳ خط) که تاثیر جادویی و عجیب و غریبی روی عملکرد سیستم می ذاره 🙂 و به حدی خوفناکه که لینوس طی نامه‌ای این پچ رو یه شاهکار و به اصطلاح killer feature  هم دونسته!

برای اینکه از این پچ استفاده کنید، باید سورس  کرنل ۲.۶.۳۷ کاندید دوم رو که همین امروز منتشر شده، دانلود  و به مسیر proc/sys/kernel/sched_autogroup_enabled  مراجعه کنید و مقدارش رو صفر یا یک قرار بدید.

فرق اون صفر و یک رو هم می تونید توی این دو تا فیلم زیر ببینید!

[youtube=http://www.youtube.com/watch?v=uk70SeGA7pg&feature=player_embedded]

اینم برای زمانیکه یک تنظیم کرده باشید

[youtube=http://www.youtube.com/watch?v=prxInRdaNfc]

** توی این دو تا فیلم،  کرنل  با دستور make -j64  کامپایل میشه تا بار روی دوش  پردازشگر به شدت بالا بره و وسط کامپایل، فیلم ۱۰۸۰ پی هم پخش میشه و بعد هم  سایتی اسکرول میشه و بعد هم پنجره‌های باز جابجا میشن 🙂 تا اثبات بشه، همه چی نرم و روون داره صورت میگیره!  با دستور make -j128 هم  باز شرایط خیلی خیلی خوب گزارش شده… جز پخش فیلم که یه مقدار کند بوده :ی

منبع

پی‌نوشت:

* لینک مستقیم  فیلم شماره یک (در صورت تنظیم با مقدار صفر، فیلم ۱۰۸۰ پی به صورت کامل توی هنگ هست و به زور چند ثانیه‌ای پخش میکنه :ی)

* لینک مستقیم فیلم شماره دو ( در صورت تنظیم با مقدار یک،  فیلم ۱۰۸۰ پی خیلی نرم و روون پخش میشه و حتی  پنجره‌های باز رومیشه  تکون داد بدون اینکه گیر کنه )

زمان بوت اوبونتو ۱۰.۰۴

در پستی، به زمان بوت اپن‌سوزه با کرنل پیشفرض و کرنل کامپایل  شده اشاره ای‌داشتم. زمان بوت با کرنل پیشفرض ، ۸۵ ثانیه و با کرنل کامپایل شده (سفارشی)، ۴۰ ثانیه بود. خیلی جالبه که زمان بوت اوبونتو ۱۰.۰۴ با کرنل پیشفرض، در حالی که کاربر به صورت خودکار لاگین نمی‌شه و مجبور به وارد کردن پسورد هستیم، از کرنل سفارشی اپن‌سوزه خیلی کمتره 🙂

زمان بوت ۲۸ ثانیه

پی‌نوشت۱: برای دیدن جزئیات روی تصویر کلیک کنید.
پی‌نوشت۲:‌ با SSD به زمان ۲۰ ثانیه هم می‌شه رسید.

سوال: با کرنل سفارشی شده به چند ثانیه می‌رسیم؟

مقایسه لینوکس با اسنو و سون

نمی‌دونم چرا هی بند کردم به این کرنل! شاید چون فک می کنم خیلی راحته و خیلیا از رفتن به سمت و سوش ترس دارن!

uname -a می‌گیرم تا مشخصات کرنل رو بهتون نشون بدم.

Linux linux-19gz 2.6.33-ck1 #1 SMP PREEMPT Mon Mar 1 16:21:28 IRST 2010 x86_64 x86_64 x86_64 GNU/Linux

این یه خط چند تا نکته داره بهمون می‌گه. یکی اینکه پردازشگر  ۶۴ بیتی هست و همینطور کرنل.  دیگه اینکه  شماره کرنل ۲.۶.۳۳ هست. اون ck1 پسوندی هست که نشون می‌ده  با یه کرنل کامپایل شده از رو سورس سر و کار نداریم. بلکه ۱۳ تا وصله برای بالا بردن راندمان کرنل بهش اعمال کردیم. دیگه اینکه در تنظیمات کرنل،  SMP و PREEMPT فعال هستند.

حالا ببینیم با این کرنل دستی کامپایل شده، لینوکس چه جایگاهی بین سیستم عاملای دیگه داره.

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

مقایسه بین لینوکس و لئوپارد و ویندوز سون
برای بزرگ شدن تصویر کلیک کنید

برنامه گیگ بنج ۴ دسته امتیاز کلی رو برای همه سیستم عامل‌ها در نظر می گیره. هر دسته شامل تعدادی تست می شه.

این ۴ دسته عبارتند از integer، Floating point، memory، stream . جالب اینجاست که هر کدام از سیستم عامل‌ها در یک دسته اول شده‌اند. به جز اسنو اپل که در دو دسته مقام اول رو کسب کرده است.

برنده قسمت integer سون، برنده floating point و stream اسنو و دسته memory نیز لینوکس اول شده است.

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

من تنها جایی که مشکل رو می بینم زمان خواندن و نوشتن اطلاعات بر روی پارتیشن هست! دوستان ببینید پارتیشن‌های من از نوع LVM هست و نوع آن هم ext4 هست. نمی دونم! اما یه جورایی احساس می کنم عملکرد پایین خیلی از نتایج در لینوکس همین موضوع می‌تونه باشه:)

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

نکته مهم اینکه از ۲۱ تست، لینوکس فقط در ۴ تست Blowfish، mandlebrot، Read sequential و stdlib copy اول شده و اختلاف پیروزی در stdlib copy با ویندوز و مک به حدی بالاست که می‌شه گفت لینوکس داره تو خیلی از قسمتا ( رو سخت افزار من) ضعیف عمل می کنه وفقط به دلیل خوب کار کردن در یک بخش، ضعف در بقیه قسمتا رو به نوعی جبران می کنه:)

به نتایج که نگاه می‌کنیم، می‌بینیم، ویندوز تو خیلی از تستا اول هست ( ده تست از ۲۱) ! فقط چون تو چند تا تست مث blur image یا sharpen image سوتی های بدی داده، نتیجه رو حتی به لینوکس هم واگذار کرده:)

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

و اما سه نکته برای کامپایل کرنل ۲.۶.۳۳ .

اول اینکه شما می‌تونید ۱۳ پچ اقای کولیواس را یک جا به کرنل پچ کنید. یکی از این پچ‌ها BFS است. یکی دیگه از پچ‌های خیلی مهم مربوط به  Timer frequency از زیر مجموعه Processor type and features هست. که بعد از پچ کردن کرنل، می‌شه مقدارش رو از هزار هرتز هم بالاتر برد. مقدار نهایی ده هزار هست!! این  فرکانس از نقاط اختلاف بر انگیز بین علما هست. یک سری می‌گن این عدد هر چی بالاتر باشه بهتره. یه سری می‌گن اگه این عدد بالا باشه، برق بیشتری مصرف می شه. پس تو لب‌تابا باید این عدد رو کمتر از هزار هرتز انتخاب کرد. یه سری هم می‌گن خیلی بزرگ انتخاب کردن این عدد می‌تونه منجر به ناپایداری سیستم شه:)) یکی  از وصله‌ها باعث می‌شه پسوند ck به انتهای شماره کرنل اضافه شه 😀  . یکی هم باعث بهبود در عملکرد preempt لینوکس خواهد شد.

برای اعمال پچ هم کافیه، پچ و سورس کرنل در یک دایرکتوری قرار داشته باشن(بعد از خارج شدن از حالت فشرده) . با اعمال دستور زیر هر ۱۳ تا پچ به کرنل وصله خواهند شد.

patch < patch-2.6.33-ck1 -p1

بعد هم به صورت عادی می‌شه کرنل رو کانفیگ و کامپایل کرد(اضافه کردن زمانبندی فرکانس یادتون نره) .

اما نکته مهمتر در مورد کرنل ۲.۶.۳۳ اینکه شما همه کارا رو درست انجام دادید. کار تموم شده. نوبت می‌رسه به نصب درایور کارت گرافیکی انویدیا.

جالبه بدونید درایور رسمی انویدیا موقع نصب به شما پیغام خطا خواهد داد. برای حل این مشکل شما باید از یک پچ استفاده کنید. این پچ رو اینبار به درایور انویدیا وصله پینه می‌کنیم:)) و  ربطی به کرنل نداره:دی

برای اینکار بسته به درایور انویدیایی که دارید یکی از دو پچ زیر را دانلود کنید.

nvidia-190.53-2.6.33.patch.txt
nvidia-195-2.6.33.patch.txt

بعد از اینکه مطمئن شدید که پچ و درایور رسمی انویدیا در یک دایرکتوری قرار دارند، با یکی از دو دستور زیر (بسته به نسخه درایور) پچ رو اعمال کنید. توجه کنید درایور رسمی انویدیا باید مجوز اجرا شدن را نیز داشته باشد(chmod 777 NVidia.run)

./NVIDIA-Linux-x86-190.53-pkg1.run –apply-patch nvidia-190.53-2.6.33.patch.txt
./NVIDIA-Linux-x86-195.30-pkg1.run –apply-patch nvidia-195-2.6.33.patch.txt

با اعمال دستور بالا درایور پچ شده انویدیا به صورت زیر در دایرکتوری جاری ساخته خواهند شد.

./NVIDIA-Linux-x86-190.53-pkg1-custom.run
./NVIDIA-Linux-x86-195.30-pkg1-custom.run

که از این به بعد می‌شه با این درایور به صورت معمول کار کرد(sudo ./NVIDIA-Linux-x86_64-195.30-pkg2-custom.run).

و اما نکته آخر اینکه آخرین نسخه از درایور رسمی انویدیا ( NVIDIA-Linux-x86_64-195.36.08-pkg2.run ) به صورت رسمی منتشر شده! اما همچنان فک نکنم بشه رو کرنل ۲.۶.۳۳ نصبش کرد و باید منتظر پچ اصلاحیش باشیم:)

قلب توزیعتون رو روغن کاری کنید

قلب هر توزیع، میشه کرنل لینوکس. توی پستی به نحوه کامپایل کرنل لینوکس تا حدودی اشاره کرده بودم. از اون موقع تا حالا تجربه خودم خیلی زیاد شده و اینکه تونستم به کرنلی برسم که حتی یک پیغام خطا تولید نمی‌کنه. اما  اگه بهترین تنظیمات رو هم انجام بدید، امتیاز سیستم از حدی فراتر نمی‌ره. در اینجا یعنی به سقف و به بهترین کارایی که یک کرنل می‌تونه داشته باشه، رسیدین(بالاترین راندمان)! و تنها کاری که می‌شه از این به بعد کرد، انتظار برای نسخه جدید کرنل هست و دعا برای اینکه امتیاز سیستم بالاتر بره.

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

یکی از بهترین پچ‌هایی که به صورت تصادفی با ان اشنا شدم، پچی موسوم به BFS هست که نباید آن را با فایل سیستم bfs اشتباه بگیرید! این پچ مناسب کاربران خانگی، یعنی کسانی که سیستم دسکتاب دارند، می‌باشد. تا سقف ۱۶ هسته، این پچ جادو می‌کند. یعنی اگر شما ۱۶ هسته داشته باشید و بخواهید استفاده شخصی از سیستم داشته باشید، این پچ یکی از بهترین‌های موجود در بازار است:)‌ این اسم را سازنده آن آقای کولیواس، برای آن انتخاب کرده و اعلام کرده مناسب ماشین‌های کوچک می‌باشد و نباید توقع داشته باشید بر روی ماشین‌های سرور خوب جواب دهد. BFS دقیقا در مقابل CFS  کرنل قرار می‌گیرد و به جای آن می‌نشیند. cfs یعنی (Completely Fair Scheduler)  تقسیم کار به صورت عادلانه در یک ماشین.

برای یک دسکتاب به دلیل تک کاربره بودن، باید حداکثر قدرت پردازشگر به کاری اختصاص داده شود، که کاربر قصد انجام آن را دارد. دقیقا برعکس یک ماشین مخصوص سرور که باید برای انجام هر کار بار کمتری به پردازشگر اعمال شود تا بتوان تعداد بیشتری از درخواست‌ها را مدیریت کرد. BFS  به طعنه  مخفف تقسیم کاری است که توسط یک مغز نابغه صورت می‌گیرد (Brain Fuck Scheduler). و اما مقایسه یک کرنل عادی (CFS)‌ با کرنل پچ شده (BFS) می‌تونه جالب باشه.

ادامه خواندن “قلب توزیعتون رو روغن کاری کنید”

هر نفر یک کرنل

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

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

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

مراحل کلی کار اینا هست.

۱- دانلود سورس کرنل به حجم ۶۰ مگ از سایت رسمی

۲- تنظیم و کانفیگ کردن کرنل

۳- کامپایل کرنل

۴- کامپایل ماژول‌های کرنل

۵- نصب ماژول های کرنل

۶- نصب خود کرنل

۷- ساخت رم دیسک

۸- قرار دادن کرنل و رم دیسک در گراب

باور کنید این مراحل یکی از یکی آسون تره! و همونطور که گفتم، طولانی ترین  مرحله کانفیگ کرنل هست. که اونم با ترفند و روشی که در نسخه جدید کرنل (۲.۶.۳۲) به وجود اومده، تبدیل به کار آسونی خواهیم کرد:دی  ینی اینطور بگم! منی که یک عمر از کامپایل کرنل می‌ترسیدم. الان روزی ده بار کرنل رو کامپایل می‌کنم.

۱- مورد اول که خیلی سادست! به سایت کرنل می رید و هر نسخه‌ای که دوست دارید رو دانلود می‌کنید:دی در ضمن هیچ خطری هم دانلود کرنل ناپایدار و در حال توسعه نداره. چون کرنل اصلی سیستم عامل همیشه سر جاش می‌مونه. نهایت امر اینه که می‌بینید کرنل جدیدی که کامپایل کردید، به دلتون نمی شینه. خیلی راحت از داخل گراب وارد کرنل سابق می شید.

۲- تنظیم و کانفیگ کردن کرنل

حالا فایل فشرده‌ای رو که گرفتید  باید از حالت فشرده در بیارید. و با ترمینال  وارد پوشه‌ای که سورس کرنل اونجاست بشید. اسم پوشه حاوی سورس چیزی شبیه linux-2.6.32 خواهد بودکه بسته به نسخه کرنل ، اون اعداد می تونه متفاوت باشه.

حالا نوبت به تنظیم کردن کرنل می‌ٰ رسه. برای تنظیم کردن کرنل، ما انتخابای مختلفی رو داریم. شاید یکی محیط گنوم باشه و کتابخانه‌های GTK رو داشته باشه، پس از دستور make gconfig برای تنظیم کرنل استفاده می‌کنه. شایدم یکی کی‌دی‌ای باشه دستور  make xconfig رو می‌زنه و یکی هم مث من محیط گرافیکی ترمینال رو دوست داره ، دستور make menuconfig می‌زنه و یکی هم زده به سیم آخر و می‌خواد به تک تک سوالات فایل کانفیگ جواب بده!! دستور make config رو می‌زنه. چیزی که مهمه این هست که هیچ کدوم از اینا فرقی با هم ندارند و تمام اینها تغییراتی رو در فایل مخفی کانفیگ موجود در سورس کرنل لینوکس ( config) ایجاد می‌کنند. تمام تنظیمات کانفیگ در این فایل ذخیره خواهد شد. فایلی که اولشم یک نقطه داره(چون مخفیه) ! این فایل هست که می‌گه چه چیزی باید کامپایل بشه و چه چیزی نشه:دی شما از چه فایل سیستمی استفاده می‌کنید؟ ext3 ؟ خوب در تنظیمات کرنل می‌تونید بقیه فایل سیستم‌ها رو غیر فعال کنید. پردازشگر اینتل دارید!؟ در قسمت تنظیمات یا همون کانفیگ کرنل باید ، تا چشتون به کلمه AMD، افتاد غیر فعالشون کنید و بالعکس

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

وقتی وارد تنظیمات کرنل در ترمینال بشیم، تصویر زیر رو خواهیم داشت.

یک  سری سرفصل کلی داریم، که از روی اسم می‌شه تا حدودی به کار اونها پی برد! ما تاجایی که ممکنه باید این کرنل رو لخت کنیم! هر گزینه‌ سه حالت داره. یا هست، یا نیست و یا اینکه به صورت ماژول وجود داره:دی وقتی چیزی به صورت ماژول وجود داره، یعنی قرار نیست ما در حالت پیشفرض از اون قابلیت استفاده کنیم. هر موقع نیاز شد،  می تونیم ماژول رو بارگذاری کینم. مثل کاری که خیلیا باید برای نصب درایور کارت تی‌وی‌ انجام بدن! اما وقتی که کرنل رو داریم برای خودمون کامپایل می کنیم، استفاده از ماژول مفهوم چندانی نداره:دی  چون ما تکلیفمون با خودمون روشنه.  یا از یک چیز می‌خوایم استفاده کینم و یا نمی‌خواهیم!  من اول از سر فصلایی شروع می کنم که شما راحت می‌تونید لختش کنید و کرنل رو سبک کنید.

اولی Virtualization یا همون مجازی سازیه! پردازشگر  یا مجازی سازی رو ساپورت می‌کنه یا خیر! فرض می کنیم ساپورت می کنه. اما شما اصلا استفاده‌ای ازش ندارید:) پس سریع ستاره رو از جلوی مجازی سازی بردارید(با زدن اسپیس) .
حالا  فرض می کنیم پردازشگر شما ساپورت می کنه و مجازی سازی هم باب میل طبع شماست. اینتر می‌زنید تا وارد زیر فصلاش شید. اگه اولین گزینه رو که kvm داره رو ستاره دار کنید، دو تا گزینه دیگه هم فعال می شه:) متناسب با پردازشگر خودتون، مجازی سازی رو انتخاب کنید. دو قابلیت دیگه هم به صورت مجازی وجود داره. می تونید راهنما مربوط به اونا رو بخونید و در صورتی که باب میلتون بود اونا رو فعال کنید. من هنوز رابطه بین این گزینه‌های داخل کرنل با اون برنامه‌های ویرچال باکس و وی‌ام‌ویر رو متوجه نشدم:دی وقتی روشن می‌کنم، ویرچال باکس مشکل پیدا می‌کنه. بهتره این قابلیت رو  به صورت m یعنی ماژول فعال ‌کنیم تا فقط در صورت نیاز ماژول رو  بشه بارگزاری کرد.

سر فصل دیگه file system هست که به راحتی  مورد نظر رو می‌شه تشخیص داد و بقیه رو خاموش کرد. این زیر فصل دو تا چیز مهم هم داره!
یکی فایل سیستم ویندوز! اگه می خواید به پارتیشنای ویندوز از داخل لینوکس دسترسی داشته باشید، باید محتویات (DOS/FAT/NT Filesystems) را فعال کنید. همینطور خوندن سی‌دی‌و دی‌وی‌دی(CD-ROM/DVD Filesystems) . گزینه CD-ROM/DVD Filesystems هم برای سامبا و nfs هست. نوعی سیستم اشتراک فایل و تجهیزات مختلف بین ویندوز و لینوکس که در صورتی که استفاده‌ای ندارید، می‌شه غیر فعالش کرد.
در زیر مجموعه Partition Types هم می‌تونید دو گزینه PC BIOS و Windows Logical Disk Manager رو تیکش رو بزنید. در صورتی هم که از جداول پارتیشن بندی دیگه استفاده می کنید‌، باید مراقب باشید:دی در ضمن در مورد فایل سیستم‌ها مورد مربوط به دیباگ(Debuge)  رو بهشون نیازی نداریم:دی

برای برگشتن به صفحه اصلی هم از Esc استفاده کنید.

خوب یکی از سرفصلای کلیدی Device Drivers  هستش. تقریبا تمام قطعات سخت‌افزاری سیستم در این قسمت اگه درست انتخاب شه کار می کنن!  در اینجا اگه زیادی گزینه‌ها رو خاموش کنید، احتمال اینکه قطعه ای از سیستم کار نکنه بالاست.

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

Generic Driver Options که در داخلش یکی از مهمترین بخش‌های کرنل نسخه جدید (۲.۶.۳۲) وجود داره! که باعث افزایش سرعت بوت می شه . منظور گزینه Create a kernel maintained /dev tmpfs هستش که تاثیر زیادی در افزایش سرعت بوت بر عهده داره.

گزینه دیگر ATA/ATAPI/MFM/RLL support  هست که مربوط به هاردای IDE هستند و من به کل این بخش رو غیر فعال کردم:دی چون فقط ساتا دارم. دوستان باید دقت کنند که حتی هاردای ساتا نیز می توانند عملکردی مشابه آی‌دی‌ای داشته باشند.

و اما در صورت داشتن هارد ساتا. وارد زیر بخش Serial ATA (prod) and Parallel ATA (experimental) drivers می‌شید و گزینه‌های AHCI SATA support  و ATA SFF support  رو می زنید. اگه دقت کنید گزینه Marvell SATA support  رو هم خواهید دید. این تکنولوزی هست که در مادربوردای تمام ساتا به کار می ره . وقتی می‌خوان یک هارد IDE داشته باشن از این روش استفاده می کنن. در ضمن یادتون نره از داخل بایوس نحوه عملکرد هاردای ساتا رو AHCI تنظیم کنید تا ساتای واقعی بشن.

قسمت مربوط به اسکازی از موارد مهم  برای آدمای خاص هست(در صورتی که وسایل  اسکازی   دارید!!) . منظور گزینه SCSI device support هست که در زیر قسمت آن بخش‌های مهمی داریم. SCSI CDROM support  برای کار کردن سی دی رام اسکازی مورد نیاز است. SCSI generic support نیز برای رایتر و اسکنرهایی که اسکازی هستند مورد نیاز می شه. گزینه پشتیبانی از هاردای اسکازی هم SCSI disk support هست.

دوستان من تاکید می‌کنم! این گزینه‌هایی هست که من زدم و برای سخت‌افزار خودم بوده. من باگفتن این موارد فقط قصد دارم جای حدودی هر گزینه رو بهتون بگم و بقیه کار تلاش خودتون هست:دی

قسمتای مهم دیگه Network device support هست. در این بخش هست که کارت شبکه (ADSL)  و همه این چیزا تعیین می‌شه. پس این بخش رو باید دقت کنید:دی من این زیر بخش رو توضیحی نمی‌دم چون موارد متنوع هست. اما در ادامه روشی رو می بینیم که تمام این تنظیمات به صورت خودکار توسط چند خط کد اضافه انجام می‌شه (انقلاب در کانفیگ کرنل)

یکی از مهمترین بخش‌ها Graphics support هست . دقت کنید دوستان! من خودم شخصا تمام این گزینه‌های رو غیر فعال کردم. اما نتیجه این شده که از زمان گراب تا بالا اومدن لینوکس شاهد یک ترمینال زشت و زمخت هستم! همون اول بعد از گراب، هر بار سر تعیین  رزولیشن ترمینال زمانی رو از دست می‌دم! و سر همین موضوع زمان بوتم پایین می یاد:دی

از طرفی وقتی گزینه‌های زیادی رو فعال می کنم!! درایور رسمی شرکت انودیا رو نمی تونم نصب کنم! و علت تداخل با این کارت‌ها میباشد. پس تا زمانی که بتونیم اطلاعات دقیقی رو در این مورد بدست بیاریم:)) پیشنهاد من غیر فعال کردن همه موارد هست:دی

موارد پشتیبانی از USB و همینطور مانیتورای LED  نیز از این بخش قابل تنظیم هست. تکنولوژی DMA Engine support  نیز نباید فراموش شه. این تکنولوژی متعلق به اینتل هست و باعث می شه اطلاعات بدون اینکه پردازشگر کار بکنه ، در حالت رید بر روی هارد نوشته شه و البته زمانی به درد می خوره که سخت افزار هم پشتیبانی کنه:دی

زیر بخش مربوط به Multimedia support هم بخش‌های مهمی برای کسایی که وب کم و یا کارت تی‌وی یا DVB  دارن حساب می شه و باید سرکی بهش بکشن.

اگر از پارتیشن بندی به روش LVM یا Raid استفاده نمی‌کنید، نیز با خیال راحت گزینه Multiple devices driver support (RAID and LVM) رو خاموش کنید.

با زدن Esc وارد  بخش اصلی  می‌شیم. یکی از سر فصل‌های اصلی که من همه رو خاموش کردم، سرفصل Networking support هست که به جز گزینه اول، بقیه موارد داخل این سرفصل رو خاموش کردم:دی . چون نه وایرلسی دارم  و نه وایمکس و نه بلوتوثی

یکی از بخش‌های مستعد Power management and ACPI options  هست . این قسمت همونجایی هست که مسئول عملیات ساسپند و خواب زمستانی هست. پیشنهاد من اینه که اگه پی‌سی دارید، این گزینه رو غیر فعال کنید. اگرم که لب تاب دارید، می تونید گزینه های مطلوب رو روشن کنید.

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

اما یکی از سرفصل‌های اصلی و بسیار مهم که تاثیر به سزایی در بالا رفتن کارایی لینوکس روی سخت‌افزار شما دارد، Processor type and features می باشد.

در زیر مجموعه این بخش مهم به  Configure Maximum number of SMP Processors and NUMA Nodes بر می‌خوریم که حداکثر تعداد پردازشگر را مشخص می کند .  اگر شما پردازشگر تک هسته‌ای دارید با خیال راحت این بخش رو غیر فعال کنید و اگر مثل من ۴ هسته‌ای دارید، آن را روی عدد ۴ بگذارید. نیازی نیست روی ۵۱۲ این عدد بماند!

SMT (Hyperthreading) scheduler support    یک تکنولوژی هست که  در پردازشگرهای پنتیوم ۴ اینتل به کار رفته. کارش این بوده که پردازشگر تک هسته‌ای شما رو با روشای مهندسی و تمام نرم‌افزاری! تبدیل به دو هسته می کنند:دی البته الان هم اینتل در پردازشگرای جدید خود core i7 نیز از این فناوری استفاده کرده! و برای همینه که می گن پردازشگرای ۴ هسته ای جدید اینتل، داری ۸ هسته هست:دی و اون ۴ هسته اضافی توسط همین فناوری درست می شه:دی اگر پردازشگرای دو هسته و یا ۴ هسته ای معمولی اینتل رو دارید نیازی به روشن کردن این گزنیه ندارید.

یکی از بخش‌های خیلی خیلی مهم Processor family  هست که نوع پردازشگرتون رو مشخص می کنه! اینجاست که شما باید تعیین کنید که آیا مثل من اینتل ۴ هسته ای یا دو هسته ای یا زئون دارید( Core 2/newer Xeon) و یا اینکه پردازشگر اتم اینتل دارید استفاده می‌کنید. AMD هم که گزینش مشخصه! توجه کنید که حالت Generic-x86-64  همونی هست که در تمام توزیعا روشنه و برای تمام پردازشگرها عمومیت داره! ینی درسته همه پردازشگرا رو پشتیبانی می‌کنه اما در عوض کارایی رو پایین می‌یاره.

در همین جا اگر لب تاب شرکت دل دارید، گزینه Dell laptop support رو باید روشن کنید.

دوستان این بخش موارد پیشرفته دیگه‌ای هم داره! که من هنوز به صورت کامل و درست از اونا سر در نیوردم:دی. هر موقع فهمیدم چی به چیه:دی (با کمک شما دوستان) مطلب رو در پستای بعدی می شکافیم:دی


انقلاب در کانفیگ کرنل

روشی جدید برای ساده سازی کانفیگ کرنل از شماره ۲.۶.۳۲ به کار گرفته شده، که کار افرادی مثل من و شما رو خیلی خیلی ساده می کنه. در مرحله قبل ما مجبور بودیم درکی از ریزترین جزئیات کرنل داشته باشیم که حقیقتا کاری سخت و طاقت فرسا هست. البته در گذشته( و همین الان) دستور make oldconfig مورد استفاده بوده. هنگامی که شما این دستور را می‌زنید. فایل کانفیگ مقادیر پیشفرض کرنل جاری سیستم عامل رو به خود می‌گیرد. و در ادامه در ترمینال فقط سوال‌هایی به شما نشان داده خواهد شد، که که کاملا جدید هستند و به این ترتیب فردی که می‌خواهد عمل کانفیگ کرنل را انجام دهد، کار کمتری را باید انجام دهد.(به جای اینکه به تک تک سوالات جواب دهد به ۵۰ تا جواب می‌ده)

اما روش جدیدی که در  نسخه جدید برای آسان سازی کامپایل مورد استفاده قرار می گیرد استفاده از دستور خوشدست make localyesconfig هست.
به صورت خودمانی این دستور می‌یاد فایل کانفیگ شما رو بر اساس ماژولایی که فعال هستن، ست می کنه! یعنی اینکه وقتی شما این دستور رو می‌زنید یه چیزی در حدود ۲۰ تا سوال از شما می شه. اکثر سوالات حالات پیشفرض NO رو دارن و با زدن اینتر بازم غیر فعال می مومونند. یه سری هم Y دارن شما می‌تونید با نوشتن حرف n اونا ر و غیر فعال کنید. اما نکته اینجاست! که شما یه سوال رو جواب می‌دید ، ۵۰ تا رو خود دستور تنظیم می کنه! چطوری؟ بر اساس ماژولایی که همین الان رو سیستم شما دارن کار می‌کنن:دی وقتی بعد این مرحله برید و فایل کانفیگ رو ببینید!! می‌بینید تمام قسمت‌های سخت و نفس گیر ، خودشون بر اساس سخت‌افزار و شرایطی که شما داشتید روشن می شند:O یعنی دیگه وقتی به قست کیبردا برید، همه گزینه‌ها روشن نیست. وقتی به قسمت شبکه برید ۹۵ درصد موارد نا مربوط به سخت افزار  خاموش هستند:دی

خلاصه اینکه شما اول باید این دستور make localyesconfig رو اجرا کنید. از اسم دستور هم مشخصه که چیکار داره می‌کنه! localy با استفاده از ماژولای فعال هر فرد (سیستم با سیستم فرق می‌کنه)‌ easy  کار رو آسون می‌کنه! کدوم کار رو!؟ کار کانفیگ کرنل رو :دی بعد از اجرای دستور هم گفتم که باید به ۲۰ تا سوال جواب بدید.  این سوالات همونایی هست که در منوهای بالا قبلا دیده بودید
جلوی هر سوال نگاه کنید! سه حالات داره! N و y  و m که بیشتر اونها حرف N بزرگ هست. اونی که حرف بزرگ هست حالت پیشفرض هست! بدین معنی که اگر در جواب به این سوالات اینتر رو بزنید، اون حرف بزرگه به صورت خودکار در فایل کانفیگ تنظیم می‌شه:دی من با اطمینان می‌گم شما می‌تونید همه اون سوالاتی که دیفالتشون حرف N هست رو اینتر بزنید:)) و اما! اونایی که با حرف Y بزرگ هستند! رو بخونید ببینید چی می گه:دی اگه دوست نداشتید جیزی فعال شه کافیه n رو تایپ کنید و بعد هم اینتر رو بزنید.

و بعد اجرای این دستور برید و دستور make menuconfig رو اجرا کنید! و لذت ببرید! از قدرت هکرای کرنل:)) فایل کانفیگ ۸۰ درصد خالی شده. کافیه یه گشت تو تنظیمات بزنید. حالا می‌تونید مدل دقیق کیبرد و موستون رو پیدا کنید. حالاست که می‌تونید مدل دقیق کارت شبکتون رو ببینید چیه! و پی ببرید که کدوم قسمت از کرنل هست که مسول به کار انداختن کارت شبکه و یا usb های شما هست! انتخاب بسیار محدود شده!

من فقط شما رو به قسمت فایل سیستم‌ها مجددا ارجاع می‌دم.  و یکی هم اون قسمت کارت گرافیکی! که هر چی در این دو بخش دیدید رو خاموش کنید.

در ضمن همچنان باید نوع معماری پردازشگر و تعدادشون رو هم انتخاب کنید:دی

۳- فرض رو بر این می‌گذاریم که شما کرنل رو کانفیگ کردید! فایل کانفیگ رو ذخیره کردید و از محیط برنامه خارج شدید. تمام تغییرات در فایل مخفی کانفیگ (config. ) نوشته شده. شما می‌تونید این فایل رو برای استفاده در آینده در محل دیگری نگهداری کنید:دی

حالا نوبت کامپایل هسته می‌ٰسه. برای اینکار از دستور make استفاده می‌کنیم. اگر پردازشگر دو هسته ای دارید برای سریعتر شدن کار از دستور make -j 2 و اگر هم ۴ هسته‌ دارید، make -j 4 رو وارد کنید. افرادی که پردازشگرای تک هسته‌ای دارن باید  ۱۵ دقیقه ای رو تحمل کنن و به کارای دیگشون برسن:دی . افرادی مث من هم، بعد ۴ دقیقه کرنل کامپایل شده رو خواهند دید:دی

۴- حالا نوبت کامپایل ماژولای کرنل فرا می‌رسه.  برای اینکار کافیه دستور make modules رو وارد کنید. حالا کرنل و ماژولا رو کامپایل شده داریم. باید با یه دستوری اینا رو به سر جاشون منتقل کنیم:دی و چون سر جاشون، تو فولدر ریشه و جایی هست که باید دسترسی ریشه داشته باشیم، از دستور sudo استفاده می‌کنیم.
۵- اول از همه ماژولا رو با دستور sudo make modules_install به سر جاشون می‌بریم. ۶- و بعد خود کرنل کامپایل شده رو با دستور sudo make install به مکانی که باید، بره می‌بریم(boot/ ) .
توجه کنید که با زدن این دستور آخر در اپن سوزه سه تا اتفاق دیگه به صورت خودکار می‌یوفته:دی اول ساخته شدن رم دیسک هست! و دومی انتقال اون به محلی که باید باشه و سومی هم معرفی رم دیسک و کرنل به گراب:دی

و چون شما احتمالا اوبونتو دارید. اون سه تا کار آخر رو هم باید دستی انجام بدید.( اپن سوزه = اژدهای خاموش)

۷- رم دیسک چیست!؟ و چگونه آن را ایجاد کنیم

قبلش بگم منظور از اون initrd چی هست! نگین طرف ماسمالی کرد و رفتش:)) این کلمه مخفف initial ramdisk هست و همانند قضیه مرغ و تخم مرغ هست:دی :)))

وقتی شما کامپیوتر رو روشن می‌کنید و بایوس کامپیوتر قصد داره، کار رو به هارد بکشونه! و کرنل رو از رو هارد بخونه! چطوری باید اینکارو بکنه!؟ وقتی درایور خود هارد رو نداره، چیکار کنه!!؟ ببینین ما داریم تو خود کرنل، درایورای مربوط به هارد رو تیک می‌زنیم که آره آقای کرنل شما  بیا مدل هارد ما رو که Raid و یا LVM هست ساپورت کن! بعد موقعی که سیستم رو روشن می‌کنید که کرنلی در کار نیست:دی چون کرنل رو هارده و همینوطور درایورا و اگه با فرض اینکه هارد معمولی هست، اطلاعات رو بخونه می تونه منجر به اشتباهات بدی بشه!!  پس اینجا اومدن initial ramdisk رو ایجاد کردن . ینی اول می یان روی رم یه چیزی رو می‌سازن و از اون به صورت یک فایل سیستم استفاده می‌کنند. کما اینکه بعدا خودتون می‌تونید اینکار رو بکنید! یعنی شما می‌تونید یه تیکه از رم رو کاری کنید انگار جزئی از هارد شما هست! و بعد به عنوان مثال کش فایرفاکستون روی اون ذخیره کنید:دی و اون موقع از لذت بالای وبگردی لذت ببرید!! خلاصه سرتون رو درنیارم! رم دیسک در حکم نمی‌دونم مرغه هست و  یا شایدم تخم مرغه و چیزی که مهمه خیلی خیلی مهمه اینه که حتی وظیفه بارگذاری ماژولا در کرنل رو هم انجام می‌ده.

حالا  ببینیم شما در اوبونتو باید با زدن چه دستوری این رم دیسک رو بسازید!؟

mkinitramfs -o /boot/initrd.img-2.6.32

همونطور که می‌بینید این دستور برای ساخت رم دیسک مورد استفاده قرار می‌گیره! و محل ذخیره شدنشم معلومه! دقیقا در فولدر boot کنار دست کرنل. هیچ چیز خاصی نیست و فقط درشروع مورد استفاده قرار می‌گیره تا سیستم بالا بیاد. چون محتویات حافظه رو برخلاف هارد می‌شه به راحتی خوند! و دیگه درایور برای رم نداریم:)))

حالا مرحله آخر ویرایش فایل گراب هست! که راهنماش ریخته!!‌ من فقط این نکته رو بگم که شما کافیه خطوط مربوط به کرنلی که الان باهاش توی لینوکس هستید! رو کپی پیست کنید و اونا رو یه تغییرات کوچیک بدید:دی ( منطور اینه که آدرس دقیق کرنل و رم دیسک رو باید بدید! )

و نکته آخر اگه همه چی با موفقیت باشه! شما باید وارد ترمینال بشید! وارد ترمینال که شدید باید برید با دستور ساده sudo sh Nvidia*.run درایور کارت گرافیکی رو نصب کنید:دی تا با ریست بعدی وارد محیط دسکتاب بشید.

دوستان ،،،،،،         همیشه آزاد باشید ,,,, مجوز  مطلبم GPL هست:دی