Linux

linux & IT …

بایگانی دسته‌ها: کرنل

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

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

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

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

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

 

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

پچ جادویی

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

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

سورس کرنل ۲.۶.۳۶ رو میگیرید…. از حالت فشرده خارجش کنید….. حالا یه فولدر داریم به اسم 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

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

از اینجا به بعد فقط مختص اوبونتو کاراست 🙂  بقیه هم باید یه جوری 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  مراجعه کنید و مقدارش رو صفر یا یک قرار بدید.

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

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

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

منبع

پی‌نوشت:

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

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

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

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

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) می‌تونه جالب باشه.

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