Linux


Linux



Linux
آغاز داستان
در سال 1991 در حالی که جنگ سرد رو به پایان میرفت و صلح در افقها هویدا میشد، در دنیای کامپیوتر، آینده بسیار روشنی دیده میشد. با وجود قدرت سخت افزارهای جدید، محدودیت های کامپیوترها رو به پایان میرفت. ولی هنوز چیزی کم بود...
و این چیزی نبود جز فقدانی عمیق در حیطه سیستم های عامل.
داس، امپراطوری کامپیوترهای شخصی را در دست داشت. سیستم عامل بی استخوانی که با قیمت 50000 دلار از یک هکر سیاتلی توسط بیل گیتز (Bill Gates) خریداری شده بود و با یک استراتژی تجاری هوشمند، به تمام گوشه های جهان رخنه کرده بود. کاربران PC انتخاب دیگری نداشتند. کامپیوترهای اپل مکینتاش بهتر بودند. ولی قیمتهای نجومی، آنها را از دسترس اکثر افراد خارج می ساخت.
خیمه گاه دیگر دنیای کامپیوترها، دنیای یونیکس بود. ولی یونیکس به خودی خود بسیار گرانقیمت بود. آنقدر گرانقیمت که کاربران کامپیوترهای شخصی جرات نزدیک شدن به آنرا نداشتند. کد منبع یونیکس که توسط آزمایشگاههای بل بین دانشگاهها توزیع شده بود، محتاطانه محافظت میشد تا برای عموم فاش نشود. برای حل شدن این مسئله، هیچیک از تولید کنندگان نرم افزار راه حلی ارائه ندادند.
بنظر میرسید این راه حل به صورت سیستم عامل MINIX ارائه شد. این سیستم عامل، که از ابتدا توسط اندرو اس. تاننباوم (Andrew S. Tanenbaum) پروفسور هلندی، نوشته شده بود به منظور تدریس عملیات داخلی یک سیستم عامل واقعی بود. این سیستم عامل برای اجرا روی پردازنده های 8086 اینتل طراحی شده بود و بزودی بازار را اشباع کرد.
بعنوان یک سیستم عامل، MINIX خیلی خوب نبود. ولی مزیت اصلی آن، در دسترس بودن کد منبع آن بود. هرکس که کتاب سیستم عامل تاننباوم را تهیه میکرد، به 12000 خط کد نوشته شده به زبان C و اسمبلی نیز دسترسی پیدا میکرد. برای نخستین بار، یک برنامه نویس یا هکر مشتاق میتوانست کد منبع سیستم عامل را مطالعه کند. چیزی که سازندگان نرم افزارها آنرا محدود کرده بودند. یک نویسنده بسیار خوب، یعنی تاننباوم، باعث فعالیت مغزهای متفکر علوم کامپیوتری در زمینه بحث و گفتگو برای ایجاد سیستم عامل شد. دانشجویان کامپیوتر در سرتاسر دنیا با خواندن کتاب و کدهای منبع، سیستمی را که در کامپیوترشان در حال اجرا بود، درک کردند.
و یکی از آنها لینوس توروالدز (Linus Torvalds) نام داشت.
کودک جدید در افق
در سال 1991، لینوس بندیکت توروالدز (Linus Benedict Torvalds) دانشجوی سال دوم علوم کامپیوتر دانشگاه هلسینکی فنلاند و یک هکر خود آموخته بود. این فنلاندی 21 ساله، عاشق وصله پینه کردن محدودیت هایی بود که سیستم را تحت فشار برنامه میدادند. ولی مهمترین چیزی که وجود نداشت یک سیستم عامل بود که بتواند نیازهای حرفه ای ها را براورده نماید. MINIX خوب بود ولی فقط یک سیستم عامل مخصوص دانش آموزان بود و بیشتر به عنوان یک ابزار آموزشی بود تا ابزاری قدرتمند برای بکار گیری در امور جدی.
در این زمان برنامه نویسان سرتاسر دنیا توسط پروژه گنو (GNU) که توسط ریچارد استالمن (Richard Stallman) آغاز شده بود، تحریک شده بودند. هدف این پروزه ایجاد حرکتی برای فراهم نمودن نرم افزارهای رایگان و در عین حال با کیفیت بود. استالمن خط مشی خود را از آزمایشگاه معروف هوش مصنوعی دانشگاه MIT با ایجاد برنامه ویرایشگر emacs در اواسط و اواخر دهه 70 آغاز نمود. تا اوایل دهه 80، بیشتر برنامه نویسان نخبه آزمایشگاههای هوش مصنوعی MIT جذب شرکتهای نرم افزاری تجاری شده بودند و با آنها قرارداد های حفظ اسرار امضا شده بود. ولی استالمن دیدگاه متفاوتی داشت. وی عقیده داشت برخلاف سایر تولیدات، نرم افزار باید از محدودیت های کپی و ایجاد تغییرات در آن آزاد باشد تا بتوان روز به روز نرم افزارهای بهتر و کارآمد تری تولید نمود.
با اعلامیه معروف خود در سال 1983، پروژه GNU را آغاز کرد. وی حرکتی را آغاز کرد تا با فلسفه خودش به تولید و ارائه نرم افزار بپردازد. نام GNU مخفف GNU is Not Unix است. ولی برای رسیدن به رویای خود برای ایجاد یک سیستم عامل رایگان، وی ابتدا نیاز داشت تا ابزارهای لازم برای این کار را ایجاد نماید. بنابراین در سال 1984 وی شروع به نوشتن و ایجاد کامپایلر زبان C گنو موسوم به GCC نمود. ابزاری مبهوت کننده برای برنامه نویسان مستقل. وی با جادوگری افسانه ای خود به تنهایی ابزاری را ایجاد نمود که برتر از تمام ابزارهایی که تمام گروههای برنامه نویسان تجاری ایجاد کرده بودند برنامه گرفت. GCC یکی از کارآمد ترین و قویترین کامپایلرهایی است که تا کنون ایجاد شده اند.
تا سال 1991 پروزه GNU تعداد زیادی ابزار ایجاد کرده بود ولی هنوز سیستم عامل رایگانی وجود نداشت. حتی MINIX هم لایسنس شده بود. کار بر روی هسته سیستم عامل گنو موسوم به HURD ادامه داشت ولی به نظر نمی رسید که تا چند سال آینده قابل استفاده باشد.
این زمان برای توروالدز بیش از حد طولانی بود...
در 25 آگوست 1991، این نامه تاریخی به گروه خبری MINIX از طرف توروالدز ارسال شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: بیشتر چه چیزی را میخواهید در MINIX ببینید؟
خلاصه: نظرخواهی کوچک در مورد سیستم عامل جدید من

با سلام به تمام استفاده کنندگان از MINIX
من در حال تهیه یک سیستم عامل رایگان فقط به عنوان سرگرمی و نه به بزرگی و حرفه ای GNU برای دستگاههای 386 و 486 هستم. این کار از آوریل شروع شده و درحال آماده شدن است. من مایلم تا نظرات کاربران را در مورد چیزهایی که در MINIX دوست دارند یا ندارند، جمع آوری کنم. زیرا سیستم عامل من حدودا شبیه آن است. مانند ساختار سیستم فایل مشابه و چیزهای دیگر... من اکنون bash نسخه 1.08 و GCC نسخه 1.40 را به آن منتقل کرده ام و به نظر میرسد که کار میکند. من در عرض چند ماه چیزی آزمایشی درست کرده ام و مایلم بدانم که کاربران بیشتر به چه قابلیتهایی نیاز دارند؟ من از هر پیشنهادی استقبال میکنم. ولی قول نمی دهم همه آنها را اجرا کنم. لینوس
همانطور که در این نامه پیداست، خود توروالدز هم باور نمی کرد که مخلوقش آنقدر بزرگ شود که چنین تحولی در دنیا ایجاد کند. لینوکس نسخه 0.01 در اواسط سپتامبر 1991 منتشر شد و روی اینترنت برنامه گرفت. شور و اشتیاقی فراوان حول مخلوق توروالدز شکل گرفت. کدها دانلود شده، آزمایش شدند و پس از بهینه سازی به توروالدز بازگردانده شدند. لینوکس نسخه 0.02 در پنجم اکتبر به همراه اعلامیه معروف توروالدز آماده شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: کدهای منبع رایگان هسته مشابه MINIX
آیا شما از روزهای زیبای MINIX 1.1 محروم شده اید؟ هنگامی که مردها مرد بودند و راه اندازهای دستگاه خود را خودشان مینوشتند؟ آیا شما فاقد یک پروزه زیبا هستید و می میرید تا سیستم عاملی داشته باشید تا بتوانید آنرا مطابق با نیازهای خود در آورید؟ اگر اینگونه است، این نامه برای شما نوشته شده است.
همانطور که ماه پیش گفتم من در حال کار بر بروی یک سیستم عامل رایگان مشابه MINIX برای کامپیوترهای 386 هستم. این سیستم عامل اکنون بجایی رسیده است که قابل استفاده است و مایل هستم که کدهای منبع را در سطح گسترده تر پخش نمایم. این نسخه 0.02 است ولی من موفق شده ام که نرم افزارهای Bash، GCC، GNU-Make، GNU-sed، Compress و غیره را تحت آن اجرا کنم. کدهای منبع این پروژه را میتوانید از آدرس nic.funet.fi با آدرس 128.214.6.100 در دایرکتوری pub/OS/Linux پیدا کنید. این دایرکتوری همچنین دارای چند فایل README و تعدادی باینری قابل اجرا تحت لینوکس است. تمام کدهای منبع ارائه شده است زیرا هیچ یک از کدهای MINIX در آن استفاده نشده است. سیستم را میتوانید همانطور که هست کامپایل و استفاده کنید. کدهای منبع باینری ها را هم میتوانید در مسیر pub/GNU پیدا کنید.
لینوکس نسخه 0.03 پس از چند هفته آماده شد و تا دسامبر، لینوکس به نسخه 0.10 رسید. هنوز لینوکس فقط چیزی کمی بیشتر از یک فرم اسکلت بود. این سیستم عامل فقط دیسکهای سخت AT را پشتیبانی میکرد و ورود به سیستم نداشت و مستقیما به خط فرمان بوت میشد. نسخه 0.11 خیلی بهتر شد. این نسخه از صفحه کلیدهای چند زبانه پشتیبانی میکرد، دیسکهای فلاپی و کارتهای گرافیکی VGA، EGA، هرکولس و... نیز پشتیبانی میشدند. شماره نسخه ها از 0.12 به 0.95 و 0.96 افزایش پیدا کرد و ادامه یافت. بزودی کد آن بوسیله سرویس دهنده های FTP در فنلاند و مناطق دیگر، در سرتاسر جهان منتشر شد.
Linux



راهنمایی کنید بهم

1:

مقایسه و توسعه
بزودی توروالدز با مقایسه هایی از طرف اندرو تاننباوم، معلم بزرگی که MINIX را نوشته بود، مواجه شد.


زبانهایی که باید آموخت!
تاننباوم برای توروالدز مینویسد:
من بر این نکته تاکید دارم که ایجاد یک هسته یکپارچه در سال 1991 یک اشتباه پایه ای بود.


Anti virus مجمومه آنتي ويروس آپديت شده همراه با كراك و آموزش
خدا را شکر که شما شاگرد من نیستید، واگر نه برای چنین طرحی نمره بالایی نمی گرفتید.”
توروالدز بعدا پذیرفت که این بدترین نکته در توسعه لینوکس بوده هست.


دی وی دی رایترم با سرعت پایین رایت میکنه
تاننباوم یک هستاد مشهور بود و هرچه که می فرمود واقعیت داشت.


يک کامپکت تمام عيار
ولی وی در مورد لینوکس اشتباه میکرد.


آشنايي با قاعده‌هاي جهاني آنلاين‌نويسي
توروالدز کسی نبود که به این سادگی ها پذیرای شکست باشد.
تاننباوم همچنین فرموده بود : “لینوکس منسوخ شده هست”.
اکنون نوبت حرکت نسل جدید لینوکس بود.


نحوه انتخاب يك مادربرد
با پشتیبانی قوی از طرف اجتماع لینوکس، توروالدز یک جواب مناسب برای تاننباوم فرستاد :
شغل شما هستاد دانشگاه و محقق بودن هست و این بهانه خوبی برای برخی مغز خرابکنی های MINIX است.”
و کار ادامه یافت.


ویندوز 7 پدیده ای در جهان کامپیوتر !
بزودی صدها نفر به اردوگاه لینوکس پیوستند.

سپس هزاران نفر و سپس صدها هزار نفر.

لینوکس دیگر اسباب بازی هکرها نبود.

با پشتیبانی نرم افزارهای پروزه GNU، لینوکس آماده یک نمایش واقعی بود.

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

با این مجوز همه میتوانستند کدهای منبع لینوکس را به رایگان داشته باشند، بر روی اونها مطالعه کرده و اونها را تغییر دهند.

دانشجویان و برنامه نویسان اونرا قاپیدند.
و خیلی زود تولید نمايندگان تجاری وارد شدند.

لینوکس به خودی خود رایگان بود و هست.

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

اکنون توزیع هایی مانند ردهت، دبیان و زوزه دارای بیشترین سهم کاربران در سرتاسر جهان هستند.

با رابطهای گرافیکی کاربر جدید مانند KDE و GNOME، توزیع های لینوکس در بین امت بسیار گسترش یافتند.
همچنین اتفاقات جالبی با لینوکس رخ میدهد.

در کنار PC، لینوکس به روی اکثر پلاتفورمها منتقل شده هست.

لینوکس تغییر داده شد تا کامپیوتر دستی شرکت 3Com یعنی PalmPilot را اجرا نماید.

تکنولوژی کلاستر کردن این امکان را بوجود آورد تا بتوان تعداد زیادی از ماشینهای لینوکس را به یک مجموعه واحد پردازشی تبدیل نمود.

یک کامپیوتر موازی.

در آوریل 1996 محققین آزمایشگاههای ملی لوس آلاموس از 68 کامپیوتر مبتنی بر لینوکس برای پردازش موازی و شبیه سازی موج انفجار اتمی هستفاده کردند.

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

ابرکامپیوتر خود ساخته اونها با تمام تجهیزات و سخت افزارها 152000 دلار هزینه در بر داشت و این یک دهم هزینه یک ابرکامپیوتر تجاری هست.

این ابرکامپیوتر به سرعت 16 بیلیون محاسبه در ثانیه دست یافت و به رتبه 315 ام این ابرکامپیوتر جهان دست پیدا کرد و صد البته یکی از پایدارترین اونها بود.

پس از سه ماه از آغاز فعالیت، هنوز بوت نشده بود.


Linux


بهترین موردی که امروزه برای لینوکس وجود دارد، طرفداران متعصب اون هستند.

هنگامی که یک قطعه سخت افزاری جدید ارائه میشود، هسته لینوکس برای هستفاده از اون تغییر داده میشود.

برای مثال هنگام ارائه پردازنده 64 بیتی شرکت AMD هسته به سرعت چند هفته برای کار با اون آماده شد.

اکنون لینوکس بر روی تمام انواع خانواده های سخت افزاری موجود اعم از PC، MAC، Alpha و انواع سخت افزارهای درونه ای قابل اجراست که اونرا برای هستفاده در ماشین آلات صنعتی و آلات و ادواتی که نیاز به پردازش کامپیوتری دارند، بسیار مناسب نموده هست.

لینوکس با همان فلسفه و هدفی که در سال 1991 ایجاد شد، وارد هزاره جدید شده هست.


Linux


توروالدز، هنوز یک انسان ساده هست.

بر خلاف بیل گیتر او یک میلیاردر نیست.

پس از اتمام مطالعاتش وی به آمریکا رفت تا با شرکت Transmeta همکاری نماید.

پس از انجام یک پروژه فوق سری که توروالدز یکی از اعضای فعال اون بود، ترانسمتا پردازنده Cruose را با بازار ارائه کرد.

توروالدز هنوز پرطرفدار ترین و مشهورترین برنامه نویس جهان هست.

در حال حاضر توروالدز ترانسمتا را ترک نموده و با حمایت شرکتهای بزرگ به طور تمام وقت بر روی لینوکس کار میکند.
پس از یک دهه : لینوکس امروز
امروزه لینوکس بیش از یک دهه توسعه را پشت سر گذاشته هست و یکی از سریع التوسعه ترین سیستم های عامل به شما میرود.

از چند کاربر انگشت شمار در سالهای 1991 و 1992، امروزه میلیونها کاربر از لینوکس هستفاده مینمايند.

IBM که وقتی بزرگترین دشمن جماعت Open Source به شمار می رفت، اکنون سرمایه گذاری عظیمی در زمینه توسعه راه حل های Open Source تحت لینوکس نموده هست.

در حال حاضر تعداد توسعه دهندگانی که برای افزایش قابلیتهای لینوکس تلاش مینمايند، روز به روز افزایش می یابد.


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

اکنون دیگر هستفاده از لینوکس در محیطها اداری، پذیرفتن ریسک نیست.

از نظر قابلیت اطمینان و پایداری و همچنین حفاظت در برابر انواع ویروسها چیزی بهتر از لینوکس وجود ندارد.

با تلاش شرکتهای بزرگی مانند ردهت هستفاده از لینوکس در محیطهای تجاری توسعه فراوان یافته و اکنون تعداد زیادی از شرکتهای کوچک و بزرگ در حال هستفاده از سرویس دهنده ها و ایستگاههای کاری مبتنی بر لینوکس هستند.
طلوع لینوکس روی میزی (Desktop Linux)
بزرگترین ایرادی که از لینوکس گرفته میشد چه بود؟ قبلا محیط تمام متنی لینوکس، بسیاری از کاربران را از هستفاده کردن از اون بر حذر میداشت.

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

محیط های گرافیکی که بر پایه X-Window وجود داشتند نیز جواب گوی امکاناتی که سیستم عاملهای گرافیکی مانند ویندوز برای کاربران خود ارائه میکردند، نبودند.

ولی از چند سال گذشته این وضعیت در حال تغییر بوده هست.

اکنون محیطهای گرافیکی حرفه ای مانند KDE و GNOME تصویر لینوکس را کامل کرده اند.

این محیطهای گرافیکی اکنون بسیار کاربر پسند و قدرتمند شده اند و وجود این سیستمهاست که امروزه کاربران عادی نیز میتوانند از لینوکس هستفاده نمايند.
لینوکس در جهان سوم
ورود لینوکس به کشورهای جهان سوم تحولی ایجاد نموده هست.

قبل از وجود لینوکس کشورهای جهان سومی در زمینه کامپیوتر در سطح بسیار پایین تری برنامه داشتند.

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

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

یکی از عمده ترین دلایل این کار پایین بودن درآمد سرانه در این کشورهاست.

هنگامی که مجموع درآمد سرانه سالیانه بیش از 200 تا 300 دلار نیست، هیچگاه امکان خرید یک سیستم عامل 100 دلاری وجود نخواهد داشت.
طلوع لینوکس و سایر تولیدات باز متن، این وضعیت را تغییر داده هست.

این امکان وجود دارد تا بتوان لینوکس را در کامپیوترهای قدیمی 486 و پنتیوم که اکنون در کشورهای توسعه یافته به تاریخ پیوسته اند ولی هنوز در کشورهای درحال توسعه از اونها هستفاده میشود، اجرا نمود.

همچنین هستفاده از نرم افزارهای رایگان بازمتن گسترش یافته تا جلوی هزینه های سرسام آور نرم افزاری این کشورها را بگیرد.

امروزه در کشورهای آسیایی، آفریقایی و آمریکای لاتین هستفاده از لینوکس و نرم افزارهای بازمتن گسترش فراوانی یافته و با هستفاده از خصلت ذاتی تغییر پذیری لینوکس، برای هستفاده از زبانهای ملی این کشورها سفارشی شده هست.

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

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

یکی از مهمترین هستفاده های امروزی لینوکس هستفاده از اون در پردازشهای سنگین موازی در ابرکامپیوترهاست.

امروزه اکثر ابرکامپیوترهایی که در جهان ساخته میشوند، از لینوکس به عنوان سیستم عامل خود هستفاده مینمايند.
داستان ادامه دارد
حرکت لینوکس از یک پروزه هکری تا جهانی شدن یک انقلاب شفرمود انگیز هست.

پروزه GNU که در اوایل دهه 1980 توسط ریچارد هستالمن شروع شد، توسعه نرم افزارهای بازمتن را رهبری نمود.

پروفسور اندرو تاننباوم و سیستم عامل MINIX او مطالعه سیستم عامل ها را از حالت تئوری به عملی تبدیل نمود و در نهایت همت و تلاش توروالدز منجر به تولد لینوکس شد.

امروزه لینوکس دیگر یک پروزه هکری به شما نمی رود بلکه یک حرکت جهانی هست که توسط میلیونها نفر برنامه نویس بازمتن و شرکتهای بزرگی مانند IBM حمایت میشود.

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

برخلاف سایر سیستم عاملهای تجاری، این نشان زیاد جدی نیست! توکس نشانگر وضعیت بدون نگرانی حرکت لینوکس هست.

این نشان تاریخچه بسیار جالبی دارد.

لینوکس در ابتدا فاقد هر گونه نشانی بود.

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

2:

راهنمای نصب ردهت ۹ بخش اول


انتخاب یک روش نصب
لینوکس ردهت روشهای بسیار متنوع و قابل انعطافی برای نصب سیستم عامل ارائه نموده هست.

البته توصیه میشود که لینوکس را از روی CD نصب نمایید.

ولی اگر شما CD های لینوکس ردهت را ندارید و یا کامپیوتر شما فاقد درایو CD-ROM است، میتوانید با هستفاده از روشهای دیگر، اقدام به نصب سیستم عامل کنید.

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

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

این نوع نصب از نصب جدید طولانی تر خواهد بود.

یک نصب جدید ابتدا تمام اطلاعات موجود را پاک کرده و عمل نصب را انجام میدهد.

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

هر نوع نصب غیر از نصب از روی CD نیاز به دیسکت بوت نصب لینوکس ردهت خواهد داشت.
-سرویس دهنده HTTP : به شما امکان نصب از یک آدرس وب را خواهد داد.
-سرویس دهنده FTP : به شما امکان نصب از یک سایت FTP را خواهد داد.
-سرویس دهنده NFS : میتوانید از روی دایرکتوری های به اشتراک گذاشته شده روی کامپیوترهای دیگر موجود در روی شبکه با هستفاده از سیستم فایل شبکه (Network File System) برای نصب هستفاده نمایید.
-دیسک سخت : اگر یک کپی از فایلهای نصب لینوکس ردهت را روی دیسک سخت خود داشته باشید میتوانید برای نصب از اون هستفاده کنید.

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

ممکن هست یک کامپیوتر قدیمی در کنار خود داشته باشید که مایل باشید لینوکس ردهت را روی اون نصب نمایید.

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

برای نصب نسخه PC لینوکس ردهت کامپیوتر شما باید چند چیز را داشته باشد:
-پردازنده سازگار با x86 : کامپیوتر شما به یک پردازنده سازگار با اینتل نیاز دارد.

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

شما میتوانید لینوکس ردهت را روی پردازنده‌های قدیمی هم اجرا نمایید.

من حتی پردازنده ۸۰۳۸۶ اینتل را در لیست سازگاری سخت افزارهای اون دیده ام ولی هرگز سعی نکرده ام لینوکس ردهت را روی کامپیوتری با اون مشخصات نصب نمایم! حداقل پردازنده ای که من برای نصب لینوکس ردهت توصیه میکنم، یک پردازنده ۳۳۳ مگاهرتزی هست.
-درایو فلاپی و یا CD-ROM : شما باید قادر باشید هنگام فرایند نصب کامپیوتر خود را با یک فلاپی دیسک و یا درایو CD-ROM بوت نمایید.

اگر درایو CD-ROM ندارید (در محیطهای شبکه و یا کامپیوترهای قدیمی) به یک ارتباط شبکه برای نصب از روی شبکه و یا کپی محتویات CD های نصب بر روی دیسک سخت سیستم خود دارید.
-دیسک سخت (Hard Disk) : شما به یک دیسک سخت و یا یک پارتیشن از دیسک سخت که حداقل ۵۰۰ مگابایت فضا داشته باشد نیاز دارید.

البته این فضا فقط برای حداقل نصب کافی خواهد بود.

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

نصب به صورت ایستگاه کاری به ۲۱۰۰ مگابایت و نصب بصورت کامل (تمام بسته های نرم افزاری موجود و کدهای منبع) به ۵ گیگابایت فضا نیاز دارد.
-حافظه (RAM) : شما حداقل به ۶۴ مگابایت رم برای نصب لینوکس ردهت نیاز خواهید داشت.

اگر مایل به هستفاده از محیطهای گرافیکی هستید ۱۲۸ مگابایت لازم خواهد بود.
-صفحه کلید و مانیتور : خوب معلوم هست! شما به یک مانیتور و صفحه کلید برای نصب نیاز دارید.

شما بعدا میتوانید لینوکس ردهت را از روی شبکه و با هستفاده از ترمینال پوسته و یا ترمینال X به خوبی اداره نمایید.
نسخه هایی از لینوکس ردهت برای نصب روی ایستگاههای کاری مبتنی بر پردازنده های آلفا (Alpha) و اسپارک (Sparc) وجود دارند.


Linuxنکته : لیست سخت افزار های سازگار با لینوکس ردهت را میتوانید در آدرس http://www.redhat.com/hardware ببینید.


اگر درایو CD-ROM کامپیوتر شما به یک درگاه PCMCIA متصل هست (در گاههای موجود روی کامپیوتر های کیفی) شما باید پشتیبانی از PCMCIA را در هنگام نصب فعال نمایید.

پشتیبانی از PCMCIA فقط برای کامپیوترهای مبتنی بر پردازنده های سازگار با اینتل موجود هست.




اگر کامپیوتر کیفی شما مجهز به یک درایو CD-ROM است، شما میتوانید بدون نیاز به انجام کار خاصی لینوکس ردهت را روی اون نصب نمایید.

در صورتی که کامپیوتر کیفی شما فاقد درایو CD-ROM است، شما باید لینوکس ردهت را از روی درایوی که به درگاه PCMCIA اون متصل هست نصب نمایید.
درگاههای PCMCIA به شما امکان اتصال دستگاههای مختلف به کامپیوتر کیفی با هستفاده از کارتهایی به اندازه کارت اعتباری میدهند.

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

شما میتوانید از درگاه PCMCIA کامپیوتر کیفی خود برای نصب لینوکس ردهت از انواع مختلفی از دستگاهها شامل :
-درایو CD-ROM
-کارت شبکه
استفاده نمایید.

در صورتی که مایلید بدانید کدامیک از دستگاههای PCMCIA در لینوکس پشتیبانی میشوند، فایل SUPPORTED.CARDS واقع در مسیر /usr/share/doc/kernel-pcmcia-cs را ببینید.

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

میتوانید از برنامه هایی مانند Partition Magic برای این کار هستفاده نمایید.

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

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

(
با هستفاده از برنامه Partition Magic)


شروع نصب
اگر فکر می کنید نوع نصب مورد نیاز خود را انتخاب کرده اید، میتوانید نصب را شروع کنید.

در بیشتر بخشها شما میتوانید با کلیک روی دگمه بازگشت (Back) انتخابهای قبلی خود را تغییر دهید.

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

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


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

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


دیسک CD-ROM نصب را داخل درایو برنامه دهید
اگر عمل نصب را از دیسک سخت و یا شبکه انجام میدهید، میتوانید بجای اون از دیسکت بوت هستفاده نمایید.
کامپیوتر خود را بوت کنید
هنگامی که صفحه خوشامد گویی لینوکس ردهت را مشاهده کردید به مرحله بعدی وارد شوید.


Linuxنکته: اگر شما صفحه خوشامد گویی را نمی بینید، ممکن هست درایو CD-ROM شما قابل بوت نباشد.

فعال کردن گزینه بوت از روی درایو CD-ROM و یا ایجاد دیسکت های بوت میتواند به شما برای ادامه نصب کمک کند.

برای فعال کردن گزینه بوت از روی CD-ROM به صورت مقابل عمل کنید : کامپیوتر خود را راه اندازی کرده و در صفحه نخستین پیامی برای ورود به صفحه نصب (setup) خواهید دید.

برای ورود به برنامه نصب بایوس کافی هست کلیدهای F1 یا F2 ویا DEL را فشار دهید.

در گزینه های موجود به دنبال موردی با عنوان Boot Options و یا Boot From و یا چیزی مشابه اون بگردید.

پس از اونکه اونرا پیدا کردید، اولویت نخست اونرا روی درایو CD-ROM تنظیم کنید.

تغییرات را ذخیره کرده و خارج شوید.




اگر نصب با موفقیت انجام شد شما میتوانید گزینه های بایوس را به حالت اول برگردانید.


اعلان بوت
در جلوی اعلان بوت کلید Enter را برای ورود به نصب گرافیکی، فشار دهید.


انتخاب انواع دیگر نصب
در بیشتر کامپیوتر ها شما میتوانید به راحتی نصب را بصورت گرافیکی اجرا کنید.

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

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

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


-text : شما میتوانید با تایپ text جلوی اعلان نصب بصورت متنی را آغاز نمایید.

از این گزینه هنگامی هستفاده نمایید که به نظر میرسد برنامه نصب نتوانسته کارت گرافیک شما را شناسایی نماید.

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

این گزینه برای کامپیوترهایی هست که کارت گرافیک اونها فقط این وضوح را پشتیبانی میکند.
-expert : در صورتی که حس میکنید برنامه نصب نمی تواند سخت افزارهای شما را به خوبی شناسایی کند از این گزینه هستفاده نمایید.

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

را شخصا انتخاب کنید.
-nofb : با این گزینه حالت frame buffer برای جلوگیری از برخی اشکالات در نمایش غیر فعال میشود.
-linuxdd : در صورتی که یک دیسک درایور لینوکس برای نصب دارید، از این گزینه هستفاده نمایید.


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

مثلا در صورتی که برنامه نصب اندازه دیسک سخت شما را تشخیص نمی دهد، میتوانید با مشخص کردن تعداد سیلندر، هد و سکتورها سایز اونرا تعیین کنید.

شما به صورت زیر میتوانید گزینه های خود را به هسته لینوکس ارجاع دهید : linux hd=720,32,64
در این مثال شما به هسته میگویید که دیسک سخت من دارای ۷۲۰ سیلندر، ۳۲ هد و ۶۴ سکتور هست.

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

در صورتی که مطمئن نیستید دیسکهای شما صحیح هستند یا نه، میتوانید با این گزینه اونها را بررسی نمایید.

البته این کار وقتبر خواهد بود.

در صورتی که به صحت اونها اطمینان دارید به سادگی گزینه Skip را انتخاب کنید تا برنامه نصب آغاز شود.
صفحه خوشامد گویی :
این صفحه آغاز فرایند نصب را به شما فراخوان میکند.

فقط کافی هست روی کلید Next کلیک نمایید.
انتخاب زبان :
پس از آغاز برنامه نصب، اولین سوالی که پرسیده میشود، انتخاب زبان برنامه نصب هست.

زبان مورد نظر خود را انتخاب نموده و روی گزینه Next کلیک نمایید.
انتخاب صفحه کلید :
نوع صفحه کلید خود را انتخاب نمایید.

مثلا صفحه کلید 105 کلید و با کلیدهای انگلیسی
ماوس :
نوع ماوسی که سیستمتان نصب شده هست را انتخاب نمایید.

انواع ماوسهای درگاه سریال و PS/2 و USB پشتیبانی میشوند.

در صورتی که ماوس شما دو کلید دارد، میتوانید با انتخاب گزینه Emulate 3 buttons، هنگام هستفاده با نگه داشتن کلید Shift، کلید سوم ماوس را شبیه سازی نمایید.

کلید سوم توسط برخی از برنامه های کاربردی لینوکس مورد نیاز میباشد.

3:

عالي بود! منتظر ادامه اون هم هستيم!

4:

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

انتخاب نوع نصب (Install Type) :
در این مرحله نوع نصب مورد نیاز برای خود را باید انتخاب نمایید.

در صورتی که لینوکس اکنون روی سیستم شما نصب شده و مایلید اونرا به نسخه جدید ارتقا دهید، کافی هست نصب نوع ارتقا (Upgrade) را انتخاب نمایید.


Linuxنکته : برای نصب به صورت ارتقا، لینوکس موجود شما حداقل باید هسته نسخه 2.0 را داشته باشد.

با نصب به صورت ارتقاع تمامی فایلهای پیکریندی شما بصورت filename.rpmsave ذخیره خواهد شد.

محل این فایلها در مسیر tmp/upgrade.log نوشته میشود.

برنامه ارتقا هسته جدید را نصب کرده و برنامه های نرم افزاری تغییر یافته را نیز نصب میکند.

فایلهای اطلاعات شما بدون تغییر باقی خواهند ماند.

این نصب وقت بیشتری نیاز دارد.


برای نصب بصورت جدید میتوانید یکی از گزینه های زیر را انتخاب نمایید .

این گزینه ها به "کلاس های نصب" (Installation Classes) نیز موسوم هستند:
-ایستگاه کاری (Workstation): کامپیوتر شما را بصورت خودکار پارتیشن بندی نموده و بسته های نرم افزاری لازم برای یک ایستگاه کاری را نصب میکند.

یکی از محیطهای گرافیکی GNOME و یا KDE نصب خواهند شد و برنامه X Window ساختارهای لازم برای اجرای اونها را فراهم میکند.

محیط GNOME محیط گرافیکی پیش گزیده لینوکس ردهت هست.

شما میتوانید پس نصب محیط KDE را نیز نصب نمایید.


Linuxهشدار :هر گونه پارتیشن لینوکس موجود روی دیسک سخت و فضای خالی دیسک سختتان به نصب Workstation و یا Personal Desktop اختصاص خواهند یافت.

در صورتی که روی کامپیوترتان پارتیشن های ویندوز موجود باشند، برنامه نصب آسیبی به اونها نخواهد رساند و پس از نصب شما قادر خواهید بود از لینوکس در کنار ویندوز هستفاده نمایید.


-سرویس دهنده (Server): این نصب بسته های مورد نیاز جهت یک کامپیوتر سرویس دهنده را نصب میکند.

(
مانند برنامه های سرویس دهنده وب، پست الکترونیک، فایل و...).

این نصب برنامه X Window را نصب نمیکند.

در صورتی که نیاز به محیط گرافیکی دارید باید اونرا بعدا نصب نمایید و یا کار کردن با خط فرمان را یاد بگیرید! این نصب تمام اطلاعات موجود در دیسک سخت را پاک کرده و تمام دیسکها را به لینوکس اختصاص میدهد.
Linuxهشدار : حواستان بود؟ اگر متوجه نشده اید : نصب بصورت سرویس دهنده تمام اطلاعات موجود روی دیسک سخت را پاک خواهد کرد! در صورتی که نیاز دارید پارتیشن های موجود ویندوز را حفظ نمایید، هنگام نصب پارتیشن بندی خودکار (Automatic Partitioning) را انتخاب نکنید و خودتان بصورت دستی فضاهای خالی را به لینوکس اختصاص دهید.


-کامپیوتر شخصی (Personal Desktop): این نصب همانند نصب نوع ایستگاه کاری هست با این تفاوت که برخی ابزارها که برای کامپیوترهای شخصی لازم نیستند را نصب نمیکند و در صورتی که لینوکس را روی یک کامپیوتر کیفی نصب میکنید، پشتیبانی از PCMCIA و مادون قرمز (IrDa) نیز فعال خواهد شد.
-نصب بصورت سفارشی (Custom): با انتخاب این نوع نصب شما امکان انتخاب تک تک بسته های نرم افزاری مورد نیاز و پارتیشن بندی دستی را خواهید داشت.


Linuxنکته : در صورتی که کاربری حرفه ای هستید، نصب نوع سفارشی را انتخاب نمایید.

با این گزینه دست شما بازتر خواهد بود و از اینکه بهتر میفهمید هنگام نصب چه میگذرد حال بهتری خواهید داشت!
انتخاب هستراتژی پارتیشن بندی (Partitioning) :
شما دو راه برای انتخاب نوع پارتیشن بندی دیسک سخت خود پیش رو دارید:
-پارتیشن بندی خودکار : برنامه نصب بصورت خودکار عمل پارتیشن بندی را برای شما انجام خواهد داد.

با این انتخاب تمام پارتیشن های لینوکس موجود روی دیسک سخت پاک شده و فضای خالی ایجاد شده برای پارتیشن بندی مورد هستفاده برنامه خواهد گرفت.
-پارتیشن بندی دستی توسط لوازم Disk Druid : با انتخاب این گزینه لوازم Disk Druid برای انجام عمل پارتیشن بندی اجرا خواهد شد.


پس از انتخاب گزینه مناسب، جهت ادامه روی کلید Next کلیک کنید.
-انجام پارتیشن بندی :
اگر پارتیشن بندی خودکار را انتخاب نموده اید، امکان انتخاب گزینه های زیر موجود هست:


-پاک کردن تمام پارتیشن های لینوکس موجود (Remove all Linux partitions on this system) : با انتخاب این گزینه پارتیشن های ویندوز و پارتیشن های غیر لینوکسی روی سیستم باقی خواهند ماند.
-پاک کردن تمام پارتیشن های موجود : تمام پارتیشن ها و اطلاعات موجود از میان خواهند رفت.
-حفظ تمام پارتیشن ها و هستفاده از فضای خالی موجود (Keep all partitions and use existing free space) : این گزینه به شرطی کار خواهد کرد که شما فضای خالی کافی پارتیشن بندی نشده روی دیسک سخت خود داشته باشید.
در صورتی که شما دارای چند دیسک سخت روی سیستمتان هستید، میتوانید دیسکی را که مایل به نصب لینوکس ردهت روی اون هستید، انتخاب نمایید.

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

تصویر ۱
Linux
تصویر ۱ پارتیشن بندی هنگام نصب لینوکس ردهت

پس از بررسی پارتیشن بندی انجام شده، شما میتوانید پارتیشنهایی را که انتخاب میکنید، تغییر دهید.

پارتیشن بندی خودکار حداقل یک پارتیشن ریشه (/) که تمام برنامه ها را در برخواهد گرفت و یک پارتیشن swap ایجاد خواهد کرد.

اندازه پارتیشن swap معمولا دو برابر میزان حافظه فیزیکی دستگاه میباشد.

مثلا اگر شما 128 مگابایت RAM دارید، اندازه این پارتیشن 256 مگابایت خواهد بود.
برای اضافه نمودن دستی پارتیشن‌ها، توصیه می‌شود یک پارتیشن ریشه، یک پارتیشن boot به حجم حدود ۸۰ مگابایت و یک پارتیشن home به حجم دلخواه ایجاد نمایید.


Linuxنکته :اکیدا توصیه میشود یک پارتیشن به نام home/ ایجاد نمایید.

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

5:

انتخاب برنامه بوت نماينده (Boot Loader) :
در این مرحله میتوانید یکی از برنامه های GRUB و یا LILO را انتخاب نمایید.

در صورتی که برنامه بوت نماينده قبلا نصب شده و یا مایلید لینوکس ردهت را از روی دیسکت بوت نمایید، میتوانید از نصب برنامه بوت نماينده پرهیز کنید.

همچنین میتوانید محل هستبرنامه برنامه بوت نماينده را معین کنید :
-بوت رکورد اصلی (Master Boot Record) : نصب برنامه بوت نماينده در این مکان توصیه میشود.

این کار باعث میشود تا گراب و لیلو فرایند بوت تمام سیستم عامل های نصب شده را بدست گیرند.
-سکتور اول پارتیشن بوت (First Sector of Boot Partition) : در صورتی که برنامه بوت دیگری روی سیستم شما فعال هست، میتوانید برنامه نصب را وادار به نصب شدن در سکتور نخست پارتیشن های لینوکس خود نمایید.

با این کار برنامه بوت نماينده برای بوت لینوکس ردهت به گراب یا لیلو مراجعه خواهد کرد.


Linuxنکته : درصورتی که برنامه بوت نماينده گراب را انتخاب کردید که پیش گزیده نیز میباشد، میتوانید کلمه عبوری به اون اضافه نمایید.

با این کار میتوانید از آسیب رسیدن به سیستم با ارسال گزینه های خطرناک به هسته سیستم عامل بدون درخواست کلمه عبور جلوگیری کنید.

برنامه های بوت نماينده گراب و لیلو در این فصل شرح داده خواهند شد.


شما میتوانید پارامترهایی را به هسته سیستم عامل اضافه نمایید.

(
این در صورتی نیاز خواهد بود که سخت افزار شما به طور صحیح شناسایی نشود).

برای مثال در صورتی که یک دستگاه CD-Writer نوع IDE دارید و مایلید در حالت شبیه سازی اسکازی کار کند، میتوانید با ارسال پارامترهایی درایو را مجبور به این کار نمایید.

شما میتوانید پارتیشن پیش گزیده ای که سیستم از روی اون بوت میشود را انتخاب نمایید.

هچنین امکان تغییر برچسب (label) اون نیز وجود دارد.


پیکربندی شبکه (Network Configuration) :
در این قسمت از شما درخواست میشود تا شبکه خود را پیکربندی نمایید.

این تنظیمات فقط برای شبکه محلی میباشد.

در صورتی که از شبکه بندی تلفنی (Dialup) استفاده میکنید، میتوانید با کلیک روی Next بسادگی از این مرحله عبور نمایید.

هچنین در صورتی که کامپیوتر شما به شبکه متصل نیست، از این مرحله عبور نمایید.
آدرسهای شبکه به دو روش به سیستم شما اختصاص داده میشود : بصورت ثابت (Static) که شما اونرا تایپ میکنید و یا با هستفاده از سرویس دهنده DHCP که هنگام بوت آدرس کامپیوتر شما را تعیین میکند.

برای کسب اطلاعات سرویس دهنده DHCP و یا آدرس IP اختصاصی و ثابت کامپیوتر خود و سایر اطلاعات مورد نیاز شبکه به مدیر شبکه خود مراجعه نمایید.

همچنین میتوانید انتخاب نمایید که شبکه شما در هنگام بوت فعال شود یا نه (اگر از شبکه محلی هستفاده میکنید، معمولا مایلید این کار صورت گیرد).
در صورتی که ورود آدرس ثابت را انتخاب نموده اید، باید گزینه manually را فعال نموده و اطلاعات زیر را وارد نمایید.

تصویر ۲.

Linux
تصویر ۲ پیکربندی شبکه هنگام نصب لینوکس ردهت

-آدرس IP : این آدرس از چهار بخش عددی که توسط نقطه از هم جدا شده اند تشکیل شده هست.

این شماره در حقیقت نشانی کامپیوتر شما در شبکه هست.

برای اطلاعات بیشتر در مورد آدرسهای IP میتوانید به فصل 15 مراجعه نمایید.

مثالی از یک آدرس IP خصوصی 10.0.0.12 است.
-Netmask : برای تعیین اینکه کدام قسمت آدرس IP شماره شبکه و کدام قسمت اون آدرس کامپیوتر میزبان هست.

یک مثال برای یک شبکه کلاس A شماره 255.0.0.0 است.

لینوکس ردهت این شماره را برای شما حدس خواهد زد.
-Network : شماره شبکه را مشخص میکند.

برای مثال اگر شما آدرس IP شماره 10.0.0.12 را روی یک شبکه کلاس آ (255.0.0.0) داشته باشید، شماره شبکه 10 خواهد بود (همچنین 10.0.0.0).
-Broadcast : یک شماره IP است که برای انتشار اطلاعات روی شبکه بکار میرود.

برای یک شبکه کلاس آ با شماره شبکه 10 شماره انتشار 10.255.255.255 خواهد بود.
-Hostname : این نامی هست که کامپیوتر شما در یک حوزه (Domain) توسط اون شناخته میشود.

برای مثال اگر کامپیوتر شما memphis نامیده شود و در حوزه truedata.com برنامه داشته باشد، نام میزبان (Hostname) کامل شما memphis.truedata.com خواهد بود.
-Gateway : یک آدرس IP که به عنوان دروازه ای به شبکه های خارج از شبکه محلی شما عمل میکند.

معمولا یک میزبان یا مسیریاب (Router) میباشد که بسته ها را بین شبکه محلی شما و اینترنت مسیریابی میکند.
-Primary DNS : آدرس IP کامپیوتری هست که عمل ترجمه نام های کامپیوتر به آدرسهای IP را انجام میدهد.

این کامپیوتر سرویس دهنده DNS نام دارد.

شما ممکن هست دارای سرویس دهنده های دوم و سوم DNS باشید که در صورت موجود نبودن هریک دیگری عهده دار کار ترجمه باشد.
انتخاب پیکربندی دیوار آتش (Firewall)
در این مرحله از نصب باید دیوار آتش سیستم خود را پیکربندی نمایید.

استفاده از یک دیوار آتش برای حفظ امنیت کامپیوترتان الزامی و بسیار مهم هست.

در صورتی که شما به اینترنت و یا یک شبکه عمومی دیگر متصل میشوید، دیوار آتش میتواند راههای نفوذ به سیستم لینوکس شما را محدود نماید.

برای پیکر بندی دیوار آتش، انتخابهای زیر را در اختیار دارید:
-امنیت بالا (High) : این گزینه را در صورتی انتخاب کنید که از سیستم لینوکس خود برای اتصال به اینترنت برای مرور وب و...

استفاده میکنید.

در صورتی که میخواهید از سیستمتان به عنوان سرویس دهنده در شبکه هستفاده نمایید از این گزینه هستفاده نکنید.

با انتخاب این گزینه، تنها برخی اتصالات پذیرفته میشوند.

برای اتصال به اینترنت و یک شبکه بندی ساده فقط اتصالات DNS و جواب های DHCP پذیرفته میشوند و بقیه اتصالات در دیوار آتش حذف خواهند شد.
-امنیت متوسط (Medium) : این سطح امنیت را در صورتی انتخاب نمایید که مایلید دستیابی به برخی از شماره پورت های TCP/IP را ببندید.

(
بطور هستاندارد شماره پورتهای زیر 1023).

این انتخاب دستیابی به پورتهای سرویس دهنده NFS، سرویس گیرنده های راه دور X و سرویس دهنده قلم X را خواهد بست.
-بدون دیوار آتش (No Firewall) : این گزینه را در صورتی انتخاب نمایید که به یک شبکه عمومی متصل نیستید و قصد ندارید در شبکه محلی، هیچ یک از درخواستهای ورودی به سیستمتان را حذف نمایید.

البته شما همچنان میتوانید فقط سرویسهایی را راه اندازی نمایید که میخواهید در سطح شبکه ارائه نمایید و سرویس های دیگر را از کار بیاندازید.
در صورتی که مایلید دسترسی به برخی سرویسهای خاص را فراهم نمایید، میتوانید روی دگمه سفارشی کردن (Customize) کلیک کنید و پذیرش درخواستهای ورودی برای سرویسهای DHCP، SSH، Telnet، WWW، Mail و FTP را فراهم نمایید.

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

فایل etc/services به شما نشان میدهد که چه سرویسهایی به چه پورتهایی مرتبط هستند.

تصویر ۳.

Linux
تصویر ۳ انتخاب سطح امنیتی هنگام نصب لینوکس ردهت

6:

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

انتخاب زبانهای قابل پشتیبانی (Language Support)
در این مرحله از نصب زبانی که در ابتدای نصب انتخاب کردید، انتخاب شده هست.

در صورتی که به زبانهای دیگری نیاز دارید، میتوانید با کلیک کردن روی گزینه کنار اونها، اونها را انتخاب کنید.
انتخاب موقعیت وقتی (Time Zone)
موقعیت وقتی کشور خود را میتوانید از لیست پایین صفحه انتخاب نمایید.

همچنین با کلیک کردن روی نقاط موجود روی صفحه میتوانید موقعیت وقتی خود را انتخاب نمایید.

از صفحه UTC Offset شما میتوانید موقعیت وقتی خود را به توجه به فاصله وقتی اون از گرینویچ (GMT) تنظیم نمایید.
تنظیم کلمه عبور ریشه (Set root password)
در این مرحله شما باید یک رمز عبور جهت کاربر ریشه (root) تعیین نمایید .رمز عبور ریشه امکان کنترل کامل سیستم لینوکس ردهت را به شما میدهد.

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

رمز عبور ریشه را تایپ کنید و در باکس زیرین اون، تکرار اونرا تایپ کنید.

دقت داشته باشید کلمه عبور ریشه را بخاطر داشته و اونرا محرمانه نگهدارید!
فعال سازی احراز هویت (Enable Authentication)
در بیشتر شرایط، شما کلمات عبور سایه (shadow) و MD5 را که بصورت پیش گزیده فعال هستند، انتخاب میکنید.

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


Linuxنکته : MD5 الگوریتم رمزنگاری کلمات عبور در لینوکس و سیستم های مبتنی بر یونیکس میباشد.

این الگوریتم جانشین الگوریتم کریپت (crypt) که در سیستمهای نخستین مبتنی بر یونیکس هستفاده میشد، شده هست.

هنگامی که گزینه MD5 فعال میشود، امکان انتخاب کلمات عبور بلندتر توسط کاربران ایجاد میشود که عمل شکستن اونها دشوارتر هست.


در صورتی که شما دارای شبکه محلی با پشتیبانی از انواع مختلف احراز هویت در سطح شبکه (Network-Wide Authentication) هستید، امکان هستفاده از قابلیت های زیر را دارا هستید:
-NIS فعال : در صورتی که شبکه شما برای هستفاده از سیستم اطلاعات شبکه (Network Information System) پیکربندی شده هست، این دگمه را انتخاب نموده و نام حوزه NIS و محل سرویس دهنده را وارد نمایید.

بجای انتخاب سرویس دهنده NIS شما میتوانید روی کلید برای پیدا کردن خودکار اون در سطح شبکه کلیک نمایید.
-LDAP فعال : در صورتی که ساوقت شما اطلاعات کاربران خود را اخذ کرده هست، میتوانید روی دگمه اون برای جستجوی اطلاعات احراز هویت روی یک سرویس دهنده LDAP کلیک نمایید.

شما میتوانید نام سرویس دهنده LDAP را برای پیدا کردن اطلاعات مورد نیاز سیستمتان وارد کنید.
-Kerberos 5 فعال : با کلیک کردن روی این دگمه، سرویس های احراز هویت در سطح شبکه ارائه شده توسط کربروس فعال میشوند.

پس از فعال سازی کربروس، میتوانید اطلاعات مورد نیاز درباره یک رئالم (Realm) کربروس (گروهی از سرویس دهنده ها و سرویس گیرنده های کربروس)، KDC (یک کامپیوتر که بلیطهای کربروس را صادر میکند) و سرویس دهنده مدیریت (Admin Server) را وارد نمایید.

این کامپیوتر دیمن kadmind را اجرا میکند.
-SMB : روی این گزینه کلیک کنید تا از سرویس دهنده Samba برای اشتراک فایل و چاپگر با سیستم های ویندوز هستفاده نمایید.

در صورتی که از احراز هویت SMB استفاده نمایید، میتوانید نام سرویس دهنده Samba موجود در شبکه محلی و نام گروه کاری که مایلید کامپیوترتان به اون تعلق داشته باشد را وارد نمایید.
انتخاب بسته ها (Select Packages)
در این مرحله خلاصه ای از بسته های نرم افزاری که نصب خواهند شد به شما نشان داده میشود.

این نرم افزارها با توجه به نوع نصبی که شما انتخاب نموده اید، تفاوت دارند.

میتوانید لیست پیش گزیده را قبول کرده و یا روی گزینه Customize کلیک کنید تا لیست کامل نرم افزارها به شما نشان داده شود.

در صورتی که نیاز به نصب نرم افزارهای خاصی دارید که در هیچیک از حالتها نصب نمی شوند، این گزینه را انتخاب نمایید.

تصویر ۴.


Linuxنکته : در صورتی که فضای کافی دیسک سخت در اختیار دارید و میخواهید تمام ابزارها و نقاط لینوکس را امتحان کنید، با انتخاب نصب بصورت سفارشی (Customize) و انتخاب گزینه همه چیز (Everything) را در پایین صفحه انتخاب نمایید.

در صورتی که مطالب این کتاب را دنبال میکنید نیاز به نصب تمام این نرم افزارها وجود ندارد.


همچنین از انتخاب این گزینه در کامپیوترهای کاری و اصلی خودداری کنید.

زیرا برخی از برنامه های سرویس دهنده دارای ضعف های امنیتی هستند و شما بدون اینکه واقعا به اونها نیازی داشته باشید، امنیت سیستم خود را به خطر انداخته اید.

نصب تمام اجزا حدود ۳ گیگابایت فضا مصرف خواهد کرد.


Linuxنکته : گزینه Select Individual packages به شما امکان انتخاب بسته ها بصورت تک تک را میدهد.

این گزینه فقط برای افراد حرفه ای توصیه میشود.

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

روی Next کلیک کنید.

در این مرحله سیستم فایل فرمت و آماده شده و بسته های نرم افزاری آغاز به کپی شدن مینمايند.

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

این قسمت بسته به سرعت پردازنده و درایو CD-ROM،بین ۲۰-۴۰ دقیقه طول خواهد کشید.


ایجاد دیسک بوت (Boot Disk)
با هستفاده از این دیسکت میتوانید در موارد اضطراری سیستم خود را بوت کنید.

کافی هست یک دیسک داخل درایو برنامه داده و روی Next کلیک کنید.

در صورتی که به این دیسک نیاز ندارید، گزینه No را انتخاب کرده و روی Next کلیک نمایید.
انتخاب کارت گرافیکی
احتمالا لینوکس کارت گرافیک شما را شناسایی نموده هست.

در صورتی که اینار به درستی صورت نگرفته، میتوانید از لیست نوع کارت گرافیکی و میزان حافظه اونرا انتخاب نمایید.


تنظیم مانیتور
در این مرحله کار خاصی لازم نیست اجرا کنید.

لینوکس بطور خودار مدل و فرکانس مانیتور شما را تشخیص خواهد داد.

کافی هست بدون دستکاری هیچ چیز، روی Next کلیک نمایید.


انتخاب رنگ و وضوح صفحه نمایش (Color & Resolution)
با توجه به نوع سخت افزاری که دارید، میتوانید تعداد رنگها و وضوح صفحه نمایش خود را در لیست های ارائه شده مشاهده نموده و مقادیر دلخواه خود را انتخاب کنید.

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

با یک مانیتور ۱۴ یا ۱۵ اینچ، بهترین انتخاب وضوح ۸۰۰ در۶۰۰ پیکسل و رنگ ۱۶ بیت خواهد بود.

وضوح مناسب برای مانیتورهای ۱۷ اینچ، ۱۰۲۴ در ۷۶۸ پیکسل هست.


در صورتی که مایلید نتیجه انتخاب خود را ببینید، روی دگمه Test Setting کلیک نمایید.


در صورتی که هر دو محیط GNOME و KDE را نصب کرده اید، در این مرحله میتوانید از میان اونها، یکی را بعنوان پیش گزیده انتخاب کنید و نحوه ورود به سیستم (login) هم بصورت متنی (سطح اجرایی ۳) و گرافیکی (سطح اجرایی ۵) قابل تنظیم خواهد بود.

جهت ادامه روی Next کلیک کنید.
پایان نصب
در این مرحله برنامه نصب پایان یافتن نصب لینوکس ردهت را به شما تبریک میگوید.

کافی هست روی دگمه Exit کلیک کنید.

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

اگر یکی از برنامه های لیلو یا گراب را نصب کرده باشید، یک صفحه گرافیکی ظاهر شده و از شما میخواهد سیستم عامل مورد نظر خود را انتخاب نـمـایید.

بـوسیـله کـلیدهای بالا و پایین میتوانید این کار را اجرا کنید.

پس از انتخاب کلید Enter را فشار دهید، تصویر ۵.
Linux
تصویر ۵ صفحه ابتدایی بوت لینوکس ردهت


در صورتی که تا کنون با لینوکس کار نکرده باشید، نحوه بوت شدن اون ممکن هست برایتان کمی عجیب به نظر برسد.

لینوکس در هنگام بوت شدن، کاربر را از اونچه میگذرد کاملا آگاه میسازد.

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

در ویندوز شما از این امکان محروم هستید.

در صورتی که در لینوکس کامپیوتر در مرحله ای از کار متوقف شود، کاملا میتوانید بفهمید که اشکال کار در کجا بوده هست.

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

پس از چند ثانیه فرایند بوت به اتمام رسیده و نوبت به ورود به سیستم میرسد.


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

برای اونکه بتوانید از سیستم لینوکس ردهت خود بصورت روزمره هستفاده کنید،حتما باید یک حساب کاربری عادی برای اون ایجاد کنید.

اکنون میتوانید این کار را اجرا کنید.

کافی هست در باکسهای مربوطه نام واقعی کاربر، نام کاربری و کلمه عبور را تایپ کنید تا از این پس بتوانید با این کاربر وارد سیستم شوید.

در صورتی که چند نفر از کامپیوتر شما هستفاده مینمايند، برای هر یک میتوانید یک حساب کاربری ایجاد کنید.


برای اضافه کردن کاربران بیشتر، پس از ورود به سیستم میتوانید از لوازم Users and Groups برای این کار هستفاده کنید.


اگر پس از نصب لینوکس ردهت تصمیم به حذف یا اضافه کردن سخت افزاری گرفتید، ابزاری به نام کودزو (kudzu) وجود دارد که هنگام بوت سیستم به شما اجازه پیکربندی سخت افزار جدید را میدهد.


Linuxنکته : در صورتی که سخت افزاری را حذف یا اضافه کنید، هنگام بوت، کودزور بطور خودکار اونرا تشخیص میدهد و لوازم پیکربندی را اجرا میکند.

7:

تعريف DNS در لينوكس
در Linux آدرس مربوط به DNS ها در فايلي به نام etc/resolv.conf/ نگهداري مي شود.

شما مي توانيد با هستفاده از دستور nameserver، DNS هاي مورد نظر خود را به ترتيب در اين فايل وارد ˜نيد :

# Contents of /etc/resolv.conf
domain radcom.ir
nameserver 192.168.0.1
nameserver 192.168.0.2

8:

وقتبندي اجراي برنامه ها در Linux

وقتبند انجام ˜ارها در Unix، پروسسي هست به نام cron.

با هستفاده از cron شما مي توانيد تعيين ˜نيد ˜ه ي˜ برنامه در ي˜ وقت خاص يا در ي˜ تاريخ خاص و يا بطور تناوبي اجرا شود.

اين پروسس هر ي˜ دقيقه بيدار مي شود و به سراغ فهرست برنامه هايي مي رود ˜ه زمابندي شده اند و برنامه هايي را ˜ه وقت اجراي اونها فرا رسيده هست اجرا مي ˜ند.

cron به فايلي نياز دارد ˜ه در اون ليست برنامه هايي ˜ه بايد اجرا شوند و نحوه وقتبندي اونها در اين فايل ذ˜ر مي شود.

اين فايل cron table نام دارد.

هر سطر از cron table از شش بخش تش˜يل شده هست.

اين بخشها عبارتند از :

1) دقيقه : بين 0 تا 59
2) ساعت : بين 0 تا 23
3) روز : بين 1 تا 31
4) ماه : بين 1 تا 12
5) روز هفته : بين 0 تا 6 (0 ي˜شنبه را مشخص مي ˜ند)
6) نام دستوري ˜ه بايد اجرا شود

مثال 1: فرض ˜نيد ˜ه مي خواهيم برنامه backup.sh ساعت 6:00pm هر روز اجرا شود.

براي اين˜ار لازم هست تا سطري بصورت زير در cron table برنامه بگيرد :

0 18 * * * /usr/local/backup.sh

* هر لحظه از وقت را نشان مي دهد.

مثال 2: فرض ˜نيد ˜ه مي خواهيم backup.sh ساعت 2:30am روز اول هر ماه اجرا شود :

30 2 1 * * /usr/local/backup.sh

مثال 3 : فرض ˜نيد ˜ه مي خواهيم backup.sh ساعت 10:00am روزهاي دوشنبه تا جمعه هميشه اجرا شود:

0 10 * * 1-5 /usr/local/backup.sh

- ي˜ دوره را مشخص مي ˜ند.

خروجي cron به پست ال˜تروني˜ي صاحب برنامه وقتبندي شده فرستاده مي شود.

براي دسترسي به فايل cron table از دستور crontab بصورت زير هستفاده ˜نيد :

Crontab –l

برنامه هاي وقتبندي شده را نشان مي دهد

Crontab –e

اجازه مي دهد تا به فهرست برنامه هاي وقتبندي شده را ايشانرايش ˜نيد.

Crontab –r

تمام برنامه هاي وقتبندي شده را از فهرست اجرا حذف مي ˜ند.


9:

اجازه دسترسي به فايلها در سيستم عامل Linux


سه نوع اجازه دسترسي به فايها در سيستم عامل UNIX وجود دارد: read ، write و execute.

اجازه دسترسي به فايل توسط user ، group يا others تعيين مي شود.

نحوه دسترسي به فايل توسط 10 ˜ارا˜تر بصورت زير نمايش داده مي شود :

1 1 2 3 4 5 6 7 8 9 10
File User Permissions Group Permissions Other Permissions
Type Read Write Execute Read Write Execute Read Write Execute

d r w e r w e r w e

حرف اول نوع را مشخص مي ˜ند ˜ه – براي فايلهاي عادي ، d براي شاخه و l براي لين˜ هست.
حروف 2 تا 4 چگونگي دسترسي صاحب فايل را مشخص مي ˜نند.
حروف 5 تا 7 چگونگي دسترسي گروهي را ˜ه فايل به اون متعلق هست تعيين مي ˜نند.
حروف 8 تا 10 چگونگي دسترسي سايرين را به فايل تعيين مي ˜نند.

بوسيله دستور ls –l مي توانيد اجازه دسترسي به فايلهاي شاخه موجود را مشاهده ˜نيد.

بعنوان مثال :

drwxrwxrwx 4 owner group 122 Dec 12 18:02 Projects

اين دستور به ترتيب اجازه دسترسي به فايل، تعداد لين˜هاي فايل ، نام صاحب فايل ، نام گروه فايل ، اندازه برحسب بايت، تاريخ آخرين تغيير فايل و نام فايل را نشان مي دهد.

با هستفاده از دستور chmod مي توانيد اجازه دسترسي به فايل را تغيير دهيد.

˜افيست عدد دودايشاني معادل drwxrwxrwx را بدست آوريد.

بعنوان مثال :

chmod 764 myfile

اجازه دسترسي ˜امل به صاحب فايل، مطالعهو نوشتن به گروه مرتبط و فقط مطالعهبه بقيه مي دهد.


10:

پروسسهاي موجود در سيستم
با هستفاده از دستور top مي توانيد پروسسهاي موجود در سيستم را ببينيد.

همينطور مي توانيد مشاهده ˜نيد ˜ه هر پروسس چقدر حافظه و CPU مصرف مي ˜ند

11:

راهنمای نصب ردهت ۹ بخش چهارم

استفاده از Disk Druid برای پارتیشن بندی هنگام نصب
هنگام نصب سفارشی، به شما اجازه پارتیشن بندی دستی دیسک سخت داده میشود.

ردهت هستفاده از لوازم Disk Druid را توصیه میکند.

تصویر ۶ این لوازم را نشان میدهد.


پنجره لوازم Disk Druid به دو بخش تقسیم شده هست.

قسمت بالا اطلاعات عمومی در رابطه به هر دیسک سخت موجود و پارتیشن های اولیه (Primary) اون میدهد.

قسمت پایین، جزئیات هر پارتیشن را مشخص میکند.

برای هر پارتیشن دیسک سخت شما ستونهای زیر را مشاهده میکنید:
-Device : این ستون نام پارتیشن در دایرکتوری dev میباشد.

شیوه نامگذاری به این صورت هست که هر پارتیشن دیسک از دوحرف تشکیل شده و از hd برای دیسکهای سخت IDE، از sd برای دیسکهای سخت اسکازی، از ed برای دیسکهای سخت ESDI و از xd برای دیسکهای سخت XT استفاده میشود.

حرف سوم نشان دهنده شماره دیسک سخت هست.

مثلا اگر شما دارای دو دیسک سخت باشید، دیسک سخت اولی a و دومی b نام خواهد گرفت.

بخش عددی شماره پارتیشن دیسک مورد نظر هست.
-Start/End : نشان دهنده سیلندر های آغازین و پایانی پارتیشن روی دیسک سخت میباشد.
-Size : نشان دهنده میزان ظرفیت پارتیشن به مگابایت میباشد.
-Type : نوع سیستم فایل هر پارتیشن را مشخص میکند.

موارد عمومی عبارتند از لینوکس (ext3 و یا ext2) ، ویندوز 95 (FAT) ، سیستم VFAT (سیستم FAT32) و سیستم فایل swap لینوکس.

Linux
تصویر ۶ لوازم Disk Druid برای پارتیشن بندی هنگام نصب لینوکس ردهت


Linuxنکته: تمام این انواع توسط لینوکس پشتیبانی میشوند.

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

برای مشاهده اینکه چه سیستم فایل هایی در هسته تعریف شده اند دستور cat /proc/filesystems را تایپ نمایید.

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

اکثر نیازها توسط ext3، vfat، swap و iso9660 برطرف میشوند.


-Mount Point : دایرکتوری هست که پارتیشن به سیستم فایل لینوکس متصل میشود.

شما باید پارتیشن ریشه را به یک سیستم فایل لینوکسی اختصاص دهید تا امکان ادامه فرایند فراهم شود.
-Format : نشانگر این امر هست که پروسه نصب پارتیشن مربوطه را فرمت خواهد کرد یا خیر.
همانطور که فرموده شد در بخش بالای صفحه، دیسک های سخت متصل شده به کامپیوترتان را خواهید دید.

ابتدا نام درایو نمایش داده میشود.

بخش ژئومتری (Geom) بترتیب نشانگر تعداد سیلندر،هد و سکتورهای دیسک سخت هست.


-دلایل پارتیشن بندی: همانطور که در بالا فرموده شد، دلایل ریادی ممکن هست وجود داشته باشد تا شما دیسک سخت خود را به بخشهای جداگانه تقسیم نمایید.

برخی از اونها عبارتند از :
-مایل به نصب سیستم عامل های دیگری هستید؟ در صورتی که نیاز دارید تا ویندوز را همراه با لینوکس روی سیستمتان داشته باشید، حداقل به یک پارتیشن ویندوز (vfat) ، یک پارتیشن swap و یک پارتیشن ext3 نیاز خواهید داشت.
-سیستم شما سیستمی چند کاربره هست؟ اگر فقط خودتان از سیستمتان هستفاده میکنید، ممکن هست به چند پارتیشن نیاز نداشته باشید.

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

همچنین امکان هستفاده هر کاربر از دایرکتوری اختصاصی خودش فراهم میاید.
-سیستم شما چند دیسک سخت دارد؟ حداقل به یک پارتیشن به ازای هر دیسک سخت نیاز دارید.

اگر سیستم شما دو دیسک سخت دارد، میتوانید یکی را به home و یکی را به دایرکتوری ریشه (/) اختصاص دهید.
پاک کردن، اضافه کردن و ویرایش پارتیشن ها
قبل از اینکه بتوانید پارتیشنی اضافه نمایید، باید مقداری فضای خالی روی دیسک سخت خود داشته باشید.

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




Linuxهشدار : اطمینان حاصل کنید از تمام اطلاعات خود قبل از عمل پاک کردن پارتیشن، نسخه پشتیبانی تهیه کرده باشید.

هنگامی که یک پارتیشن را پاک میکنید، با تمام اطلاعات اون خداحافظی میکنید!


Linuxنکته: در صورتی که چندین پارتیشن ایجاد می کنید، اطمینان حاصل کنید در هر پارتیشن فضای کافی جهت اتمام فرایند نصب وجود داشته باشد.


جهت پاک کردن یک پارتیشن در Disk Druid به صورت زیر عمل کنید:
۱.

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

(
با کلیک یا با هستفاده از کلیدهای مکان نما).
۲.برای پاک کردن پارتیشن روی Delete کلیک کنید.
۳.اگر اشتباهی مرتکب شدید، روی Reset کلیک کنید تا همه چیز به حال اول قبل از تغییرات بازگردد.
برای اضافه نمودن یک پارتیشن، عملیات زیر را اجرا کنید:
۱.روی New کلیک کنید.

پنجره ای باز خواهد شد که در اون میتوانید مشخصات پارتیشن جدید را وارد نمایید.
۲.نام نقطه اتصال (Mount Point) که دایرکتوری هست که پارتیشن به سیستم فایل لینوکس متصل میشود، را تایپ نمایید.

شما حداقل باید یک پارتیشن ریشه (/) داشته باشید.
۳.

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

امکان انتخاب پارتیشن های لینوکس(ext2 و ext3) ، پارتیشن های RAID ، پارتیشنswap و پارتیشن های ویندوز وجود دارد.
۴.

در قسمت Size اندازه پارتیشن را وارد نمایید.

در صورتی که میخواهید این پارتیشن تمام فضای موجود را پر کند، عدد ۱ را وارد نمایید.
۵.

در صورتی که بیش از یک دیسک سخت دارید، دیسکی را که میخواهید اونرا پارتیشن بندی نمایید، از قسمت Allowable Drives انتخاب کنید.
۶.

میتوانید گزینه های زیر را انتخاب نمایید:
-اندازه ثابت (Fixed Size) : این گزینه را در صورتی انتخاب نمایید که میخواهید فقط از اندازه ای که در قسمت Size وارد نموده اید هستفاده شود.
-Fill All Space up to : در صورتی که میخواهید از تمام فضای باقیمانده تا یک مگابایت خاص هستفاده نمایید این قسمت را پر کنید.

(
مثلا هنگامی که میخواهید یک پارتیشن vfat با اندازه۲.۴۸ مگابایت ایجاد نمایید که حداکثر مقدار قابل قبول برای لوازم Disk Druid است، میتوانید از این گزینه هستفاده نمایید.)
-Fill maximum allowable size: در صورتی که میخواهید این پارتیشن تمام فضای باقیمانده موجود را اشغال نماید، از این گزینه هستفاده کنید.
۸.

در صورتی که میخواهید سیستم خود را با این پارتیشن بوت کنید، میتوانید از گزینه Force to Be a Primary Partition استفاده کنید.

برای چک کردن سکتورهای خراب روی دیسک گزینه Check for bad blocks را میتوانید انتخاب کنید.
۹.

در صورتی که همه چیز کامل و درست هست، روی OK کلیک کنید.

البته تغییرات تا هنگام شروع نصب و کپی بسته های نرم افزار اعمال نخواهند شد.
جهت اعمال تغییر در یک پارتیشن در لوازم Disk Druid از پنجره اصلی برنامه مراحل زیر را اجرا کنید:
۱.

پارتیشن مورد نظر را با کلیک کردن روی اون انتخاب کنید.
۲.

روی دگمه Edit کلیک کنید.
۳.

میتوانید گزینه های مورد نظر خود (مانند نقطه اتصال) را تغییر دهید.
۴.

پس از اتمام کار روی OK کلیک کنید.


Linuxنکته : در صورتی که میخواهید یک لوازم RAID ایجاد نمایید، باید ابتدا دو پارتیشن RAID ایجاد کنید.سپس روی دگمه Make RAID کلیک کنید تا دو پارتیشن را در یک لوازم RAID ادغام کنید.

12:

لینوکس با ویندوز چه تفاوتی دارد؟


گنو/لینوکس با ویندوز چه تفاوتی دارد؟
یکی از نخستین سوالاتی که در ذهن هر کاربری که به تازگی نام گنو/لینوکس به گوشش خورده هست، مطرح می‌شود، این هست که خوب گنو/لینوکس چه تفاوتی با ویندوز دارد؟ من در این مقاله قصد دارم بدون اینکه وارد مسائل خیلی فنی شوم، به طور اجمالی این موضوع را تشریح کنم.
لینوکس چیست؟
لینوکس به خودی خود، یک هسته (Kernel) هست.

هسته، بخش اصلی سیستم‌عامل را تشکیل می‌دهد که کار اون کنترل داده‌ها، مدیریت حافظه، سخت‌افزار، ورود و خروج داده‌ها و تمامی موارد اصلی سیستم‌عامل می‌باشد.

همانطور که فرمودم، لینوکس به خودی خود سیستم‌عامل به شمار نمی‌رود، بلکه با هستفاده از ابزارهایی که پروژه گنو (GNU) برای اون تولید کرده هست، تبدیل به یک سیستم‌عامل کامل می‌شود (به همین دلیل هست که لینوکس را معمولا گنو/گنو/لینوکس یا GNU/Linux می‌نامند) و با اضافه کردن سایر نرم‌افزارهای بازمتن به اون، می‌توان از اون در موارد متعددی مانند سرویس‌دهنده‌ها، ایستگاه‌های کاری، کامپیوترهای روی‌میزی، ابر رایانه‌ها، ابزارهای صنعتی و پزشکی که دارای سیستم‌های درونه‌ای (Embedded) می‌باشند و...

هستفاده کرد.
از نظر فنی، گنو/لینوکس را می‌توان نمونه بازمتن و آزاد سیستم‌عامل‌های خانواده یونیکس نامید.

زیرا بر پايه هستاندارد POSIX پیاده سازی شده و کاملا با اون سازگار هست.

بنابراین گنو/لینوکس را می‌توان نواده سیستم‌عامل پرسابقه و مستحکم یونیکس دانست که البته خواص خوب اونرا نیز به ارث برده هست.

اکنون تفاوت‌های اصلی گنو/لینوکس و ویندوز را با هم می‌شماریم:
گنو/لینوکس : سیستم‌عامل آزاد
گنو/لینوکس یک سیستم عامل آزاد و بازمتن هست.

کد منبع اون در اختیار همگان برنامه دارد و همه می‌توانند در کدهای اون تغییر ایجاد کرده و بنا به نیازشان هستفاده نمايند.

آزاد و در دسترس بودن کدهای منبع سبب می‌شود تا بتوانید از طرز کارکرد دقیق سیستم‌عامل مطلع شوید.

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

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

شما نمی‌توانید بفهمید که واقعا در زیر سیستم‌عامل ویندوزتان چه می‌گذرد؟ آیا یک برنامه جاسوسی در اون پنهان نشده هست؟ بعید نیست.

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

در صورت این کار شما خلاف‌کار هستید و جریمه و مجازات خواهید شد.

(فعلا نه در ایران ولی در ۴-۶ سال آینده بله)
گنو/لینوکس را به هواپیمایی تشبیه کرده‌اند که هر قسمت از انرا در جایی ساخته‌اند.

گنو/لینوکس واقعا محصول کشور خاصی نیست.

تعداد زیادی از امت در سرتاسر جهان در حال کار بر روی بخش‌های مختلف اون و توسعه اون هستند.

تعداد برنامه نویسانی که روی بخش‌های مختلف سیستم‌عامل گنو/لینوکس کار می‌نمايند، به حدود ۴۰۰ هزار نفر می‌رسد، تفاوت کیفیت کار را مشخص می‌کند.
شما با سیستم‌عامل گنو/لینوکس آزاد هستید.

لازم ندارید تا از نرم‌افزارهای اختصاصی هستفاده کنید و تحت انقیاد اونها در آیید.
گنو/لینوکس : سرعت، قدرت، پایداری
همانطور که فرمودم، گنو/لینوکس نواده سیستم‌عامل یونیکس هست.

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

این به این معنی هست که مثلا شما نخواهید توانست برنامه‌هایی که در ویندوز دارید، روی گنو/لینوکس اجرا نمایید (البته راه‌هایی وجود دارد – شبیه سازها - ولی در حالت عادی خیر).

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

این سیستم‌عامل‌ها به این راحتی‌ها خراب نشده و به ندرت نیاز به بوت مجدد پیدا می‌نمايند.

گنو/لینوکس‌هایی وجود دارند که شما می‌توانید سالها بدون نیاز به بوت، از اونها هستفاده نمایید.

در سمت مقابل، حتی جدیدترین و پایدارترین سیستم‌های ویندوز نیز اندازه گنو/لینوکس پایدار نیستند.

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

حتی برخی از انواع گنو/لینوکس به نصب «یکبار برای تمامی عمر» مشهور هستند.

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

امروزه همه به دنبال یک سکوی (Platform) امن‌تر برای اجرای برنامه‌های کاربردی و سروی‌دهنده‌ها هستند.

با اینکه مبحث امنیت یک مقوله نسبی هست، گنو/لینوکس حرف‌های زیادی برای فرمودن در سمت امنیت دارد.

بسیاری از قابلیت‌های امنیتی که در ویندوز وجود ندارند و یا فقط با اضافه کردن نرم‌افزارهای اضافی قابل دسترسی می‌باشند، بطور درونی و پیش‌گزیده در گنو/لینوکس پیاده سازی شده‌اند.

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

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

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

در صورتی که در سیستم عامل ویندوز شما باید منتظر مایکروسافت بمانید و بمانید و بمانید (مثلا هم اکنون ۲۱ اشکال امنیتی در مرورگر IE وجود دارد که مایکروسافت هنوز هیچ وصله‌ای برای اون ارائه نداده هست).

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

در دنیای امنیت ضرب المثلی وجود دارد که امنیت با مخفی کاری حاصل نمی‌شود.


می‌توان ادعا کرد که تقریبا هیچ ویروسی برای گنو/لینوکس وجود ندارد و این درحالی هست که سالیانه بیش از ۱۰۰۰ ویروس و کرم مختلف برای سیستم‌عامل ویندوز ایجاد می‌شود.

این بخاطر عدم گسترده بودن گنو/لینوکس نیست (حدود ۷۰ % از سایت‌های وب در جهان بر روی سیستم‌عامل‌های خانواده یونیکس و گنو/لینوکس و سرویس‌دهنده وب آپاچی درحال اجرا هستند) بلکه بدلیل وجود حفره‌های امنیتی متعدد ویندوز و سیاست انحصار گرایی مایکروسافت هست.

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

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

من به عنوان یک ویروس نویس، می‌دانم که اگر ویروسی را برای کاربران ویندوز بنویسم، بر روی کامپیوترهای ۹۰ % اونها اثر خواهد کرد.

چون اکثرا از IE و Outlook هستفاده می‌نمايند.

ولی در گنو/لینوکس چطور؟ در گنو/لینوکس شما طیف وسیعی از انتخاب و عدم اجبار دارید.

من از مرورگر موزیلا هستفاده میکنم.

دوستی دارم که Konqueror را ترجیح می‌دهد.

دیگری از Opera هستفاده می‌کند.

من از Kmail هستفاده می‌کنم.

دوستم از Evolution، دیگری از Pine و بعدی از Mutt و برادرم هم از Mozilla Mail.

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

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

این قابلیت، گنو/لینوکس را برای بکارگیری در سخت‌افزارهای درونه‌ای (Embedded) بسیار مناسب می‌سازد.

هسته 2.6 گنو/لینوکس این امکان را فراهم می‌سازد تا گنو/لینوکس را بر روی دستگاه‌های بسیار کوچک و یا ابر رایانه‌های بسیار بزرگ اجرا نمایید.


گنو/لینوکس : گسترده‌ترین تنوع در کاربرد
گنو/لینوکس را می‌توانید برای انجام وظایف بسیار متعددی بکار بگیرید.

از دستگاه چک کردن اتصالات شبکه، دیوار آتش، مسیریاب (Router) شبکه، سرویس‌دهنده‌های مختلف مانند وب، موسسه مالي اطلاعاتی، فایل، چاپ و...، میزهای کار (Desktop)، ایستگاه‌های کاری (Workstations) و...

سیستم‌عامل گنو/لینوکس حتی این امکان را دارد که از اون بتوان به صورت یک سیستم زنده و پرتابل هستفاده کرد.

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

علاوه بر این، این قابلیت برای رفع اشکال و نمایش اون نیز بسیار مفید هست.
گنو/لینوکس : تنوع در انتخاب
بدلیل آزاد بودن سیستم‌عامل گنو/لینوکس، هر گروه یا موسسه تجاری، یک نسخه خاص از اون که به توزیع یا پخش (Distribution) معروف هستند، منتشر ساخته هست.

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

طراحی شده‌اند و هریک قابلیت‌ها و بهینه سازی‌ها خاص خودشان را به کاربران ارائه می‌نمايند.

کاربران در این میان آزادی انتخاب زیادی داشته و می‌توانند چیزی که کاملا نیازشان را برطرف می‌کند، انتخاب نمايند.

چیزی که در ویندوز نمی‌توان مفهومی برای اون پیدا کرد.
گنو/لینوکس : سیستم‌عاملی حرفه‌ای
گنو/لینوکس یک سیستم‌عامل حرفه‌ای هست.

یعنی ممکن هست یک کاربر کاملا غیر فنی برای مدیریت اون و انجام برخی از تنظیمات سخت‌افزاری دچار مشکل شود و نتواند به راحتی این کار را اجرا کند.

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

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

مثلا یک کارمند دفتری که اموری مانند تایپ و حسابداری را با کامپیوترش انجام می‌دهد، ممکن هست از نظر فنی تفاوتی را احساس نکند، ولی گنو/لینوکس خوراکی ۴ ساله برای کاربران خوره فراهم می‌سازد! برخلاف ویندوز، نکات بی‌پایانی برای یادگیری در گنو/لینوکس وجود دارد.

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

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

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

برخلاف ویندوز که اکثر ابزارهای برنامه نویسی روی اونرا باید جداگانه نصب و حتی خریداری نمایید، گنو/لینوکس به همراه تمامی ابزارهای برنامه نویسی مورد نیازتان و با هر زبانی که فکر کنید ارائه می‌شود.

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

ابزارهایی که در اختیارتان برنامه دارد چنان متنوع هستند که می‌توانید ۹۰ % اطمینان داشته باشید که پس از نصب اون به چیز دیگری نیاز نخواهید داشت.
گنو/لینوکس : یکی از زیباترین دستاوردهای بشری
گنو/لینوکس در سایه همکاری و تبادلات علمی هزاران نفر در سرتاسر جهان ایجاد شده و توسعه یافته هست.

این همکاری چنان گسترده و زیبا بوده و هست، که به سیستم‌عامل گنو/لینوکس لقب «یکی از زیباترین دستاوردهای همکاری جمعی بشر» داده شده هست.

فرهنگ حاکم در جامعه گنو/لینوکس و بازمتن، فرهنگ کمک، اشتراک اطلاعات و تلاش برای بهبود هرچه بیشتر محصولات و «انجام هرکاری که از دستت برمی‌آید» هست.

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

گنو/لینوکس نوید دهنده آزادی هست...

13:

نصب نرم افزار در لینوکس


I.

روش های نصب برنامه ها در لینوکس
[1]
با توجه به گستردگی توزیع های لینوکس مسلما روش های نصب نرم افزار ها نیز متفاوت خواهد بود .

در ابتدا به تعریف مفهون کد منبع یا Source Code می پردازم .

یک نرم افزار در ابتدا فقط یک سری حروف و کلمات هست که یک برنامه نویس اون ها را در محیطی خاص و یایک ویرایشگر متن معمولی می نویسد این نوشته ها " سورس کد" برنامه یا " کد منبع" برنامه نام دارند.

این کد ها را می توانید در یک ویرایشگر متن معمولی وارسی کنید ،‌اما برای کامپیوتر معنایی ندارند ! چرا که کامپیوتر شما فقط زبان 0 و 1 را متوجه می شود.بنابراین باید این برنامه ی نوشته شده را به زبان کامپیوتر ترجمه کنیم ،‌ این کار ترجمه را " کامپایل " می گویند.درواقع شما کدمنبع را کامپایل می کنید تا کامپیوتر شما اون رادرک کند.

به فایل حاصل از کامپایل فایل "باینری" می گویند.

دلیل این نام گذاری این هست که فایل حاصل از کامپایل فقط برمبنای دو (Base2) می باشد ،‌یعنی فقط شامل صفر و یک هست.

بنابراین وقتی می گوییم برنامه ای بازمتن (OpenSourec )است این بدان معناست که کد های منبع اون در اختیار دیگران برنامه دارد و در برنام های CloseSource یا سورس بسته این کد های منبع در اختیار شما برنامه نمی گیرد وفقط فایل های باینری در اختیار شما برنامه می گیرد.

یکی از محبوب ترین راه های نصب نرم افزار در لینوکس نصب از کد منبع یا به اصلاح درست تر کامپایل از سورس کد برنامه هست.در ویندوز مایکروسافت شما همواره بسته های باینری را در سیستم خودنصب می کردید ،‌این بسته های باینری که از پیش کامپایل شده اند بر پايه یک هستاندارد کلی که سیستم عامل (ویندوز) دارد ،‌ کامپایل شده اند بنابر این شما نمی توانید به راحتی برروی اون ها مانور دهید ،‌اما در لینوکس قضیه کمی متفاوت هست ،‌شما می توانید کد منبع را بگیرید و از اول روی سیستم خودتان کامپایل کنید .شاید بپرسید این چه مزیتی دارد؟ وقتی که شما برنامه ای را در سیستم خودتان شخصا کامپایل می کنید می توانید اون را بر پايه نیاز های خودتان تنظیم کنید.(در اصطلاح صحیح تر می توانید نرم افزار راباتوجه به شرایط خود بهینه سازی -optimization-کنید.) حسن این کار در اون هست که برنامه ی نصب شده در سیستم شما کاملابا سیستم شما خوانایی دارد و اگر شما به امکاناتی که برنامه ارائه می دهد نیازی ندارید می توانید به سادگی اون امکانات را وقت کامپایل ندیده بگیرید.



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

این بسته ها اغلب همانند بسته های نرم افزاری ویندوز از قبل کامپایل شده اند (البته این فقط یک مقایسه ی ناشیانهات و در عمل با بسته های ویندوزی بسیار متفاوتند) و شما از طریق یک مدیر بسته می توانید این بسته ها را مدیریت کنید.

مدیر بسته ها در لینوکس تقریبا همان برنامه ی Add/Remove در کنترل پانل ویندوز هست که با توجه به توزیع و نوع بسته ی نرم افزاری بسیار مختلف هست.

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

نکته ی قابل توجه دیگر این هست که این بسته ها می توانند شامل فایل های کمکی (Help) و مستندات دیگر مربوط به برنامه باشند.

شما برنامه ی خود رااز هر راهی که نصب کنید در اغلب موارد فایل های اون در مسیر های usr/bin/ و bin/ و usr/sbin/ برنامه می گیرند و فایل های مربوط به پیکره بندی اون در دایرکتوری etc/ برنامه می گیرند.

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

بسته ها! چرا به برنامه ها بسته (Pakage) میگویند؟ اغلب برنامه ها امروزه شامل فایل های بسیاری می باشند ،‌از جمله فایل های باینری ،‌فایل های پیکره بندی و فایل های مربوط به راهنما و روش نصب و مجوز های برنامه که به Documentation یا مستندات معروف هستند.

بنابراین می بینیم یک برنامه همراه خود تعداد بسیاری فایل به همراه دارد ،‌تمام این فایل ها به صورت فشرده در یک بسته قار می گیرند ،‌خواه این یک بسته ی RPM باشد یا یک بسته ی DEB یا حتی یک بسته ی Tarball باشد.

برای آشنایی هرچه بیشتر شما با انواع بسته های نرم افزاری ما در این مقاله به سه نمونه ی عمده ی بسته های نرم افزاری لینوکس اشاره می کنیم ،‌باید توجه داشته باشید که در این مقاله قصد آموزش کار با بسته های نرم افزاری رانداریم و تنها به معرفی انواع بسته ها بسنده خواهیم کرد.

II.

بسته های RPM


یکی از معروف ترین بسته های نرم افزاری لینوکس بسته های RPM میباشد.RPM مخفف RedHat Pakage Manager می باشد ،‌همان طور که از اسم اون بر می آید ابداع شرکت RedHat Linux می باشد اما در توزیع های مختلفی از این بسته ها هستفاده می شودو جالب تر این که از این بسته ها می توانید در سیستم های شبه یونیکس دیگر مانند FreeBSD و SunSolaries نیز قابل هستفاده هستند.بسته های RPM با پسوند rpm شناخته می شوند .
از جمله توزیع هایی که از بسته های rpm هستفاده می نمايند می توان لینوکس Mandrake وLinuxPCC و لینوکس YellowDog را که بر پایه ی ردهت هست و برای سیستم های با پردازنده ی PowerPC طراحی شده و نیز توزیع SuSE را نام برد.البته توزیع های دیگری نیز از این بسته ها هستفاده می نمايند .برای مدیریت بسته های rpm شما می توانید از مدیر بسته های rpm هستفاده کنید.

اگر می خواهید در خط فرمان و برپايه محیط متنی کار کنید می توانید از دستور rpm برای مدیریت هستفاده کنید.

اما اگر می خواهید از محیط گرافیکی برای مدیریت هستفاده کنید با توجه به توزیع شما این لوازم متفاوت هست.

کاربران SuSE با لوازم YaST می توانند این کار را بنمايند ،‌کاربران Mandrake می توانند با rpmdrake بسته هایشان رامدیریت نمايند.

البته باید توجه داشته باشید که SuSE و Mandrake گاهی از بسته های rpm مخصوص خود هستفاده می نمايند که جز اون توزیع در توزیع دیگری قابل هستفاده نمی باشد.

بسیارخوب تا این جا بسته های RPM را شناختیم ،‌ حال قبل از معرفی بسته های DEB به نحوه ی نام گذاری بسته های RPM خواهیم پرداخت.

برای اون که کاربران با دیدن نام بسته ی rpm به راحتی بتوانند متوجه محتویات اون بشوند از یک هستاندارد برای نام گذاری این بسته ها هستفاده می شود.این نام گذاری مانند زیر هست :

pakagename-a.b.c-x.arch.rpm

در این نام گذاری همان طور که معلوم هست از سمت چپ اولین بخش نام نرم افزار اصلی ماست مثلا xchat یا gaim اما سایر اجزا :
.a.b.c نسخه ینرم افزاری هست که دردست دارید، این شماره نسخه را اغلب نویسنده ی برنامه تعیین می کند مثلا 2.2.6 یا 5.6.7a.

x این شاره به شماره ی build number یا relase number معروف هست.(شماره ی انتشار !)این شماره در واقع نشان دهنده ی تغییرات کوچکیست که اغلب هم کار نویسنده ی برنامه نیست مثلا یک وصله یا Patch برای رفع یک مشکل (bug) یا یا تغییر یک فایل نصب یا اضافه شدن یک فایل راهنما یا help یا Documentation به فایل .
arch این بخش از نام مربوط می شود به معماری پردازنده ای که از اون هستفاده می کنید.

بسته های RPM برروی معماری های مختلفی از پردازنده قابل اجراست ،‌از جمله x86 یا SPARC یا Alpha نیزIA-64 بنابر این لازم هست که نوع پردازنده ی مورد پشتیبانی را در نام فایل بگنجانیم تا در آینده بتوانیم به راحتی از اون برای پردازنده ی خودمان هستفاده کنیم.برای پردازنده های x86 این جا i386 نوشته می شود.

این پردازنده ها باقی مانده ی نسل 80386 هستند که شرکت اینتل اون ها را تولید می کند ،‌البته باید خاطر نشان کنم که در حال حاضر وقتی می گوییم x86 منظور ما هر پردازنده ای سازگار با این معماری هست از جمله AMD مدل های Duron و Athlon و یا پنتیوم های Pro ,I,II,II,IVو نیز پنتیوم MMX ویا پردازنده های سازگار با x86شرکت Transmeta یا Cyrix!! بنابراین امروزه فقط این اینتل نیست که پردازنده های خانواده ی x86 را تولید می کند.

اگر بسته یRPM شما برای پنتیوم بهینه سازی شده باشداین مقدار 1586 و i686 خواهد بود.

البته RPMبرای پردازنده های دیگر نیز وجود دارد از جمله PowerPC که با ppc مشخص می شود.

نکته ی قابل توجه این هست که اگر بسته ی rpm شما محتوی فایل متنی یا Documentation یا هر چیز دیگری باشد که به پردازنده (CPU) بستگی ندارد این مقدار noarch خواهد بود.
برای روشن تر شدن این نام گذاری به نام xbill-2.1.3-85.i386.rpm دقت کنید.

xbillنام این نرم افزار هست که یک بازی لینوکس هست.که بسته ی ما buildشماره ی 85 نسخه ی 2.13 اون هست که برای معماری x86 طراحی شده هست.

III.

بسته های DEB

بسته ی دیگری که بسیار هستفاده می شود ،‌بسته ی دبیان یا DEB می باشد ،‌ این بسته ها نیز مانند بسته های RPM هستند و کار کردن با اون ها مانند کار با RPM ها ساده هست.

این بسته ها را دبیان توسعه داده هست و هم اکنون توزیع های فراوانی از لیبرانت تا DammnSmallLinux از این بسته ها هستفاده می نمايند ،‌در واقع هر توزیع مبتنی بر دبیان از این بسته ها هستفاده می کند.بسته های rpm و deb را نمی توان به جای یکدیگر هستفاده کرد اما می توان آ نها را به یکدیگر تبدیل کرد ،‌البته این تبدیل نیز همیشه موففقیت آمیز نخواهد بود.بسته های دبیان نیز مانند rpm برای معماریهای متفاوتی نوشته شده هست .برای مدیریت بسته های دبیان در خط فرمان از لوازم dpkg هستفاده می شود dpkg بسیار شبیه RedHat pakage Manager یا rpm هست .(منظور لوازم rpm هست که برای مدیریت بسته های RPM هستفاده می شود.).

البته در دبیان و توزیع های مبتنی بر دبیان لوازم دیگری نیز برای مدیریت بسته های نرم افزاری در خط فرمان وجودداردکه کار با بسته های نرم افزاری را بسیار راحت تر و شیرین تر می کند ،‌این لوازم APT نام دارد.APt مخفف Advanced Pakage Tool می باشد.

(تلفظ کنید اپت /æpt/) یکی از خواص بستههای RPM وDEB این هست که شما نی توانید به راحتی و از طریق همین لوازم های مدیریت بسته بسته های خودرا در چند ثانیه یاحداکثر چند دقیقه به روز بکنید و لی اگر برنامه ای را از کد منبع اون کامپایل کنید برای هر بار به روز رسانی مجبورید برنامه را از ابتدا کامپایل کنید.البته برای مدیریت بسته های نرم افزاری در دبیان نیز برنامه های مختلفی وجوددارد مانند synaptic ویا برای مدیریت بسته هادر خط فرمان اما کمی راحت تر مانند dselect .

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


IV.بسته های Tarball
در حقیقت بسته های Tarball چیزی جز بسته های آرشیو شده نیستند ، این بسته ها را می توانیددر هر توزیعی هستفاده کنید و مانند RPM و DEB وابسته به توزیع نیستند.

بسته های Tarball همان بسته هایی هستند که با لوازم tar در خط فرمان تولید می شوندو توسط یکی از برنامه های compres یا gzip یا bzip2 فشرده شده اند.

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

بسته های tarball می توانند مانند RPM و Debian حاوی سورس کد ،‌ فایل های باینری و همچنین مستندات برنامه باشدالبته در اغلب موارد این بسته ا با gzip فشرده می شوند که پسوند حاصل tar.gz.

می شود و البته برای این که حجم اطلاعات رد و دلی در اینترنت کمتر شود از فرمت tar.bz2.

هستفاده می شود که بسته های آرشیو tar را با برنامه ی bzip2 فشرده کرده اند .(فایل هایی که با Bzip2 فشرده شده اند از فایل هایی که با gzip فشرده شده اند حجم کم تری دارند چرا که الگوریتم فشرده سازی در این دو متفاوت هست.)



V.اطلاعات ضروری در وقت نصب برنامه

۱.وابستگی های برنامه (Dependencies)

وابستگی های نرم افزاری یا همان Dependencies در واقع اون برنامه هاو نیاز هایی هست که باید داشته باشید تا برنامه ی شما بتواندکار کند!! درواقع شما برای نصب یک برنامه اغلب به یک پیش نیاز احتیاج دارید ،‌ مثلا برای بسیاری از برنامه های لینوکس لازم هست تا شما کتابخانه های C را داشته باشید.

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

توجه داشته باشید که مفهوم پیشنهادی یا Recommended با وابستگی متفاوت هست ،‌اگر وابستگی ها را نصب نکنید برنامه ی شما کار نخواهد کرد اما اگر پیشنهادی ها را نصب نکنید برنامه ی شما کار خواهد کرد.

پس این Recommended ها به چه کاری می آیند؟ اگر شما این Recommended هارا نصب کنید برنامه ی شما بهتر کار می کنه یا بهتر بگویم بازدهی برنامه ی شما بیشتر خواهدشد.

یکی از خواص بسته های Debian وrpm هوشمندی اون ها نصبت به شناخت این پیش نیاز هاست ،‌در واقع وقتی شمایک بسته ی Debian را نصب می کنید خودش به دنبال پیش نیاز ها می گردد و پیش نیاز ها را نیز برای شما نصب می کند.البته بسته های RPM این هوشمندی راندارند اما برنامه های مدیریت بسته های rpm این کار را می نمايند یعنی وقتی که شما از دستور rpm برای نصب هستفاده می کنید این برنامه هست که تشخیص می دهد ثبل از نصب باید چه برنامه های دیگری نصب شود و به شمافراخوان می کند که این بسته ا را نیز نصب کنیدو یا خودش نصب می کند.

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


۲.کتابخانه ها(Libraries)

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

به این ترتیب لازم نیست که شما هر بار تمام توابع را تعریف کنید کافیست یکبار این توابع در کتابخانه ای نوشته شوند و کاربران این کتابخانه ا را در سیستم خودنصب نمايند ،‌حالا شما و همارانتان و دیگران بدون دغدغه ی حجم زیاد و تعریف مجدد توابع به نوشتن برنامه مشغول می شوید.(حالا متوجه شدید چرا به این برنامه ها کتابخانه می گویند؟)

از جمله معروف ترین کتابخانه ا می توان به کتابخانه های C اشاره کرد که با نام libc و در توزیع های مدرن تر به نام glibc وجود دارند و یا کتابخانه ی معروف +GTK که شما یک بار نصب می کنید و تمام برنامه های محیط گرافیکی گنوم از اون هستفاده می نمايند.



۳.لوازم های توسعه(Development Tools)

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

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

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

درواقع وقتی شما یک برنامه را کامپایل می کنید مانند این هست که شما برنامه نویسید و برنامه رانوشتیدو کد اون راآماده کردید و می خواهید اون را به زبان ماشین ترجمه کنید،‌خوب برای این کار به ابزاری نیاز دارید به نام Development tools که بوسیله ی اون برنامه ی خودرا کامپایل کنید.

برنامه ی معروف gcc جزو این لوازم هاست ،‌ gcc که یک کامپایلر هست و تحت مجوز GNU/GPL نیز منتشر سده هست مجموعه ای هست از کامپایلر های زبان های مختلف،‌ البته این اسم اون نیز معلوم هست GNU Compiler Collection!!!!


۴.پایگاه داده ی بسته های نصب شده
پایگاه داده ی بسته های نصب شده یا به زبان ساده تر Installed package Database !! محلی هست که اطلاعات بسته های نصب شده ی سیستم در اون برنامه دارد.

شاید شما بخواهیدبدانید که فایل کتابخانه ای X یا Y آیا نصب شده هست یا نه؟ یا می خواهید بدانی چه نسخه ای از برنامه در سیستم شما موجود هست ،‌یا حتی می خواهید بدانید برای برنامه ی شما چه نیاز مندی هایی لازم هست؟ تمام این اطلاعات و اطلاعات دیگر در یک پایگاه داده ذخیره می شود.برای بسته های Debian این مسیر اغلب در مسیر var/lib/dpkg/ هست و برای RPM این مسیر var/lib/rpm/ هست ،‌اما برای Tarball هیچ پایگاهی وجود ندارد!! البته توزیع SlackWare خودش توسط برنامه ای به نام slackware Package Tool یا pkgtool برای بسته های Tarball ای که از طریق این برنامه نصب می شوند یک پایگاه داده می سازد اما این فقط مختص توزیع هست و این امکان در تمام توزیع ها موجود نیست.به همین دلیل هست که اغلب بسته های Slackware را جزو بسته های هوشمند به شمار نمی آورند چرا که تنها یک آرشیو فشرده هست و حتی نمی تواند وابستگی ها یا Dependency های خود را پیدا کند.


نصب نرم افزار در لینوکس ،‌ تمام اونچه در این مقاله خواندید روش های مختلف نصب در لینوکس هست ،‌می بینید که شما انتخاب های مختلفی دارید و به یک انتخاب وابسته نیستید ، امید وارم این مقاله برایتان مفید بوده و مطالبی جدید برایتان داشته باشد.



14:

Linux

15:

آشنایی با udev

شاخه dev/ در فایل سیستم لینوکس
در فـایـل سیـستم لـیـنوکس، شـاخـه‌ای بـه نام dev/ وجود دارد که در اون تمامی ابزارهای سخت افزاری سیستم لیست شده‌اند.

برای مثال پارتیشن‌های دیسک سـخـت یــا درایـوهای CD-ROM با نشانی dev/hdX/ در این شاخه وجود دارند.

حتما هنگام هستفاده از دستوری مانند mount از گــره‌های مـوجـود در ایـن شـاخـه بــرای اتـصال ابزارها به فایل سیستم اسـتفاده کرده‌اید.

به طور سنتی، سیستمی به نام devfs عهده دار ایجاد این شاخه بر روی فـایـل سیـسـتم می‌بـاشـد.

devfs تـمـامی گره‌های ممکن لوازم را بر روی شاخه dev/ ایجاد می‌کند که نتیجه اون ساختاری هست حجیم و سنگین که چندان هم منطقی به نظر نمی‌رسد.
udev جایگزینی برای devfs
بـه طــور خـلاصه، udev سیستمی جایگزین برای سیستم قدیمی devfs با هستفاده از sysfs و hotplug می‌باشد.

sysfs یک فایل سیستم جـدید برای هسته‌های سری 2.6 می‌باشد که توسط هسته کنترل شده و شامل ابزارهایی هست که اکنون به سیستم شـمـا مـتـصل می‌بـاشـند.

udev می‌تواند از این اطلاعات هستفاده کرده و برعکس devfs که دارای یک ساختار لوازم ثابت در دایرکتوری dev/ بود، ورودی‌های ایــن دایرکتوری را بصورت پویا و با توجه به این اطلاعات ایجاد نماید.

sysfs در شاخه sys/ متصل شده و قابل مرور می‌باشد:
# mount
/dev/hda5 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/hda1 on /boot type ext3 (rw)
/dev/hda6 on /home type reiserfs (rw,usrquota,grpquota)
/dev/hda8 on /data type ext3 (rw,noexec,nosuid,nodev)
/dev/hdb1 on /data2 type ext3 (rw,noexec,nosuid,nodev)
usbfs on /proc/bus/usb type usbfs (rw)
tmpfs on /dev type tmpfs (rw,size=10M,mode=0755)
برای مـثـال هـنـگامی کــه کـاربـر دیـسـک usb یا دوربین دبجیتال usb خود را به سیستم متصل می‌کند، گره‌های sda در شاخه dev/ ایجاد شده و با برداشتن اون حــذف می‌شــوند.

چـنـین اتـفـاقـی در زمـان بـارگذاری ماژولی مانند loop نیز در حافظه رخ می‌دهد و گره‌های dev/loop/ ایجاد می‌شوند.
بـرعـکس سـیـستم devfs کــه سـاختاری حجیم و سنگین داراست، ساختار udev بسیار جمع و جور و کوچک می‌باشد.

udev تنها گره‌های ابزارهایی را که بـر روی سیستم حاضر هستند و ماژول اونها در حافظه بارگذاری شده هست را نمایش می‌دهد.

این ویژگی باعث می‌شود تــا یــک سـاخـتـار تـمیز و مرتب در dev/ داشته باشیم.

توسعه devfs متوقف شده و udev در آینده نزدیک بطور کامل جایگزین اون خواهد شد.
یـکـی دیـگر از قـابـلیت‌های جالب سیستم udev امکان بکارگیری نام‌های سفارشی برای ابزارهای خاص در شاخه dev/ می‌باشد.

برای مـثـال مـمـکن اسـت شـمـا یـک درایـو usb و یک دوربین دیجیتال داشته باشید که از dev/sda1/ هستفاده می‌نمايند، می‌توانید کاری کنید که هرگاه دوربین به سیستم متصل می‌شود با نام Camera و وقتی درایو usb به سیستم متصل می‌شود به نام usbdrive شناخته شود.

بـرای ایـن کـار لازم هست تــا تـعدادی قانون (rule) به سیستم udev خود اضافه کنید.

محل تعریف این قوانین در مسیر etc/udev/udev.rules/ می‌باشد.
می‌توانید نام ابزاری را که به درگاه usb متصل کرده‌اید با هستفاده از دستور زیر بدست آورده:
# udevinfo -a -p $(udevinfo -q path -n /dev/sda1)
...
looking at the device chain at '/sys/devices/pci0000:00/0000:00:07.2/usb1/1-2':
BUS="usb"
ID="1-2"
DRIVER="usb"
SYSFS{bConfigurationValue}="1"
SYSFS{bDeviceClass}="00"
SYSFS{bDeviceProtocol}="00"
SYSFS{bDeviceSubClass}="00"
SYSFS{bMaxPower}="100mA"
SYSFS{bNumConfigurations}="1"
SYSFS{bNumInterfaces}=" 1"
SYSFS{bcdDevice}="0100"
SYSFS{bmAttributes}="c0"
SYSFS{detach_state}="0"
SYSFS{devnum}="2"
SYSFS{idProduct}="0102"
SYSFS{idVendor}="07b4"
SYSFS{manufacturer}="OLYMPUS"
SYSFS{maxchild}="0"
SYSFS{product}="C160,D395"
SYSFS{serial}="SW01103804 "
SYSFS{speed}="12"
SYSFS{version}=" 1.10"
...
و سپس با ویرایش فایل etc/udev/udev.rules/ خطی مانند زیر را به اون اضافه کنید:
BUS="usb", SYSFS{product}="C160,D395", KERNEL="sd?1", NAME="%k", SYMLINK="camera"
از ایــن پس دوربین شما پس از اتصال بــه سـیستم در dev/camera/ قابل دسترسی خواهد بود.

برای ابـزارهای ذخـیـره ســازی داده usb کـه به درایوهای usb یا usb mass storage نیز موسوم هستند، خط فایل etc/udev/udev.rules/ مانند زیر خواهد بود:
BUS="usb", KERNEL="sd*", SYSFS{product}="USB 2.0 Storage Device", NAME="%k", SYMLINK="usbhd%n"

ایـن خـط ابـزارهایی مانند dev/usbhd/، /dev/usbhd1 و dev/usbhd2/ را ایجاد خواهد کــرد کــه usbhd1 و usbhd2 قابل اتصال (mount) بوده و usbhd را نیز می‌توان در ابزارهای پارتیشن‌بندی مـانـنـد cfdisk بـکـار گـرفـت.



اقلام مورد نیاز برای هستفاده از udev
بـرای هستفاده از udev باید سیستم شما مجهز به هسته‌های سری 2.6 لینوکس بوده و بسته‌های udev و hotplug نیز بر روی سـیـستم نـصب باشند.

هستفاده از بسته hal نیز به عنوان یک مجموعه تکمیلی که کمک نماينده به عملکرد udev می‌باشد، توصیه می‌شود.

در دبیان گنو/لینوکس می‌توانید به سادگی این ابزارها را با هستفاده از دستور زیر نصب کنید:
# apt-get install udev hal hotplug


Author : آلن باغومیان alan@technotux.com


16:

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

مقاله حاضر نگاهی اجمالی به فرایند راه‌اندازی سیستم لینوکس شما دارد.
اصطلاح فنی راه‌اندازی کامپیوتر را فرایند بوت یا Bootstrapping می‌گویند و یا بطور خلاصه‌تر بوت (boot یا booting).

بخش آغازین این فرایند توسط کدهای ذخیره شده در ROM کامپیوتر انجام می‌شود.

این بخش در همه سیستم‌عامل‌ها یکسان می‌باشد.

وظیفه این کد بارگذاری مدیر بوت لینوکس (Linux Boot Loader) برای ادامه فرایند می‌باشد.

برنامه‌های مدیر بوت



برنامه‌های مدیر بوت برنامه‌هایی هستند که توسط ROM کامپیوتر (یا همان BIOS) بارگذاری می‌شوند.

در لینوکس دو مدیر بوت رایج وجود دارد.

لیلو (LiLO) مدیر بوت سنتی لینوکس و گراب (Grub) مدیر بوتی جدیدتر می‌باشد.هرکدام از این برنامه‌ها ابتدا مقداری اطلاعات پیکربندی را دریافت کرده و سپس هسته لینوکس یا سیستم‌عامل دیگری را بارگذاری می‌کند و ادامه فرایند بوت را به اون می‌سپارد.

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

فایل پیکربندی لیلو با اجرای دستور lilo بصورت ثابت ذخیره می‌گردد.

این اطلاعات یا در رکورد بوت اصلی (MBR یا Master Boot Record) دیسک یا در رکورد بوت پارتیشن لینوکس ذخیره می‌شود.

اطلاعات پیکربندی که توسط دستور lilo استفاده می‌شود، عموما در فایل etc/lilo.conf ذخیره می‌شود.

در زیر یک مثال از این فایل پیکربندی را مشاهده می‌نمایید.


HTML Code:
 boot=/dev/hda # boot loader to MBR root=/dev/hda1 # root partition install=/boot/boot.b map=/boot/map delay=50 # 5 second delay before auto-boot image=/vmlinuz # kernel label=linux # name to refer to entry read-only image=/vmlinuz.old # backup entry label=old        read-only
در مثال بالا امکان انجام بوت از روی دو هسته مختلف یعنی vmlinuz و vmlinuz.old وجود دارد.

هنگام بوت شما می‌توانید یکی از این هسته‌ها را انتخاب نمایید.

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

در صورتی که هسته جدیدی را با ویرایش فایل etc/lilo.conf اضافه کرده‌اید و یا هر تغییر دیگری در فایل پیکربندی لیلو اعمال کرده‌اید، باید پس از اون دستور lilo را اجرا نمایید تا این تغییرات اعمال شوند.





گراب فایل پیکربندی را هنگام بوت می‌خواند.

حجم MBR فقط ۵۱۲ بایت هست و تنها بخشی از گراب که عهده دار فرایند‌های بسیار ابتدایی بوت هست در اون ذخیره می‌شود.

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

گراب توسط برنامه grub-install نصب می‌شود.

فایل پیکربندی گراب به طور معمول در مسیر boot/grub/menu.lst برنامه دارد.

در زیر یک مثال از این فایل را مشاهده می‌نمایید:







كد:
default 0timeout 8gfxmenu (hd0,1)/boot/messagetitle Linux    kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 desktop showopts    initrd (hd0,1)/boot/initrdtitle Failsafe    kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 showopts ide=nodma apm=off acpi=off vga=normal nosmp noapic maxcpus=0 3    initrd (hd0,1)/boot/initrdtitle Memory Test    kernel (hd0,1)/boot/memtest.bin
در صورتی که شما کامپیوتر خود را با یک سیستم‌عامل عامل اختصاصی از ردموند به اشتراک گذاشته‌اید، حواستان باشد که اونها اعتقاد دارند که سیستم‌عاملی جز سیستم‌عامل خودشان وجود ندارد و بنابراین اگر ویندوز را پس از لینوکس نصب کنید، بر روی MBR خواهد نوشت.

به همین علت ابتدا ویندوز را نصب نمایید.






سطوح اجرایی لینوکس



سطوح اجرایی لینوکس به شما آرایه‌ای از پیکربندی‌های سیستمی ارائه می‌نمايند.

بدون مشخص کردن، معمولا سیستم با سطح اجرایی پیش‌گزیده که ممکن هست ۳، ۲ یا ۵ باشد، بوت می‌شود.

این سطح اجرایی پیش‌گزیده را می‌توانید با ورود برخی کلمات کلیدی هنگام بوت تغییر دهید.
به طور هستاندارد ۷ سطح اجرایی در لینوکس وجود دارد.

از ۰ تا ۷.

سطح اجرایی ۰ به معنی خاموش کردن سیستم، سطح اجرایی ۱ به معنی حالت تک کاربر و سطح اجرایی ۶ به معنی بوت مجدد (Reboot) سیستم هستند.

سطوح اجرایی دیگری که رایج هستند عبارتند از سطح اجرایی ۳ که یک سیستم چند کاربره بدون محیط گرافیکی هست، حالت اجرایی ۵ که محیط اجرایی چندکاربره همراه با محیط گرافیکی هست.

البته در سیستم‌های مبتنی بر لینوکس دبیان، سطوح اجرایی ۳ و ۵ با سطح اجرایی ۲ جایگزین شده‌اند.

در بسیاری از سیستم‌ها، یک سطح اجرایی دیگر موسوم به S وجود دارد که مشابه به سطح اجرایی ۱ بوده ولی برای ورود به اون نیاز به کلمه عبور ریشه می‌باشد.

این بدلیل مسائل امنیتی هست.
محتویات فایل etc/inittab مشخص نماينده سطوح اجرایی سیستم شما و سطح اجرایی پیش‌گزیده می‌باشد.

در زیر مثالی از این فایل را مشاهده می‌نمایید







HTML Code:
[right]# /etc/inittab # # This is the main configuration file of /sbin/init, which # is executed by the kernel on startup. 

# # The default runlevel id:5:initdefault: # /etc/init.d/rc takes care of runlevel handling # # runlevel 0 is System halt (Do not use this for initdefault!) # runlevel 1 is Single user mode # runlevel 2 is Local multiuser without remote network (e.g.

NFS) # runlevel 3 is Full multiuser with network # runlevel 4 is Not used # runlevel 5 is Full multiuser with network and xdm # runlevel 6 is System reboot # l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # what to do in single-user mode ls:S:wait:/etc/init.d/rc S ~~:S:respawn:/sbin/sulogin # what to do when CTRL-ALT-DEL is pressed ca::ctrlaltdel:/sbin/shutdown -r -t 4 now # getty-programs for the normal runlevels # ::: # The "id" field MUST be the same as the last # characters of the device (after "tty").

1:2345:respawn:/sbin/mingetty --noclear tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6[/right]
خط id:5:initdefault به معنی این هست که سطح اجرایی پیش‌گزیده کامپیوتر شما سطح اجرایی ۵ هست.

خطوط l1:1:wait:/etc/init.d/rc 1 و به همین ترتیب، باعث می‌شوند تا اسکریپت etc/init.d/rc سطح اجرایی مربوطه را بصورت یک آرگومان ارسال نماید.

سپس این اسکریپت پروسه‌های خاص سطح اجرایی ارسال شده را آغاز می‌کند.

تمام اسکریپت‌های کنترل نماينده پروسه‌های مختلف در مسیر etc/init.d/ ذخیره شده‌اند.







به طور معمول، بطور معمول پروسه‌هایی که با ورود به یک سطح اجرایی، اجرا یا متوقف خواهند شد در زیر دایرکتوری‌هایی مانند rc2.d یا rc5.d (همنام با شماره سطح اجرایی مربوطه‌شان) ذخیره شده‌اند.

این فایل‌ها لینک‌های Symbolic به اسکریپت‌های موجود در etc/init.d/ می‌باشند.

لینک‌هایی که با K آغاز می‌شوند، هنگام ورود به سطح اجرایی مربوطه نابود (Kill) خواهند شد.

لینک‌هایی که با S شروع می‌شوند، هنگام ورود به اون سطح اجرایی شروع (Start) خواهند شد.

این لینک‌ها بصورت الفبایی اجرا می‌شوند، به این معنی که ابتدا لینک‌های K آغاز شده و سپس لینک‌های S.

ترتیب اجرای لینک‌های K و S با عددی دو رقمی که بلافاصله پس از حروف S یا K برنامه می‌گیرد، تعیین می‌شود.


این روش، روش هستاندارد برای اجرای پروسه‌ها در آغاز فرایند بوت می‌باشد.

این سیستم هستاندارد به System V Init موسوم می‌باشد که مشابه با سیستم‌عامل یونیکس هست.


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

برای تغییر سطح اجرایی می‌توانید بصورت کاربر ریشه وارد شده و دستور init را در خط فرمان تایپ نمایید.

برای مثال init 3.

17:

عجب تاپیک غنی ای! دستتون درد نکنه

--------------------------

شل لينوكس انواع مختلف هم داره (برخلاف ايشانندوز) ولي متداولترين و شل هستانداردش BASH هست كه تاجايي كه ميدونم نسخه آزاد توليد شده (سازگار با) شل يونيكس هست.

البته مسلما پيشرفته تر و كاملتر از اون شل قديمي يونيكس هست.
شل در لينوكس با ايشانندوز و چيزي كه بهش خط فرمان ميگيم چنان تفاوت داره كه نميشه با همديگه مقايسه كردشون.

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

اصلا طبيعت ايشانندوز با لينوكس تفاوت داره و كارها اكثر وابسته به برنامه هاي جانبي هست كه قاعدتا اكثرشون هم كلوز سورس و انحصاري هستن!
در مقابل شل لينوكس تقريبا يك زبان برنامه نايشانسيه كامله! البته در حيطه خودش! اگر در نت كمي جستجو كنيد احتمالا بتونيد تعداد زيادي شل اسكريپتهاي متنوع براي انجام كارهاي مختلف پيدا كنيد.

حتي كارهايي غيرسيستمي و اپلیکیشن مانند! اينها گاهي به صراحت تحت نام برنامه طبقه بندي ميشن.

البته يادتون نره كه جزو برنامه هاي اسكريپتي هستن.
اكثر شلها حاايشان زبانهاي برنامه نايشانسي مخصوص خودشون هم هستن.

مثلا در داس يا همين خط فرمان (شل) امروز ايشانندوز كه باهاش سازگاره ساختارهاي حلقه و تصميم گيري شرطي و غيره رو داريم.

كساني كه داس پيشرفته كار كرده باشن اطلاع دارن.
به اين ساختارها زبانهاي برنامه نايشانسي توكار فرموده ميشه.
زبان برنامه نايشانسي توكار شل لينوكس بسيار كاملتر و منعطفتر و قدرتمندتر از شل ايشانندوز هست.

مثل رابطه شل يونيكس در وقت خودش با شل داس.


18:

البته تاجایی که میدونم پارتيشن swap سیستم فایل نیست و سیستم فایل هم نداره!
اين رو در يكي از مستندات خود لينوكس خوندم.

ذکر این نکته حداقل از نظر تخصصی و حرفه ای بد نبود

swap مکان memory swapping هست (اصطلاح نادرستي كه ايشانندوزيها براش بكار ميبرن حافظه مجازي هست!) که در ویندوز هم معادلش رو داریم.

در ویندوز این memory swapping روی سیستم فایل برنامه میگیره و در فایلهایی ذخيره ميشه.
در لينوكس بجاي ايجاد فايل در سيستم فايل عادي، پارتيشن مخصوصی برای memory swapping ساخته ميشه (البته لینوکس درصورت لزوم امکان هستفاده از فایل روی پارتیشنهای معمولی رو هم برای این منظور داره).

اين پارتيشن هيچ سيستم فايلي نداره.

سيستم فايل براي ايجاد و تغيير و حذف بارها و بارهاي تعداد زيادي فايل ساخته شده و معمولا در دسترس كاربران و برنامه ها و اپلیکیشنها هست، درحاليكه در swap نيازي به چنين چيزهايي نيست و فقط حافظه مجازي رو پياده ميكنه.

حالا اينكه ساختار دقيقش چطوريه و چه مختصاتي داره بايد به رفرنسهاي تخصصي مراجعه كرد.

بنظرم مياد كه چنين سيستمي (پارتيشن مخصوصي براي memory swapping كه احتياجي به سيستم فايل نداره) كارايي و سرعت بالاتري هم داشته باشه.


19:

برنامه دريافت فايل GNU Wget
اين برنامه يك لوازم رايگان براي دريافت فايل از اينترنت در محيط متني ميباشد .

اين برنامه از پروتكل هاي HTTP، HTTPS و FTP پشتيباني ميكند و همينطور سازگار با سرايشانس دهنده هاي پراكسي هست .
Wget اين قابليت را دارد كه در پس زمينه، در حالي كه كاربر در سيستم وارد نشده هست، به فعاليت بپردازد.

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

Wget
تا اتمام كار، به فعاليت خود ادامه خواهد داد.

اين قابليت براي دانلود كردن فايلهاي بزرگ كه ساعتهاي زيادي طول ميكشند، مفيد هست.
Linux

Wget ميتواند لينكهاي موجود در سايتهاي وب را دنبال كرده و نسخه هاي محلي سايتتهاي وب را ايجاد نمايد و ساختار دايركتوري اونها را در كامپيوترتان ايجاد نمايد .

به اين عمليات اصطلاحا دانلود بازگشتي يا Recursive downloading اطلاق ميشود.

همينطور Wget ميتواند لينكهاي موجود در سايت وب را طوري تغيير دهد كه سايت را بتوان بصورت Offline در كامپيوتر مشاهده نمود .
Wget براي عملكرد رايشان خطوط آهسته و ناپايدار اتصال به اينترنت طراحي شده هست .

در صورتي كه اتصال شما دائما قطع ميشود، ايشانا بدليل بزرگ بودن فايل مجبور به قطع مداوم اتصال هستيد، Wget ميتواند پس از اتصال مجدد ادامه فايل را براي شما دريافت نمايد.

Wget
برنامه بسيار قابل اطميناني هست.

در بدترين واقعيات، امكان ندارد كه يك فايل را بصورت خراب دانلود كند، حتي اگر اتصال شما صدها بار قطع شده باشد.


براي يادگيري كامل اين برنامه نياز داريد تا مستندات اونرا به تايپ دستور man wget مطالعه نماييد.

اين مستندات حدود ۲۰ صفحه بوده و كليه گزينه هاي اين برنامه را توضيح داده هست.

این راهنما نیز با هستفاده از این مستندات نوشته شده هست.

در اينجا براي آشنايي شما با كاربرد اين برنامه، برخي گزينه هاي مهم را به همراه مثال شرح ميدهم :

  • - استفاده ساده : در حالت عادي براي دريافت يك فايل، بايد پس از دستور wget، آدرس URL فايل مربوطه را وارد نماييد.

    براي اين كار، با هستفاده از مرورگر خود، URL كامل فايل مربوطه را كپي كرده و در پنجره ترمينال، جلايشان دستور Paste نماييد.

    در صورتي كه قبلا در حال دريافت فايلي بوده ايد و دريافت اون به دلايلي نيمه كاره مانده و مايل به دريافت ادامه فايل هستيد، ميتوانيد از سوئيچ c براي اين كار هستفاده كنيد.

    به دو مثال زير توجه كنيد :


در مثال اول، wget شروع به دريافت فايلي را كه در جلايشان اون تعيين شده هست، خواهد كرد.

در مثال دوم، در صورتي كه اين فايل قبلا به صورت ناقص دريافت شده هست، ادامه اونرا دريافت خواهد كرد.

برنامه wget به صورت پيش گزيده و خودكار، در صورت قطع اتصال به هر دليل، ۲۰ بار عمليات دريافت را تكرار خواهد كرد.

در صورتي كه احساس ميكنيد اين تعداد ممكن هست براي اتصال كند و ناپايدار شما كم باشد، با هستفاده از سوئيچ t ميتوانيد تعداد اونرا تعيين كنيد .

به مثال زير توجه كنيد :


در مثال بالا، برنامه wget، در صورت قطع اتصال، ۴۵ بار مجددا به سرايشانس دهنده متصل شده و دريافت را تمام خواهد كرد .

در صورتي كه چنين اتصالي داريد، توصيه ميشود تا حتما سوئيچ c را هم بكار ببريد تا فايل از ادامه دريافت شود .
همانطور كه فرمودم، يكي از قابليت هاي برنامه wget، قابليت اجراي اون در پس زمينه هست.

براي اجراي اون در پس زمينه، كافي هست از دستور زير هستفاده كنيد :



در مثال بالا، برنامه wget در حالت پس زمينه اجرا شده و عمليات اون در فايل ثبتي به نام log ثبت ميشود.

  • - استفاده پيشرفته : در صورتي كه يك فايل حاايشان URL كامل فايلهايي كه نياز داريد دانلود شوند داريد، ميتوانيد با هستفاده از گزينه i از اون هستفاده كنيد:
$ wget -i | myFile


در مثال بالا، برنامه wget، آدرسهاي مورد نياز خود را از فايل myFile خواهد خواند.

قبلا فرمودم كه wget ميتواند يك سايت وب كامل را براي شما دانلود كرده و در كامپيوترتان ذخيره كند.

براي دريافت كامل يك سايت وب، بايد دستور زير را وارد نماييد :
$ wget -r http://www.gnu.org/ -o gnulog


در اين مثال، برنامه wget، نسخه اي از سايت وب gnu.org را با عمق ۵ دايركتوري و همان ساختار دايركتوري هستفاده شده در سايت، دريافت كرده و عمليات را در فايل gnulog ذخيره خواهد كرد.

در صورتي كه مايل هستيد، لينكهاي فايلهاي HTML طوري تبديل شود تا در كامپيوتر خودتان و در حالت Offline بتوانيد اونها را مرور كنيد، از گزينه زير هستفاده كنيد :
$ wget --convert-links -r http://www.gnu.org/ -o gnulog

در صورتي كه بخواهيد فقط محتايشانات يك دايركتوري حاايشان فايلهاي خاص را دريافت كنيد نيز، wget اين امكان را به شما اعطا ميكند .

به مثال زير توجه كنيد :

$ wget -r -l1 -A.png http://www.gnu.org/images/


در اين مثال، wget با عمق يك دايركتوري، تمام فايلهاي png موجود در دايركتوري مربوطه را دريافت خواهد كرد.

در صورتي كه هنگام دانلود ساختار يك سايت، اتصال قطع شود، براي ادامه بايد از گزينه nc استفاده كنيد:
$ wget -nc -r http://www.gnu.org


بصورت كلي، برنامه wget برنامه اي بسيار قدرتمند و انعطاف پذير بوده و كليه نيازهاي دريافت فايل شما را پوشش خواهد داد.

20:

پروژه لينوكس فارسي امسال به اتمام مي رسد

در سال 84 تعداد بسياري كتاب فارسي در زمينه وب سرور ، تعامل ايشانندوز و لينوكس و مهاجرت به لينوكس توسط مركز Ict پيشرفته شريف با همكاري شوراهاي عالي اطلاع‌‏رساني انفورماتيك به ساوقت‌‏ها و ارگان‌‏ها فرستاده شد.



به نقل بخش خبر شبكه فن آوري اطلاعات ايران، از ایلنا، مهندس جلال حاجي غلامعلي ، مشاور ارشد طرح ملي لينوكس فارسي ، با بيان اين مطلب، فراخوان نمود: سال گذشته با برپايي سمينارها و جلساتي در خصوص سيستم عامل ملي تعدادي از ساوقت‌‏ها به لينوكس مهاجرت پيدا كردند
ايشان ، فرمود: در حال حاضر چند بانك دولتي و خصوصي ، شركت‌‏هاي بيمه و چند ساوقت دولتي از لينوكس فارسي به عنوان سيستم عامل هستفاده مي‌‏كنند.


مشاور ارشد طرح ملي لينوكس فارسي ، از ديگر فعاليت‌‏هاي مركز Ict پيشرفته شريف به عنوان بنيان‌‏گذار لينوكس فارسي به چاپ كتاب‌‏هايي چون سيستم عامل متن باز و دولت‌‏ها ، كسب و كار با سيستم عامل متن باز و وب سرايشانس آپاچي اشاره كرد و اضافه کرد: اين مركز هر ماه يك نشريه در خصوص سيستم عامل آزاد- متن باز ارايه مي‌‏دهد.


مهندس حاجي غلامعلي ، با اشاره به انجام سمينارهاي مختلف در دانشگاه‌‏ها ، يادآور شد: براي فرهنگ‌‏سازي لينوكس فارسي به آموزش اين نرم‌‏افزار در دانشگاه‌‏هاي مختلف و تعدادي از ساوقت‌‏ها پرداختم.


ايشان ، با بيان اين كه دولت به اندازه كافي بودجه در اختيار اين طرح برنامه نداده هست ، اضافه کرد: طي هفته گذشته دو كتاب مهاجرت به لينوكس و بانك اطلاعاتي پست گره توسط مركز Ict پيشرفته شريف ترجمه و به شوراي عالي اطلاع‌‏رساني و انفورماتيك ارايه شد.


مهندس حاجي غلامعلي ، با اظهار اميدواري از اين كه ساوقت‌‏ها و ارگان‌‏هاي دولتي از اين اپن‌ ‏سورس هستفاده كنند ، در خصوص تركيب جديد شوراي عالي اطلاع‌‏رساني ، فرمود: اميدواريم امسال با اين تركيب جديد پروژه ملي لينوكس فارسي را به اتمام برسانيم.


مشاور ارشد طرح ملي لينوكس فارسي ، خاطرنشان كرد: هر پروژه‌‏اي داراي ابتدا و انتها هست و پروژه لينوكس فارسي نيز در انتهاي راه برنامه دارد كه اميد مي‌‏رود پايان امسال اين پروژه به اتمام برسد.


ايشان ، پشتيباني ساوقت‌‏ها از اين طرح را بسيار موثر ارزيابي و تاكيد كرد: كمبود اعتبارات اختصاص داده شده و عدم اختصاص بودجه مصوب شده باعث شد كه پروژه ملي لينوكس فارسي تا حدي به تعايشانق بيافتد.


21:

عرض ادب و خسته نباشید به هستارتر محترم تاپیک
با ارزوی موفقیت

فارسی نویسی در لینوکس Redhat9
به چه چیزهایی نیاز داریم
تعدادی قلم یونیکد که میتوانید انها را از ویندوز قرض بگیرید و یا از سایت www.linuxiran.org دانلود کنید
ابتدا فونتها را در یک پوشه کپی کرده .

مراحل بعدی به صورت زیر هست

به صورت کاربر ریشه وارد سیستم شوید.
سپس دستور زیر را تایپ کنید تا برنامه ویرایشگرvi اجرا شده و فایل پیکر بندیXfree86 را برایتان باز کند :
vi/etc/X11/XF86Config$

در برنامه vi در متن فایل باز شده به دنبال section InputDevice گشته و اون را پیدا کنید.
پس از پیدا کردن این فایل در یک فضای خالی کلید insert را فشار داده و فرمان های زیر را تایپ کنید
Option"XkbOptions" "grap:ctrl-shift-toggle"
Option"XkbLayout""us,ir"
کار کردن با vi مشابه ویرایشگرهای متنی دیگرست .خط نخست به Xfree86 میگویند که با فشردن Ctrl+Shift زبان صفحه کلید عوض میشود و خط دوم ،زبان دوم را که فارسی هست به اون معرفی میکند .


پس از اتمام تایپ خطوط بالا کلیدEsc را فشار دهید سپس کلید: را فشار داده و تایپ کنید wq و کلیدEnter را بزنید .
این کار تغییرات انجام شده را ذخیره کرده و به خط فرمان باز میگرداند .

در این مرحله باید دایرکتوری مربوط به فونت های True Type را به Xfree86 معرفی کنید .

برای این کار مجددا در خط فرمان دستور
vi/etc/fonts/fonts.conf را تایپ کنید .

این کار فایل پیکر بندی قلم ها را باز میکند.

به دنبال خط زیر که در ابتدای صفحه هست بگردید
usr/X11R6/lib/X11/fonts/Type1/

پس از یافتن فایل مجددا با فشار کلید insert خط /usr/X11R6/lib/X11/fonts/TTF را زیر اون اضافه کنید.
پس از اتمام کلیدEsc وسپس: رافشار و تایپ کنید wq تا تغییرات ذخیره شده و از برنامه vi خارج شوید.
حالا باید فایل های قلم ها را در مسیرهای مربوطه کپی کنید
فرامین زیر را تایپ کنید:
cp/address/*.tft/usr/X11R6/lib/X11/fonts/TTF/$
پس از اتمام کار کلیدهای Alt+Ctrl+Backspace را فشار دهید تا Xserver مجددا راه اندازی شود و تغییراتی که ایجاد کردید در سیستم اعمال شود.

مجددا سیستم را login کرده و این بار در منوی اصلی قسمت preferencesبخش Font را انتخاب نمایید.


یکی از قلم هایی که نصب کرده اید مثلا فونتTahoma را انتخاب کنیداکنون میتوانید در بخش های مختلف و برنامه هایی که با هستفاده ازGTK2.0 طراحی شدند فارسی تایپ نمایید.
میتوانید در مرورگر اینترنتی خود و یا در مجموعه برنامه های اداریOpenOffice نسخه 1.1 به بعد نیز از زبان فازسی هستفاده کنید.
editor@computerjavan-mag.com
WWW.TECHNOTUX.COM
لینوکس یعنی ازادی

22:

نوشتن برروی DVD



قبل از هرچیز باید بسته‌ی dvd-rw را در لینوکستان نصب کنید ، این لوازم به صورت rpm و apt ، emerge و urpmi موجود هست.پس از نصب برای هستفاده باید از دستور growisofs هستفاده کنید .
۱.برای نوشتن یک دایرکتوری در DVD از این دستور به صورت زیر هستفاده کنید:

growisofs -Z /dev/cdroms/cdrom0 /path/to/your/folder/
توجه داشته باشید که در محل dev/cdroms/cdrom0/ باید مسیر درایو DVD خود را بنویسید.
۲.ایجاد image برای DVD
این کار بسیار آسان هست کافیست بنویسید :

mkisofs -r -o choose_a_name.iso /path/to/folder
۳.نوشتن یک فایل iso.

در DVD
برای نوشتن ایزوها برروی دیسک DVD از دستور زیر هستفاد کنید.



growisofs -speed=4 -Z /dev/cdroms/cdrom0=path_to_iso.iso


برای اطلاعات بیشتر همواره می‌توانید از دستور man هستفاده کنید به صورت :
man growisofs
ونیزمی توانید از سایت رسمی این برنامه نیز برای اطلاعات بیشتر کمک بگیرید :


23:

مفاهیم کلاسترها و OpenMosix

مفاهیم کلاسترها و OpenMosix

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

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

مقاله حاضر برگرفته از نوشته‌های دانیل رابینز (Daniel Robbins) می‌باشد.

این نوشته‌ها را می‌توانید از این نشانی دریافت نمایید.

دانیل رابینز طراح و خالق لینوکس Gentoo می‌باشد.

همانطور که اشاره کردم، این یک ترجمه تنها نیست.

من خود تمام اونرا عملا انجام داده و بخش‌های عملی راهنمای فوق را کاملا تغییر داده و روش آسان‌تری را برای اجرای کلاستر پیشنهاد کرده‌ام.

در بخش نخست این مقاله که اکنون در حال مطالعهاون هستید، با مفاهیم کلاسترهای لینوکس تا حدودی آشنا خواهید شد.

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

این امور پردازشی همه چیز می‌تواند باشد.

از پردازش‌های سنگین علمی تا تبدیل فایل‌های موسیقی و یا رندر کردن جلوه‌های ویژه فیلم‌های سینمایی.

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

یکی از شناخته شده ترین اونها کلاستر Beowulf است.

این کلاستر حاوی چندین ماشین هست که توسط یک شبکه محلی پرسرعت به هم متصل شده‌اند.

برای هستفاده از این سیستم‌های کلاستر، برنامه‌های کاربردی باید مجددا برای هستفاده از اون با هستفاده از کتابخانه‌های کلاستر سازی نوشته شوند.

عمومی‌ترین کتابخانه‌های کلاستر سازی عبارتند از PVM و MPI.

هر دوی این کتابخانه‌ها بسیار عالی کار می‌نمايند.

با هستفاده این کتابخانه‌ها، برنامه نویسان قادر به نوشتن برنامه‌هایی هستند که از منابع روی کلاستر همانند منابع روی یک کامپیوتر، بهره گیری نمایند.برای بسیاری از برنامه‌های کاربردی، PVM و MPI امکان افزایش خطی قدرت پردازش کلاسترها را با توجه به تعداد ماشین‌های روی اون فراهم می‌نمایند.
PVM و MPI به درد همه نمی‌خورد!
با اینکه کلاسترهای Beowulf بسیار قدرتمند هستند، ولی به درد همه کس نمی‌خورند! بزرگترین اشکال اونها نیاز به نرم‌افزارهای خاص می‌باشد که با هستفاده از PVM و MPI نوشته شده باشند تا بتوانند از مزایای کلاستر هستفاده نمايند.

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

اونها به راحتی قادرند تا از MPI و PVM استفاده نمايند.
حقیقتا % افراد و موسساتی که برنامه‌های کاربردی خود را از ابتدا می‌نویسند بسیار پایین هست.

برای کسانی که مایل هستند تا یک کلاستر بنا کرده و از مزایای اون در اجرای برنامه‌های کاربردی عادی هستفاده نمايند، این یک مسئله بزرگ هست! برنامه‌های کاربردی این دسته از موسسات بدون هستفاده از کتابخانه‌های کلاستر سازی نوشته شده‌اند، بنابراین این گونه موسسات قادر نیستند تا از مزایای کلاسترها بهره‌گیری نمایند.
آیا جالب نیست که یک فناوری وجود داشته باشد تا بتوانید با هستفاده از اون از مزایای کلاسترهای لینوکس هستفاده کنید، بدون اونکه نیاز داشته باشید تا برنامه‌های کاربردی خود را از ابتدا نوشته و یا حتی اونها را مجددا کامپایل نمایید؟ خوشبختانه چنین فناوری وجود دارد و نام اون OpenMosix است!
ورود به OpenMosix
OpenMosix
قابلیت‌های کلاستر سازی را به هسته لینوکس اضافه می‌کند، بنابراین هر پروسه هستاندارد لینوکس قادر خواهد بود تا از مزایای منابع کلاستر هستفاده نماید.

با هستفاده از تکنیک‌های موازنه بار تطبیقی (Adaptive Load Balancing) پردازش‌های در حال اجرا بر روی یک گره (node) از کلاستر، قادرند تا بطور نامحسوس به یک گره دیگر از کلاستر مهاجرت کرده و بتوانند سریعتر اجرا شوند.

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

در حقیقت، یک نصب پیش‌گزیده OpenMosix به طور خودکار پردازش‌ها را به بهترین گره منتقل خواهد کرد.

این قابلیت OpenMosix را تبدیل به یک راه‌حل کلاستر سازی می‌کند که می‌تواند برای بخش عظیمی از برنامه‌ها مفید باشد.
OpenMosix دقیقا چکار می‌کند؟
بزرگترین کاری که OpenMosix انجام می‌دهد، تبدیل دسته‌ای از ماشین‌های لینوکس به یک سیستم بزرگ مجازی چند پردازنده‌ای متقارن (SMP=Symmetric MultiProcessor) است.

هرچند نحوه عملکرد اون با سیستم‌های SMP واقعی مقداری تفاوت دارد.

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

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

با هستفاده از OpenMosix شما قادر به ایجاد کلاسترهایی حاوی دها و حتی صدها کامپیوتر با سخت‌افزار ارزان هستید در حالی که سیستم‌های SMP که حاوی تعداد زیادی پردازنده باشند، می‌توانند بسیار گرانقیمت باشند.

برای بسیاری از برنامه‌های کاربردی، OpenMosix نسبت به سیستم‌های SMP یا Mainframe، حرف بیشتری برای فرمودن دارد.

البته دلیلی وجود ندارد که شما نتوانید OpenMosix را بر روی سیستم‌های قدرتمند چند پردازنده‌ای اجرا نمایید.

حتی این امکان وجود دارد تا OpenMosix را به همراه برنامه‌های کاربردی که با MPI یا PVM توسعه یافته‌اند، اجرا نمایید تا سرعت کلاستر خود را بهینه نمایید.
همانند سیستم‌های SMP سنتی، OpenMosix قادر نیست تا یک پروسه را روی چند پردازنده فیزیکی اجرا نماید.

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

بعلاوه در حال حاضر OpenMosix امکان جداسازی رشته‌های متعدد به هم پیوسته را از یکدیگر فراهم نمی‌کند.
OpenMosix
قادر هست تا پروسه‌های هستاندارد لینوکس را بین گره‌های کلاستر بدون مشکل مهاجرت دهد.

در صورتی که یک برنامه کاربردی تعداد زیادی زیر پروسه داشته باشد، اونگاه OpenMosix قادر هست تا هر یک از اونها را به یک گره مناسب در کلاستر منتقل کند.

شما می‌توانید از این قابلیت حتی در برنامه‌های کاربردی که دارای زیر پروسه نیستند نیز هستفاده کنید.

برای مثال، در صورتی که نیاز دارید تا تعدادی فایل موسیقی را از فرمت wav به mp3 تبدیل نمایید، تبدیل هر فایل یک پروسه خواهد بود.

شما می‌توانید تمام این پروسه‌ها را یکجا اجرا نمایید.

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

در صورتی که شما ۱۲ فایل موسیقی و ۱۲ گره همسان داشته باشید، عملیات تبدیل ۱۲ بار سریعتر انجام خواهد شد.
Mosix در برابر OpenMosix
پروژه OpenMosix جدیدترین شعبه پروژه Mosix می‌باشد که یکی از اهداف اون فراهم کردن کلاستر سازی نامحسوس روی لینوکس هست.

پس چرا ما از OpenMosix استفاده کنیم؟ دلایل خوبی برای این امر وجود دارد.

در اواخر سال ۲۰۰۱ رهبری پروژه Mosix تصمیم به انتشار نسخه‌های جدیدی از Mosix تحت مجوزهای غیر GPL گرفت (کدهایی که قبلا GPL بودند).

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

خوشبختانه این کاربران تنها کسانی نبودند که در باره این تغییرات جدید نگران بودند.

موشه بار (Moshe Bar) یکی از مدیران پروژه Mosix با این تغییر مجوز از GPL موافق نبود.

بنابراین وی پروژه OpenMosix را شروع کرد تا این اطمبنان حاصل شود که ارائه نسخه آزاد و رایگان Mosix به عموم امت ادامه پیدا خواهد کرد.

سایت رسمی پروژه OpenMosix در آدرس http://openmosix.sf.netیا http://openmosix.orgبرنامه دارد.
پس از آغاز این پروژه، تعداد زیادی از کاربران Mosix به OpenMosix روی آوردند.

سیاست توسعه باز موشه باعث شد تا توسعه OpenMosix سرعت بیشتری بگیرد.

در حال حاصر ۱۴ نفر بطور فعال روی پروژه OpenMosix کار می‌نمايند در حالی که تعداد افراد پروژه Mosix تنها ۴ نفر هست.

در حال حاضر تعداد زیادی رفع اشکال، بهینه سازی سرعت و بهینه سازی در کدهای OpenMosix صورت گرفته هست و تعدادی قابلیت جدید و بهینه سازی مجدد در سرعت نیز بزودی ارائه خواهند شد.

در حقیت جدا شدن پروژه OpenMosix از Mosix باعث ارائه راه‌حل‌های بهتری برای کلاستر سازی تحت سیستم‌عامل لینوکس فراهم نموده هست.

24:

لینوکس Ubuntu

Linux
Ubuntuیکی از توزیع‌های لینوکس هست که بر پايه دبیان پایه‌گذاری شده‌است اما در چندین مورد با دبیان تفاوت دارد.

نام اوبونتو از یکی از مفاهیم آفریقای جنوبی به معنی "انسانیت نسبت به دیگران"(Humanity To Others) گرفته شده ‌است.
لینوکس Ubuntu (اوبونتو)‌ در اکتبر 2004 توسط کمپانی Ganonical در آفریقای جنوبی و همانند اکثر توزیع های لینوکس تحت گواهی GPL عرضه گردید که آخرین نسخه پایدار اون 5,10 می باشد.

اوبونتو هر شش ماه یک بار نسخهجدیدی را به بازار عرضه می‌کند.

علاوه بر این برای هر نسخه از اوبونتو، تا ۱۸ ماه پس از انتشار اون نسخه، پشتیبانی ارائه می‌شود.
این توزیع یک توزیع مبتنی بر Debian بوده و از میزکار GNOME 2.8 که به تازگی ارائه شده، هستفاده می‌کند.

مجموعه اداری بکار رفته در اون نیز مجموعه OpenOffice.org هست.

برخلاف اکثر توزیع‌های لینوکس، Ubuntu تنها بر روی یک دیسک ارائه می‌شود که دلیل اون هم روشن هست Ubuntu تنها نرم‌افزارهای کاربردی لازم را به همراه خود دارد بدون هیچ چیز اضافی و از میزکار KDE هم که خبری نیست.
البته طرفداران KDE نسخه‌ای از این توزیع را با نام Kubuntu (کوبونتو) ارائه کردند که محیط پیش‌فرض اون KDE هست.

این توزیع از سوی کاربران لینوکس در انگلستان به عنوان بهترین توزیع این سیستم عامل در سال ۲۰۰۵ انتخاب شد.

پیش از این، لینوکس اوبونتو از سوی مجله معتبر TUX نیز به عنوان بهترین توزیع لینوکس در سال ۲۰۰۵ انتخاب شده بود.

شما همچنین می توانید این توزیع از لینوکس را بصورت کاملاً رایگان , از طریق پست دریافت نمایید !؟
برای سفارش این Cd ها ابتدا باید در این سایت ثبت نام کنید و سپس با ورود به این صفحه و پر کردن فرم درخواست متنظر رسیدن بسته ارسالی از طرف شرکت باشید.

Cd ها معمولاً بین 30 تا 45 روز بدست شما خواهد رسید و از این بابت هیچ گونه مبلغی از شما گرفته نخواهد شد مگر اینکه تعداد Cd های سفارشی شما زیاد باشد که در اینصورت باید مبلغی را بابت هزینه گمرک بپردازید.


سفارش رایگان CD
انجمن مربوط به سفارش رایگان CD

Ubuntu در Wikipedia
سایت لینوکس Ubuntu

باتشکر از سایت Technotux


25:

راهنمای رایت CD در لینوکس
Linuxلینوکس ابزارهای قدرتمند و قابل انعطافی برای رایت CD در اختیار کاربران برنامه میدهد.

شما میتوانید دیسکهایی ایجاد کنید که در تمام سیستم عامل ها قابل مطالعهبوده و یا فایلهای iso را برای پخش کردن و یا دانلود تهیه کنید.
رایت کردن CD از خط فرمان در هر سیستم عاملی پر رمز و راز و دردسر ساز هست.

لینوکس هم در این میان هستثنا نیست.

تعداد زیادی از نرم افزارهای لینوکس با هستفاده از فایلهای iso توزیع میشوند.

بنابراین در صورتی که نحوه رایت کردن را یاد بگیرید، میتوانید به سادگی دیسکهای خود را با هستفاده از این فایلهای ایزو ایجاد کنید.
نرم افزارهای رایت CD برای هر دو سیستم عامل لینوکس و ویندوز وجود دارند.

ولی انواعی که برای لینوکس اراپه شده اند، از انواع مشابه خود در ویندوز قوی تر هستند.

در این مقاله ما نگاهی به دو فرمان mkisofs و cdrecord خواهیم انداخت.

این دو فرمان مسپولیت اصلی ایجاد CD ها را در لینوکس عهده دار هستند.

فرمان mkisofs یک تصویر از CD که برنامه هست کپی شود با فرمت فایل ISO9660/JOLIET/HFS ایجاد میکند.
برای گرفتن نتایج همیشه سعی کنید آخرین نسخه این برنامه ها را تهیه کنید.آخرین نسخه ارائه شده، نسخه 2 است.
برای کسانی که در دنیای رایت CD تازه کار هستند چند اصطلاح را توضیح میدهیم:
-CD-R : دیسکهای قابل رایت.

یکبار امکان رایت روی اونها وجود دارد.
-CD-RW : امکان رایت و پاک کردن و رایت دوباره روی این دیسکها وجود دارد.

بیشتر درایوهای قدیمی امکان مطالعهاین نوع دیسکها را ندارند.
-CD های تجاری (نقره ای) به صورت پرس شده تولید میشوند نه بوسیله نور لیزر.
-Yellow Book : فورمت فیزیکی CD های حاوی داده.
-Orange Book : فرمت فیزیکی دیسکها CD-R.
-ISO9660 : استاندارد قدیمی فرمت فایل.

با امکان ایجاد فایلهای 8.3 .
-Rock Ridge : اضافاتی برای هستاندارد ISO9660 که در سیستمهای یونیکس امکان داشتن لینکها وجود داشته و تمام اطلاعات مالکیت و خصوصیات فایل حفظ میشوند.

خصوصیات فایل یونیکس هنگامی که این دیسکها در ویندوز خوانده میشوند، نمایش داده نمی شود.
-Joliet : اضافات مایکروسافت برای هستاندارد ISO9660 .

با این اضافات امکان بکارگیری کاراکترهای یونیکد و نام بلند فایل در دیسکها وجود دارد.
-El Torito : فورمت دیسکهای قابل بوت.
-HFS : سیستم فایل اصلی مکینتاش.
-Multisession : با این قابلیت میتوان در دیسکی که هنوز پر نشده هست، تا پر شدن کامل در چندین نوبت اقدام به رایت داده کرد.

به شرطی که دیسک در دفعات قبلی بسته نشده باشد.


شبیه ساز اسکازی لینوکس
در لینوکس میتوانید از رایتر های SCSI و یا IDE/ATAPI استفاده کنید.

رایترهای مبتنی بر پورت پارالل برایتان جز دردسر واذیت چیزی نخواهند بود.

رایتر های مبتنی بر USB هم کند هستند.

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

البته شانس شما با درایوهای جدید USB 2.0 بیشتر خواهد بود.
برای بکارگیری رایترهای IDE/ATAPI که عمومی ترین رایتر ها هستند، مقداری تنظیم باید اجرا کنید.

برای اینکه ببینید در لینوکس تان این تنظیمات قبلا انجام شده هست یا نه، دستور زیر را تایپ کنید:
$ cdrecord -scanbus
در صورتی که درایو رایتر شما نمایش داده شد، همه چیز آماده هست و نیاز به انجام کار دیگری ندارید.

در غیر اینصورت باید تنظیم کوچکی اجرا کنید.

ابتدا باید ببینید که نام درایوهای نصب شده در کامپیوترتان چیست.

برای این کار دستور زیر را تایپ کنید:
$ dmesg | grep '^hd.:'
خروجی مشابه زیر دریافت خواهید کرد:
hda: WDC WD400EB-00CPF0, ATA DISK drive
hdb: CD-W58E, ATAPI CD/DVD-ROM drive
hdc: GCR-8521B, ATAPI CD/DVD-ROM drive
خوب در اینجا نام دستگاه رایتر ما hdb و درایو CD معمولی hdc است.

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

برای این کار :
در صورتی که از لیلو هستفاده میکنید دو خط زیر را به آخر اون اضافه کنید:
append="hdb=ide-scsi"
append="hdc=ide-scsi"
این کار را در حالتی که کاربر root هستید و با هستفاده از ویرایشگر متنی مانند vi اجرا کنید.

در صورتی که از گراب هستفاده میکنید باید در فایل etc/grub.conf در پایان خط kernel خط زیر را اضافه کنید:
hdb=ide-scsi hdc=ide-scsi
برنامه دادن درایوها در حالت شبیه سازی اسکازی تغییری در عملکرد اونها ایجاد نمی کند بلکه فقط نام اونها تغییر خواهد کرد.

حال کامپیوترتان را بوت کرده و مجددا فرمان زیر را تایپ کنید:
$ cdrecord -scanbus
در صورتی که خروجی مانند زیر دریافت کردید همه چیز درست هست:
Cdrecord 2.0 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jurg Schilling
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.7'
cdrecord: Warning: using inofficial libscg transport code version (schily - Red
Hat-scsi-linux-sg.c-1.75-RH '@(#)scsi-linux-sg.c 1.75 02/10/21 Copyright
1997 J.

Schilling').

scsibus0:
0,0,0 0) 'TEAC ' 'CD-W58E ' '1.0A' Removable CD-ROM
0,1,0 1) 'HL-DT-ST' 'CD-ROM GCR-8521B' '1.00' Removable CD-ROM

Linux


ایجاد فایلهای ISO
پس از اینکه فایلهای مورد نظر برای رایت شدن را انتخاب کردید، رایت CD را باید در دو مرحله اجرا کنید.

ایجاد فایل ایزو توسط دستور mkisofs و سپس رایت اون توسط دستور cdrecord .

مثال زیر نحوه ایجاد یک فایل ایزو را نشان میدهد:
$ mkisofs -o test.iso -Jrv -V test_disk /home/carla/
در مثال بالا:
-گزینه o نام فایل ایزو را مشخص میکند.
-گزینه J از هستاندارد نامگذاری Joliet برای سازگاری با ویندوز هستفاده میکند.
-گزینه r از هستاندارد نامگذاری Rock Ridge برای سازگاری با لینوکس و یونیکس هستفاده میکند.
-گزینه v حالت verbose است.
-گزینه V یک نام برای دیسک ایجاد میکند که در Windows Explorer نمایش داده میشود.
-گزینه آخر مسیر فایلهایی هست که از اونها فایل ایزو تهیه میشود.
پس از اینکه ایجاد فایل iso به اتمام رسید، میتوانید اونرا مانند یک فایل سیستم متصل(mount) کرده و صحت محتویات اونرا بررسی کنید :
$ mkdir /test_iso
$ mount -t iso9660 -o ro,loop=/dev/loop0 test.iso /test_iso


رایت کردن دیسک
رایت کردن دیسک به آسانی خوردن یک شیرینی هست.

ابتدا باید آدرس درایو رایتر خود را پیدا کنیم.

در دستور cdrecord -scanbus که در بالا مشاهده کردید، آدرس رایتر ما 0,0,0 است.

برای شروع رایت دیسک دستور زیر را تایپ کنید:
$ cdrecord -v -eject speed=8 dev=0,0,0 test.iso
در دستور بالا:
-گزینه v حالت Verbose است.
-گزینه eject پس از اتمام رایت، دیسک را از درایو خارج میکند.
-گزینه speed سرعت رایت را مشخص میکند.
-گزینه dev آدرس رایتر را مشخص میکند.
-گزینه پایانی هم نام فایل ایزو هست.
خوب این هم راه ایجاد دیسکی که در تمام پلاتفورم ها قابل مطالعهخواهد بود.

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

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

درایوهای جدید دارای تکنولوژی به نام Burn-Proof هستند که از این امر جلوگیری به عمل میاورد.


کپی دیسک
برای کپی مستقیم یک CD از درایو CD-ROM به رایتر میتوانید از دستور زیر هستفاده کنید:
$ cdrecord -v dev=0,0,0 speed=4 -isosize /dev/scd0
البته این کار را در یک دستگاه قدیمی و کند انجام ندهید! این راه سریع هست ولی ممکن هست ایجاد اشکال کند.

راه بهتر و امن تر کپی محتویات دیسک در دیسک سخت و سپس رایت اون هست:
$ mount /cdrom
$ dd if=/dev/scd0 of=/tmp/diskfile.iso
$ cdrecord dev=0,0,0 speed=8 fs=8m -v -eject -dummy /tmp/diskfile.iso
در مثال بالا:
-گزینه fs=8m سایز بافر را تعیین میکند.

هرچه بیشتر بهتر.
-گزینه dummy ابتدا حالت رایت را شبیه سازی کرده و در صورت نبود اشکال رایت انجام میشود.


دیسکهای Multisession
میتوانید دیسکها را تا پر شدن، در چندین نوبت رایت کنید.

ایجاد این نوع دیسکها با هستفاده از برنامه های گرافیکی رایت CD آسانتر خواهد بود ولی امکان انجام اون با خط فرمان هم وجود دارد:
$ cdrecord -v -eject speed=8 dev=0,0,0 -multi test.iso
با گزینه multi دیسک در پایان رایت باز گذاشته شده و میتوانید در آینده نیز به اون اطلاعات اضافه کنید.

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

برای این کار از دستور زیر هستفاده کنید:
$ cdrecord dev=0,0,0 -msinfo
0,27139
حتما دیسکی که میخواهید اطلاعات به اون اضافه کنید در درایو برنامه داشته باشد.

سپس فرمان زیر را برای ایجاد فایل ایزو تایپ کنید:
$ mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,0,0 /files/path/
و یا میتوانید دو دستور بالا را با هم ترکیب کنید تا کار آسانتر شود:
$ mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,0,0 -msinfo` -M 0,0,0 /files/path/


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

از دو دستور mkisofs و cdrecord میتوانید برای رایت دیسکهای DVD نیز هستفاده کنید.

توجه داشته باشید که برنامه های گرافیکی زیادی برای رایت CD همراه با و خارج از لینوکس وجود دارند ولی شما در خط فرمان میتوانید بسیار قدرتمند تر و انعطاف پذیرتر عمل کنید در حالی که در برنامه های گرافیکی راحتی کار بیشتر هست.

26:

منبع: www.GNUIran.org.
نصب و تنظیم X سرور

اغلب نیازی به نصب دستی X server ندارید چرا که در بیشتر توزیع ها هنگام نصب یک محیط گرافیکی سرور X نیز به طور خودکار نصب می شود.

اما اگر به هر دلیل به نصب دستی اون احتیاج دارید یک راه کامپایل اون از کد های سورس هست و راه دیگر هستفاده از بسته های نرم افزاری deb و rpm است.

اگر بسته ی rpm یا deb اون را دانلود کرده اید یا در اختیار دارید می توانید از فرمان زیر برای نصب هستفاده کنید :


Linux
#rpm -Uvh xfree86-server-4.3.0-2_i386
# dpkg -i xfree86-server-4.3.0-2_i386

البته اگر از دبیان هستفاده می کنید می توانید به راحتی با هستفاده از لوازم apt-get به روش زیر این سرور را نصب کنید:


Linux
#apt-get install xfree86-server

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


اما اگر سرور X شما پس از نصب دستی یا پس از نصب لینوکستان اجرا نشد چه؟ اگر مشکلی وجود داشت؟ برای این که بتواند این محیط را تنظیم کنید لازم دوراه در پیش پای شماست ،‌یک راه از طریق لوازم های تنظیم یا configuratin tools و راه دیگر به صورت دستی و با ویرایش فایل های این محیط.برای تنضیم دستی شما باید فایل های Xfree86 را در یک ویرایشگر متن (Text Editor) باز کنید و به ویرایش اون ها مشغول شوید.

فایل های تنضیمات X11 اغلب در مسیر etc/X11/ وجود دارند و فایل اصلی که شما باید ویرایش کنید اغلب بانام XF86Config یا XF86Config-4 وجود دارد.

اما برای ویرایش از طریق برنامه های تنظیم نماينده باتوجه به نسخه ی Xfree86 شما می توانید از لوازم های زیر هستفاده کنید:
برای Xfree86 3.3.x
x86config :این لوازم به صورت متنی اجرا می شود و سپس اجرا از شما تعدادی پرسش در باره ی سیستمتان می پرسد ،‌از جمله در باره ی ماوس ،‌صفحه کلید ،‌مانیتور ،کارت گرافیک و حافه ی گرافیکی کامپیوتر شما.

نکته ی قابل توجه این که در این لوازم جایی برای برگشت به قبل و اصلاح داده ندارید و اگر مقداری را اشتباه وارد کردید باید روند تنظیم را از ابتدا آغاز کنید.


Xconfigurator :این لوازم اگر از یک محیط متنی یا text-based اجرا شود به صورت متنی و اگر از محیط X اجرا شود اغلب به صورت گرافیکی (GUI) اجرا می شود.

نسخه های اخیر این لوازم محیط Xfree86 4.x را نیز پشتیبانی می کند.


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


در کل Xconfigurator برای تنظیم های ابتدایی X و XF86Setup برای دوباره تنظیم کردن و در واقع بهینه سازی محیط مناسبند.




برای Xfree86 4.x
Xfree86 :برای تنظیم در محیط متنی در این نسخه خود Xfree86 یک لوازم تنظیم پیش بینی کرده هست ، برای این که بتوانید از این لوازم هستفاده کنید ،‌کافیست xfree86 -configure را در خط فرمان تایپ کنید .

تا برنامه اجراشود.


Xconfigurator : همان طور که قبلانیز اشاره شد نسخه های اخیر این برنامه علاوه بر Xfree86 3.3.6 از Xfree86 4.x نیز پشتیبانی می کند.


xf86cfg : این لوازم فقط در Xfree 4.x وجود دارد و یک لوازم بر مبنای X است ، بنابر این یک محیط گرافیکی در اختیار شما برنامه می دهد و مسلما برای تنظیمات اولیه ی X نامناسب هست امابرای تنظیم مجدد X ابزاریست مناسب و کار آمد.(می توانید یک نما از این برنامه را در شکل شماره ی ۱ مشاهده فرمایید.)


Linux
شکل شماره۱


ابزارهای موجود در توزیع های مختلف : اغلب توزیع ها برای تنظیم X لوازم هایی ویژه دارند ،‌برای نمونه در فدورا کافیست در خط فرمان تایپ کنید redhat-config-xfree86 تا با لوازم Display Setting tool به تنظیم بپر دازید و یا در توزیع زوزه SuSE می توانید از لوازم YaST استفاده کنید.




اجرای X
برای اجرای x کافیست سپس نصب و تنظیم ابتدا در حالت متنی وارد سیستم شوید(login) و سپس در مقابل اعلان فرمان بنویسید startx با این کار سرور X در کامپیوتر شما اجرا خواهد شد.


مفهوم مدیر پنجره یا Window Manager


سپس اجرای X server شما می توانید بدون واردشدن به مدیر پنجره به راحتی اغلب برنامه ا رااجرا کنید ، اما خواهیددید که هیچ امکانی برای بزرگ و کوچک کردن پنجره ها وجود ندارد ،‌ از طرفی شما نمی توانید چند پنجره را هم وقت مدیریت کنید ، بنابر این به یک مدیر پنجره یا Window Manager احتیاج خواهدید داشت.

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

در حال حاضر در سیستم عامل های مختلف انواع زیادی focus وجود دارد از جمله:
۱.click-to-focus
پنجره ای انتخاب می شود که بر روی اون کلیک شده هست.
2.focus-follow-mouse
پنجره ای انتخاب می شود که ماوس برروی اون برنامه دارد و نیازی به کلیک نیست ،‌هر جا که ماوس شما باشد اون پنجره فعال می شود و titlebar اون پر رنگ تر از سایرین نمایش داده می شود.
بسیاری از مدیران پنجره منو هایی برای تنظیم مدیر پنجره و پنجره ها در اختیار کابران برنامه می دهند که اغلب با یک کلیک راست بر روی میز کار قابل دسترسی هست.

از جمله امکاناتی که اغلب مدیران پنجره در لینوکس فراهم آورده اند امکان pager است .pager یک برنامه هست که به شما این امکان را می دهد که بتوانید از بیش از یک محیط کار (workspace) در صفحه ی نمایش هستفاده کند ، برای نمونه در یکی لغت نامه و در دیگری یک برنامه ی تایپ را اجرا کنید و با این تقسیم کار از شلوغ شدن محیط کارتان جلوگیری کنید.
باید توجه داشته باشید که یک مدیر پنجره نمی تواند محتوای پنجره ها را مدیریت کند.

منظور از محتوا دکمه ها و منوهای خود برنامه هست مانند منوی file یا دکمه ی OK که در اغلب برنامه ها جود دارد.



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


KWM : این مدیر پنجره بخشی از محیط میز کار KDE می باشد که وظیفه ی مدیریت پنجره در این محیط را دارد.


Metacity :این مدیر پنجره اغلب در محیط میز کار GNOME استفاده می شود و در واقع مدیر پنجرهی پیش فرض گنوم به شمار می آید.برای اطلاعات بیشتر در باره ی این مدیر پنجره می توانید به آدرس مقابل مراجعه کنید: http://www.gnome.org/softwaremap/projects/metacity


Sawfish : این مدیر پنجره در محیط میز کار GNOME نسخه های 1.2 تا 1.4 پیدا می شود و در حال حاضر از اون کمتر هستفاده می شود .

برای اطلاع از این میز کار نیز می توانید به این ادرس مراجعه کنید: http://sawmill.sourceforge.net


IceWM : این مدیر پنجره (window manager) با وجود حجم کم اون قابلیت های بسیار زیادی در اختیار هستفاده نمايندگان برنامه می دهد مانند pager(پیجو!) یا مدییت آسان پنجره ها .

برای کسب اطلاعات بیشتر به سایت رسمی اون در www.icewm.org مراجعه فرمایید.


WindowMaker : این مدیر از رابط قدیمی NeXT الهام گرفته و ظاهری شبیه ان دارد ، هدف این مدیر پنجره فراهم آوردن محیطیست با حجم کم مانند IceWM که به حافظه ی کمتری نیاز داشته باشد.

این مدیر پنجره می تواند به عنوان مدیر پنجره ی محیط میز کار KDE برنامه بگیرد.(به جای KWM) برای اطلاعات بیشتر به صفحه ی اطلی اون در www.windowmaker.org مراجعه کنید.


البته مدیران پنجره ی دیگری ماند FVWM و TWM نیز وجود دارند که به طور پیش فرض در هر توزیعی بافت نمی شود و از طرفی مدیران پنجره ای هم وجود دارند که هر گز عام پسند نشدند و کابران کمی از اون ها هستفاده می نمايند مانند WMX.


کدام مدیر پنجره مناسب تر هست؟
این سوال مانند این هست که بگوییم کدام رنگ زیباتر هست !! این شماهستید که باید تصمیم بگیرید از کدام مدیر پنجره هستفاده کنید ، هر شخصی صلیقه و هدف خود را دارد و البته نکته ای مهم نیز وجود دارد و اون امکانات سیستم شماست ، باید در نظر بگیرید که سیستم شما با کدام مدیر پنجره می تواند کار کند ،‌ چقد RAM دارید و چقدر فضا در هارد دیسک خود دارید.اگر مدیر یک سیستم هستید باید در نظر بگیرید که کاربرانتان با کدام مدیر پنجره می توانند راحت تر کار نمايند.

در کل هیچ کس نمی تواند بگویدکدام مدیر پنجره بهتر هست مگر خود شما!!!




اجرای یک مدیر پنجره
خوب در مرحله ی قبل با اجرای startx یک سرور X را راه انازی کردیم ،‌امافرمودیم این سرور X نمی تواند به تنهایی تمام نیاز ما را برای یک محیط گرافیکی برآورده سازد و مفهمو مدیر پنجره را تعریف کردیم حال می خواهیم اینمدیر پنجره را اجرا کنیم.


در اغلب توزیع ها بلافاصله سپس زدن startx وارد محیط گرافیکی یا همان مدیر پنجره می شویم این بدان دلیل هست که در تنظیمات X مدیر پنجره ای را به عنوان پیش فرض تعریف کرده ایم.اگر می خواهید این پیش فرض را تغییر بدهید به فایل های etc/X11/xdm/Xsession/ و erc/X11/Xconfig/ و etc/X11/xinit/ سری بزنید.البته سیستم هایی که از K desktop Manager یا KDM و GNOME Desktop Manager یا GDM به عنوان برنامه ی گرافیکی login استفاده می نمايند سپس اجرای X به طور خودکار وارد یک محیط گرافیکی برای وارد کردن Username و Password می شوند.




محیط میز کار یا Desktop Environment چیست؟
Desktop environment یا ترجمه ی فارسی اون که محیط میز کار فرموده می شود و اغلب با مخففDE مشخص می شود همان طور که Window Mnager با WM نمایش داده می شود.


یک مدیر پنجره با این که ابزاریست مفید اما نمی تواند یک رابط کابر گرافیکی (GUI) مناسب را تدوین کند.کابران Mac OS یا OS/2 یا Windows با محیط GUI کار کرده اند و می دانند در چنین محیطی ابزارهای بساری در دست دارند تا با اون ها کار نمايند.از لوازم تنظیم گرفته تا ابزاری برای نمایش ساعت یا ماشین حساب یا ویرایشگر متن یکی از ویژگی های جالب این محیط ها تنظیم یک فونت خاص برای هر برنامه هست .
یک محیط میز کار تمام این مسائل را حل می کند و میزکاری مشابه و حتی بهتر از windows در اختیار شما برنامه می دهد ، در واقع desktop Environent ها یک رابط گرافیکی کامل در اختیار شما برنامه می دهند.


محیط های میز کار مشهور در لینوکس
KDE : این میز کار که مخفف K Desktop Environment می باشد یکی از محبوب ترین میز کارهای لینوکس به شمار می اید که از مدیر پنجره ی پیش فرضKWM استفاده می کند و Widgetset های Qt برای نمایش پنجره ها و محتوای اون ها بهره می برد .نسخه ی 3.2 این میز کار امکانات بسیار زیادی در اختیار شما برنامه می دهد در حدی که دیگر میز کار ویندوز XP را سپس کاربا KDE 3.2 دیگر نمی پسندید.این میز کار با تلاش هموطنان خوبمان به زبان ملی ایران فارسی نیز ترجمه شده و تر جمه ی اون در اختیار عموم برنامه دارد.برای کسب اطلاعات بیشتر در باره ی این میز کار به سایت مادر یعنی www.kde.org مراجعه کنید.(تلفظ کنید : کی دی ای)


GNOME :این میز کار نیز که مخفف GNU Network Objevt Model Environment است از دیگر محیط های میز کار محبوب لینوکس کار هاست که مانند KDE در توزیع های فراوانی به صورت پیش فرض تعبیه شده هست.و از مدیر پنجرهی Metacity به همراه widgetset های +GTK استفاده می کند.این میز کار نیز با همت یکی از لینوکس کاران ایرانی به زبان فارسی ترجمه شده هست.برای کسب اطلاعات بیشتر به سایتمادر یعنی www.gnome.org مراجعه کنید.(تلفظ کنید: گنوم Geh -nom)


Xfce : این میز کار که یک میز کار خلاصه و جمع و جور هست ،‌با حجم کم و نیازمندی های سخت افزاری پایین تر نسبت به GNOME و KDE یکی از میزکارهای مشهور لینوکس هست .

این میز کار از Widgetset های +GTK استفاده می کند.این میز کار نیز به همت آقای عباس ایزد به زبان فارسی ترجمه شده .برای اطلاعات بیشتر به سایت مادر در www.xfce.org مراجعه فرمایید.


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


CDE : تا کنون در باره ی محیط های میز کار بازمتن سخن به میان آوردیم اما محیط CDE یک محیط تجاری یا Commerical است که در یونیکس های تجاری هستفاده می شود.

CDE
مخفف Common Desktop Environment است و از widgetset های Motif استفاده میکند.

برای اطلاعات بیشتر به سایت www.xig.com مراجعه فرمایید.


اجرای یک محیط میز کار
برای اجرای این محیط های میز کار اگر از KDM و GDM استفاده می کنید با اجرای X به طور خود کار یکی از این دو اجرا شده و از شما می پرسند که به کدام میز کار هدایتتان نمايند ،‌اما اگر از GDM وKDM استفاده نمی کنید ،‌سپس ورود از طریق خط فرمان و دیدن اعلان خط فرمان می توانید برای دسترسی به KDE تایپ کنید startkde و برای دسترسی به GNOME تایپ کنید startgnome .
سپس اجرای این دستورات محیط های میز کارشما بالا آمده و شما می توانید از اون ها هستفاده کنید.

برای شروع می توانید از منوی اون ها کمک بگیرید ، به منوی KDE که در سمت چپ و پایین برنامه دارد K menu می گویند که اغلب یک K بزرگ برروی اون هست و به منوی GNOME که اغلب یک جای پا که نشانه ی گنوم هست برروی اون دیدیه ی شود G menu فرموده می شود.

برای کار با فایل ها نیز برنامه ای در هر محیط میز کار تعبیه شده که به FileManager یا مدیر فایل مشهور هست مانند Konqueror در KDE (که بخواهنی کانکرر) و Natilus در GNOME البته مدیران فایل دیگری نیز وجودداردند و این مدیران فایل یا فایل منجر ها رامی تواندر محیط های دیگر نیز هستفاده کرد برای نمونه از ناتیلوس در KDE استفاده کرد.در آینده در باره ی نهوه ی کار با مدیر فایل ها بیشتر توضیح خواهیم داد<.

مفهوم Widget Set


تا این جا درباره ی مفاهیم پایه ای سخن فرمودیم مفاهیمی که توسط اون ها دانستید که چگونه پنجره ها و محیط گرافیکی برروی صفحه نمایش شما دیده می شوند ، اکنون به بخش دیگری از این مطالب می پردازیم ، یکی از مهم ترین اجزای هر میزکاری منوها و dialog box ها [۱] هستند ، مدیریت این بخش ها را Widget set ها به عهده دارند.


یکی از مهم ترین مفاهیم که روش نمایش ورفتار منوها و دیالوگ باکس ها را در X سرور تعریف می کند ابزارهای برنامه نویسی به نام Widget set هستند ، Widget set ها درواقع محتویات درون پنجره را کنترل می نمايند .

گاهی دربرنامه ای برای انتخاب گزینه ها از منو حتما باید دکمه ی ماوس خود را پایین نگاه دارید اما دربرخی برنامه ها نیازی به این کار نیست و با حرکت ماوس برروی گزینه های منوها گزینه ها انتخاب می شوند، این همان widget set هست که این رفتارها را تعریف می کند .

البته در سیستم عامل لینوکس هر برنامه ای می تواند از widget set های خود هستفاده کند ، یعنی مانند ویندوز تمام برنامه ها مجبور به هستفاده از یک سری widget set نیستند ، برای نمونه شما در محیط میزکار GNOME برنامه ی gaim و xpdf را بایکدیگر مقایسه کنید ، هرکدام به نحوی منوها و پنجره ها را مدیریت می نمايند این به این دلیل هست که هر کدام از یک سری widget هستفاده می نمايند .




درحال حاضر دو سری از widget ها هستند که بسیار محبوبند ، یکی widget set های Qt و دیگری widget set های + GTK هست.

فرمودن این نکته نیز لازم هست که در محیط های قدرتمندی چون KDE یا GNOME شما می توانید نوع widget set های مورد هستفاده را تغییر بدهید .

شاید شنیده باشید که می گویند برنامه ای برای KDE نوشته شده هست یا برنامه ای برای GNOME نوشته شده هست مفهوم این جملات اون هست که برنامه ی اول از Qt و برنامه ی دوم از +GTK هستفاده می کند ، خود Qt و+GTK شامل تعدادی کتابخانه هستند که در اون ها برنامه هایی برای کنترل Widget ها نوشته شده هست ، اکنون این کتابخانه ها یا liblrary ها به چه کاری می آیند؟ این کتابخانه ها باعث می شوند تا برنامه نویس به جای اون که از ابتدا وقت خود را برای نوشتن این رفتار ها (رفتارهایی که widget ها تعریف می نمايند) تلف نمايند دربرنامه ی خود یک لینک به این کتابخانه ها می دهند ، از این پس برنامه ی نوشته شده با تعاریفی که از قبل برای اون در کتابخانهها شده هست کار می کند ،‌ بنابراین یک برنامه ی KDE به کتابخانه های Qt لینک داده شده و از widget های تعریف شده در اون هستفاده می کند ، این همان دلیل شباهت برنامههای KDE به هم هست ، این قضیه در باره ی گنوم هم همین گونه هست.

شاید این سوال برای شما پیش بیاید که آیا می شود از برنامههای GNOME در KDE هستفاده کرد؟ (یا بلعکس) ، درجواب باید فرمود بله ، در اغلب موارد می توان هستفاده اکر اما برای هستفاده از هر کدام باید کتابخانه هایشان را نیز نصب کنید برای نمونه برای هستفاده از برنامه های KDE باید حتما کتابخانه های Qt را نصب کرده باشید.






بسیار خوب این مقاله نیز به پایان رسید ،‌اکنون شما باید با مفاهیم X server و Window Mnager و Desktop Manager ، Desktop Environment و FileManager همین طور نقش Widget ها در مدیریت پنجره ها آشنا باشید و بتوانید این مفاهیم را از یکدیگر تشخیص بدهید ،‌در صورتی که سوالی در باره ی مطالب مطرح شده داریدمی توانید در انجمن های گنو ایران.ارگ به آدرس www.GNUIran.org/forums پرسش خود را مطرح کنید.



موفق باشید


.


27:

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

گرچه مقدار زيادي تلاش در طول ساليان انجام شده تا لينوكس براي كاربران غيرمتخصص و متوسط و پايينتر هم خوشايند جلوه بكنه كه بنظر ميرسه تاحد واقعا اميدوار كننده اي موفق بودن.

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

خب درباره رايت سي دي و مقاله اي كه دوست عزيزمون درج كردن بايد جدا (و نه شوخي! D:) تشكر كنم.

راستش تمام پستهاي اين جستار ارزشمند هستن و ميشد در پايين هر پست نشان تشكر بنده درج شده باشه.

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

كلا بعضي كاربران ايشانندوز از اسم لينوكس هم وحشت دارن و جرات نميكنن طرفش برن!
راستش خودم هم تاوقتي كه نتونستم خودم رو بعنوان يك حرفه اي علم رايانه ببينم اينكار رو نكردم! يك علتش صرف وقتي بود كه فكر ميكردم بدون دانش قايشان بهدر ميره و بدون اينكه چيز مفيدي از لينوكس عايدم بشه بايد تا طي مدارج لازمه باهاش خداحافظي كنم!! اونهم با كمي ياس و سرخوردگي!!

البته سپس آشنايي مقدماتي با لينوكس متوجه شدم كه كمي زودتر هم ميتونستم وارد اين دنيا بشم.

روش كلي من هست كه قبل از انجام هركاري دنبال كسب اطلاعات حداقل مقدماتي گسترده درمورد اون مطلب ميرم.

بعضيها وقتي تلايشانزيون (يا شايد يه وسيلهء كمي پيچيده تر) ميخرن اول روشنش ميكنن و باهاش ور ميرن و وقتي جايي به مشكل خوردن و با چنگ و دندون نتونستن درستش كنن تازه ميرن سراغ دفترچه راهنما يا به زبان فرنگي منوال يا گايد مربوطه!! بنده از آدمهايي هستم كه گاهي ممكنه تاوقتي منوال رو بطور كامل نخوندم نيازي به روشن كردن تلايشانزيون كذايي هم نبينم!

البته اين روش كارايي خودش رو در طول وقت ثابت كرده!

بگذريم! اينها رو فرمودم براي افراد ترسايشاني كه حتي حاضر نيستن يه دنياي ناشناخته رو به آرامي و احتياط لمس بكنن و مدام مثل بچه ها رايشان نظر خودشون پافشاري ميكنن! (يكم شوخيه، ناراحت نشيد!).

خب بحث رايت سي دي بود؟ ببخشيد زياد وراجي كردم.

براي كاربراني كه از نرم افزار نرو براي رايت سي دي هستفاده ميكنن و باهاش خيلي احساس راحتي ميكنن بايد بگم كه همتاي لينوكسي هم براي چنين نرم افزارهايي موجوده! بابا نترسيد اين لينوكس اونقدرها هم وحشتناك نيست!

راستش من زياد لينوكس كار نكردم چون مودمم از نوع داخلي بود و بعضي مودمهاي داخلي رو لينوكس نميشناسه (بخاطر همون مسايل ناجوانمردانه!) هستفاده از لينوكس بطور مستمر ادامه پيدا نكرد.

گاهي از منايشان بوت گراب يه سري بهش ميزنم!! چنتا مشكل ديگه هم پيش اومد كه البته بخاطر خراب بودن سي ديهاي لينوكسمه فكر كنم! منتظر نسخهء جديد سالم هستم! لينوكس من SuSE ورژن ۱۰ هست.

كسي از بازار اطلاع داره كه وضعيت اين ورژن باثبات شده يا نه؟
البته Knopix هم گرفتم و خيلي ازش خوشم اومد.

همونطور كه هستادان عزيز ميدونن Knopix يك LiveCD هست و در اكثر موارد بعنوان يك سيستم عامل دايمي از توزيعهاي ديگه اي هستفاده ميشه كه رايشان هاردديسك نصب بشن.
Knopix بغير از مشكل مشترك با Winmodem بقيه چيزهاش خيلي خوب كار ميكنه و واقعا ازش راضي بودم.

براي آشنايي مقدماتي با لينوكس بسيار مفيده و توصيه ميشه.

از كار كردن باهاش لذت ميبرين! اگر رم سيستمتون از مقدار معمول يا هستاندارد بازاري بالاتر باشه خيلي نرمتر و سريعتر كار ميكنه و تفاوت چنداني با سيستم عاملي كه از هارد ديسك بوت شده احساس نميكنيد.
راستي به نوشته هاي رايشان جلد سي دي توجه نكنيد كه فرموده نصب رايشان هارد در ۱۰ دقيقه! ورژني كه من خريدم فقط قادره تنظيماتي رو كه در محيط انجام ميديد بنا به درخواست شما رايشان هارد ذخيره كنه و دفعه بعدي كه بوت ميشه با تمام تنظيمات پيش فرض شما بالا بياد كه البته قابليت بسيار ارزنده ايه ولي بهيچوجه بهش نميشه فرمود نصب!


نرم افزاري در لينوكس SuSE من بود كه اسمش هست k3b اگر درست يادم باشه! همين رو داخل يه پنجره ترمينال، شل، كادر ران (مثل كادر Run ايشانندوز) بزنيد مياد ديگه! (البته اگر در توزيع شما وجود داشته باشه كه بنظرم به احتمال زياد در خيلي از توزيعها بايد باشه)
من تعجب كردم كه چرا برنامه به اين خوبي و قشنگي رو داخل منايشان هستارت (البته فكر ميكنم منايشان هستارت اصطلاح صحيحي در لينوكس نباشه و بهش ميگن «كي منو» (K menu) يا يه همچين چيزي!) لينوكس سوزه - SuSE نذاشته بودن (درمورد تلفظ SuSE بحثهاي متعددي در اينترنت ديدم كه فكر ميكنم تلفظ سوزه متداولتر و نزديكتر به صحت باشد (اگر كسي اطلاع دقيق داره روشن كنه)).
آره از اينكه هيچ اثر و نشاني از اين برنامه در محيط دسكتاپ كي (KDE - K Desktop Environment) نديدم تعجب كردم.

شايد فراموش شده!
به لطف مطالعهتمام توضيحهاي كوتاهي كه درمورد پكيجهاي همراه اين توزيع موقع نصب در دسترس بودند متوجه بودم كه چنين برنامه اي بايد در سيستم وجود داشته باشه و اگر درميان ده ها مطلب ديگه يادداشتش نكرده بودم اصلا يادم هم نميموند كه بدنبالش بگردم.
يك نكته جالب اينكه اين برنامه چيز مستقلي از برنامه هاي رايت سي دي خط فرمان نيست درواقع! k3b فقط يك رابط گرافيكي كاربر براي كار با همون نرم افزارهاي خط فرمانه (بطور دقيق: cdrecord, cdrdao, and growisofs).

ظاهرا دستورات شما رو بصورت گرافيكي ميگيره و خودش دستورات شلي مربوطه رو زير زيركي اجرا ميكنه!! همين!

ميتونيد مثل من يك شورتكات (البته دراينمورد هم در محيط لينوكس ظاهرا بجاي شورتكات كه توصيف كننده ساختارهاي ايشانندوزي هست بايد از اصطلاح symbolic link يا symlink هستفاده كرد! حواستون باشه كه در لينوكس بايد دقيق باشيد و از اين سوتيها در نكنين!) در منو برنامه بديد تا همه چيز مثل ايشانندوز باشه و شايد اين روش رو راحتتر هم بدونيد.

بسته به سليقه شماست.
كار كردن با منايشان لينوكس هم چيز غريبي نيست.

اكثر سيستم عاملهاي عمومي اصول يكساني دارن و خيلي چيزهاشون شبيه يا منطبق با يكديگر هست.

در سوزه يوتيليتي مخصوصي براي ايشانرايش منو هست كه اگه درست يادم باشه با رايت كليك رايشان منو بتونيد گزينه مربوطه رو پيدا بكنيد.

در ايشانندوزهاي قديمي اگه يادتون باشه برنامه اي به اين حالت داشتيم (الانم بايد باشه بنظرم).

گرچه درگ و دراپ اكثرا خوشايندتر بنظر مياد ولي نبودش بنظر من اونچنان مشكلي هم نيست در اينچنين مواردي.


28:

جنتو، توزیعی متفاوت برای آدمهای متفاوت
مقدمه


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

جنتو شاید یکی از اسرارآمیز ترین توزیع‌های لینوکس باشد که بسیاری از اون می‌ترسند و ترجیح می‌‌دهند از یک توزیع ساده‌تر برای کارهای خود هستفاده نمايند.

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

اگر می‌خواهید بیشتر در این مورد بدانید این مقاله را تا آخر مطالعه کنید.


تاریخچه: چرا یک توزیع دیگر؟


یکی از مسایل بسیار مهم و دردسرساز در لینوکس تنوع بیش از حد در ابزارهای اون هست که با وجودی که می‌تواند مفید واقع شود به همان میزان می‌تواند گمراه‌ نماينده باشد.

از مهمترین موارد عینی این موضوع تنوع بیش از حد توزیع‌های لینوکس هست.

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

اولین سوالی که ممکن هست به ذهن هر کاربر لینوکس برسد این هست که کدام توزیع؟ سپس مدتی این سوال به سوال دیگری تغییر می‌یابد: چرا یک توزیع دیگر؟
جنتو نیز از این قاعده مستثنی نیست.

بنابراین به بررسی نحوه ایجاد جنتو می‌پردازیم.

توزیع جنتو با هدفی نسبتا متفاوت از سایر توزیع‌ها ایجاد شد.

بسیاری از توزیع‌ها سعی می‌نمايند تا بهترین گزینه‌ها در هر زمینه‌ای را انتخاب کرده و به صورت آماده در اختیار کاربر بگذارند.

به عنوان مثال بسیاری توزیع‌ها مبتنی بر یک محیط کاربری خاص هستند مانند Gnome یا KDE و یا از سیستم بسته‌ خاصی مانند apt یا rpm هستفاده می‌نمايند در حالیکه جنتو مطلقا با چنین کاری مخالف هست.

یکی از معروفترین شعارهای این توزیع این هست: It's about choice.

این فلسفه دقیقا در تمامی مراحل هستفاده از جنتو مشاهده می‌شود.


هدف جنتو به وجود آوردن یک meta distro هست.

این عنوان به توزیع‌هایی اطلاق می‌شود که لوازم خاصی ندارند و تنها مجموعه‌ای از ابزارهای گوناگون را گرد هم می‌آورد.

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

اگر بخواهیم به طور گذرا اشاره‌ای به این ابزارها کنیم می‌توان از سیستم مدیریت بسته‌های ‌Portage، هستفاده از تنظیمات خاص برای وقت نصب بسته‌ها (USE flags)، فایلهای تنظمات اون، و از همه مهمتر هستفاده از کد منبع برای نصب، اون هم با تنظیمات و بهینه‌سازی‌های خاص مورد نظر کاربر نام برد.

اگر کنجکاو هستید که این ابزارها چه فایده‌ای دارند باید کمی دیگر استقامت کنید.


به طور خلاصه فلسفه جنتو، ارائه توزیعی هست که بتواند خود را با نیازهای کاربران گوناگون هماهنگ کند.

انتخاب حق کاربر هست.

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


جنتو نام نوعی پنگوئن کوچک ساکن جزایر مالویناس هست.

نماد اصلی این توزیع یک شکلک جالب هست.نماد دیگر و بسیار محبوب این توزیع لری گاوه (Larry the cow) هست.

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

شعار معروف دیگر جنتو این هست: اگه تکون خورد کامپایلش کن (If it moves, compile it).

این توزیع به دلیل تنوع در ابزارها یکی از متنوع‌ترین طیفهای کاربران را دارد.


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

بهتر هست بعضی از این قابلیت‌ها را یک به یک بررسی کنیم.

اولین قابلیت اون سیستم مدیریت بسته‌‌های بسیار قدرتمند اون یعنی Portage هست.

این سیستم با الهام از سیستم Ports که مورد هستفاده در Free-BSD هست ساخته شده و قلب جنتو به شمار می‌رود.

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

برتری اصلی اون به سیستم apt توانایی اون برای کار کردن با هر نوع معماری رایانه هست.

به عنوان مثال اگر شما بخواهید یک برنامه را بر روی دو رایانه از نوع x86 و x86-64 نصب کنید نیاز به دو سری بسته deb و یا rpm خواهید داشت در حالیکه جنتو به دلیل هستفاده از کد منبع تنها از یک سری بسته هستفاده می‌کند.

قابلیت دیگر جنتو هستفاده از USE flags هست.

اینها متغیرهایی هستند که جنتو اونها را به کامپایلر مورد هستفاده (در اکثر موارد GCC) انتقال می‌دهد.


این متغیرها موضوعاتی مانند معماری تراشه مورد هستفاده در رایانه، بعضی بهبودهای مورد نظر و ...

را به کامپایلر منتقل می‌نمايند تا مورد توجه کامپایلر برنامه بگیرند.

این موضوع باعث می‌شود جنتو از نظر سرعت بی‌نظیر باشد.

به همین دلیل جنتو یکی از بهترین گزینه‌ها برای سخت‌افزارهای قدیمی و با سرعت پایین هست.


قابلیت دیگر جنتو هستفاده اون از فایلهای تنظیمات خاص اون هست.

این فایلها باعث می‌شوند کاربر به راحتی بتواند تنظیمات مورد نظر خود را اعمال کند.

به عنوان مثال شما می‌توانید در فایل make.conf تمامی تنظیمات مورد نظر خود را برنامه دهید تا هر بار ناچار به تعیین کردن اونها نباشید.

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

به عنوان مثال برنامه محبوب amaroK را در نظر بگیرید.

این برنامه به صورت پیش‌فرض برنامه‌ای برای گوش دادن به موسیقی و یا رادیو هست ولی در صورتی که شما اون را با قابلیت پشتیبانی از موتور NMM کامپایل کنید حتی خواهید توانست با هستفاده از اون فیلم ببینید.

یا به عنوان مثال پشتیبانی از UTF-8 باعث افت سرعت بسیار زیاد برنامه‌ها می‌شود، بنابراین در صورتیکه نیازی به اون نداشته باشید کافی هست پشتیبانی از اون را در فایل make.conf غیر فعال کنید.

همانطور که در ابتدای کار نیز فرموده شد انتخاب با شماست.

فقط باید بدانید که چه می‌خواهید.


نکته قوت بسیار بزرگ دیگر جنتو جامعه کاربری اون هست.

احتمالا بسیاری از شما وصف نصب متنی و سخت جنتو را شنیده‌اید.

البته با آمدن نصاب گرافیکی این توزیع این امر تا حد زیادی بهبود پیدا کرده ولی روش نصب محبوب همچنان همان نصب متنی هست.

بنابراین می‌توان حدس زد که یک کاربر جنتو حداقل توانایی‌هایی بسیار بالاتر نسبت به یک کاربر توزیعی گرافیکی و پر از لوازم مانند SuSE دارد.

البته لزوما اینگونه نیست ولی از نظر آماری قابل قبول هست.

کاربران جنتو اطلاعات بسیار وسیع و در عین حال عمیقی در مورد ابزارهای موجود در سیستم خود و نحوه ارتباط اونها دارند و البته این امر چندان هم عجیب نیست.

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

شاید یکی از سخت‌ترین بخشهای کار با هر لوازم در جنتو تنظیم اولیه اون لوازم باشد ولی وقتی این کار انجام شد احتمالا خواهید دید که زحمتی که کشیدید ارزش نتیجه را داشته هست.


اگر این حرف باعث ترس شما شده باید بگوییم که خبرهای خوبی هم در این بین وجود دارند.

جنتو از نظر مستندات یکی از بهترین، و شاید حتی بتوان فرمود بهترین توزیع موجود هست.

این مستندات، چه از نظر تنوع و دقت و چه به روز بودن، بی‌نظیر هستند.

به عنوان مثال هنگامیکه شرکت Novell کد منبع XGL را منتشر کرد حتی پیش از اونکه این کد در OpenSuSE به کار گرفته شود مستندات نصب اون در gentoo-wiki.org برنامه گرفت.

مثال‌های از این دست زیادند.

این مستندات بسیار دقیق هستند و هر شخصی با دانش متوسط می‌تواند تنها با یک بار روخوانی اونها، دستورات را به صورت کامل اجرا کند.


نصیحت : جنتو برای چه کسانی مناسب و برای چه کسانی نامناسب هست؟
در صورتیکه شما کاربری متوسط و یا بهتر از متوسط هستید و علاقه زیادی دارید که بدانید چه در قلب سیستم شما می‌گذرد و از اون مهمتر دوست دارید همه چیز در کنترل شما باشد جنتو می‌تواند توزیع ایده‌آل شما باشد.

تسلط به زبان انگلیسی هم نکته مهم دیگری هست.

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

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

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

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


29:

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

30:

ااااااااااا تازه دوروزه هستارت کردی داداش بهروز ادامه بده دیگه این همه مطالب خوب نوشتی

منتظریمااااااااااا

31:

حالا ادامه می دم ! بزار یکمی بگذره

32:

معرفی دیوار آتش Firestarter
وجود دیوار آتشی که به طور صحیح تنظیم و پیکربندی شده باشد، می*تواند سیستم*های موجود بر روی اینترنت را در برابر بسیاری از حملات مصون نگه دارد.

دیوار آتش نمی*تواند تضمین نماينده امنیت باشد، ولی نخستین سدی هست که در برابر بسیار از حملات برنامه می*گیرد.
در دنیای میزکار گنو/لینوکس یک سیستم دیوار آتش گـرافیکـی موسوم به Firestarter وجود دارد که با کمک اون می*توانید به سادگی با تعریف قواعدی، سیستم خود را برای امنیت بالاتر تنـظیم کـرده و اینترنت را نیز در شبکه محلی به اشتراک بگــذاریـد.

Firestarter در حقیقت یک رابط گرافیکی مبتنی بر GTK بــرای ابــزار iptables کــه دیـــوار آتــش پیــش*گــزیده بــــر روی سیسـتم*عـامـل گنو/لینوکس هست، به شمار می*رود.

Iptables بر روی هسته لینوکس پیاده سازی شده و با هستفاده بسته نرم*افزاری iptables می*توانید از امکانات اون هستفاده کنید.
لوازم Firestarter در میان بسته*های نرم*افزاری بسیــاری از تــوزیع*های رایــج مـوجـود هست.

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

در تــوزیع*های مبتــنی بـر دبیــان و Ubuntu می*توانید از دستور زیر با دسترسی کاربر ریشه برای نصب اون هستفاده کنید:
(# apt-get instrall firestarter (Ubuntu: # sudo apt-get install firestarter)
بر روی فدورا از دستور زیر هستفاده کنید:
# yum install firestarter
پس از نصب، این لوازم را می*توانید با کلیک بر روی آیکون firestarter موجود در منوی System Tools منوی Applications اجرا نمایید.

این لوازم دارای ســه لبــه اصــلی اســت کــه در زیـر شرح داده شده*اند.

شکل ۱ صفحه اصلی Firestarter را نمایش می*دهد.


Linux
شکل ۱ صفحه اصلی Firestarter
صفحه وضعیت (Status)
ایـن صــفحه نخسـتین صفـــحه*ای اســت کــه پـــس از اجــرای firestarter مشــاهــده می*کنید و نمایی کلی از وضعیت جاری دیوار آتش را در اختیار شما برنامه می*دهد.

دیوار آتش می*تواند در سه حالت فعال (Active با کارکــرد عادی) کــه بـا آیکون آبی رنگ نمایش داده می*شود، غیر فعال (Disabled در این حالت قواعد موجود در دیوار آتش عمل نخواهند کرد) کـه با آیکون قرمز رنگ نمایش داده می*شــود و قفــل شــده (Locked اجــازه عبــور هیـچ نوع ترافیک ورودی و خروجی از طریـــق دیـــوار آتــش داده نخواهد شد) که با علامت قفل نمایش داده می*شود، عمل کند.


صفحه رخداد*ها (Events)
در این صفحه رخدادهایی که بر روی دیوار آتــش اتــفــاق می*افتـند، نــمایش داده می*شـوند.

رخدادهای مشکی رنگ که اتصالاتی هستند که از طرف دیوار آتش مسدود شده*اند، رخدادهای قرمز رنگ کــه بـایـد بــه اونـهـا تـوجـه بیشتری داشته باشید ولی حتما به معنی این نیستند که کسی قصد دسترسی به یک سرویس غیر عمومی بر روی ســیستم شـما را داشته و رخدادهای خاکستری رنگ که اتصال*های بدون خطر هستند.


صفحه قواعد (Policy)
در این صفحه قواعد دیوار آتش بایــد تـوســط کاربــر تعریف شوند.

قواعد بر دو دسته ترافیک ورودی (Inbound) و ترافیک خروجی (Outbound) سیستم اعمال می*شوند.

هنــگام تعــریف قــواعــد بــا هستـفاده از جعــبه پایـیـن افتادنی Editing می*توانید نوع قاعده از نظر ترافیک ورودی و خروجی را تعیین کنید.
تعریف قواعد بر روی دیوار آتش
علاوه بر قواعدی که بر روی ترافیــک ورودی و خروجی سیستم اعمال می*شوند، امکان تعریف دو نوع قاعده کلی پذیرش ترافیک از آدرس خاص و سرویس خاص وجود دارد.

در لبــه Policy دو بخــش جــداگانــه بـرای این منظــور با عناوین Allow connections from host و Allow service در نظر گرفته شده هست.

برای اضافه کردن قواعد، بر روی هــر یــک از ایــن دو بخش کلیک راست کرده و Add Rule را انتخاب کنید.

امکان ویرایش و حذف قواعد موجود نیز به همین روش وجود دارد.

در صـورتی که نام دامنه یا آدرس IP خاصی را در بخش Allow connections from host اضافه کنید، تمامی ترافیک ورودی یا خـروجی به این دامنه یا آدرس مجاز شمرده خواهد شد.

تعریف قواعد از طریق بخش Allow service گزینه منطقی*تری به شمار می*رود زیرا امکان انتخاب تک تک سرویس*ها فراهم شده هست.
در پنجره اضافه کردن قاعده، امکان انتخاب سرویس، تایپ شماره* یا شماره*های درگاه*ها و تایپ آدرس IP که ترافیک از اون وارد یا به سمت اون خارج می*شود فراهم شده هست.

شکل ۲ نمونه*ای از پنجره تعریف قاعده را نمایش می*دهد.

پس از تعریف قواعد، بر روی دگمه Apply Policy کلیک کنید تا تغییرات بر روی دیوار آتش اعمال شوند.


اشتراک اینترنت بر روی شبکه محلی
در صورتی که سیستم شما کامپیوتری هست که به طور مستقیم به اینترنت متصل بوده و درون شبکه برنامه گرفته هست، می*توانید اتصال اینترنت را با سیستم*های دیگــر موجود در اینترنت نیز به اشتراک بگذارید.

برای این منظور کافی هست در منوی Edit بر روی Preferences کلیک کرده و در بخش Firewall بــر روی Network Settings کلیک کنـید.

سـپس به شما امکان انتخاب رابط شبکه متصل لبه اینترنت و رابط شبکه متصل به شبکه داخلی داده می*شود.

در صورتی کــه از طــریق اتصال تلفنی یا pppoe به اینترنت متصل می*شوید، رابط متصل به اینترنت ppp0 خــواهــد بــود.

پس از انتــخاب رابـط*های مناسب، گزینه Enable Internet connection sharing را تیک بزنید.

پس از اتمام، سیستم*هایی که مایل بـه هستــفاده از اینترنت هستند، باید در تنظیمات شبکه خود، آدرس IP کامپیوتر شما را به عنوان Gateway تنظیم نمايند.

همچنین باید یک آدرس IP معتبر یک سرویس*دهنده نام را نیز هنگام انجام تنظیمات شبکه، بــر روی سیستم خود وارد نمــایند.

پــس از اون قادرند به واسطه سیستم شما، به اینترنت متصل شوند.


Linux
شکل ۲ پنجره تعریف قاعده بر روی دیوار آتش
اطلاعات بیشتر
Firestarter دارای مستندات Online بسیار کاملی هست که می*توانید از اون به خوبی هستفاده نمایید.

برای دسترسی به این مستندات، در منوی Help بر روی Online User's Manual کلیک کنید و یا کلیدهای Ctrl+H فشار دهید.

برای اطلاعات بیشتر نیز می*توانید به وب سایت[۱] اون مراجعه نمایید.


33:

دستته همگي تون درد نكنه

34:

آشنایی با ماشین*های مجازی



کامپیوترهای مدرن امروزی جزء وسائل بسیار پیشرفته ساخته شده به دست بشر تلقی می*گردند و دلیل اینکه ما توانستیم به چنین کاری نائل آییم، به احتمال قریب به یقین بخاطر دانش ما در مدیریت پیچیدگی*ها [۱]می*باشد.

کامپیوترها از میلیونها چیپ تشکیل شده*اند که هر کدام از بیلیونها ترانزیستور هستفاده می*نمايند و تمام این قطعات به وسایل ورودی/خروجی [۲]و شبکه*های مختلف متصل هستند تا در نهایت سیستمهای نرم*افزاری بتوانند بر روی تمام اینها سوار شده و کار نهایی را اجرا کنند.

نرم*افزارهای متعدد گرافیکی، آموزشی و ...

نیز وجود دارند که کارهای ما را به انجام می*رسانند.
کلید اصلی مدیریت پیچیدگی در سیستمهای کامپیوتری همانا انجام کارها بصورت انتزاعی [۳]و برنامه دادن ظواهری [۴] بین هر مرحله و مرحله بعد هست تا کاربر اصلا حس نکند که این میان چه اتفاقی در حال افتادن هست و او در چه سطحی برنامه گرفته هست.

این انتزاع باعث می*شود که طراحی در مراحل بالاتر آسان شده و بدون توجه به مراحل پایین انجام شود.

به عنوان مثال این حقیقت که هارد دیسک به سکتورها و شیارهایی تقسیم می*شود عملا با وجود سیستم*عامل برای یک نرم*افزار بی*معنا شده و نرم*افزار تنها هارددیسک را بصورت یک محیط کاملا قابل لمس و با یک سری فایل که هر کدام اندازه خاصی دارند می*بیند.

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

در مراحل سطح پایین فقط سخت افزار و اجزاء فیزیکی وجود دارند.

در مراحل سطح بالا اجزاء تشکیل دهنده همه نرم*افزاری هستند و محدودیتهای سخت*افزاری را ندارند.

در این کتاب ما بیشتر به سطوحی که در واقع جداساز بین مراحل سخت افزاری و نرم*افزاری هستند می*پردازیم، عملا سطوح حد واسط بین سخت*افزار و نرم*افزار، از جایی که نرم*افزار از سخت*افزار جدا شده و عملا ماشین فیزیکی که نرم*افزار بر روی اون مشغول به کار هست برای ما اهمیت پیدا می*کند.

Linux


فایلها در واقع انتزاعی از دیسک هستند.

یک سطح از انتزاع در واقع ظاهر ساده*تری را برای کاربران بالایی خود فراهم می*آورد.
نرم*افزار کامپیوتر توسط یک ماشین اجرا می*شود (اصطلاحی که از اوان ایجاد کامپیوتر باب بوده هست، امروزه معمولا از کلمه پلاتفورم بیشتر بجای ماشین هستفاده می*نمايند).

از دید سیستم*عامل، یک ماشین عملا از قطعات سخت افزاری همچون یک و یا بیشتر CPU و همچین مقداری RAM و وسایل ورودی/خروجی تشکیل شده هست.

منتها فراموش نکنید که کاربرد این واژه نسبی هست، یعنی همانطور که فرموده شد هرگاه سیستم*عامل از کلمه ماشین هستفاده کند، منظور اون اجزاء صرفا سخت*افزاری هست، ولی هرگاه یک نرم*افزار عادی از واژه ماشین هستفاده کند، منظورش سیستم*عامل مورد هستفاده به همراه گوشه*ای از جزئیات سخت*افزاری هست که توسط لایه سیستم*عامل جداسازی نشده هست و نرم*افزار باید مستقیما با اونها درگیر باشد.
به اندازه کافی در مورد انتزاع بحث کردیم، حال اجازه دهید در مورد اون فاکتور دوم که مدیریت پیچیدگی را آسان می*کند صحبت کنیم: برنامه دادن ظواهری آسان بین هر مرحله از انتزاع.

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

وجود جدول دستوری CPU یک [۵] نمونه از این ظاهر سازی هست.

به عنوان مثال طراحان AMD و یا Intel ریزپردازنده*هایی را طراحی می*نمايند که از جدول دستوری هستاندارد IA-32 هستفاده می*کند.

از اون طرف کامپایلر نویسان RedHat و یا مایکروسافت نیز کامپایلرهایی می*نویسند که دستورات را به این هستاندارد دی*کد کند.

اگر هر دو این گروهها کار خود را به درستی اجرا کنند، نرم*افزار کامپایل شده بر روی هر ماشینی که از هستاندارد IA-32 پشتیبانی کند به درستی و تمام و کمال اجرا می*شود.

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

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

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

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

برنامه**هایی که برای یک مجموعه دستورات سیستم*عاملی نوشته شده*اند برای سیستم*عامل دیگر کار نمی*نمايند.

تنها هستاندارد IA-32 وجود ندارد و CPU های دیگری نیز هستند که برای هستانداردهای دیگر نوشته شده*اند و این یعنی که سیستم*عاملهای طراحی شده برای IA-32 بر روی اونها کار نخواهند کرد و این باعث بوجود آمدن سیستم*عاملهای مختلف (مثلا ویندوز و لینوکس) می*گردد.

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

امروزه با ظهور سیستم*عاملهای پیشرفته و زبانهای سطح بالا، عملا کاربران و برنامه*نویسان چندان با مشکلات محض سخت*افزاری دست و پنجه نرم* نمی*نمايند و اصلا از اون پایینها خبر ندارند، و لیکن در معدود مواردی باز هم این مشکلات چهره کریه خود را نمایش می*دهند و کاربر/برنامه*نویس سطح بالای ما را با مشکل روبرو می*نمايند.

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

هنگامی که یک سیستم و یا زیر سیستم، مثلا یک CPU و یا هارد دیسک مجازی*سازی می*شوند، ظواهر مربوط به اونها و تمامی منابعی که از طریق اون ظواهر قابل دسترسی هستند به ظواهر و منابعی از سیستم واقعی که در حال کار هست نگاشت می*شوند.

اگر بخواهیم مجازی*سازی را بصورت رسمی تعریف کنیم، باید فرمود که مجازی*سازی عبارتست از یک همریختی [۶]که یک سیستم مهمان [۷] را به یک سیستم میزبان [۸] نگاشت می*کند(بر پايه تعریف Popek و Goldberk در سال 1974).

این همریختی که در شکل زیر نشان داده شده هست، حالت مهمان را به حالت میزبان نگاشت می*دهد (تابع V در شکل) و به ازاء هر سری از عملیات، e، که باعث تغییر حالت در مهمان شود (تابع e حالت Si را به Sj تبدیل می*کند) عملیات مشابهی، ´e، در میزبان انجام می*شود که ´Si را به ´Sj می*برد.

هر چند که این همریختی عملا می*تواند نشان دهنده انتزاع نیز باشد، ولی ما در اینجا بین انتزاع و ظواهر فرق می*گذاریم، بدین صورت که مجازی سازی عملا باعث بیشتر و یا کمتر انتزاعی تر شدن سیستم نشده و عملا مقدار انتزاع بین ماشین مجازی و واقعی یکسان هست.

Linux


تعریف علمی مجازی سازی همانا ساخت یک همریختی بین سیستم مهمان و میزبان می*باشد
اجازه دهید مثالی عملی از این مورد را بازگو کنیم.

همان مثال هارد دیسک معروف را در نظر بگیرید.

اگر بخواهیم یک هارد دیسک واقع در سیستم*عامل را به چندین هارددیسک مجازی تقسیم کنیم، به ازای هر هارددیسک مجازی یک فایل بزرگ بر روی هارد واقعی تعریف می*کنیم.

هارد دیسکهای مجازی نیز برای خود سکتور و قطاع مشخصی را دارند، هر چند که اندازه اون به اندازه هارد سیستم میزبان نمی*باشد.

برنامه مجازی سازی عمل نگاشت بین هارددیسک واقعی و هارددیسکهای مجازی را فراهم می*آورد (تابع V در همریختی).

عمل نوشتن درون هارددیسک مهمان (تابع e در همریختی)، در عمل باعث ایجاد تقاضایی برای نوشتن در هارد دیسک میزبان می*گردد (تابع ´e در همریختی) در این مثال عمل نوشتن بر روی هارددیسکهای مجازی با تغییر سکتور و قطاع سر و کار داشت و از این لحاظ انتزاعی در مقایسه با حالت واقعی شکل نگرفت.[۹]
مفهوم مجازی سازی نه تنها می*تواند در مورد اجزاء مختلف کامپیوتری عملی شود، بلکه می*تواند یک کامپیوتر کامل را نیز شبیه*سازی نماید.

به عنوان مثال ماشین مجازی نصب شده بر روی یک کامپیوتر Apple می*تواند یک ویندوز ۳۲ بیتی را که می*شود نرم*افزارهای ویندوزی را نیز درون اون نصب کرد، شبیه*سازی کند.

عملا یک ماشین مجازی می*تواند محدودیتهای سخت*افزاری و نرم*افزاری یک ماشین واقعی را پشت سر گذاشته و درجه بیشتری از راحتی و جابجایی را برای نرم*افزارها فراهم آورد.

Linux


پیاده*سازی دیسکهای مجازی.

مجازی سازی می*تواند منابع و یا رابطهای متفاوتی را در یک درجه از انتزاع فراهم آورد
انواع مختلفی از ماشین*های مجازی وجود دارد که می*توان بصورت هموقت اونها را بر روی یک ماشین نصب کرد و این ماشین*های مجازی برای هر کاربر محیط دلخواه او را شبیه*سازی نمايند.

حتی می*توان چندین ماشین مجازی را بر روی چندین ماشین واقعی در محیط کار نصب نمود که اینکار % امنیت را نیز بالا *می*برد.

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

[۱۰]
ماشین*های مجازی همچنین می*توانند از تکنیکهای emulation برای[۱۱] اجرای یک برنامه* بر روی سیستمهای مختلف هستفاده نمايند.

به عنوان مثال سیستمی که از دستوران PowerPC هستفاده می*کند می*تواند عملا به قسمی emulate شود که به نظر آید از دستورات IA-32 هستفاده می*کند، بدین صورت می*توان برنامه*هایی که صرفا بر روی IA-32 اجرا می*شوند را درون این سیستم نیز اجرا نمود.

این کار می*تواند هم در سطح سیستم (همان simulation) و با شبیه*سازی کل سیستم*عامل انجام شود (مثلا نصب ویندوز درون Macintosh) و هم در سطح برنامه و یا پردازش در حال انجام (به عنوان مثال اجرای Excel درون سیستم عاملهای Sun Solaris و یا SPARC).

علاوه بر emulation، ماشین*های مجازی می*توانند در هنگام اجرا بصورت اونی فایلهای binary در حال کار را نیز بهینه نمايند و سرعت پردازشها را بالا ببرند.
ماشین*های مجازی که در اینجا مثال زده شد تنها اونهایی هستند که برای کار با معماری ماشین*های واقعی موجود طراحی شده*اند.

با اینحال ماشین*های مجازی وجود دارند که برای اونها هیچ معماری فیزیکی واقعی وجود ندارد.

امروزه دیگر برای طراحان زبانهای برنامه*نویسی امری بسیار عادی هست که در ابتدا ماشین مجازی را طراحی نمايند و زبان خود را به گونه*ای بسازند که تمام دستورالعملها را به دستورالعملهایی که برای اون ماشین مجازی قابل فهم هست ترجمه کند.

حال هر ماشین واقعی که این ماشین مجازی را درون خود نصب داشته باشد، براحتی می*تواند برنامه*های نوشته شده برای اون زبان خاص را در خود اجرا نماید.

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

بدون توجه به نوع ماشین مجازی و کارهایی که انجام می*دهد، یک سری تکنولوژیهای مشترک بین تمامی این ماشین*ها وجود دارد که برای ساخت یک ماشین مجازی،*باید از اون تکنولوژیها هستفاده کرد.

هدف این مقاله کوچک در وهله اول آشنایی با این تکنولوژیهای مشترک می*باشد و در مرحله بعد آشنایی بسیار مقدماتی با ماشین*های مجازی مختلف اهداف بعدی ما را تشکیل می*دهند.


35:

معماری کامپیوتر
همانطور که در آینده خواهید دید، هدف اصلی یک ماشین مجازی در واقع ساخت پلی هست بین معماریهای مختلف کامپیوتری و همین وفاداری به اصول یک معماری هست که یک ماشین مجازی خوب را که می*تواند کل اون معماری را شبیه سازی کند، می*سازد.

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

در کامپیوتر هم اوضاع به همین منوال هست و وقتی از کلمه معماری هستفاده می*شود، منظور جزئیات اون سیستم نیست، بلکه شکل و شمایل اون سیستم برای کسانی که می*خواهند با اون کار نمايند و امکاناتی که سیستم فراهم می*آورد مورد نظر هست.

معماری یک سیستم معمولا با توضیح دقیق رابطی [۱۲] که اون سیستم فراهم می*آورد به همراه واکنش منطقی منابع موجود در سیستم در صورتی که از طریق رابط با اونها کار شود، بیان می*شود.

به نحوه پیاده*سازی [۱۳] یک معماری درون سیستم، پیاده*سازی می*گویند.

تا واقعا به یک مثال نگاه نکنیم، مفهوم این قسمت را متوجه نمی*شوید.

به شکل زیر نگاه کنید.

همانطور که می*بینید برنامه*های موجود در سیستم در یک مستطیل نشان داده شده*اند (شماره ۱) و کتابخانه*های موجود در مستطیل دیگری نمایش یافته*اند (شماره ۲).

به خطی که بین این دو مستطیل برنامه دارد همان رابط می*گوییم، به عبارت دیگر اگر یک برنامه بخواهد با یک کتابخانه کار کند، باید با این خط صحبت کند و این خط از طرف دیگر با کتابخانه موجو رابطه بربرنامه کرده و ارتباط بین این دو مستطیل را به نحوی که خود می*خواهد بربرنامه می*کند.

بنابر این در این شکل مفهوم رابط به خوبی مشخص هست.

به هر یک از این مستطیل ها نیز پیاده*سازی و یا همان implementation می*گوییم.

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

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

بنابر این می*توان فرمود که برای هر معماری، چندین نوع پیاده*سازی وجود دارد.

مثلا یک نوع پیاده*سازی که سرعت را بالا می*برد ولی در عوض مصرف انرژی را افزایش می*دهد، و یا پیاده*سازی دیگری که سرعت کمتری دارد، ولی مصرف انرژی کمتری را نیز طلب می*کند.[۱۴]
حال اگر دوباره به شکل نگاه کنید، رابطهای مختلفی را می*بینید.

رابط دیگری که در پایین نرم*افزارها و بین نرم*افزارها و سیستم*عامل برنامه دارد، رابط شماره ۳ هست.

رابط دیگری بین کنترلرها و bus وجود دارد که سیگنالها را از bus به کنترلرها می*فرستد (رابط ۱۱)، رابطی که مربوط به سیگنالهای دسترسی به حافظه هست که از پردازشگر بیرون آمده*اند (رابط ۱۲) و ...

از میان تمامی این رابطها، ما به اونهایی که بین مرز نرم*افزار/سخت*افزار هستند علاقه بیشتری داریم.

Linux


معماریهای مختلف کامپیوتر.

لایه*های نشان داده شده بصورت عمودی با رابطهای خود در ارتباطند.
همانطور که در شکل می*بینید، ISA که [۱۵] خود از رابطهای ۷ و ۸ تشکیل شده هست، نقش واسط بین لایه سخت*افزاری و نرم*افزاری را بازی می*کند.

مفهوم ISA اولین بار در کامپیوترهای IBM 360 سری mainframe مطرح شد.

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

این تنوع در سخت*افزارها باعث می*شد که قوانین سختی بین لایه سخت*افزاری و نرم*افزاری حاکم گردد تا برنامه*های نوشته شده برای این معماری بتواند بر روی همه انواع پیاده*سازیها کار کند.

این شد که لایه ISA معنی واقعی خود را پیدا کرد و اولین بار در اونجا شکل گرفت.
دو قسمت ازISA در تعریف یک ماشین مجازی نقش ایفا می*کند.

قسمت اول قسمتی هست که با نرم*افزارهای سیستم بصورت مستقیم در تماس هست (رابط شماره ۷ در شکل) که از اون به عنوان ISA سطح کاربر یاد می*کنیم.

قسمت دیگر قسمتی هست که تنها با نرم*افزار مدیر مثلا سیستم*عامل سر و کار دارد و مسئولیت مدیریت منابع سخت*افزاری را بر عهده دارد.

به این قسمت ISA سیستم [۱۷] می*گوییم.

طبیعی هست که نرم*افزار مدیر می*تواند تمام کارهای ISA سطح کاربر را نیز اجرا کند.

در شکل، رابط شماره ۷ تنها از ISA سطح کاربر [۱۶] تشکیل شده، در حالی که رابط ۸، هم ISA سیستم و هم ISA کاربر را پوشش می*دهد.
برنامه ای که از ABI هستفاده می*کند می*تواند به منابع سخت*افزاری و سرویسهای موجود در سیستم دسترسی داشته باشد.

ABI خود از دو قسمت تشکیل شده هست.

قسمت اول مجموعه*ای از تمام دستورالعملهایی هست که یک کاربر می*تواند به اونها دسترسی داشته باشد (رابط شماره ۷ در شکل)، بدین صورت کاربر خود می*تواند بطور مستقیم با سخت افزار تماس داشته باشد؛ و قسمت دیگر نحوه دسترسی به منابع سیستمی را مشخص می*کند.

یک کاربر برای دسترسی به منابع سیستمی نمی*تواند بطور مستقیم از رابط شماره ۷ هستفاده کند و برای اینکار باید ابتدا با سیستم*عامل تماس بربرنامه کرده (رابط شماره ۳ در شکل) و در صورت اجازه سیستم عامل، به این منابع دسترسی پیدا کند.

به رابط شماره ۳، رابط صدا زن سیستم [۱۸]می*گویند.

رابط صدا زن می*تواند مجموعه*ای از دستورالعملها را شامل شود که سیستم*عامل می*تواند از طرف کاربر اجرا کند (البته سپس احراز هویت کاربر و اطمینان از اینکه کاربر اجازه اجرای این دستورالعملها را دارد[۱۹]).

صدا زدن این رابط نیز دقیقا همانند فراخوانی یک تابع عادی هست، با این تفاوت که از قوانین خاص خود پیروی کرده و برای ارسال متغیر به اون نیز معمولا از stack و مقادیر ذخیره شده در حافظه هستفاده می*شود.

اجراء برنامه*ای که از ABI هستفاده می*کند بر روی سیستم*های دیگر منوط به هستفاده از سیستم*عامل و ISA مشابهی هست که برنامه تحت اون نوشته شده هست.
هستفاده از API دقیقا هستفاده از رابط شماره ۲ بجای رابط شماره ۳ هست.

به بیان دیگر بجای ارتباط با سیستم*عامل و درخواست از او برای اجرای دستورات سیستمی، از یک سری کتابخانه بدین منظور هستفاده می*کنیم.

البته از طریق کتابخانه*ها می*توان به سرویسهایی که سیستم عاملها نیز فراهم می*آورند دسترسی داشت.

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

از کتابخانه*های بسیار معروفی که می*توان نام برد، کتابخانه clib هست که از زبان C تحت UNIX پشتیبانی می*کند.

توابع موجود در API معمولا از یک و یا چند ABI هستفاده می*نمايند.

حتی بعضی از API ها صرفا در حکم کاغذ کادو [۲۰]هستند، بدین معنا که از خودشان هیچ نداشته و صرفا با صدا زدن اون API، دستورات سیستم عاملی مورد نظر از طرف API اجرا می*شود.[۲۱]

36:

مبانی ماشین*های مجازی
برای اینکه بخواهیم مفهوم ماشین مجازی را درک کنیم، ابتدا باید تعریف کنیم که اصلا منظور ما از ماشین چیست؟ همانطور که قبلا فرموده شد، مفهوم لغت ماشین کاملا بسته به دیدگاه گوینده دارد.

از دید یک پردازش که در حال اجرای برنامه* کاربر هست، ماشین همان فضای حافظه منطقی اختصاص داده شده به او به همراه رجیسترها و دستورالعملهایی هست که به پردازش [۲۲]اجازه اجراء کد را می*دهد.

یک پردازش به هیچ عنوان نمی*تواند بطور مستقیم با دستگا*ههای ورودی/خروجی کار کند و برای اینکار نیاز به سیستم*عامل دارد.

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

بنابراین ماشین از دید سیستم عامل، تمامی سخت*افزارهای موجود در لایه*های زیرین هستند که سیستم*عامل می*تواند از طریق لایه ISA به اونها دسترسی داشته باشد.
در عمل یک ماشین مجازی، نرم*افزارها (یک پردازش و یا یک سیستم کامل) را به همان گونه*ای اجرا می*کند که نرم*افزار در ماشین واقعی اجرا می*شود.

ماشین مجازی در واقع ترکیبی از ماشین واقعی به همراه نرم*افزار مجازی*ساز هست.

ماشین مجازی می*تواند منابع مختلفی را چه از نظر تعداد و چه از نظر نوع داشته باشد.

به عنوان مثال یک ماشین مجازی می*تواند پردازشهای بیشتری را نسبت به ماشین واقعی داشته باشد و حتی این پردازشها ممکن هست از دستورات متفاوتی نسبت به دستورات پشتیبانی شده توسط پردازشگر واقعی، تشکیل شده باشند.

لازم به ذکر هست که بازدهی یکسان با سیستم واقعی از یک سیستم مجازی معمولا توقع نمی*رود و جزء شرایط پیش فرض اون نیست.

غالبا کارکرد سیستم مجازی از سیستم واقعی در اجرای نرم*افزاری که دقیقا برای همان سیستم واقعی نوشته شده باشد، پایین*تر هست.
با توجه به قانون همریختی که قبلا بیان شد، مجازی سازی شامل دو قسمت می*گردد: اول نگارش منابع مجازی به منابع واقعی موجود در سیستم واقعی و دوم هستفاده از دستورات سیستم واقعی برای اجرای دستورات سیستم مجازی که این خود شامل شامل شبیه سازی ABI و یا ISA ماشین مجازی نیز می*گردد.
همانگونه که ماشین را از دید پردازش و دید سیستم تعریف کردیم، دو گونه ماشین*های مجازی نیز داریم:
ماشین*های مجازی پردازشی [۲۳]
ماشین*های مجازی سیستمی [۲۴]
همانگونه که از نام اون بر می*آید، یک ماشین مجازی پردازشی می*تواند یک پردازش را بصورت مجازی اجراء نماید.

شکل زیر نمونه*ای از این ماشین را نمایش می*دهد.

در این شکل و شکل بعد، قسمتهایی که با یکدیگر تجانس دارند و یکدیگر را درک می*نمايند با رنگ یکسان نشان داده شده*اند.
در ماشین*های مجازی پردازشی، نرم*افزار مجازی*ساز در لایه ABI برنامه گرفته هست.

این نرم*افزار دقیقا بالای ترکیب سخت*افزار/سیستم*عامل و در زیر پردازش مجازی*سازی شده جای گرفته هست.

این نرم*افزار هم دستورات سطح کاربر و هم صدا زدن سیستم*عامل توسط پردازش مجازی شده را شبیه*سازی می*کند.

در اصطلاح به سیستمی که نرم*افزار مجازی*ساز روی اون اجرا می*شود سیستم میزبان و به نرم*افزاری که درون نرم*افزار مجازی*ساز اجرا می*شود، مهمان می*گوییم.

به ماشینی که نرم*افزار مجازی*ساز سعی در شبیه*سازی اون دارد، ماشین بومی و یا مادری [۲۵] می*گوییم.

Linuxیک ماشین مجازی پردازشی.

این ماشین دستورات کاربری و سطح OS نرم*افزار مهمان را به گونه*ای برای ماشین میزبان ترجمه می*کند که عملا نرم*افزار مهمان یک ماشین را می*بیند.
نام نرم*افزار مجازی*ساز معمولا با توجه به اینکه پردازش و یا کل یک سیستم را مجازی*سازی می*کند، فرق می*کند.

به برنامه*هایی که یک پردازش را شبیه سازی می*نمايند معمولا runtime فرموده[۲۶] می*شود.

همانطور که دیدید runtimeها بین سیستم*عامل و پردازش مجازی در حال اجرا برنامه می*گیرند.
از طرف دیگر یک مجازی*ساز سیستمی کل یک سیستم را مجازی می*کند.

این سیستم مجازی می*تواند یک سیستم*عامل را بر روی خود اجرا نماید و این سیستم*عامل مجازی به تمامی سخت*افزار و دستگاههای ورودی/خروجی دسترسی داشته باشد.

حتی این سیستم می*تواند خروجی گرافیکی خود را نیز در بر داشته باشد.

ماشین مجازی تا هنگامی که ماشین واقعی زنده باشد می*تواند سیستم مجازی را پشتیبانی کند.
شکل بعد نمونه*ای از این سیستم را نشان می*دهد.

همانطور که می*بینید نرم*افزار مجازی*ساز بین سخت افزار و نرم*افزار مجازی شده برنامه گرفته هست.

در این شکل نرم*افزار مجازی شده عملا ISA شبیه*سازی شده توسط نرم*افزار مجازی*ساز را می*بیند و نه سخت*افزار واقعی سیستم را.

البته باید فرمود که در خیلی از ماشین*های مجازی سیستمی، هم سیستم واقعی و هم سیستم مجازی از یک ISA پشتیبانی می*نمايند.

در ماشین*های مجازی سیستمی، اغلب به نرم*افزار مجازی نماينده مانیتور ماشین مجازی می*گویند.

این اصطلاح از همان روزهای اولیه ساخت ماشین*های مجازی در سال ۱۹۶۰ شکل گرفت و تا به امروز همچنان پا برجاست.

Linuxماشین مجازی ISA یک سیستم را به ISA یک سیستم دیگر (سیستم بومی) ترجمه می*کند و با اینکار باعث می*شود عملا یک ماشین مجازی سیستمی شکل گیرد که می*تواند نرم*افزارهای خاص خود را که برای گونه* دیگری از سخت*افزار طراحی شده هست، اجرا نماید.
همانطور که در این قسمت کوچک از یک کتاب ۶۰۰ صفحه*ای دیدید، ماشین*های مجازی دیگر تنها در حد یک اسم نیستند که به راحتی بتوان از کنارشان گذشت.

این رشته عملا تبدیل به یکی از تخصصهای کامپیوتری شده و دانش ویژه خود را می*طلبد.

امیدوارم در این چند صفحه کوچک با مبانی ماشین*های مجازی آشنا شده و اگر احیانا =QEMU را نیز بر روی کامپیوتر خود نصب نموده*اید، الان دیگر واقعا قدر اونرا بدانید و تا اندازه*ای متوجه باشید که با چه تکنولوژی در حال کار هستید!



نویسنده: بیژن هومند hoomand <AT> gmail.com


پی*نویس:


[۱].Complexity
[۲].I/O
[۳].Abstraction
[۴].Interface
[۵].CPU Instruction Set
[۶].isomorphism
[۷].guest
[۸].host
[۹].اگر با نرم*افزارهای مجازی*سازی همچون QEMUو یا VMWare کار کرده باشید، دقت کرده*اید که عملا این نرم*افزارها یک سیستم خاص را،* مثلا یک کامپیوتر با Athlon CPU و ۲۵۶ مگابایت RAMو مانیتور LG Flatron 700P شبیه*سازی می*نمايند.

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

در واقع نرم*افزارهای شبیه*سازی همانند تونلی بین سیستم*عاملهای مختلف عمل می*نمايند.

برای درک این مطلب لازم هست حتما با یکی از نرم*افزارهای مجازی سازی بصورت عملی کار کنید و اگر تا کنون این کار را نکرده*اید و در درک مطالب آورده شده در اینجا مشکل دارید، جای تعجب ندارد!


[۱۰].به عنوان مثال می*توان بر روی یک سرور با ۲ پروسسور سیستم*عامل لینوکس را نصب کرد و درون لینوکس، ویندوز را بصورت مجازی نصب نمود.

در این جالت می*توان هر دو این سسیتمها را درون شبکه واقعی برنامه داد و مثلا سیستم*عامل لینوکس سرویسهای PHP و آپاچی را سرویس دهد و سیستم*عامل ویندوز مجازی سرویسهای ASP.net و IIS.

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


[۱۱].Emulation در لغت به معنای برتری*جویی و انجام کاری دقیقا شبیه و یا بهتر از شخص دیگری می*باشد.

به عنوان مثال اگر من بگویم " I emulate my brother in piano” بدین معناست که من در پیانو زدن همانند برادرم و حتی بهتر از او می*باشم.

این لغت در انگلیسی روزمره دقیقا متضاد لغت Simulate که به معنای شبیه*سازی و تظاهر در عمل هست می*باشد.

مثلا اگر من بگویم " I simulate happiness” یعنی اینکه من تظاهر به شادمانی می*کنم.

اما هر گاه در اصطلاح کامپیوتری از لغت simulate هستفاده شد، منظور شبیه*سازی کامل یک سیستم هست، یعنی یک سیستم کامل با هارد دیسکها و ram و cd-drive ها و غیره را درون یک سیستم*عامل دیگر شبیه*سازی کنیم.

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

برای اجرای یک نرم*افزار خاص همچون photoshop درون لینوکس لازم نیست که کل ویندوز را درون لینوکس شبیه سازی کرد (که اگر اینکار را بکنیم قطعا photoshop هم در اون اجرا می*شود)، بلکه تنها لازم هست اون تکه از سخت*افزارها و دستور*العملهایی که photoshop برای اجرا به اونها نیاز دارد را شبیه*سازی کنیم که به این عمل emulation گوییم.


[۱۲].Interface
[۱۳].Implementation
[۱۴].یک معماری را دقیقا مثل یک جعبه سیاه در نظر بگیرید که ما می*دانیم با زدن کلیدها (رابط) برنامه هست چه خروجی به ما تحویل دهد، ولی اینکه درون اون چه اتفاقی برنامه هست بیفتد را اصلا نمی*دانیم.

به ساخت این جعبه سیاه پیاده*سازی می*گوییم.

وقتی که می*خواهند یک معماری را شرح دهند، صرفا به نحوه کار با رابط (کلیدها) بسنده می*نمايند و دیگر نحوه پیاده*سازی را توضیح نخواهند داد.
[۱۵].Instruction Set Architecture
[۱۶].User ISA
[۱۷].System ISA
[۱۸].System Call
[۱۹].کلا فلسفه مجبور کردن کاربر به صدا زدن سیستم*عامل برای انجام عملیات مورد نظر نیز به همین دلیل بوده هست.
[۲۰].Wrapper
[۲۱].ممکن هست از خود بپرسید که دیگر این APIها به چه درد می*خورند و چه فایده*ای دارد که از اونها هستفاده کنیم؟! ببینید، در این حالت صرفا API همانند یک ماکرو عمل می*کند.

فرض کنید ۱۰ تا دستور را برای انجام کاری باید هر بار در سیستم وارد کنید، خوب خیلی راحتتر بود که اونها را درون یک ظرف واحد نوشته، و تنها اون ظرف را صدا بزنید.

به این ظرف ماکرو و یا procedure می*گویند، یعنی چیزی که تنها هدفش پایین آوردن حجم تایپ شما و در عین حال یاری رساندن به حافظه شما می*باشد.

چرا کمک به حافظه؟ مشخص هست، در مثال ما فرض کنید که برای انجام کاری، ۱۰ دستور را باید در ویندوز وارد می*کردید تا کار انجام میشد و اگر همان کار را می*خواستید در لینوکس به انجام رسانید، ۱۵ دستور کاملا متفاوت باید اجرا میشد، خوب به خاطر سپاری تمام این موارد و ترتیب اجرا هر کدام از دستورالعملها و ...

چیزی نیست که یک انسان سالم واقعا علاقه*ای به تکرار مکرر اون داشته باشد.

یک API می*تواند سیستم*عامل را شناسایی و دستورات مقتضی را اجرا نماید.

حال اگر برنامه*نویسی از این API هستفاده کند، می*تواند مطمئن شود که برنامه*اش یک کار واحد را هم در ویندوز و هم در لینوکس و شاید حتی سیستم*عاملهای مختلف دیگر به انجام می*رساند.

همانگونه که می*بینید اینگونه API ها نیز کاربرد خودشان را دارند.
[۲۲].Process
[۲۳].Process virtual-machine
[۲۴].System virtual machine
[۲۵].Native machine
[۲۶].دقت کنید که اگر runtime به صورت سر هم (همین صورتی که اینجا آورده شده) هستفاده شود به معنای ماشین مجازی هست که پردازش را شبیه*سازی می*کند.

ولی run time (به صورت ۲ کلمه جدا و پشت سر هم) اصطلاح کلی*تری هست که به معنای وقت اجرای یک برنامه به کار می*رود و ارتباطی با کار ما ندارد.


37:

مرسی دوست من اطلاعات کاملیه.
با اجازه ازشون کپی بر میدارم واسه تحقیقم....!

38:

The best migration Linux desktop in the world.Linux

Linux


Linux
Linux
Linux

Linux XP Desktop
An affordable, reliable and comfortable
operating system for your computer.

Linux
Linux
Linux

دانلود لینوکس ایکس پی ...

توضیح : سپس دانلود این فایل باید اون را با برنامه Nero رایت کنید و هستفاده کنید
درباره خریدش چیزی نمیدونم به سایتش مراجعه کنید .

http://www.linux-xp.com/

39:

یکی از بهترین و کاربر پسند ترین لینوکس ها لینوکس زوزه SuSe هست که جدید ترین ورژنش 10.1 هست و از نظر کاربران ورژن 10 از 10.1 بهتره
لینوکس SuSe ورژن 10 که حاوی 5 سی دی هست میتونید از آدرس زیر دانلد کنید

http://ftp.suse.com/pub/suse/i386/10.0/iso/

40:

شرمنده اقا رضا ولی من FC5 رو پیشنهاد می کنم البته برای کارهای اداری و کاربران معمولی

البته اگر هم دوست داشتین slackware linux رو نصب کنین !!!
ولی از شوخی گذشته خیلی پایدار ه

41:

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

Mandrake
Fedora Core3
Knoppix
Red hat

رد هت بهتر از بقیه هست ...


ببینم شما SuSe رو نصب کردی تا بحال ؟

42:

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


من خودم 6 ماهه از FC4 هستفاده می کنم قبلا هم از red hat 8 هستفاده می کردم من از FC4 راضیم خوب کار می کنه تو این 6 ماه هیچ مشکلی نداشته

43:

آهان
یه چند تا سوال دربارش :

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

44:

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

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

گرافیکش هم عالی نیست ولی خوبه

کلا 5 سی دی هست ولی 4تا اصلی هستند

طرافدارشم در یک جمله امکاناتی داره که من وقتی با ویندوز کار می کردم ارزوشو داشتم

وقتی به صورت کامل نصب کنی همه امکانات رو قدرت واقعیشو میبینی

مخصوصا وقتی داری با پرل برنامه می نویسی

45:

خوب داداش من اونقدرا هم حرفه ای نیستم ...
فکر نمی کنم به دردم بخوره
شما SuSe نصب کردی ؟

46:

خودم نه من بیشتر Red hat و FC نصب کردم

47:

خوب بزودی نصب می کنم و خبرشو بهت میدم ...

هرچند مثل شما حرفه ای نیستم ..


48:

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

البته نصبش خیلی اسونه

49:

نصبش که راحته البته دیگه از بس یه مدت غرق بودم دیگه یادم رفته
پارتیشن ها چجوری باید باشه نرمال ؟
باور کن یادم رفته ببخشیدا

50:

باید قبل از نصب یک قسمتی از هاردت رو جدا کنی با نرم افزارهایی مثل پارتیشن مجیک

در هنگام نصب هم گزینه اتوماتیک رو انتخاب می کنی یعنی خودش بصورت اتوماتیک هم پارتیشن بندی میکنه هم فرمت .

راستی قبل از نصب کتاب Fc4 انتشارات ناقوس رو بگیر بخون خیلی کتاب خوبیه

51:

ای بابا
اطلاعاتت کاملا ناقص بود
منظورم این بود که اندازه اکستند و اینا هر کدوم چقدر باشه خوبه که یادم رفته بود
بی خیال
ممنون ما فعلا رفتیم

52:

بابا اینو اول می فرمودی خوب من فکر کردم تو همون اولش مشکل داری

شب خوش

53:

اطلاعات هر دوتاتون کامله


نصب لینوکس بر روی iPod nano


ایـن روزهـا کمتر کسی پیدا می*شود که نـام iPod پخش نماينده موسیقی مشهور اپــل را نشنیده باشد.

اما iPod در نگاه اول برای طرفداران لینوکس و نرم افزار*های آزاد محصولی انحصاری و ضد آزادی کاربر هست، چرا که iPod فقط با ویندوز و مک و نرم*افزار iTunes سازگاری داشته و از سیستم DRM انحصاری با نام FairPlay هستفاده می*کند.[۱]
در بین محصولات رقیبان هم اوضاع چندان متفاوت نیست.

روز به روز بر تعداد ابزارهایی که فقط با Windows Media Player 10 و DRM انـحصـاری مایـکروسـافت[۲] سـازگاری دارند افـزوده می*شود اما لااقل کاربران به پشتیبانی برخی از اونها از فرمت صـوتی آزاد OGG دل بـسته*اند[۳]، فرمتی که با وجود درخواستهای بسیار هنـوز تـوسط “iPod "پـشتیبانی نـمی*شود.

قـصد نـدارم بیشتر از این بـه بررسی پخش نماينده*های موسیقی بپردازم.

پس یکراست به دنبال بحث اصلی یعنی نصب لینوکس بر روی iPod می*روم.

آزمون و خطا من را به این نتیجه رسانده که منظورم را با چند سوال و جواب بهتر منتق می*کنم، پس این شما و مطل اصلی:



چرا لینوکس؟
قطعا اولین سوالی که برای هر کس پیش خواهد آمد این هست که چرا باید لینوکس را بر روی" iPod "نصب کرد.

شما با کمک لینوکس می*توانید محدودیتهای “iPod” خود را از بین ببرید.

به عنوان مثال شما می*توانید قابلیت پـخش" FLAC "و در آینـده نزدیک OGG را به iPod خود اضافه کنید.

با iPod-ای که فقط توانایی پخش موسیقی دارد عکس مشاهده کنید و با همان iPod یا iPodهای جدیدتر که امکان نمایش عکس را هم دارند فیلم هم تماشا کنید! اگـر iPod با پشتیبانی از فیلم داشته باشید باز هم پشتیبانی از فرمتهای موسیقی بیشتـر و بـازیهایـی مانند شـطرنج و Doom برایـتان جـذاب خواهد بود.

نکته جالب این هست که تقریبا تمام ویژگیهای فـوق با تمـام iPodهـا(غیـر از Shuffle) سـازگار هست.

هنوز برخی ناسازگاریها با نسل پنجم iPod یعنی iPod Video وجود دارد، بنابراین بهتر هست ابتدا به Wiki رسمی iPodLinux مراجعه کنید.[۴]


چرا ipod؟
ایـن هـم سوال غـیر منتظره*ای نیست.

چـرا “iPod "از میـان ایـن هـمه پـخش کـننده مـوسیقی شرکتهای مختلف انتخاب شده هست؟ اول از همـه”iPod” بیشترین سهم بازار پخش نماينده*های موسیقی را در اختیار دارد.

در ثانی هر iPod-ی -غـیر از shuffle گنجایش، صفحه نمایش و البته قدرت کافی برای چنین منظوری را دارد.


کدام توزیع لینوکس؟
iPod" اینقدر قوی نیست که از پس یک توزیع کامل لینوکس بربیاید.

برای این منظور از هسته “uClinux " که نسخه*ای کوچک شده از هسته لینوکس هست به علاوه محیط گرافیکی Podzilla که مخصوص iPod طراحی شده و از ClickWheel هم به خوبی پشتیبانی می*کند هستفاده می*شود.


</B>با کمک چه سیستم عاملی می*توان لینوکس را بر روی iPod نصب کرد؟ </B>
مطالب این راهنما تمام مراحل را در نسخه ۱۰.۴ سیستم عامل مکینتاش نمایش می*دهد، اما اینکار با کمک لینوکس و ویندوز هم ممکن هست.

برای اطلاعات بیشتر به پایان مقاله مراجعه کنید.
با اطلاعاتم چه کنم؟
با اینکه می*توان لینوکس را در کنار سیستم عامل اصلی iPod نـصب کرد و اطلاعات موجود را حفظ کرد اما تهیه یک پشتیبان از تمام اطلاعات اون به خصوص در شرایطی که آهنگها و اطلاعات خاصی را فقط بر روی اون داشته باشید اقدامی ضروری هست.

برای این منظور iPod nano را به کامپیوتر متصل کنید، لوازم Disk Utility را اجـرا کـنید، “iPod” خـود را از لیست سمت چپ انتخاب کنید، بـر روی دکمه New image کلـیک کنید، از کشوی باز شده در جلوی Save as نـام مورد نظرتان برای فایل پشتیبان را وارد کنید، بـرای image Format گزینه iPod image را انتخاب کرده و با کلیک بر روی دکمه Save عملیات پشتیبان*گیری آغاز خواهد شد.
چطور نصب کنم؟
بـرای نـصب لینوکس باید حالت”Disk Use"را فعـال کـرده بـاشـید.

برای این منظور در شرایطـی کـه iPod بـه دستگــاه متـصل اسـت “iTunes "را اجـرا کرده، وارد تنـظیمات اون شده، برگـه iPod را انتخاب کرده و در بین تنظیمات iPod گزینه Enable Fisk Use را تیک بزنید و OK را کلیک کنید.


حالا “iPod-Linux installer” را از [۵] دریافت کنید.

آرشیو فشرده را با دوبار کـلیک" extract "کنید و از پوشه جدیــد iPod-Linux_installer_0.4_(alpha)” i ” برنـامه" iPod-Linux installer” را اجـرا کنیـد.

در ابـتدا با پیغام هشداری مواجه خواهید شد، بر روی دکمه i Agree کلیک کنید.
حالا از محیط برنامه بر روی Select an iPod کلیک کرده و از لیست iPod خود را انتخاب کنید، در صورتی که می*خواهید لینوکس سیستم عامل پیشفرض iPod شما باشد گزینه Make Linux Default OS را تیک بزنید.

سپس دکـمه “install "را فـشار دهید.

در کشوی باز شده عملیات نصب نمایش داده خواهد شد، از جمله پشتیبان گیری از Firmware دستگاه(iPod) تا در صورت نیاز بتوانید لینوکس را از روی دستگاهتان حذف کنید.
اگر iPod nano یا نسل پنجم (Video) داشته باشید با پیغامی مبنی بر پشتیبانی نشدن رسمی iPod-تان مواجه خواهید شد.

دکمه Continue را فشار دهید تا عملیات نصب ادامه پیدا کند.


پس از پایان یافتن نصب با پیغامی مبنی بر موفقیت نصب مواجه خواهید شد.

iPod را Eject کنید.

استقامت کنید تا iPod راه*اندازی مجدد(reset) شود.

اگر این اتفاق رخ نداد وقتی پیغام Do not disconnect از صفحه*iPod-تان محو شد دستگاه را از کامپیوتر جدا کنید و سپس خودتان iPod را reset کنید.

برای این منظور:
</B>برای ipod های نسل اول تا سوم </B>، اینقدر دکمه*های Menu و Play را نگهدارید تا reset شود.


</B>برای ipodهای جدیدتر دکمه*های Menu و Select (دکمه وسط) را اینقدر نگهدارید تا reset شود.


پس از reset شدن دستگاه اگر قبلا " Make Linux Default OS” را تیک زده باشید iPod با لینوکس راه*اندازی خواهـد شـد.

در غـیر ایـن صـورت پـس از reset شـدن دستگاه بلافاصله پس از نمایش لوگوی سیب دکمه “Rewind " را نگهدارید تا دستگاه با لینوکس راه*اندازی شود.

بر عکس این روش هم درست هست.

یعنی اگر دستگاه به صورت پیشفرض با لینوکس راه*اندازی می*شود با نگهداشتن دکمه Rewind سیستم*عامل اصلی iPod راه*اندازی می*شود.


چطور ارتقا دهم؟
اگر دنبال دردسر نمی*گردید این قسمت را نخوانید!
برای ارتقای هسته لینوکس ساده*ترین روش جایگزین کردن هسته لینوکس در برنامه نصاب هست.

برای این منظور بر روی iPod-Linux installer کلیک راست کرده و Show Package Contents را انتخاب کنید.

سپس از پنجره جدید باز شده “Resources” را بـاز کـنـیـد.

از [۶] جـدیدتـرین نسـخــه*" kernel.bin "را دریــافت کنـیـد.

Kernel.bin.gz را extract کـــــرده و نام اون را به linux.bin تغییر دهید و سـپس اون را با linux.bin موجود در پوشــه Resources جــایگزین کنید.

از این به بعد iPod-Linux installer هســته جدید مورد نظرتان را نـصب خواهد کرد.


برای ارتــقـای podzilla 0 (نسخه*ای که توسط برنامه نصاب نصب می*شود) آخرین نسخه را از [۶] دریافت کرده، اون را extract کرده و جایگزین podzilla اصلی نصب شده در iPod-تان کنید.

Podzilla در مسیر /bin/ یا /sbin/ در ipod شــما برنامه دارد.

برای اطمینان خاطر از نصب صحیح، برنامه Terminal را اجرا کرده و داخل اون تایپ کنید chmod +x و یک فاصله(space)، سپــس فایـــل podzilla را از داخـل iPod خود بکشید و بر روی Terminal رها کنید تا مسیر و نام فایل خود به خود تایپ شود، در نهایت Enter را بزنید تا دستور اجرا شود.

مانند نمونه زیر:
$ chmod +x /Volumes/iPod\ nano/sbin/podzilla
Podzilla2 هم در حال ساخت هست که در [۷] درباره اون اطلاعات بیشتر را می*توانید بدست آورید.

از اونجایی که هنوز ناپایدار و پر از اشکال هست از توضیح اون در این مقاله پرهیز کردم.

اگـــر علاقه*مند به بازی هستید محیط FloydZilla هم گزینه مناسبی خواهد بود.[۸]
چطور از امکانات اون هستفاده کنم؟
ابتدا لازم هست به”Settings "رفته، “Backlight Timer” را فعال کنید و در صورت نیاز تنظیمات “Wheel” و ظاهر podzilla را هم ویرایش کنید و در نهایت فراموش نکنید که save را انتخاب کنید.


podzilla حاوی یک File Browser هست که می*توانید آهنگها، عکسها و فیلمها را از طریق اون مشاهده کنید.

می*توانید بازی iDoom را از [۹] دریافت کنید.

این بازی که نسخه کامل منتقل شده Doom برای iPod هست برای مدتی شما و اطرافیانتان را شفرمودزده خواهد کرد.

فراموش نکنید که در صورت نیاز به خروج از بازی یکبار Hold را فعال و غیر فعال کنید تا menu بازی ظاهر گشته و با انتخاب آخرین گزینه از بازی خارج می*شوید.

در جوابد پرسشی کــه قبـل از خروج می*پرسد دکمه “menu "را فشار دهید.

اگر علاقه*مند به بازی هستید و "FloydZilla" را نــصب نـکـرده*ایـد از وجود iBoy که شــبیه ساز دستگاه بازی GameBoy اســت بی خبرید.

با هستفاده از این شبیه*سـاز و ROM هــای بازیهای GameBoy می*توانید با iPod بازیهای Gameboy را هم اجرا کنید! [۱۰]
پیگیری و دریافت و نصب سایر ابزارها دیگر بر عهده خودتان هست!
چطور فایلهای ویدئویی سازگار با Video Player لینوکس بسازم؟
در حال حاضر فقط از فایلهای AVi فشرده نشده پشتیبانی می*شود.

برای تبدیل فایلهایتان به این نوع باید ffmpeg و mplayer را نصب کرده باشید.

سپس در Terminal مشابه دستور زیر را وارد کنید:
$ ffmpeg -vcodec rawvideo -acodec pcm_s16le -r 15 -i input.avi -s 220x176 -aspect 4:3 output.avi
دستور بالا صدای فایل input.avi را به نوع سازگار و غیر فشرده تبدیل می*کند، سپس output.avi که نتیجه کار هست را برای تغییر codec تصویری دوباره تبدیل می*کنیم:
$ mencoder -ovc raw -ofps 15 -oac pcm -vf scale=176:-2,expand=176:132,format=bgr16 output.avi -o ipodready.avi
دستور بالا فایل ipodready.avi را از output.avi بدست می*آورد.

این فایل در iPodهای دارای صفحه نمایش رنگی قابل مشاهده خواهد بود.

برای کسب اطلاعات بیشتر و راهنمای مربوط به مدلهای قدیمیتر به [۱۱] مراجعه کنید.

متاسفانه نسخه های فعلی mencoder برای Mac OS X چه نسخه آماده و چه نسخه*ای که خودتان از CVS دریافــت و کامپایل کنید دارای بـاگی هستند که فایل حاصل از دستور بالا بــا رنگ مغشوش سـاخته مـی*شود.

متـاسفانـه در حال حاضر راه حلی جز هستفاده از لینوکس و ویندوز بــرای تهیه فایلهای ویدیویی سالم نیست.


اگر به مشکل برخوردم؟
اگر iPod nano دارید و پس از پشتیبانگیری از Firmware بـه مشکل برخورد کردید توصیه من دریافت نسخه قدیمیتر 0.4 alpha از [۱۲] هست.


اگر در هنگام کار با لینوکس برنامه متوقف شد عموما با reset کردن iPod مشکل خواهد شد.

اگر این مشکل باقـی هست یا پس از نصب لینوکس iPod غیر قابل هستفاده شده*است اون را به کامپیوترتان متـصل کرده و “iPod-Linux installer” را اجــرا کنید.

سـپس iPod خود را از لیست انتخاب کرده و دکـمـه Uninstall را کلیک کنید.

اگر ایـن روش بی فایده بـود " iPod Updater “(موجود در پوشه Utilities در صورت نصب بودن نرم افزار همراه iPod) را اجرا کرده و بر روی Restore کلیک کنید.(هشدار: با این روش اطلاعات iPod کاملا پاک خواهد شد، به همین دلایل هست که پشتیبان گرفتن از اطلاعاتتان را نباید پشت گوش بیاندازید.)
اگر پشتیبان گرفته*اید جای نگرانی نیست.

کافی هست”Disk Utility" را اجرا کرده، از گزینه*های سمت چپ iPod nano را انـــتــخاب کــرده و از زبــانه*های سمت راست بـــر روی Restore کلیک کنید.

حالا در قسمت Source فایــل پــشتیبــانـی کـه قـبـلا تـهیه کـرده بـودیـد را بکشیـد و رها کنید(Drag & Drop) و در قسمت Destination هم iPod nano را بکشید و رها کنید.

بر روی دکمه Restore کلیک کنید و استقامت کنید تا عملیات بازگردندن اطلاعات به پایان برسد.

iPod را eject کنید، احتمالا با یک reset، دوباره iPod شما به وضعیت قبل از نصب لینوکس باز می*گردد.


اگر هیچ کدام از این روشها عمل نکرد و حتی iPod توسط کامپیوتر شما شناسایی نشد تنها راه باقیمانده راه*اندازی iPod شما در Disk Mode هست.

برای اطلاعات بیشتر به [۱۳] مراجعه کنید.

اگر با کمک این روش iPod توسط کامپیوتر شما شناسایی شد می*توانید دوباره روشهای بالا را امتحان کنید، به این امید که اینبار با موفقیت iPod را بهبود بخشید.

اما توجه داشته باشید که به هر حال نصب لینوکس بر روی iPod می*تواند خطرناک باشد و هیچکس مسئول اطلاعات از دست رفته شما نخواهد بود.


منبع؟ مرجع؟
گرچه مقاله*های خوب و کامـلـی به زبان انگلیسـی ایـن عملیات را از داخل محیــط ویندوز[۱۴]، مک[۱۵] و لینوکس[۱۶] توضیح داده*اند سعی کردم مقاله*ای مستقل و با تکیه بر سادگی عملیات تهیه کنم، در نتیجه این مقاله تقریبا یک مقاله تالیفی هست.

وقتی که این مطلب را تهیه می*کردم گمان می*کردم تنها مطلب فارســی در ایـن مورد اسـت، امــا این اواخر فهمیدم ماه آبان سال گذشته در وبلاگ خودکار آبی مقاله*ای فارسی[۱۷] اینکار را از داخل ویندوز آموزش می*دهد.

خوشبختانه اکثر موضوعات بررسی شده در این مقاله بــا مــوضوعات بررسی شده در وبـلاگ مذکور مـتـفاوت هست و مطالعههردوی این مقاله*ها ضرری نخواهد داشت.

فقط توجه داشته باشید که iPod های جدید مانند mini, nano و video امکان ضبط صدا را ندارند.


54:

جالب بود واسه اونا که iPod دارن :)

55:




بابا از ماها خيلي فعالتري
تبريك ميگم به بچهاي هم ميهن كه يك نفر ديگه هم بهشون اضافه شده كه داريه ديگران رو راهنمايي مي كنه

56:

خواهش می کنم پویا جان ..
من در حدی که خودم کار کردم به بقیه هم میگم ...

57:

حق*امتیازهای (Patent)نرم*افزاری
ماجرای حق*امتیاز نرم*افزار در آمریکا و شیوه*های کسب و کار
(قسمت اول)


نوشته پرسیوال اسمیت[۱]
تظاهرات عـــلــیه پیشنهاد «دستور حق*امتیاز نرم*افزار» در اروپا (که از طرف پارلمان اتحادیه اروپا رد شد) بــرای دوره*ای، بسیار تماشایی بود و حداقل شامل یک نبرد بزرگ می*شد؛ میکو راوهالا [۲] برای بی*اثر کردن نفوذ شرکتهای بزرگی که ایده اعمال حق*امتیاز نرم*افزار در اروپا را تبلیغ می*کردند ابتکار جالبی به خرج داد.

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

همینطور یک مسابقه نقض حق*امتیاز نرم*افزار هم راه افتاد.
ریچارد هستالمن و تیم اوریلی حرکتی اعتراضی را بر علیه حق*امتیاز «تک-کلیک» آمازون دات کام در آمریکا ساوقتدهی کردند.

حق*امتیازی که مدعی انحصار ایده سفارش اقلام با یک حرکت مثل یک کلیک ماوس بود.
گروه*های غیرانتفاعی چون بنیاد مرز الکترونیک (EFF) و بنیاد عمومی حق*امتیاز (PUBPAT) در آمریکا و بنیاد زیرساخت آزاد اطلاعات (FFII) در اروپا حمله و نابودی حق*امتیاز نرم*افزار را هدف خود برنامه داده*اند.
یک بلاگر با پیش کشیدن حــــــق تقدم صنعت [۳] نو، به اداره حق*امتیاز ایالات متحده، موفق به تحمیل بازبینی دوباره حق*امتیاز تک-کلیک نه چندان معروف آمازون شد.
Linux




Linux



مقایسه*ای بین حق*امتیاز حق تقدم صنعت و حق*امتیاز تک-کلیک
هر چند صاحبان حق*امتیاز نرم*افزار هم چندان بیکار ننشسته*اند.

گروه*های مبلغ قدرتمندی لزوم حق*امتیازپذیری نرم*افزار را تبلیغ می*نمايند و در آخر کار صاحبان حق*امتیاز انحصار خود را اعمال خواهند کرد.

شکایت اخیر Firestar بر علیه Red Hat می*تواند نشانه چنین وضعیتی باشد.
اما این حق*امتیازهای نرم*افزاری چه هستند که امت را آشفته کرده*اند؟ من در این مقاله نگاهی به روشهای تجاری حق*امتیاز در ایالات متحده انداخته**ام.
پیشینه
حق*امتیاز پردازش داده*ها ســابقه*ای طـــولانی دارد.

حق*امتیاز ماشینهای پانچ کارت در قرن نوزدهم متداول بوده هست و حق*امتـــیاز روشهای کدگذاری شبیه به نرم*افزار در طـــول جنگ جهانی اول قابل اشاره هست.

اونچه که در واقع در طول سالها تغییر کرده روش برخورد با این حق*امتیازها در دادگاه هست.
در سال ۱۸۵۳ شکایت اوریلی علیه مورس شامل چنین ادعایی بود:
«...استفاده از نیروی محرک جریان الکتریکی یا شیمیایی-الکتریکی که من الکترو مگنتیزم می*نامم، به هر شکلی که برای ساخــــتن بکار رود یا برای هر نوع انتشار قابل درکی با نشــانه*ها، حروف یا علایم در هر مسافتی توسعه داده شده باشد...»
که رد شد.
حق امتیاز نرم*افزاری در دعوی کوهن علیه دیمر (۱۸۷۷) رخ نمود (در رابطه با اختراع ساختن پودر) که دادگاه عالی به اون رسیدگی کرد:
«یک فرآیند ممکن هست حق*امتیازپذیر باشد، صرفنظر از نوع خاص کاربرد ابزاری*اش.»
در رای دادگاه شـــــــکایت شرکت رادیو و تلگراف مک*کی بر علیه تعاونی رادیو آمریکا به سال *۱۹۳۹ درباره اونتن رادیویی طراحی شده با یک فرمول ریاضی آمده هست:
«هر چند یــــک اصل علمی یا بیان ریاضی از اون، اختراعی حق*امتیازپذیر نیست، ابداع یا ساختار کاربردی ایجاد شده با هستفاده از دانش حاصل از اون اصل علمی، می*تواند حق*امتیازپذیر باشد.»
با این همه برای دوره*ای طولانی نرم*افزار به عنوان جزیی از قلمرو مواردی هــمچون «ایده*های انتزاعی»، «اصول علمی» یا «بیان ریاضی» محسوب می*شد که قانـــــون، حق*امتیازدهی به اونها را منع کرده بود.

بدین ترتیب بسیاری از ابداعات کلیدی نرم*افزاری (مانند ایده اولیه صفحه گسترده) هرگز حق*امتیازدهی نشد.
برای نمونه در دعوی گوتچالک علیه بنسون (۱۹۷۲) که مورد ادعا، تبدیل کد باینری ارقام اعشاری به ارقام صحیح باینری بود آمده هست:
«واضح هست که نمی*توان یک ایده را حق*امتیاز کرد.

اما نتیجه عملی فرمولی که ارقام اعشار کد شده را به اعداد صحیح تبدیل کند در این مورد قابل حق*امتیازدهی هست.

فرمول ریاضی بکار رفته در این خصوص هیچ کاربرد عملی قابل*توجهی ندارد بجز در رایانه*های دیجیتال که معنای اون این هست که اگر این دادرسی تصدیق شود، حق*امتیاز بطور کامل شامل انحصار فرمول ریاضی و در نتیجه خود الگوریتم خواهد شد.»
و
«آثار طبیعی حتــــی اگر به تازگی کشف شده باشند، فرآیندهای ذهنی، و ایده*های انتزاعی فکری قابل حق*امتیازدهی نیستند زیرا که ابزارهای اولیه کارهای علمی و تکنولوژیک هستند.»
در دعوی پارکر برعلیه فلوک (۱۹۷۸) که درباره بروزرسانی شماره*ای بود که محدوده اعلان خـــطر نامیده می*شد و برای نظارت بر یک فرآیند شیمیایی بکار می*رفت آمده هست:
«...بر پايه مـــــــاده ۱۰۱، فرآیند واکنشی حق*امتیازپذیر نیست، نـــه به این دلیل که حاوی یک الگوریتم ریاضی به عنوان جزیی از فرآیند هست بلکه به این دلیل که وقتی الگوریتم در حصار حق تقدم صنعت هست، بطور کلی ابداعی حق امتیازناپذیر هست.»
و
« به زبان ساده، دادگاه امروز برای رسیدگی به شکایتی هست از یک روش ارتقاء یافته محاسباتی که حتی اگر به کاربردی خاص محدود شده باشد بر پايه ماده ۱۰۱ حق*امتیازناپذیر هست...

»
منظور از «ماده ۱۰۱» در اینجا ماده ۱۰۱ قانون پايه ی ایالات متحده هست که مبانی قانونی موضوعات حق*امتیازپذیر را معین کرده هست:
«هر کسی که فرآیندی مفید، ماشین، مصنوع یا ترکیبی از مواد، و یا هر ارتقاء مفید مربوط به اون که ممکن هست حق*امتیاز برای اون فراهم شود، اختراع یا کشف کند در حیطه شرایط و ملزومات این قانون هست.»

ترجمه از بهنام بهجت مرندی blixbox@gmail.com

منبع
پانویسها
[۱] Percival Smith
[۲] Mikko Rauhala
[۳] Prior Art

58:

چند نکته کاربردی

نکته ۱: تغییر نام فایل*ها به حروف کوچکشاید گاهی اوقات مجبور باشید تا نــام تعداد زیادی فایل را که از حروف بزرگ تشکیل شده، به حروف کوچک تغییر دهید.

قطعا انجام دستی این کار، بسیار آزار دهنـــده خــواهـــد بــود، مخصـوصا اینکه تعداد فایل*ها هم زیاد باشد.

با نوشتن یک اسکریپت کوچک به زبان پرل، به راحتی می*توانید این کار را اجرا کنید:

كد:
  #!/usr/bin/perl -w # Created by Ben Okopnik on Fri Jul 25 09:13:22 EDT 2003 die "Usage: ", $0 =~ /([^\/]+)$/, " <FILE[S]_TO_LOWERCASE>\n" unless @ARGV; rename $_, lc for @ARGV
کافی هست این اسکریپت را با نامی مانند lc.pl ذخیره کرده و از اون هستفاده کنید.

امکان بکارگیری * در ورودی نام فایل*ها نیز وجود دارد.

همچنین می*توانید برای سهولت بیشتر اونرا در یک حلقه برنامه دهید:
كد:
$ for x in *; do ~/lc.pl $x; done
نکته ۲: جدول مقایسه برنامه*های کاربردی گنو/لینوکس و ویندوز
در صورتی که در گنو/لینوکس تازه*کار هستــید، شــاید از دیـــدن لیــست مقـــایسه*ای برنامه*های کاربردی گنو/لینوکس و وینـــدوز بــدتان نیــاید.

اینجارا ببینید.

البته قبلا در سایت*های دیگر نیز این جدول معرفی شده هست، ولی با این حال خالی از لطف نیست.


نکته ۳: استخراج رشته*های متنی از فایل*های دودویی
شاید برایتان جالب باشد که دستوری به نام strings می*تواند رشتــه*های متنـــی را از درون فایل*های دو دویی هستخراج کند.

مثلا می*توانید به دنبال وقت کامپایل هسته نصب شده بر روی سیستم خود باشید:

كد:
$ strings /boot/vmlinuz-2.6.8-2-k7 | grep 200 2.6.8-2-k7 (horms@tabatha.lab.ultramonkey.org) #1 Thu May 19 18:03:29 JST 2005
نکته ۴: اگر فراموش کردید هنگام نصب swap ایجاد کنید!
پارتیشن swap در شرایطی که سیستم زیر بـــار هست و برنامه*های کـاربردی زیادی هموقت با هم باز هستند، می*تواند نقش عمده*ای در بهبود سرعت و عملکرد سیستم داشته باشد.

ممــکن اســت هنـــگام نصـب فراموش کرده باشید این پارتیشن مهم را ایجاد کنید.

مهم نیست.

بسادگی می*توانید اونرا پس از نصب نیز ایجاد کنید.

کــافـــی هست با هستفاده از ابزارهایی مانند parted و cfdisk یک پارتیشن با حجم دو برابر RAM سیستم خود ایجاد کرده و سپس دستـــورات زیـــر را اجرا کنید:



# mkswap /dev/hdxx && swapon
کافی هست بجای xx شماره دیسک سخت و پارتیشـــن مـــربـوطه را وارد کنید.

مثلا hda6.

سپس باید اونرا در فایل fstab خود نیز اضافه کنید.

مانند خط زیر:




كد:
/dev/hdxx       none            swap    sw              0       0
نکته ۵: پاک کردن فایل*ها bak
بسیاری از ویرایشگرهای متنی و حتی واژه پردازها مانند Kword بـــه صـــورت پیـــش گـــزیده پــس از هـر باز ذخیره فایل نسخه*ای پشتیبان از اونرا با پسوند ~ ذخیره می*نمايند.

با اینکه این ویژگی مفید هست، ولی پس از مدتی می*تـــواند مقدار زیادی از فضای دیسک سخت شما را اشغال کند.

با هستفاده از دستور زیر می*توانید به سادگی این فایل*ها را پاک کنید:
# cd / && find .

-name '*~' -exec rm -fv {} \;

59:

نام مقاله : مجوزهای دسترسی برای فایل ها و دایرکتوری ها
نویسنده : نوید ٬ عباس


از اونجایی که لینوکس یک سیستم عامل چند کاربره یا Multiuser می باشد و در هر لحظه بیش از یک کاربر می توانند از سیستم هستفاده نمايند ، این نکته بسیار ضروری هست که بتوانیم این کاربران را مدیریت و از لحاظ سطح امنیتی اونها را محدود کنیم تا در آینده دچار مشکلات امنیتی نشویم.

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


I.

کاربران در لینوکس
در لینوکس سه دسته ی مختلف از کاربران وجود دارند:
۱.

کاربر ریشه یا root
۲.

کاربر ساده
۳.

کاربران سیستم

کاربر اصلی یا SuperUser با نام root شناخته می شود که بر تمام سیستم کنترل کامل داشته و بالاترین سطح دسترسی یک سیستم را دارا می باشد و قابل ذکر هست که این کاربر با شناسه ی کاربری یا UserID به شماره ی 0 شناخته می شود.
کاربر ساده می تواند وارد سیستم شود و کارهای معمولی یک کاربر را اجرا کند.

هر کاربر یک دایرکتوری به نام دایرکتوری خانگی یا HomeDirectory دارد که اغلب در home/ و با نام کاربری اون کاربر می باشد و نیز یک شل دارد که در اکثر مواقع bin/bash/ میباشد.

این کاربران به منابع سیستم دسترسی ندارند به این معنی که نمی توانند تنظیمات کلی سیستم مثلا سرویس دهنده های وب را تغییر دهند (مگر اونکه کاربر ریشه این مجوز را برای اونها صادر کند).

بنابراین این کاربران نمی توانند به سیستم آسیبی برسانند و یا فایل های سیستمی را پاک یا تغییر دهند.

در لینوکس هر سیستمی علاوه بر یک کاربر ریشه حداقل یک کابر ساده نیز دارد تا کار های معمولی و حتی کارهای کاربر خانگی توسط این کاربر ساده انجام گیرد تا از آسیب دیدن سیستم جلوگیری شود.

(این آسیب می تواند پاک شدن یک فایل سیستمی به دلیل نا آشنایی کاربر ساده باشد.)
کاربران سیستم هرگز Login نمی نمايند.

حساب های کاربری یا Account های این کاربران برای کارهای خاص هستفاده می شود.

این کاربران معمولا دایرکتوری خانگی نیز ندارند.

نمونه ای از این کاربران ٬ کاربران ftp ، apache ،lp می باشند.

کاربر ftp برای دسترسی بی نام (Anonymous) یا همان بدون نام کاربری و پسورد هستفاده می شود یا کاربرapache معمولا برای مدیریت درخواست های HTTP هستفاده می شود.

(البته در برخی توزیع های لینوکس این کاربر nobody یا www-data می باشد.)

برای دیدن لیستی از کاربران موجود در سیستم (هر سه دسته ی بالا) می توانید فایل etc/passwd/ را ببینید.

در این فایل هر خط نشان دهنده ی یک کاربر می باشد و اطلاعات مربوط به کاربر در مقابل اون کاربر نمایش داده می شود.

برای دیدن این اطلاعات می توانید از دستور زیر هستفاده کنید:

tux@GNUIran:~$ cat /etc/passwd
نتیجه ی این دستور چیزی شبیه زیر خواهد بود:

tux@GNUIran:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
Debian-exim:x:102:102::/var/spool/exim4:/bin/false
identd:x:100:65534::/var/run/identd:/bin/false
sshd:x:101:65534::/var/run/sshd:/bin/false
gdm:x:103:104:Gnome Display Manager:/var/lib/gdm:/bin/false
mysql:x:104:106:MySQL Server:/var/lib/mysql:/bin/false
tux:x:1000:30:GNUIran.org's Tux,9990011,:/home/tux:/bin/bash
همان طور که می بینید هر کدام از کاربران در یک خط هستند.
برای نمونه اطلاعات مربوط به کاربر tux را مورد بررسی برنامه می دهیم:
tux : نام کاربری
x : در این بخش کلمه ی عبور یا پسورد کاربر به صورت رمز نوشته می شود.

البته در توزیع های جدید بجای اون یک x نوشته میشود و پسورد در فایل دیگری به نام etc/shadow/ نگهداری می شود.
1000 : شماره ی کاربر یا UserID می باشد که همان طور که می بینید برای کاربر ریشه 0 می باشد.
30 : شماره ی گروه یا GroupID می باشد که در ادامه درباره ی گروه ها توضیح خواهیم داد.
GNUIran.org's Tux : اطلاعات اضافی درباره ی کاربر که می تواند شامل نام و نام خانوادگی و تلفن و غیره باشد.

به این فیلد ٬ فیلد GECOS فرموده می شود.

برای کاربران سیستم این فیلد اغلب توضیحی درباره ی کاربرد اون کاربر می باشد.

به توضیحات کاربرgdm توجه کنید.
home/tux/ : این بخش محل دایرکتوری خانگی کاربران را نمایش می دهد.

به محل این دایرکتوری در کاربران سیستم دقت کنید!
bin/bash/ : در این بخش به شل یا پوسته ی هر کاربر اشاره شده هست که در اغلب توزیع های لینوکس bin/bash/ می باشد.

برای ایجاد یک کاربر جدید در خط فرمان سپس رفتن به حالت ریشه (با دستور su) می توانید با دستور adduser یک کاربر جدید بسازید:

GNUIran:~# adduser gnu
GNUIran:~# passwd gnu
با وارد کردن این دستورات ابتدا کاربر جدید gnu ساخته می شود و با وارد کردن دستور سپس شما یک کلمه ی عبور یا پسورد برای کاربر gnu پرسیده خواهد شد.

اگر این دستور در توزیع شما غیر فعال هست شما می توانید از مدیر های گرافیکی مانند YaST در زوزه ٬ برای مدیریت کاربران هستفاده نمایید یا از برنامه ی Kuser در محیط میزکار KDE هستفاده کنید و یا به سادگی رکورد اون را در همین فایل اضافه کنید.


نکته:
در اغلب توزیع ها در خط فرمان برای کاربران ساده از کاراکتر دلار ($) و برای کاربر ریشه یا root از کاراکتر پوند (#) هستفاده می شود.


II.

گروه ها در لینوکس
مفهوم دیگری که در لینوکس پیاده سازی شده هست گروه ها یا group می باشد.

گروه از یک کاربر یا تعدادی کاربر تشکیل شده هست.

وقتی که برای یک گروه دسترسی یا عدم دسترسی به منبعی تعریف می شود ٬ این نوع مجوز دهی برای تمام اعضای اون گروه اعمال می شود.

بنابراین می توان با گروه بندی کاربران به راحتی به عده ای مجوزی را داد و یا اون را سلب کرد.

برای دیدن گروه های موجود در لینوکس خود می توانید به فایل etc/group/ مراجعه کنید.

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

tux@GNUIran:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
lp:x:7:
mail:x:8:
news:x:9:
ftp:x:50:
dialout:x:20:
tty:x:25:
users:x:100:tux,gnu,deb
در این فایل نیز هر گروه در یک خط (یا رکورد) نوشته شده هست.

برای نمونه گروه users را بررسی می کنیم.
users : یک نام اختصاصی برای گروه
x : پسورد رمز نگاری شده ی مخصوص گروه که البته در صورت نبودن x پسوردی نیاز نیست.
100 : شماره ی اختصاصی گروه یا GroupID می باشد.
tux,gnu,deb : کاربرانی که عضو این گروه می باشند.
برای نمونه اعضای گروه tty می توانند در ترمینال (خط فرمان) تایپ نمايند یا اعضای گروه dialout می توانند از مودم هستفاده نمايند.
حتما حدس زده اید که برای اضافه کردن یک گروه از دستور groupadd باید هستفاده کرد:

GNUIran:~# groupadd gnuusers
GNUIran:~# usermod -G gnuusers tux
در خط اول یک گروه به نام gnuusers ساخته شد و در خط دوم کاربر tux عضو این گروه شد.

III.

مجوزهای دسترسی برای فایل ها
مجوزهای دسترسی تعیین نماينده ی این مطلب هست که هر کاربر یا کاربران یک گروه اجازه ی انجام چه کارهایی را دارند.

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

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

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

(می توانید با سیستم فایل های مایکروسافت مقایسه کنید که سپس ورود NTFS این مجوزها به این سیستم عامل معرفی شدند.) مجوزها در سیستم عامل لینوکس شامل سه نوع یا سه mode می باشند:

۱ ) Read ( مطالعه) : بیانگر مجوز مطالعهیک فایل می باشد و با r نشان داده می شود.
۲ ) Write ( نوشتن ) : بیانگر مجوز نوشتن و تغییر دادن محتویات یک فایل می باشد و با w نشان داده می شود.
۳ ) eXecute ( اجرا کردن ) : مجوز اجرا کردن را به کاربر مورد نظر می دهد و با x نشان داده می شود.

واضح هست که این مجوز فقط برای فایل های اجرایی تاثیر گذار می باشد.

لازم به ذکر هست که هر یک از کاربران در سیستم عامل گنو/لینوکس می توانند هر ترکیبی از انواع مجوزهای مطالعه٬ نوشتن و اجرا کردن را برای هر فایل داشته باشند.
اگر بخواهیم عملیاتی را روی یک فایل یا دایرکتوری اجرا کنیم که مجوز دسترسی لازم را نداشته باشیم با پیغام خطای زیر مواجه خواهیم شد:

tux@GNUIran:~$ cd /root
bash: cd: /root: Permission denied
برای مشاهده مجوزهای دسترسی یک فایل باید از دستور ls که مخفف list می باشد به همراه گزینه (option) l هستفاده کرد.

به نمونه ی زیر توجه کنید:

tux@GNUIran:~$ ls -l
total 2
drwxr-xr-x 3 tux GNUIran 6553 Sep 1 17:19 Documents
-rw-r--r-- 1 tux GNUIran 1024 Sep 12 17 :49 myfile
که خروجی این دستور را برای myfie بررسی می کنیم:
بیت اول که در اینجا " – " می باشد بیانگر نوع فایل می باشد و فقط یک بیت برای کنترل و اطلاع از نوع فایل یا دایرکتوری بودن اون می باشد و یک بیت برای نشان دادن مجوزها نیست.

انواع اون را در زیر مشاهده می کنید:
- : فایل ساده
d : دایرکتوری
l : لینک نمادین یا لینک نرم -Symbolic link
s : سوکت -Socket
p : یک FIFO pipe

بیت های بعدی:
rwxr-xr-x : مجوزهای دسترسی
1 : تعداد لینک های سخت یا Hardlinks [۱]
tux : کاربر
GNUIran : گروه
1024 : حجم فایل به بایت - Byte
Sep 12 : تاریخ آخرین تغییرات
17:19 : ساعت آخرین تغییرات
myfile : نام فایل

همان طور که مشاهده نمودید مجوزهای دسترسی در نه بیت نمایش داده می شوند (--rw-r--r).

این ۹ کاراکتر یا در اصلاح دقیق نه بیت (bit) نسبت به سه نوع (mode) مالکیت وضع می شوند:

۱ ) User ( مالک ) : همان ایجاد نماينده ی فایل یا دایرکتوری می باشد.
۲ ) Group ( گروه ) : تعدادی از کاربران سیستم عامل می باشند که در یک گروه مشخصی برنامه دارند و افراد متعلق به یک گروه می توانند در صورت داشتن مجوزهای لازم به فایل ها و دایرکتوری ها هم گروهی های خود دسترسی داشته باشند.
۳ ) Other ( سایر کاربران ) : می تواند شامل هر کاربر خارج از گروه شما باشد.

برای هر یک از این هستفاده نمايندگان سه نوع مجوز ( mode ) وجود دارد که شامل مطالعه٬ نوشتن و اجرا کردن فایل ها و دایرکتوری ها می باشد که این دلیل نه کاراکتری بودن مجوزهاست.

سه کاراکتر اول از سمت چپ مجوزهای دسترسی مربوط به مالک ( User ) ٬ سه کاراکتر بعدی مجوزهای دسترسی مربوط به گروه و سه کاراکتر آخر مجوزهای دسترسی برای سایر کاربران را مشخص می نمايند.
با توجه به مطالب ذکر شده همان طور که مشاهده می شود در مثال مطرح شده یک دایرکتوری بنام Documents و بک فایل بنامmyfile وجود دارد که صاحب و مالک این فایل و دایرکتوری کاربر tux می باشد و عضو گروه GNUIran می باشد.

در این مثال مجوزهای دسترسی برای این فایل به صورت زیر خواهد بود:

فایل myfile
مالک : مجاز به مطالعهو نوشتن می باشد.
گروه : فقط مجاز به مطالعهمی باشد.
سایر کاربران : فقط مجاز به مطالعهمی باشند.

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

IV.

مجوزهای دسترسی دایرکتوری ها
برای دایرکتوری ها هم همان سه مجوز موجود برای فایل ها هستفاده می شوند ، اما نحوه ی هستفاده با توجه به اینکه دایرکتوری هستند کمی متفاوت می باشد که در زیر این سه مجوز را برای دایرکتوری ها بررسی می کنیم:

۱ ) مطالعه: اگر یک دایرکتوری دارای مجوز مطالعهباشد شما می توانید لیستی از نام فایل ها و دایرکتوری های داخل اون بگیرید.

یا به زبان خط فرمان می توانید از اون یک ls بگیرید.
۲ ) نوشتن : اگر دایرکتوری دارای مجوز نوشتن باشد این بدین معنی هست که شما می توانید فایل های داخل اون را پاک کرده یا تغییر نام دهید یا یک فایل جدید در اون ایجاد کنید و فایل ها را ویرایش کنید.

نکته ی بسیار مهم این هست که این اعمال به شرطی قابل انجام هستند که شما مجوز اجرا کردن (x) را نیز داشته باشید و نوشتن (w) به تنهایی نمی تواند این اعمال را برای شما فراهم کند.
۳ ) اجرا کردن ( جستجو ) : این دستور اجازه ی ورود به دایرکتوری را می دهد یا به زبان خط فرمان شما اجازه ی cd کردن به داخل دایرکتوری را دارید و بدین وسیله شما به محتویات دایرکتوری دسترسی دارید و به شرط داشتن مجوز نوشتن می توانید اونها را تغییر دهید.

به این مجوز در دایرکتوری ها ٬ اغلب مجوز جستجو فرموده می شود.

بنابراین هرگاه درباره ی مجوز جستجو مطلبی فرموده شد در واقع درباره ی مجوز x در دایرکتوری صحبت می شود.



با توجه به مطالب فرموده شده مجوز دایرکتوری Documents در مثال بالا به شکل زیر خواهد بود:

دایرکتوری Documents
مالک : دارای حداکثر مجوزهای دسترسی می باشد.
گروه : فقط مجاز به مطالعهو اجرا کردن می باشد.
سایر کاربران : فقط مجاز به مطالعهو اجرا کردن می باشند.

V.

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

در سیستم عامل گنو/لینوکس از دستور chmod که مخفف change mode می باشد برای تغییر مجوزهای دسترسی فایل ها و دایرکتوری ها هستفاده می شود.

توجه نمایید که برای هستفاده از این دستور برای تغییر مجوزهای دسترسی یک فایل/دایرکتوری باید مالکیت اون فایل/دایرکتوری متعلق به شما باشد و یا اینکه کاربر ریشه ( root ) باشید.
از فرمان chmod به دو روش هستفاده می شود:

روش اول ( با نشان ها )



chmod USER +/-/= NEW_MODE File/Directory
در این روش به صورت نسبی می توان مجوزهای دسترسی را تغییر داد که در اون USER یکی از حروف زیر یا ترکیبی از اونها می تواند باشد:

u : برای مالک فایل/دایرکتوری
g : برای گروه
o : برای سایر کاربران
a : برای تمام کاربران ( all )

همان طور که فرموده شد می توانید ترکیبی از این مقادیر را نیز بکار برد.

مثلا از "go" برای group و other می توانید هستفاده کنید.
یکی از سه گزینه ی =/-/+ را برای انتساب مجوز جدید به کاربرانی که انتخاب کرده اید را باید بر حسب نیاز خود انتخاب کنید.

بدین صورتکه از "+" جهت اضافه کردن ٬ از "-" برای گرفتن و حذف کردن و از "=" برای انتساب مجوز هستفاده کنید.
NEW_MODE نیز می تواند یکی از مجوزهایی باشد که در بالا اشاره کردیم ( r برای مطالعه٬ w برای نوشتن و x برای اجرا کردن ).

در اینجا نیز می توانید از ترکیب مجوزها هستفاده کنید.

برای نمونه از "rw" برای مجوز مطالعهو نوشتن هستفاده کنید.
بنابراین g+r به معنای دادن اجازه ی مطالعهفایل/دایرکتوری مورد نظر به گروه می باشد و یا go-wx به معنای این هست که اجازه ی نوشتن و اجرا کردن از گروه و سایر کاربران گرفته می شود.

حال به مثال زیر توجه کنید:



tux@GNUIran:~$ ls -l
-rw-r--r-- 1 tux GNUIran 29 Oct 4 19:49 myfile
اکنون اگر بخواهیم مجوزهای دسترسی این فایل را طوری عوض کنیم که مجوز نوشتن به اعضای گروه داده شود باید از دستور زیر هستفاده کنیم:

tux@GNUIran:~$ chmod g+w myfile
اگر بخواهیم علاوه بر دادن مجوز نوشتن به گروه ٬ مجوز اجرا کردن را نیز به سایر کاربران بدهیم از دستور chmod باید بدین صورت هستفاده کنیم:



tux@GNUIran:~$ chmod g+w,o+x myfile
برای حصول اطمینان از تغییر مجوزها یک بار دیگر فرمان ls -l را اجرا کنید.



tux@GNUIran:~$ ls -l
-rw-rw-r-x 1 tux GNUIran 29 Oct 4 19:49 myfile
همانطور که مشاهده می کنید مجوزهای نوشتن برای گروه و اجرا کردن برای سایر کاربران اعمال شده هست.
برای اعطای مجوزهای مطالعهو نوشتن و اجرا به گروه می توانیم از دستور زیر نیز هستفاده کنیم:



tux@GNUIran:~$ chmod g=rwx myfile
روش دوم ( با اعداد )
وقت اون رسیده که کمی با اعداد بازی کنیم! همان طور که در قسمت های قبل مطالعه کردید مجوزهای دسترسی در ۹ کاراکتر نمایش داده می شوند مانند rwxrwxrwx ، به بیان دقیق تر مجوزهای دسترسی در ۹ بیت ذخیره می شوند ، هر بیت می تواند یک یا صفر باشد! خوب بنابراین ۱ به معنی داشتن اون مجوز و ۰ به معنی نداشتن اون مجوز هست ، برای نمونه rwxrwxrwx با معادل 111111111 در مبنای دو برابر هست و یا مجوز rwx---r-x به صورت صفر و یکی خواهد شد: 111000101 .

در واقع rwx برابر 111 خواهد بود و r-w برابر101 خواهد شد.

این روش ایده ایست برای مجوز دهی با روشی بسیار آسان به نام روش عددی! در این روش مقدار r برابر ۴ می باشد.

به این دلیل که اگر شما فقط مجوز مطالعهصادر کنید خواهیم داشت --r که برابر 100 می باشد و می دانیم 100 در مبنای ده برابر ۴ می باشد.

مقدار w برابر ۲ می باشد چرا که -w- برابر 010 هست که در مبنای ده ۲ می باشد و معادل x برابر ۱ می باشد چرا که x-- برابر 001 هست و ۱ در مبنای ده ۱ می شود.
بنابراین در این روش برای اعطای مجوزها باید از اعداد این جدول هستفاده بکنید.



مطالعه
۴
نوشتن
۲
اجرا کردن
۱
با این حساب می توانیم روش دوم را به صورت زیر بنویسیم:

chmod MODE File/Directory
در این حالت می توان بطور مطلق مجوزهای دسترسی را تعیین کرد.

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


MODE همان عدد سه رقمی می باشد که نشان دهنده ی مجوزهای جدید برای فایل/دایرکتوری مورد نظر می باشد.

رقم اول مربوط به مجوز دسترسی مالک ٬ رقم دوم مربوط به مجوز دسترسی گروه و رقم سوم مربوط به مجوز دسترسی سایر کاربران می باشد.
با یک مثال طریقه ی هستفاده از این اعداد را برای شما شرح می دهیم.

برای نمونه اگر بخواهید که مجوز مطالعهو نوشتن را به یک کاربر بدهید باید اعداد مربوط به مجوزهای مطالعه(۴) و نوشتن (۲) را با هم جمع کنید تا مجوز کاربر را بدست بیاورید.


۴+۲=۶
بنابراین عدد ۶ مجوز جدید کاربر خواهد بود که نشان دهنده ی وجود مجوزهای مطالعهو نوشتن برای او می باشد.
حال همان فایل myfile در مثال های بالایی را در نظر بگیرید.

می خواهیم مجوزهای اونرا طوری تغییر بدهیم که مالک دارای تمام مجوزها باشد ٬ گروه دارای مجوز مطالعهو اجرا کردن باشد و سایر کاربران نیز هیچ مجوزی نداشته باشند.

دستور زیر تمام این مجوزها را تعیین می کند.



tux@GNUIran:~$ chmod 750 myfile
همانطور که مشاهده می کنید عدد ۷ برای مالک فایل و نشان دهنده ی تمام مجوزهای مطالعهو نوشتن و اجرا کردن ( ۷=۱+۲+۴ ) برای وی می باشد.

عدد ۵ برای گروه و نشان دهنده ی مجوزهای مطالعهو نوشتن ( ۵=۱+۴ ) برای اون می باشد.

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

هیچ تفاوتی بین دستورهای معادل وجود نخواهد داشت.

به دو دستور زیر توجه کنید.

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





tux@GNUIran:~$ chmod a=rx myfile
tux@GNUIran:~$ chmod 555 myfile


نکته:
توجه کنید که اگر مجوزها را طوری تعیین کنید که مالک فایل/دایرکتوری هیچ مجوزی نداشته باشد حتی مالک فایل/دایرکتوری نیز نمی تواند به اون دسترسی داشته باشد.

اما چون وی مالک فایل/دایرکتوری می باشد می تواند مجددا مجوزها را تغییر دهد و از اون هستفاده کند.

( فراموش نکنید که فقط کاربر ریشه و مالک فایل/دایرکتوری می توانند مجوزها را تغییر بدهند.

)


نکته:
برای تغییر مجوزهای یک دایرکتوری با تمام محتویات اون می توانید از گزینه (option) R هستفاده کنید:



tux@GNUIran:~$ chmod -R 755 test

در نمونه ی بالا تمام محتویات دایرکتوری test نیز مجوز 755 خواهند گرفت.


VI.

تعیین مجوز پیش فرض
شما وقتی که یک فایل یا دایرکتوری می سازید به طور پیش فرض به اون یک مجوز اختصاص پیدا خواهد کرد که این مجوز پیش فرض را می توان با دستور umask تغییر داد.

برای اطلاع از مجوز کنونی می توانید این دستور را به تنهایی اجرا کنید.

کافیست در خط فرمان تایپ کنید umask تا مجوز پیش فرض برای شما نمایش داده شود.





tux@GNUIran:~$ umask
022
بله 022 ! کمی عجیب هست! در واقع خود شما به طور پیش فرض هیچ مجوزی ندارید! اما روش مطالعهاین عدد کمی متفاوت هست ، در واقع این اعداد مجوزهای سلب شده هست که به شما نمایش داده می شود.

برای نمونه در 022 از مالک هیچ مجوزی سلب نشده هست.

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

برای اینکه بتوانید راحت تر این مجوزها را بخوانید می توانید برای دایرکتوری ها مقدار داده شده را از 777 و برای فایل ها از 666 کم کنید.

با این کار مجوز پیش فرض برای فایل ها و دایرکتوری ها بدست می آید.


666-022= 644
777-022=755
خوب مطالعهراحت تر شد ، بنابراین هر دایرکتوری جدیدی که شما می سازید دارای مجوز پیش فرض 755 می باشد و هر فایل دارای مجوز644 می باشد.

اگر باز هم با مطالعهاعداد مشکلی دارید می توانید با گزینه (option) S این دستور را اجرا کنید:

tux@GNUIran:~$ umask -S
u=rwx,g=rx,o=rx
که نوع مجوزها دقیقا معلوم هست.
اما اگر از مجوزی که در حال حاضر به عنون پیش فرض هست ناراضی هستید به راحتی می توانید با همین دستور اون را تغییر دهید:
برای مثال اگر می خواهید جز شما هیچ کس به دایرکتوری یا فایل شما دسترسی نداشته باشد می توانید مقدار umask را 077 بدهید که در این صورت فایل های جدید ایجاد شده دارای مجوز 600 یا -------rw و دایرکتوری های جدید ایجاد شده نیز دارای مجوز 700 یا ------rwx خواهند بود.

اما اگر از روش عددی چندان راضی نیستید می توانید از روش ساده هستفاده کنید.

مانند نمونه ی زیر:



tux@GNUIran:~$ umask u=rwx,g=r,o=
که کاربر یا مالک تمام مجوزها را دارد و هم گروهی های او می توانند فایل ها را بخوانند و دیگران هیچ دسترسی ندارند.

به همین سادگی!

VII.

بیت Sticky
تا به حال به ۹ بیت برای کنترل مجوزها اشاره کردیم.

حال به بیتی دیگری به نام بیت هستیکی (Sticky) اشاره می کنیم.

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

برای نمونه اگر یک دایرکتوری به نام mail داشته باشیم که مجوز اون 777 باشد یا به عبارت دیگر مجوز مطالعهو نوشتن و جستجو برای همه در اون صادر شده باشد شما می توانید نامه های دوستان خود را که مالک اونها نیستید را پاک کنید اما اگر بیت هستیکی در اون برنامه داده شود با وجود مجوز برای تمام تغییرات شما دیگر نمی توانید نامه هایی که شما مالک اونها نیستید را پاک کنید.
برای برنامه دادن این بیت کافیست دستور chmod را مانند نمونه ی زیر به کار گیرید:



tux@GNUIran:~$ chmod +t mail
حال اگر یک بار دیگر دستور ls را اجرا می کنیم:

tux@GNUIran:~$ ls -l
drwxr-xr-t 2 tux GNUIran 4096 Sep 1 4:02 mail
مشاهده می کنید که در قسمت آخر بیت مربوط به x به t تبدیل شده هست.

بنابراین در این دایرکتوری شما نمی توانید فایلهایی را که در تملک دیگران برنامه دارد را پاک کنید.

(فایل هایی که کاربر اونها شما نیستید.)

VIII.

تغییر مالکیت فایل یا دایرکتوری
گاهی ممکن هست بخواهیم مالکیت یک فایل/دایرکتوری را تغییر بدهیم.

برای این کار باید از فرمان chown هستفاده کنیم.

شکل کلی اون بصورت زیر می باشد:

tux@GNUIran:~$ chown NEW_OWNER File/Directory
NEW_OWNER نام مالک جدید فایل/دایرکتوری می باشد که می خواهیم مالکیت فایل/دایرکتوری را به او نسبت دهیم.

باید دقت کرد که فرد مورد نظر که می خواهیم مالکیت فایل/دایرکتوری را به او نسبت بدهیم در سیستم تعریف شده باشد.

در غیر این صورت با پیغام زیر مواجه خواهیم شد:

tux@GNUIran:~$ chown tux2 myfile
chown: `tux2': invalid user
برای دیدن لیست کاربران همان طور که در بالا اشاره شد در خط فرمان باید از دستور زیر هستفاده کنید:

tux@GNUIran:~$ cat /etc/passwd


هشدار!
به این نکته توجه داشته باشید که پس از تغییر مالکیت فایل/دایرکتوری دیگر نمی توانید مجوزهای اونرا تغییر دهید چون شما دیگر مالک اون فایل/دایرکتوری نیستید! اگر عضو گروه فایل/دایرکتوری باشید ٬ همانند اعضای گروه با شما رفتار خواهد شد.

اگر هم عضو گروه فایل/دایرکتوری نباشید در قسمت سایر کاربران برنامه خواهید گرفت! پس حواس خود را جمع کنید تا اشتباهی مالکیت فایلی را تغییر ندهید! البته کاربر ریشه می تواند هر گونه تغییری در مالکیت فایل/دایرکتوری ایجاد کند.


IX.

تغییر گروه فایل یا دایرکتوری
برای تغییر دادن گروه یک فایل/دایرکتوری باید از فرمان chgrp به شکل زیر هستفاده کرد:

tux@GNUIran:~$ chgrp NEW_GROUP File/Directory
NEW_GROUP نام گروه جدیدی هست که می خواهید فایل/دایرکتوری مورد نظر را به اون گروه نسبت دهید.

همانند تغییر مالکیت در اینجا نیز باید گروه در سیستم تعریف شده باشد.

برای دیدن لیست گروهها در خط فرمان از دستور زیر هستفاده کنید:



tux@GNUIran:~$ cat /etc/group


امیدواریم این مقاله بتواند شما را در مدیریت بهتر فایل ها و دایرکتوری هایتان کمک کند.


همواره شاد و سربلند باشید.

-----------------------------

منبع (با فرمت تمیزتر!): http://www.gnuiran.org/modules.php?o...rtid=21&page=1

60:

-= مکانیزم تشخیص خودکار نوع فایلها در محیط گرافیکی لینوکس =-

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


یکی تشخیص نوع فایل از طریق بررسی محتوای اون و دیگری تشخیص از روی پسوند.


تشخیص از روی محتوا شامل بررسی هدرها و رشته های خاصی در فایل میباشد که در بیشتر انواع فایل با نوعهای دیگر تفاوت مینمايند و معمولا الگوی مشخص و محدودی دارد که اونرا قابل شناسایی میکند (با ضریب صحت بالا).

این تکنیک قدیمی هست که در یونیکس هستفاده میشده هست و همچنان سیستمهای unix like بدان مجهز هستند و از اون در موارد مربوطه بهره میبرند.


بسیاری از انواع فایلها را لینوکس بدون وجود پسوند از این طریق میتواند شناسایی کند.

بطور مثال شما یک فایل jpg را بدون هیچ پسوندی در لینوکس میتوانید تشخیص دهید و با کلیک بر روی اون توسط برنامهء مربوط نمایش داده میشود.


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

در عمل بعضی برنامه ها ممکن هست از پذیرفتن فایلی بدون پسوند (یا پسوند ناشناخته برای اونها) سرباز زنند و یا فایلی با پسوند نامطابق با محتویات فایل را معیوب تشخیص دهند.



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

یعنی چنانچه شما پسوند یک فایل را معادل پسوندی شناخته شده (تعریف شده) برای سیستم برنامه دهید نوع فایل و عملی که موقع کلیک روی اون انجام میشود توسط تعاریف مربوطهء اون نوع فایل که در سیستم شناسایی پسوندی ذخیره شده هست تعیین میگردند.

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

بطور مثال چنانچه پسوند یک فایل تصویر را از jpg به mp3 تغییر دهید، سیستم اونرا بعنوان فایل صوتی mp3 شناخته و درصورت کلیک بر روی اون، اونرا با یک برنامهء مالتی مدیا همچون xmms باز خواهد کرد.



نکتهء کاربردی: شما در هرحالتی میتوانید با فرمان file در خط فرمان لینوکس، نوع فایل را با هستفاده از روش اول (بررسی محتوا) تشخیص دهید.


بطور مثال فرمان file image1.mp3 نوع فایل تصویری را که پسوند اونرا تغییر داده ایم چنین تشخیص میدهد:
JPEG image data, JFIF standard 1.01

درمورد فایلهای اجرایی توجه کنید که پسوندهایی مثل exe و com در لینوکس تعریف نشده اند و لینوکس از روش پسوندی برای تفکیک فایلهای اجرایی از غیراجرایی هستفاده نمیکند.

بنابراین شما میتوانید فایل اجرایی خود را با این پسوندها یا بدون پسوند برنامه دهید و البته بطور مثال موقع اجرا در خط فرمان باید نام کامل فایل (همراه با پسوند) را مشخص کنید؛ بهمین دلیل فایلهای اجرایی در لینوکس اکثرا بدون پسوند هستند.



نکتهء پایانی اینکه تعریف انواع جدید فایل، ویرایش و یا حذف تعریف انواع موجود و اعمال پیشفرض روی اون انواع (در سیستم پسوندی)، در هر دو مکانیزم ذکر شده امکان دارد (در روش پسوندی بسیار ساده و شبیه سیستم عامل ویندوز میباشد (دارای رابط کاربر گرافیکی))؛ که در این مقاله به جزییات اون نمیپردازیم.



---------------------------------------

قسمتهایی از این مطلب متکی بر تحقیق و آزمایش و تجربهء شخصی میباشد.

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


محیط مورد بررسی: فدورا ۵ + کی دی ای

با تشکر - Folaani

61:

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

جدال آفرینی لوازم خوبی برای جلب توجه هست.

به نظر می*رسد بیشتر امت از مطالعهمقالات جدال انگیز لذت می برند.

شاید چون دوست دارند خود را شکنجه نمايند.

(بله، من خودم عادت داشتم مقاله های مائورین اوگارا [۲] را بخوانم!).

از طرف دیگر جدال آفرینی شمشیری دو لبه هست: احتمال اینکه من دوباره اون سایتها را ببینم اندک هست.
اما بعد.
اول اینکه تا اونجا که مربوط به توزیعهای گنو/لینوکس می شود، ردهت اولین عشق من بود.

همیشه از اون همه بسته های tgz در اسلکویر خسته بودم و وقتی برای اولین بار Red Hat 3.0.3 را نصب کردم نشئه شدم.

ردهت راه انداز کوچکی بود با یک اتصال مودم به اینترنت.

بر پايه RPM بود.

ابزاری که بالاخره حس کنترل بر سیستم را به من داد.
اما جمله کلیدی: من بخاطر ماشین رومیزی ام کاربر لینوکس ردهت شدم (بله، کمی چالش برانگیز بود!) و چند ماه بعد وقتی که می بایست توزیع سرور خودم راانتخاب میکردم، توزیعی را انتخاب کردم که به اون عادت داشتم: لینوکس ردهت.
اتفاقات زیادی در طی این سالها (۱۹۹۷ تا ۲۰۰۵) افتاده هست.

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

ردهت به بازار سهام راه پیدا کرد و سرمایه گذارانی یافت که می خواستند برنامه های خوب و واقع گرایانه ای برای پول درآوردن ببینند – که معنای اون تمرکز بیشتر بر بازار شرکتها بود.

بعد انشعاب بوجود آمد و فدورا ظاهر شد.

اما سرمایه اندکی صرف اون شد و »همکاری جامعه توسعه دهندگان« وصله پینه شده و ساوقت نیافته بود.

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

سپس اون مردی بسیار هوشمند به نام مارک شاتل ورث ۵۰۰ میلیون دلار از انفجار دات کام بدست آورد، روسی را از اول یاد گرفت، به فضا رفت، سالم برگشت، چند بنیاد خیریه که کانون توجه*شان آفریقای جنوبی هست تاسیس کرد و...

آهان، لینوکس اوبونتو را هم ایجاد کرد.
مارک با این حرکتش سه کار انجام داد.

اول اینکه کلی کار برای خودش درست کرد که خیلی ربطی به حرف من ندارد اما به گمانم مهم هست که فرموده شود.

همینطور گروهی از هکرها را دور هم جمع کرد تا چیزی را درست نمايند که به عقیده این حقیر اولین گنو/لینوکس رومیزی درست و حسابی هست.

منظورم این هست که به واقع خوب هست.

سومین کاری که کرد این بود که هزاران هزار کاربر ردهت را به طرف اوبونتو کشید.

خیلی از این افراد – و این بخش مهم ماجراست – مدیران سیستمها بودند که در این ۱۲ ماهه اخیر بیشتر و بیشتر به هستفاده از اوبونتو بجای ردهت عادت می نمايند.

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

و وقتی شما از سرور اوبونتو روی سیستم خانه تان هستفاده کنید انتخاب به یکی از این دو سو می رود.
ردهت با رها کردن کاربران میزکارش در عمل به پای خود شلیک کرد.

بامزه هست که اونها با هزینه کردن پول واقعی در پی شکار سراب هزاران مشتری شرکتی بی روح هستند.

گرچه خونریزی هنوز کاملاً متوقف نشده و پشت اون شرکتهای بی صورت، هزاران مدیر سیستمی ایستاده*اند که حالا بجای لینوکس ردهت از لینوکس اوبونتو هستفاده می نمايند.
و می خواهند که تا جای ممکن چنین نمايند.
یا شانس، ردهت.

ممنون مارک بابت اوبونتو.




بهنام بهجت مرندی blixbox@gmail.com



منبع:



پانویسها:
نویسنده: تونی موبیلی [۱]
[۱] Tony Mobily
[۲] Maureen O’Gara

62:

آقا رضا ممنون از تاپیکتون من یک سوال داشتم چطور میشه کرنل لینوکس رو آپ دیت کرد
من می خوام Ntfs رو مانت کنم ولی نمیشه میگن باید کرنل رو آپ دیت کنی لینوکس من
Fc3 هست
با تشکر

63:

سایتی بنام: چرا لینوکس بهتره! (مناسب افراد ناآشنا با لینوکس)
http://www.whylinuxisbetter.net/index_per.php

64:

جستاری محتوی معرفی تعدادی از برنامه های کاربردی لینوکس: http://www.myimei.com/forum/showthre...tid=249&page=1

65:


عمل اپ ديت كردن كار خيلي سختيه من يك بار رو FC2 انجام دادم كل سيستم بهم ريخت البته اين به دليل نا اشنايي من بود من توصيه مي كنم از suse هستفاده كنيد تا بتوانيد از ntfs هستفاده كنيد

66:

آشنایی با هسته‌ی لینوکس - قسمت اول - سیستم های عامل، یونیکس و لینوکس


اولین قسمت از مجموعه مقالات آشنایی با هسته لینوکس را آغاز می کنیم.

در این مجموعه مقالات که بر طبق برنامه ریزی‌های صورت گرفته ۱۶ تا ۲۰ مقاله خواهد بود به بررسی معماری و الگوریتم‌های موجود در هسته لینوکس خواهیم پرداخت و در هر قسمتی که بیش از حد وارد جزییات نشود به مسایل پیاده سازی و ملاحظات اون نیز خواهیم پرداخت.

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

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

در این مجموعه هر جا صحبت از لینوکس هست منظور هسته لینوکس می باشد.


مروری بر تاریخچه یونیکس

پس از گذشت سه دهه هنوز یونیکس (Unix) یکی از قدرتمندترین و زیباترین سیستم‌های عامل به شمار می رود.

از وقت پیدایش یونیکس در سال ۱۹۶۹ تاکنون افکار دنیس ریچی (Dennis Ritchie) و کن تامپسون (Ken Thompson) به موجودی افسانه ای بدل شده هست
یونیکس از مالتیکس (Multics) که یک پروژه سیستم عامل چند کاربره شکست خورده بود که در ازمایشگاه‌های بل توسعه داده شده بود زاییده شد.

هنگامی که پروژه مالتیکس با شکست به اتمام رسید, اعضای مرکز تحقیقات علوم کامپیوتر ازمایشگاه‌های بل بدون یک سیستم عامل موفق با قابلیت باقی مانده بودند.

در تابستان سال ۱۹۶۹ توسعه دهندگان ازمایشگاه بل طرحی بسیار ساده از یک فایل سیستم را ارایه کردند که بعدها زمینه ساز ایجاد یونیکس شد.

اون ها سیستم جدید خود را بر روی دستگاه‌های PDP-7 اون وقت تست می کردند.

در سال ۱۹۷۱ این سیستم نو به دستگاه‌های PDP-11 پورت و روی اونها امتحان شد.

در اون روزها دیگر این مخلوق جدید که بر پايه کدهای سیستم شکست خورده مالتیکس بود یونیکس نامیده می شد.

در سال ۱۹۷۳ سیستم عامل یونیکس با زبان C بازنویسی شد.

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

اولین یونیکسی که در بیرون از ازمایشگاه‌های بل مورد هستفاده برنامه گرفت یونیکس نسخه ۶ یا به اختصار V6 بود.
کمپانی‌های دیگری یونیکس را به ماشین‌های جدید پورت کردند.

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

در سال ۱۹۷۷ ازمایشگاه‌های بل ترکیبی از این یونیکس ها را در قالب یک سیستم به نام یونیکس سیستم ۳ (Unix System III) منتشر کرد و در سال ۱۹۸۲, AT&T نسخه System V را منتشر ساخت.
طراحی ساده یونیکس, همراه با در اختیار بودن سورس کد اون موجب توسعه فوق العاده اون در ساوقت‌های دیگر شد.

یکی از بزرگترین این ساوقت ها دانشگاه برکلی کالیفرنیا بود.

نسخه ای از یونیکس که در برکلی توسعه داده شده بود نام BSD که مخفف عبارت Berkeley Software Distribution هست گرفت.

اولین نسخه BSD در سال ۱۹۷۹ منتشر شد.

سری‌های 4.3BSD , 4.2BSD , 4.1BSD , 4.0BSD , 4BSD سپس 3BSD منتشر شدند.

در این نسخه ها امکاناتی چون حافظه مجازی, تخصیص دینامیک حافظه, TCP/IP اضافه شدند.

در سال ۱۹۹۳ اخرین نسخه رسمی یونیکس برکلی که حافظه مجازی در اون بازنویسی شده بود تحت عنوان 4.4BSD منتشر شد.

امروزه توسعه BSD در قالب پروژه‌هایی چون OpenBSD, NetBSD, FreeBSD, DragonflyBSD, Darwin ادامه می یابد.

در دهه ۱۹۸۰ و ۱۹۹۰ کمپانی‌های مختلفی نسخه‌های تجاری از یونیکس خود را منتشر کردند.

این سیستم ها که معمولا بر مبنای یونیکس AT&T یا BSD بودند برای پشتیبانی از قابلیت‌های معماری سخت افزارهای خاص تغییر می یافتند.

معروف ترین این سیستم ها True 64, HP-UX, IBM's AIX, DUNIX/ptx, SGI's IRIX, Sun's Solaris بودند.

طراحی بسیار ماهرانه یونیکس با بهبود‌های فراوانی که در صول سال ها بر روی اون اونجام شده بود اون را به یک سیستم عامل قدرتمند, تنومند و پایدار تبدیل کرده بود.

برخی از خصوصیاتی که سکوی پرتاب یونیکس شده بود عبارتند از:
۱- سادگی یونیکس: بعضی سیستم‌های عامل هزاران هزار تابع سیستمی (system call) را پیاده سازی می نمايند و اهداف مشخصی ندارند اما یونیکس فقط نزدیک به صد تابع سیستمی داشت و طراحی کاملا هدفمندانه ای شده بود.
۲- در یونیکس همه چیز فایل هست (به توضیح اونتهای پاراگراف رجوع شود).

این سطح از تجرید(abstraction) کار با اطلاعات و دستگاه ها را در قالب کار با چند تابع سیستمی کار با فایل ها ساده می کند.

توابع سیستمی چون ()open(), read(), write(), ioctl(), close .
۳- هسته یونیکس به زبان C توسعه داده شده بود.

با این قابلیت یونیکس می توانست به اسانی قابل حمل و قابل پورت شدن باشد و به اسانی در اختیار خیل عظیمی از توسعه دهندگان برنامه گیرد.
۴- یونیکس با تنها تابع سیستمی ()fork که در اختیار داشت سرعت بالایی در ایجاد پروسه ها داشت.

با این امکان سیستم‌هایی که شدیدا تقسیم بندی شده بودند بدون هیچ مشکلی می توانستند بر روی یونیکس کار نمايند.
۵- یونیکس توابع قدرتمندی در ارتباط بین پروسه ها یا InterProcess Communication) IPC) داشت که وقتی با امکان ایجاد سریع پروسه ها همراه می شد اجازه ایجاد ابزارهای مفیدی را می داد که می توانستند با ابزارهای دیگر کارهای بزرگی در سیستم اونجام دهند.
توضیح : البته همه چیز در یونیکس‌های امروزی فایل نیست.

می توان فرمود بخش اعظمی از اون با API فایل ها پیاده سازی شده هست.

اما API یونیکسی که در ازمایشگاه‌های بل ایجاد شده بود کاملا فایل بود.
امروزه یونیکس یک سیستم عامل مدرن هست که امکاناتی چون چند کار موازی (multitasking), چند رشته موازی (multithreading), حافظه مجازی (virtual memory), تخصیص دینامیکی حافظه (demand paging), کتابخانه‌های دینامیکی (shared libraries) با بارگذاری دینامیک (demand loading) و شبکه TCP/IP را پشتیبانی می کند.
بعضی از شکل‌های یونیکس به صدها سخت افزار پورت شده اوند و بعضی نیز تنها بر روی دستگاه‌های جاسازی شده (embedded devices) اجرا می شوند.
آشنایی با لینوکس
لینوکس در سال ۱۹۹۱ توسط لینوس بندیکت توروالدز ایجاد شد.

در اون وقت یونیکس قدرتمندی که به صورت ازادانه در اختیار باشد وجود نداشت و تمام یونیکس ها مجوز اختصاصی و تجاری داشتند و این موضوع لینوس را به عنوان یک جوان ۲۱ ساله که در دانشگاه هلسینکی فنلاند درس می خواند خیلی رنج می داد.

لینوس از مینیکس (Minix) که برای اهداف اموزشی ایجاد شده بود و کد اون در اختیار بود ولی حق تغییر نداشت) هستفاده می کرد

در جواب به این وضع نامساعد لینوس کاری کرد که هر دانشجوی معقول اگر در شرایط او می بود اونجام می داد.

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

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

شبیه ساز ترمینالش رشد کرد و بهتر شد.

مدتی بعد, لینوس یک سیستم یونیکس خیلی کوچک در اختیار داشت.

او یونیکس خود را در سال ۱۹۹۱ بر روی شبکه اینترنت منتشر ساخت.

این یونیکس ازاد که نام لینوکس بر روی اون گذاشته شد به سرعت کاربرانی یافت.

به دلیل مجوز ازاد GPL لینوکس که اجازه هر گونه تغییر و بررسی بر روی کدهای لینوکس را می داد توسعه دهندگان مشتاقی برای بررسی و تغییر لینوکس اون را دریافت کردند.

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

اما امروزه لینوکس یک سستم عامل پرقدرت هست که می تواند بر گستره وسیعی از معماری‌های سخت افزاری اجرا گردد.

معماری‌هایی چون AMD x86-64, ARM, Compaq Alpha, CRIS, DEC VAX, H8/300, Hitachi SuperH, HP PA-RISC, IBM S/390, Intel IA-64, MIPS, Motorola 68000, PowerPC, SPARC, Ultra SPARC, v850 معماری‌هایی بوده اوند که تاکنون لینوکس به اونها پورت شده هست.

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

امروزه لینوکس میل تجاری بزرگی برای کمپانی‌های تجاری ایجاد کرده هست.

کمپانی‌های مشهوری چون Novell, IBM, RedHat, Montavista راه کارهای بر پایه لینوکس در سطوح مختلف ارایه می نمايند.

لینوکس شبیه یونیکس یا اصطلاحا Unix Clone هست اما یونیکس نیست.

به دلیل اینکه اگرچه لینوکس ایده‌های زیادی را از یونیکس قرض گرفته و Unix API که در هستاندارد POSIX تعریف شده هست پیاده سازی کرده هست اما حتی یک خط از کد لینوکس از کد یونیکس قرض گرفته نشده هست و به عبارتی همه چیز از ابتدا نوشته شده هست با این حال برنامه‌های کامپایل شده یونیکس به خوبی در لینوکس اجرا می شوند و بالعکس.

یکی از بزرگترین و مهمترین مزایای لینوکس این هست که یک محصول تجاری نیست.

یک پروژه گروهی هست که در سطح اینترنت توسعه یافته هست.

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

به زبان ساده تر همه می توانند در لینوکس مشارکت نمايند.

مجوز GPL این اجازه را به همه داده هست.

فقط بایستی به یاد داشته باشیدهر تغییری را که در لینوکس می دهید و اون را بهتر می کنید بایستی به صورت ازادانه به لینوکس بازگردانید و این همان مفهوم تضمین ازادی هست که GPL برای شما به ارمغان می اورد.
درآمدی بر سیستم‌های عامل و هسته ها
به دلیل وجود سیستم عامل‌های مدرن تجاری که طراحی اشتباهی دارند فکر کنم منظورم را متوجه شده باشید) مفهوم دقیق سیستم عامل دچار ابهام شده هست.

کاربران زیادی تصور می نمايند هر اونچه که بر روی صفحه مانیتور خود می بینند سیستم عامل هست.

اگر بخواهیم بحث تکنیکی بکنیم سیستم عامل بخشی از سیستم هست که مسئول رفع نیازهای اولیه و مدیریت سیستم هست.

سیستم عامل شامل هسته (kernel), راه اوندازهای دستگاه ها (device drivers), بوت لودر (boot loader), پوسته فرمان (command shell) یا دیگر راه‌های ارتباطی و ابزارهای ابتدایی کار با فایل ها وسیستم هست.

مثلا مرورگر اینترنت یا پخش نماينده موسیقی جزیی از سیستم عامل نیستند.

در عوض واژه system به سیستم عامل و تمامی برنامه‌هایی که بر روی اون اجرا می شوند اطلاق می گرددلایه ظاهری کاربری (user interface) خارجی ترین بخش سیستم عامل و هسته داخلی ترین بخش اون می باشد.

هسته سرویس‌های ابتدایی برای دیگر بخش‌های سیستم را فراهم می کند, سخت افزار را مدیریت می کند و منابع سیستم را توزیع می نماید.

گاهی از هسته به عنوان مدیر یا قلب سیستم عامل یاد می شود.

اجزای شاخص هسته عبارتند از: راه اونداز‌های وقفه (interrupt handlers), وقتبند پردازنده (CPU scheduler) که وقت پردازنده را بین پروسه ها تقسیم می کند, سیستم مدیریت حافظه (memory management system) که فضای آدرس پروسه ها را مدیریت می کند و سیستم و سرویس‌هایی مانند شبکه (networking) و ارتباط بین پروسه ها (IPC).

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

از این فضا به فضای هسته (kernel space) و برعکس فضایی که برنامه‌های کاربران در اون برنامه دارند فضای کاربر (user space) نامیده می شود.

در فضای کاربر در دسترسی به منابع سیستم محدودیت وجود دارد, نمی توان مستقیم به سخت افزارها دسترسی داشت و یه طور کلی نمی توان بی ادبی کرد.
برنامه‌هایی که در سیستم در حال اجرا شدن هستند از طریق توابع سیستمی (system calls) با هسته ارتباط بربرنامه می نمايند.

یک برنامه معمولا یک تابع کتابخانه ای مثلا تابعی در کتابخانه هستاندارد زبان C را صدا می کند و در عوض تابع سیستمی از میان اون تابع کتابخانه ای صدا زده می شود.

شکل ۱.۱ ارتباط بین برنامه ها, هسته و سخت افزارها را نشان می دهد.
Linux

شکل ۱.۱ – ارتباط بین برنامه ها, هسته و سخت افزارها
بعضی توابع کتابخانه ای امکانات وسیعی را که در توابع سیستمی پیدا نمی شوند فراهم می نمايند.

بنابراین صدا کردن هسته در حقیقت رفتن به یک تابع بزرگتر هست.

به عنوان مثال تابع معروف ()printf را در نظر بگیرید.

این تابع شکل دهی و ذخیره سازی داده ها را اونجام داده و در نهایت با صدا کردن تابع سیستمی ()write اطلاعات را بر روی ترمینال می نویسد.

در عوض بعضی از توابع کتابخانه ای رابطه ای یک به یک با توابع سیستمی دارند.

به عنوان مثال تابع کتابخانه ای ()open چیزی جز صدا کردن تابع سیستمی ()open نیست.

بعضی از توابع کتابخانه ای زبان C مانند ()strcpy نیز اصلا از توابع سیستمی هستفاده نمی نمايند.

هنگامی که یک برنامه تابع سیستمی را اجرا می کند در حقیقت هسته هست که از طرف برنامه اجرا می گردد.

لذا فرموده می شود که برنامه تابع سیستمی را در فضای هسته اجرا می کند و هسته در متن (context) برنامه اجرا می شود.
هسته همچنین سخت افزار سیستم را مدیریت می کند.

تقریبا تمامی معماری‌های سخت افزاری و اونچه لینوکس پشتیبانی می کند مفهوم وقفه ها (interrupts) راپشتیبانی و فراهم می نمايند.

هنگامی که سخت افزار می خواهد با سیستم ارتباط بربرنامه کند یک وقفه ایجاد می کند که به طور اسنکرون یا غیرهموقت هسته را دچار وقفه می کند.

وقفه ها با یک شماره مشخص می شوند.

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

به عنوان مثال هنگامی که شما تایپ می کنید کنترلر صفحه کلید وقفه ای ایجاد می کند که به سیستم می فهماند که اطلاعات جدیدی در بافر صفحه کلید وجود دارد.

هسته با توجه به شماره وقفه تابع راه اونداز وقفه صحیح را اجرا می کند.

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

در سیستم‌های عامل زیادی از جمله لینوکس راه اوندازهای وقفه در متن پروسه ها اجرا نمی شوند.

در عوض اونها در متن یا context ویژه ای که متعلق به هیچ پروسه ای نیست اجرا می شوند.
در حقیقت در لینوکس به طور عمومی می توان فرمود که هر پردازنده یکی از سه کار زیر را در هر لحظه از وقت اونجام می دهد:
۱- در فضای هسته و متن پروسه هست و یک پروسه خاص را اجرا می کند.
۲- در فضای هسته و متن وقفه هست, پروسه ای را اجرا نمی کند و به وقفه ها جواب می دهد.
۳- در فضای کاربر هست و یک پروسه خاص را اجرا می کند.


67:

هسته لینوکس در برابر هسته یونیکس‌های کلاسیک
با داشتن یک ریشه و یک API هسته‌های یونیکس‌های مدرن ویژگی‌های طراحی تقریبا یکسانی دارند.

یک هسته یونیکس یک فایل باینری هستاتیک یکپارچه (monolithic) هست.

یک ایمیج اجرایی بزرگ که در یک آدرس مستقل برنامه می گیرد.

سیستم‌های یونیکسی معمولا به یک واحد مدیریت صفحه ای حافظه نیاز دارند.

این مورد امکان حافظه محافظت شده را الزامی می دارد و فضای آدرس مجازی یکتا برای هر پروسه فراهم می کند.
در این قسمت برای اینکه بتوانیم طراحی هسته لینوکس را بهتر درک کنیم بحثی پیرامون هسته‌های یکپارچه (monolithic kernels) و طراحی ریز هسته (microkernel design) اونجام می دهیم:
طراحی هسته می تواند به دو نوع اصلی دسته بندی شود: یکپارچه (monolithic) و ریزهسته (microkernel).

(البته روش سومی نیز به نام exokernel نیز وجود دارد که تاکنون بیشتر در تحقیقات مطرح شده هست ولی در دنیای واقعی نیز در حال راه یابی هست.

روش ها و متدهای دیگری نیز هستند که کاربرد چندانی ندارند و از سه روش فوق مشتق شده اوند.)
هسته‌های یکپارچه طراحی ساده تری دارند و تقریبا تمامی طراحی ها تا دهه ۱۹۸۰ بدین گونه بوده اوند.

هسته‌های یکپارچه به صورت یک ایمیج باینری بزرگ که در فضای آدرس معینی برنامه می گیرد پیاده سازی می گردد.

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

تمامی سرویس‌های هسته وجود دارند و در فضای بزرگ هسته اجرا می شوند.

ارتباطات ناچیزی در هسته وجود دارد چون تمام هسته در فضای آدرس مشخصی قابل دسترسی هست و نیاز به هیچ گونه ارتباطی نمی باشد.

در این نوع هسته می توان به طور مستقیم توابع را صدا زد.

این نوع طراحی دارای سادگی و بازدهی بالا می باشد و تقریبا تمامی یونیکس ها از این نوع طراحی بهره می برند.
در اون سو, ریز هسته به صورت یک فایل باینری بزرگ پیاده سازی نمی شود.

در عوض قابلیت‌های هسته در قالب پروسه‌های جداجدا که معمولا به اونها نام سرور (server) داده می شود خرد می گردد.


سرورهایی که به امکانات خاص نیاز دارند در فضای اجازه داده شده و بقیه در فضای کاربر اجرا می شوند.

تمامی سرورها فضای آدرس جداگانه ای دارند لذا امکان صدا کردن مستقیم توابع یکدیگر را ندارند.

در عوض ارتباطات در ریز هسته از طریق ارسال پیغام (message passing) صورت می گیرد.

با پیاده سازی مکانیزم ارتباط بین پروسه ای (IPC) سریع این ارسال پیغام ها بین سرورها می تواند بر پايه مکانیزم IPC باشد.

جداسازی سرورهای مختلف هنگامی که یکی از سرور ها دچار شکست شد از شکست کلی سیستم جلوگیری می کند.

مساله ای که در طراحی یکپارچه وجود ندارد و با ناموفق بودن یک قسمت از هسته کل اون دچار شکست می شود.

به علاوه ساختاریافتگی (modularity) طراحی ریز هسته به اون این امکان را می دهد که در حین اجرای هسته یک سرور با سرور دیگری جایگزین گردد.

با توجه به هزینه ارتباط بین سرورها و تغییر رویه اجرایی (context switch) و اونتقال پیغام ها طراحی ریزهسته کمی نسبت به طراحی پکپارچه کندتر می باشد.

برای جبران مساله سرعت کمتر و بهبود اون تقریبا تمامی سیستم عامل‌های امروزی که از این متد طراحی هستفاده می نمايند سرورها را در فضای هسته اجرا می نمايند (جلوگیری از هزینه تغییر رویه اجرایی) و بالقوه امکان صداکردن مستقیم توابع سرورها را فراهم می سازند.

سیستم عامل‌هایی چون windows NT و Mach ( که بعضی قسنت‌های Mac OS X بر مبنای اون هست) این گونه هستند.
و اما طراحی لینوکس: لینوکس نکات مثبت هر دو متد ذکر شده را در خود جمع کرده هست.

لینوکس یک هسته یکپارچه دارد که در فضای آدرس مشخصی اجرا می گردد, لینوکس طراحی ای ساخت یافته (modular) با امکاناتی نظیر اعمال زور (preemption), رشته‌های سطح هسته (kernel threads) دارد و امکان بارگذاری فایل‌های فایل‌های باینری جدا در حین اجرا را نیز دارد (ماجول‌های هسته).

با این امکانات لینوکس از یک سو سرعتی برابر با طراحی یکپارچه و از سوی دیگر کلیه امکانات ریزهسته را در خود جمع کرده هست.
هنگامی که لینوس و دیگر توسعه دهندگان لینوکس در اون مشارکت می نمايند بدون توجه به یونیکس ولی با رعایت API اون به پیاده سازی هسته می پردازند.

بنابراین با توجه به اینکه لینوکس بر پایه هیچ یونیکسی نیست توسعه دهندگان لینوکس می توانند در هر لحظه بهترین تصمیمات را اتخاذ نمايند و در لینوکس اعمال نمايند.

در زیر مقایسه ای بین هسته لینوکس و دیگر یونیکس ها صورت می پذیرد:
۱- لینوکس بارگذاری دینامیک ماجول‌های هسته را پشتیبانی می کند.

اگر چه طراحی هسته لینوکس یکپارچه هست ولی این امکان را دارد که در موقع لزوم بعضی از کدهای هسته به اون وارد شوند یا از اون خارج شوند.
۲- لینوکس چند پردازندگی متقارن (SMP) را پشتیبانی می کند.

اگر چه نسخه‌های جدید یونیکس ها این امکان را پشتیبانی می نمايند ولی این پشتیبانی در نسخه‌های قدیمی وجود نداشت.
۳- هسته لینوکس دارای اعمال زور هست یا به اصطلاح preemptive هست.

یونیکس‌های قدیمی تر امکان اعمال زور را نداشتند.
۴- لینوکس روش جالبی در پیاده سازی رشته‌های اجرایی یا thread ها دارد.

در لینوکس تقریبا فرقی مابین یک رشته و یک پروسه معمولی نیست.

تنها فرقی که وجود دارد این هست که بیت thread ها منابع به اشتراک گذاشته می شوند.
۵- لینوکس یک مدل شی گرا بر مدیریت دستگاه ها به همراه رخدادهای قطع و وصل و فایل سیستم دستگاه در فضای کاربر (sysfs) دارد.
۶- لینوکس از پیاده سازی بعضی امکانات یونیکس که طراحی خوبی ندارند و به کار نمی روند چشم پوشی کرده هست مانند STREAMS که تقریبا مرده هست.
۷- و در نهایت لینوکس بر خلاف یونیکس‌های دیگر به معنای واقعی کلمه ازاد هست.
نسخه‌های هسته لینوکس
هسته لینوکس در دو نوع نسخه منتشر می شود.

پایدار و توسعه.

هسته‌های پایدار نسخه‌هایی هستند که می توانند در محیط کاربری به کار روند.

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

در سوی دیگر هسته‌های سری توسعه در هر نسخه تغییرات زیادی می نمايند و به حد قابل قباما برای هستفاده واقعی نرسیده اوند و مناسب نیستند
نسخه هسته لینوکس به وسیله سه عدد مشخص می شود.

مثلا 2.6.20 .

عدد اول (۲) که عدد اصلی (major version) نامیده می شود وقتی تغییر می کند که تغییرات بسیار عمده و بنیادی در هسته اتفاق بیفتد.

عدد دوم (۶) عدد فرعی (minor version) نامیده می شود.

اگر این عدد زوج باشد هسته پایدار و اگر فرد باشد هسته توسعه هست.

دو عدد اول سری هسته را نیز نشان می دهند مثلا هسته مثال مذکور سری 2.6 هست.

عدد سوم نیز patchlevel نامیده می شود.
هسته‌های توسعه یک سری فاز توسعه دارند.

در ابتدا توسعه دهندگان هسته بر روی امکانات جدید کار و تحقیق و بحث می نمايند.

سپس اون مرحله ثبت امکانات یا feature freeze می باشد.

پس از این مرحله هیچ امکان جدیدی به لیست امکانات موردنظر برای پیاده سازی اضافه نخواهد شد.

توسعه کدها شروع شده و پس از مدتی که هسته به مرحله ای برسد که بتوان اون را به عنوان پایدار معرفی کرد مرحله ثبت کد یا code freeze اغاز می شود.

پس از این مرحله فقط رفع اشکال ها قبول می شوند.

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

تالار اصلی توسعه دهندگان هسته لینوکس لیست پستی هسته می باشد.

اطلاعات عضویت را می توانید در سایت http://vger.kernel.org مشاهده کنید.

لیست پستی شلوغ با بیش از ۳۰۰ نامه الکترونیکی در روز.
در قسمت اینده به مقدمات مباحث هسته لینوکس خواهیم پرداخت.

مروری بر کد منبع هسته, کامپایل هسته و مروری بر بوت لودرها مهمترین مباحث قسمت اینده خواهند بود

68:

عمل آپدیت کردن کرنل لینوکس نه تنها سخت نیست بلکه سادس و من بارها اون رو بر روی کامپیوتر خودم و هزاران سرور به صورت ریموت انجام دادم!

برای آپدیت کردن کرنلتون به آدرس زیر برین :

http://kernel.org اینجا آخرین ورژن هستیبل و ...

رو بهتون معرفی می کنه ( فعلاً آخرینش 2.6.20.1 هست فکر کنم )

بعد پکیچ رو بر روی سیستمتون با wget یا curl یا lynx یا هر لوازم دیگه ای که راحتین باهاش دریافت کنین مثلا ما از wget هستفاده می کنیم :

$ wget http://www.kernel.org/pub/linux/kern...x.yy.z.tar.bz2

که w.x.yy.z ورژن کرنلتون هست ، مثلا 2.6.20.1 !

بعد پکیچ رو با تربال اونزیپ کنین و تو دایرکتوری /usr/src ( جایی که خود کرنل اصلی هم هست ) کپی کنین !

مثلا :

tar -xjvf [KernelFile] -C /usr/src

حال برین تو آدرس دایرکتوری ای که کپی کردین فایل ها رو توش و با هستفاده از make خودش کرنل رو کامپایل کنین ! دستوراتی که تو این بخش می دین بستگی به خودتون داره ولی من نرمالش رو می گم مثلاً :

make menuconfig ( برای کاستمایز کردن کرنلتون - اگه قصد ندارین کرنل رو سفارشی کنین باید این گزینه رو اجرا کنین ولی بدون تغییر exit کنین وقتی صفحه ی آبیش اومد - البته از make xconfig و make gconfig بر حسب سلیقه هم میشه هستفاده کرد )

بعد کرنل رو make کنین ، اگه موفقیت آمیز باشه در پایان به شما پیامی مبتنی بر آدرس پارتیشنی که واقع شدین در سیستم میده که تو سیستم های شخصی این آدرس باید 0,0 باشه ولی تو سرورها این آدرس می تونه متغیر باشه !

$ make

بعد ماژول های کرنل رو کامپایل کنین :
$ make modules

برای این مرحله به بعد حتماً باید با root وارد شین ( تو بعضی آپدیت ها باید تو پوشه /root باشین و بعضی ها هم باید تو همون جایی که فایل های کرنل رو کپی کردین ):

$ make modules_install

در آخر هم کرنل رو Install کنین

$ make install

کرنل الان نصب شده ، بقش دیگه همه تنظیمات lilo و grub هست که فرمودنش فکر نمی کنم لازم باشه ، ریزکاری هاش رو هم اگه خواستی بپرس !

69:

لیستی از برنامه های معادل برنامه های ویندوز در لینوکس: http://www.linuxrsp.ru/win-lin-soft/table-eng.html

نکته: البته مسلما این لیست کامل و دقیق نیست، ولی موارد مهم و برجستهء زیادی رو دربر میگیره (توضیحات خود صفحه رو مطالعه کنید بهتره).


70:

دوستان عزیز
من این ترم پروژه ای با عنوان شناخت سرویسهای شبکه در لینوکس دارم هیچی هم درباره اش نمی دونم اگه یه کمی منو راهنمایی کنید یا حداقل یه منبعی چیزی معرفی کنید ممنون می شم

71:

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



پروژتون برا چه درسی هست ؟

72:

برای درس شیوه ارائه
فقط فرمودن سرویسهای شبکه در لینوکس ممکنه منظور همان سرویس ftpیاnis و یا سرویس دهنده وب و ....

باشه ؟ پراکسی و دیوار آتش چطور ؟
با تشکر

73:

یک کتاب الن باغومیان رو بخون نصب و برپاسازی سرورهای لینوکس لینکشو هم میزارم برا خرید

http://www.technotux.org/html/index.php

یکی هم کتابهای شرکت کامپتیا network & Linux رو نیگاه کن

یک کتاب انگلیسی 108 صفحه ای هم دارم با نام linux ip networking اگر خواستین میزارم تو هاست .



فصلهای 12 14 15 کتاب Linux system Administration رو هم نیگاه کنید .



مطمئن نیستم ولی امیدوارم این منابع به دردتون بخوره

74:

خیلی ممنون از کمکت حتما مفید خواهد بود

75:

کامل بود ممنون از زحماتتون بقول مارگاریتا دلگارچی
تنکیلو

76:

این فایل رو هم ببینید شاید به درد خورد

http://www.4shared.com/file/17507148..._on_linux.html


77:

لینوکس در شبکه های محلی بی‌سیم مبتنی بر هستاندارد IEEE 802.11
۱- مقدمه


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

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

مثلا شبکه‌های GSM که همان شبکه‌های سلولی تلفن همراه هستند نوعی از شبکه‌های بی‌سیم محسوب میشوند.

نمونه‌های دیگر از این تکنولوژی که بیشتر به شبکه‌های کامپوتری مربوط می شوند Wi-Fi (استاندارد IEEE 802.11) شبکه‌های WiMax (استاندارد IEEE 802.16) و شبکه‌های Bluetooth ( هستاندارد IEEE 802.15) هستند.

.

این هستانداردها همگی مشخصات و مکانیزمهای لایه اول (Physical layer)وقسمتی از لایه دوم مدل OSI را در این شبکه‌ها تعریف می‌نمايند.

در این مقاله من بر رویWi-Fi که در حال حاضریکی از داغترین موضوعات مورد علاقه کاربران شبکه‌های کامپیوتری هست ، بحث خواهم کرد.



امروزه تقریبا همه مدل های کامپوترهای نوت بوک همراه با کارت شبکه بی‌سیم عرضه میشوند.کارتهای شبکه بی‌سیم PCI نیز با قیمت مناسبی در بازار یافت میشوند.حتی شما برای PDA خود میتوانید کارت بی‌سیم خریداری کنید.

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

مثلا یک اداره میتواند با این تکنولوژی دسترسی کامپیوترهای موجود به شبکه محلی اداره را بدون نیاز به کابل کشی فراهم کند در عین حال که جابجایی راحت و بی دردسر کامیوترها حتی بدون قطع اتصال اونها از شبکه (مثل موقعی که با یک نوت بوک متصل هستید) امکان پذیر هست.امروزه خیلی از کافه‌ها و رستوران‌ها سرویس اینترنت بی‌سیم مجانی به مشتریان خود عرضه مینمايند.

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



هستاندارد IEEE 802.11 که بیشتر با نام WiFi شناخته می شود در سال 1997 توسط IEEE تصویب شد.

ازاون وقت تا کنون تغییرات و تصحیحات فراوانی برای این هستاندارد پیشنهاد شده که بعضی از اونها تصویب شده و بعضی هنوز در حال بررسی و تکمیل‌اند.

به طور کلی در این هستاندارد اتصال کامپیوترها به بخش باسیم (Wired) شبکه محلی از طریق وسیله ای به نام Access Point امکان پذیر میگردد.در شکل 1 نمونه ای از این نوع شبکه را مشاهده میکنید.در حقیقت Access Point رابط اتصال کامپیوترها به شبکه باسیم محسوب میشود.

البته شما میتوانید بدون نیاز به Access Point دو یا تعداد بیشتری از کامپیوتر های مجهز به کارت شبکه بی‌سیم (Wireless Network Interface Card) را مستقیما به هم متصل کنید تا مثلا بتوانید فایلهایی را بین اونها منتقل کنید.

بدیهی هست که در این حالت کامپیوترها امکان دسترسی به سایرکامپیوترهای موجود در بخش باسیم شبکه را ندارند.

(چون Access Point ای در کار نیست) به این نوع شبکه Ad-Hoc فرموده می‌شود.
Linux
شکل ۱- نمونه‌ای از یک شبکه محلی بی‌سیم
این مقدمه فقط جهت آشنا کردن شما با شبکه‌های محلی بی‌سیم ذکر شد.

خوشبختانه منابع متعددی در این مورد بر روی اینترنت و در سطوح مختلف موجودند که در صورتی که علاقمند باشید می توانید به اونها مراجعه کنید.


۲- لینوکس بر روی کامپیوترهای شخصی
پشتیبانی لینوکس از شبکه‌های 802.11 از هسته ورژن 2.2.14 شروع شد.

تا اون وقت فقط یکی دو تولید نماينده درایور لینوکس برای سخت افزارهایشان ارائه می کردند.

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

Jean Tourrilhes یکی از محققان آزمایشگاه‌های HP که در این میان نقش بسیار فعالی داشته و هنوز هم وب‌سایت او [1] یکی از معتبر ترین مراجع در موضوعات مختلف مربوط به لینوکس در شبکه‌های بی‌سیم هست ، در پروژه‌ای به نام Wireless Extensions شروع به تعریف و توسعه هستانداردهایی برای ارتباط برنامه‌های کاربردی با درایور کارت شبکه بی‌سیم و سیستم عامل کرد.

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

Tourrilhes با تعریف مجموعه ای از ماکروهای مورد نیاز این دستور و تعریف ساختارهای داده ای مورد نیاز این تابع (اونچه که در زبان C به اونstructure می گوییم) نویسندگان درایور برای کارت‌های شبکه بی‌سیم را تشویق کرد تا مجوعه ای از قابلیت‌های هستاندارد را در درایورهای خود بگنجانند.

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

اگر در مورد اینکه چه قابلیتهایی توسط Wireless Extensions تعریف شده کنکجاو هستید نگاهی به محتویات فایل wireless.h بکنید [۲].

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

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

این مجموعه شامل iwconfig, iwlist, iwspy, iwevent ,iwprev, iwgetid می‌شود که همگی برنامه های خط فرمان هستند.

برنامه iwconfig مهمترین اونهاست که با هستفاده از اون میتوانید پارامترهای مختلف کارت را مانند کانال فرکانسی یا Access Point ای که می‌خواهید به اون متصل شوید، تنظیم کنید.


78:

۳- لینوکس بر روی سخت افزارهای شبکه


لینوکس امروزه به عنوان یکی از پرکاربردترین سیستم عامل های توکار (Embedded) برای تجهزات الکترونیکی مختلف از تلفن‌های همراه و تلویزیون‌ها تا سوییچ‌ها ی مخابراتی کاربرد دارد[۳].

بعضی از Access Point های موجود در بازار نیز از لینوکس به عنوان سیسم عامل خود هستفاده می نمايند.

به عنوان مثال سری WRT54GL از شرکت Linksys که در شکل ۲ مشاهده می کنید به شما این امکان را می دهد که Firmware نصب شده بر روی اونرا با لینوکس سفارشی شده خودتان جایگزین کنید.

جالبتر اونکه توزیع های خاصی برای این منظور ایجاد شده اند که DD-WRT, Alchemy, OpenWRT معروفترین اونها هستند.

DD-WRT که گزینه مجبوب من نیز هست به شما این امکان را می دهد که روتر بی‌سیم خود را از یک دستگاه با کاربردهای خانگی به یک سیستم پرقدرت با قابلیتهای فراوان تبدیل کنید.

چیزی که برای خرید اون باید 6 یا 7 برابرقیمت این روتر بی‌سیم میپرداختید.

[4]
Linux
شکل۲ روتر بی‌سیم Linksys مدل WRT54GL

جالبتر اونکه شما با هستفاده از سخت افزار های قدیمی و ازران قیمت با داشتن یک کارت شبکه می توانید access point خود را با هستفاده از لینوکس بسازید.

به این ترتیب با کم ترین هزینه می توانید صاحب یک access point با قابلیتهای فراوان شوید.


۴- سخت افزار و درایورها


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

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

اگرچه قسمت اصلی همه این کارت ها چیپ‌ست موجود روی اونها هست.

به همین خاطر وقتی که شما بدانید مثلا درایوری برای مدل خاصی از چیپ ست Atheros موجود هست می توانید هر کارت شبکه بی‌سیم دارای این چیپ ست را خریداری کنید.

در حال حاضر تعداد تولید نمايندگان عمده این چیپ ست ها حدودا 10 تا هست که معروفترین اونها عبارتند از: Intel, Intersil, Agere, Marvell , Atheros, Broadcom, Lucent, Atmel که چگونگی پیاده سازی مکانیزم های مورد نیاز هستاندارد در انها متفاوت هست.

بعضی بیشتر بر پایه سخت‌افزارر کار می‌نمايند و بیشتر اعمال در اونها توسط مدارهای موجود در چیپ ست انجام میشود.

مثل اونچه در چیپ ست های اینتل می بینیم.

برخی هم بیشتر بر پایه ثابت افزار (Firmware) هستند.

مانند Atheros.


مدتی پیش که Slackware 11 را بر روی لپ تاپ خود نصب کردم متوجه شدم که درایور کارت شبکه بی‌سیم من که یک اینتل ipw2200 هست به شکل ماژول بارگذاری شده اما من همچنان قادر به راه اندازی کارت بی‌سیم نیستم.

وقتی دنبال فایل های باینری Firmware در جایی که انتظار وجود انها را داشتم گشتم متوجه شدم که اصلا این فایل ها همراه با لینوکس Slackwareتوزیع نشده اند که علت اونهم اوپن سورس نبودن اونهاست.

قضیه اینجاست که مطابق مقررات FCC (ساوقتی که مقررات ارتباط رادیویی را در آمریکا وضع و نظارت می‌کند) دستگاه هایی که در باند های فرکانسی آزاد (مثل باند فرکانسی مورد هستفاده شبکه های محلی بی‌سیم یا فرهای مایکروویو) کار می‌نمايند باید از حد اکثر توان خروجی مشخصی برخوردار باشند.

در بعضی از کارت های شبکه بی‌سیم (مانند کارت های مبتنی بر چیپ ست Atheros) این توان خروجی توسط Firmware تنظیم می شود.

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

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

ازاین لحاظ بودن من اوبونتو را بسیار کامل دیدم.

اوبونتو همه کارت‌های بی‌سیم من را بدون هیچ درد سری پشیبانی کرد.

حتی کارت بی‌سیم Linksys WUSB 11 که از چیپ‌ست‌های ATMEL هستفاده می‌کند و من برای کامپایل کردن سورس کد درایور اون بر روی Slackware مدتها مشکل داشتم توسط اوبونتو بسیار راحت و بی دردسر راه اندازی شد.


[5] و [6 ]لیست بسیار مفیدی (البته نه چندان به روز) از کارت‌های وایرلس موجود ، چیپ ست هستفاده شده در کارت‌ها و وضعیت پشتیبانی این کارت هادر لینوکس ارائه می دهند.

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

با این حال اگر درایور مخصوص لینوکس برای کارت وایرلس خود پیدا نکردید هنوز هم جای امیدواری هست.

پروژه NDISwrapper که کرنل ویندوز را برای درایور بر روی لینوکس شبیه سازی میکند به شما این امکان را می دهد که از درایور مخصوص ویندوز بر روی لینوکس هستفاده کنید [7].

همانطور که در صفحه ویکی وب سایت این پروژه [8] می توانید ببینید تعداد بسیاری از کارت‌های شبکه وایر‌لس تحت این پروژه پشتیبانی می شوند.


79:

۵- نرم افزارها و ابزارهای مفید


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

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

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

برنامه‌های گرافیکی زیادی برای این کار هستند مثلا در میز کار KDE می توانید از kwifimanager هستفاده کنید یا netapplet در GNOME توانایی جستجو برای شبکه‌های بی‌سیم موجود و اتصال به اونها را دارند.

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

با این وجود اگر رابطه خوبی با خط فرمان دارید بدانید که قدرت در دستان شماست !
همانطور که در ابتدا فرمودم بسته Wireless Tools که جزء بسته‌های هستاندارد هر لینوکس معمولا به صورت پیش فرض نصب می شود شامل تعدادی برنامه‌های قابل اجرا در خط فرمان هست که با اونها می‌توانید وظایف مختلفی اجرا کنید.

بییاید با هم نگاهی به دوتا از مهمترین اونها بیاندازیم.

من در ابنجا می‌خواهم ابتدا شبکه‌های محلی بی‌سیم قابل دسترس را جستجو کنم.

از برنامه iwlist هستفاده می‌کنم.توجه کنید که eth1 نام کارت شبکه بی‌سیم من می باشد.
root@amirhossein:~# iwlist eth1 scan
: eth1 Scan completed
Cell 01 - Address: 02:12:F0:02:59:49
ESSID:"amirhossein""
Protocol:IEEE 802.11bg
Mode:Ad-Hoc
Channel:1
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Quality=85/100 Signal level=-61 dBm
Extra: Last beacon: 176ms ago
Cell 02 - Address: 00:0E:E8:F8:52:07
SSID:"iptime"
Protocol:IEEE 802.11bg
Mode:Master
Channel:6
Encryption key:off
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
48 Mb/s; 54 Mb/s
Quality=58/100 Signal level=-66 dBm
Extra: Last beacon: 68ms ago


خروجی برنامه iwlist دو شبکه بی‌سیم را نشان می‌دهد.

مثلا شبکه اولی با نام "amirhossein" از نوع Ad-hoc یعنی بدون access point ، در کانال فرکانسی شماره ۱، با سرعت ۵۴ مگابیت در ثانیه و با رمزگذاری می باشد.

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

خوب اکنون برای اتصال به ابن شبکه به شکل زیر عمل می‌کنم:

***** :root@amirhossein:~# iwconfig eth1 essid "amirhossein" mode ad-hoc key s
root@amirhossein:~# ifconfig eth1 192.168.0.2 netmask 255.255.255.0




در خط اول با دستور iwconfig به شبکه بی‌سیم متصل شدم ( کلید رمز گذاری را در اینجا با کاراکتر های ستاره نشان داده‌ام) و در خط دوم به کارت شبکه بی‌سیم آدرس آی‌پی اختصاص دادم.

به همین سادگی و بدون درد سر.

ب.
دسته دوم ابزارها‌یی هستند که مورد هستفاده کاربران حرفه‌ای، مدیران شبکه و محققان شبکه‌های بی‌سیم هستند وکاربران عادی معمولا نیازی به اونها ندارند.

همه شبکه‌های بی‌سیم از هوا به عنوان رسانه انتقال هستفاده می‌نمايند.

این بدین معناست که امکان دسترسی غیر مجاز و حمله‌های DoS در این شبکه‌ها نسبت به شبکه‌های با سیم بیشتر هست.

بی شک لینوکس محبوب‌ترین پلتفورم برای هکرها و متخصصین امنیت شبکه‌های بی‌سیم هست.

زیرا نرم افزارهای مختلف با قابلیت‌های متنوع برای نفوذ به شبکه‌های بی‌سیم و ارزیابی امنیت اونها تحت لینوکس وجود دارد.

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

اگرچه تعدادی از این نرم افزارها با هستفاده از Cygwin بر روی ویندوز قابل هستفاده اند اما قابلیتهای جالب انها معمولا به علت عدم پشتیبانی درایور و یا سیستم عامل غیر قابل هستفاده هست.


یکی از معروفترین این برنامه‌ها، Kismet هست که مطابق نظر سنجی سایت [9] sectool.org رتبه هفتم را در لیست ۱۰۰ لوازم برتر امنیت شبکه به خود اختصاص داده هست.Kismet ابزاری بسیار قدرتمند با امکانات متعدد برای هکرها و مهندسین شبکه می باشد که قادر به تشخیص access point ها و client های موجود در محدوده با هستفاده از اسکن غیر فعال (Passive Scanning) ، کشف ترافیک‌های مشکوک به فعالیت‌های مخرب (Intrusion Detection) ، نمایش آدرس IP کامپیوترهای فعال، امکان هستفاده از GPS و نمایش محل access point های کشف شده بر روی نقشه با هستفاده از GPS و بسیاری امکانات دیگر می باشد.
Aircrack دیگر نرم‌افزار معروف از این دسته هست که بیشتر به خاطر قابلیتهایش در شکستن کلیدهای رمز WEP که برای حفاظت شبکه‌های بی‌سیم از دسترسی غیر مجاز و کد کردن اطلاعات هستفاده می شود هست.

مشابه Kismet این نرم افزار قادر به کشف شبکه‌های بی‌سیم موجود در ناحیه و کامپیوترهای موجود در اونها‌ست.

در صورتی که از کارت وایرلس مبتنی بر چیپ‌ست Prism ویا Atheros هستفاده کنید با این نرم‌افزار قادر به تزریق فریم در شبکه بی‌سیم (Frame Injection) با MAC آدرسی غیر از آدرس کارت بی‌سیم خود خواهید بود (چیزی که به اون spoofing می گوییم و معمولا خرابکاران برای حملات DoS از اون هستفاده می‌نمايند.)

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


نویسنده: امیر حسین ملک پور a.malekpour<.at.>gmail<.dot.>com


‍‍‍ پی نوشت:
[۱].

http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux

[۲].

معمولا این فایل را میتوانید در مسیر /usr/local/linux/include/ پیدا کنید.

[۳].

http://www.linuxdevices.com/articles/AT7792639520.htm

[۴].

http://www.wi-fiplanet.com/tutorials/article.php/3562391

[۵].

http://www.linux-wlan.org/docs/wlan_adapters.html.gz

[۶].

http://linux-wless.passys.nl

[۷].

http://ndiswrapper.sourceforge.net

[۸].

http://ndiswrapper.sourceforge.net/mediawiki/index.php/List#R

[۹].

http://www.sectools.org


80:

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

بسیاری از کارتهای شبکه امروزی از قابلیت Wake on Lan پشتیبانی می نمايند، اگر کارت شبکه ی شما on-board هست، به دفترچه راهنمای مادربورد خود مراجعه کنید، اغلب مادربوردهای جدید درای کارت شبکه هایی با امکان Wake on Lan هستند.



● مقدمه در مواقعی که در یک شبکه فعالیت می*کنید، گاهی این اتفاق می افتد که نیاز به روشن کردن سیستم از راه دور دارید، البته بسیاری مواقع افراد به جای روشن کردن از راه دور عکس قضیه را عملی می*نمايند یعنی کامپیوتر را برای تمام مدت روشن می*گذارند، چنین عملی باعث می*شود تا افرادی که مجاز به دسترسی نیستند مدت وقت بیشتری برای دسترسی به سیستم داشته باشند.

اما آیا راهی برای روشن کردن سیستم از راه دور وجود دارد؟!
بسیاری از کاربران هنگامی که یک کارت شبکه خریداری می*نمايند در دفترچه*ی راهنما یا برروی جعبه*ی کارت شبکه Wake on Lan را دیده*اند.
در این مقاله قصد دارم تا شما را با روش هستفاده از این قابلیت در سیستم گنو/لینوکس آشنا کنم.

اونچه شمانیاز خواهید داشت یک کارت شبکه* که از قابلیت Wake on Lan پشتیبانی کند و روشی برای ارسال سیگنال برای چنین کارت شبکه*ای هست.

بسیاری از کارت*های شبکه امروزی از قابلیت Wake on Lan پشتیبانی می*نمايند، اگر کارت شبکه*ی شما on-board هست، به دفترچه راهنمای مادربورد خود مراجعه کنید، اغلب مادربوردهای جدید دارای کارت شبکه*هایی با امکان Wake on Lan هستند.

برای فعال کردن این قابلیت در چنین مادربوردهایی کافیست در وقت بالا آمدن سیستم وارد قسمت تنظیم BIOS شوید و در قسمت Power Management گزینه*ها*ی wakeonlan یا 'abnetboot یا abwake onring events را جستجو کنید.

بسته به نوع مادربورد (نوع چپ*ست بایوسی که در اون هستفاده شده هست) یکی از گزینه*های بالا برای فعال کردن قابلیت Wake on Lan هستفاده خواهند شد.

۱) بسته*های جادویی برای روشن کردن یک کامپیوتر از راه دور باید از طریق یک نرم افزار یک پیغام برای کارت شبکه بفرستید.

این پیغام*ها را بسته*های جادویی شبکه یا Magic Network Packets می*نامند.

برای هستفاده از از این بسته*های جادویی همان*طور که اشاره کردیم نیاز به یک کارت شبکه با قابلیت Wake on Lan و نیز برنامه*ای برای ارسال این بسته*ها در شبکه دارید.
نیازهای سخت افزاری به کارت شبکه*ی شما بسته هست.

اما برنامه*ای که این بسته*ها را ارسال کند و بتوانید از طریق اون این قابلیت را مدیریت کنید را به سادگی می*توانید در توزیع خودتان پیدا کنید.
برای این کار من از برنامه*های "ethtool" و"wakeonlan" هستفاده کرده*ام.

البته می*توانید از "etherwake" به جای "wakeonlan" هستفاده کنید.



۲) اجرا برای نصب برنامه*های ذکر شده می*توانید در توزیع*هایی که بر پايه دبیان هستند از دستور "apt-get" هستفاده کنید، اگر از SuSE هستفاده می*کنید از YaST و در سایر توزیع*ها از مدیر بسته*های همان توزیع هستفاده کنید.

پس از نصب برنامه*ی ethtool برای بررسی وضعیت در خط فرمان دستور زیر رامی*نویسیم:


root@tux:~# ethtool eth۰
Settings for eth۰:
Supports Wake-on: g
Wake-on: d
Link detected: yes

در اینجا "g" به این معناست که قابلیت wakeonlan در کارت شبکه*ی شما وجود دارد اما "d" در خط پایینی فعال نبودن این قابلیت را فراخوان می*کند.

برای فعال کردن بسته*های جادویی شبکه دستور زیر را به کار می*بریم:


root@tux:~# ethtool -s eth۰ wol g

برای اطمینان از این که این قابلیت فعال شده هست می*توانید دستور اول را دوباره وارد کنید :


root@tux:~# ethtool eth۰
Settings for eth۰:
Supports Wake-on: g
Wake-on: g
Link detected: yes

دومین "g" که در خط "Wake-on: g" آمده هست به معنی فعال بودن قابلیت کار با بسته*های جادویی شبکه هست.

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

در اصل ما به آدرس MAC کامپیوتر مورد نظر نیاز داریم.

برای اطلاع از این آدرس کافیست در کامپیوتر مقصد دستور ifconfig را اجرا کنید:


tux@target:~$ /sbin/ifconfig
eth۰ Link encap:Ethernet HWaddr FF:AA:BB:CC:DD:EE
inet addr:۱۹۲.۱۶۸.۰.۱ Bcast:۱۹۲.۱۶۸.۰.۲۵۵ Mask:۲۵۵.۲۵۵.۲۵۵.۰
inet۶ addr: fe۸۰::۲۰a:e۶ff:fef۶:a۳f۴/۶۴ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:۱۵۰۰ Metric:۱
RX packets:۲۲۱۸۳۹۰ errors:۰ dropped:۰ overruns:۰ frame:۰
TX packets:۳۰۹۸۴۴۰ errors:۰ dropped:۰ overruns:۰ carrier:۰
collisions:۰ txqueuelen:۱۰۰۰
RX bytes:۱۶۲۴۰۰۸۵۷۸ (۱.۵ GiB) TX bytes:۱۳۶۸۳۱۰۶۶۱ (۱.۲ GiB)
Interrupt:۱۰ Base address:۰xd۴۰۰

در اینجا FF:AA:BB:CC:DD:EE آدرس MAC هست.اگر کامپیوتر مقصد در دسترستان نیست برای پیدا کردن آدرس MAC اون کافیست ابتدا به اون کامپیوتر "ping" کنید،سپس به "arp cache" سری بزنید.

برای نمونه اگر در شبکه*ی من ماشینی با نام sun.my.flat وجود داشته باشد و بخواهم آدرس MAC اون را به دست بیاورم در خط فرمان تایپ می*کنم:


gnu@myflat:~$ ping -c ۱ sun
PING sun.my.flat (۱۹۲.۱۶۸.۱.۱) ۵۶(۸۴) bytes of data
.

۶۴ bytes from sun (۱۹۲.۱۶۸.۱.۱): icmp_seq=۱ ttl=۶۴ time=۰.۲۰۲ ms
--- sun.my.flat ping statistics ---
۱ packets transmitted, ۱ received, ۰% packet loss, time ۰ms
rtt min/avg/max/mdev = ۰.۲۰۲/۰.۲۰۲/۰.۲۰۲/۰.۰۰۰ ms
gnu@myflat:~$ /usr/sbin/arp sun
Address HWtype HWaddress Flags Mask Iface
sun ether FF:AA:BB:CC:DD:EE C eth۰

دستور "arp" در اینجا برای یافتن آدرس MAC هستفاده شده هست.

فقط توجه داشته باشید که شما باید ابتدا ماشین مقصد را از طریق IP یا نام ماشین ping کنید و سپس از دستور "arp" هستفاده کنید.

بسیار خوب، پس از آموختن آدرس MAC کامپیوتر مقصد حالا می*توانید از راه دور روشن یا خاموشش کنید.برای این کار به برنامه*ای نیاز دارید تا بسته*های "wakeonlan" را ارسال کند.
برنامه*های مشهور "etherwake" و "wakeonlan" هستند که در اینجا من از "wakeonlan" هستفاده کرده*ام.


یکی از مزایای "wakeonlan" امکان هستفاده توسط تمام کاربران هست که درباره*ی "etherwake" قضیه عکس هست و فقط کاربر ریشه می*تواند از اون هستفاده کنید.


برای ارسال پیغام روشن شدن، کافیست در کامپیوتر راه دور دستور زیر را وارد کنید:


gnu@myflat:~$ wakeonlan
Sending magic packet to ۲۵۵.۲۵۵.۲۵۵.۲۵۵:۹ with FF:AA:BB:CC:DD:EE

همان طور که می*دانید FF:AA:BB:CC:DD:EE آدرس MAC کامپیوتر مقصد یا کامپیوتری هست که می*خواهید از راه دور روشن کنیدش.

به همین سادگی ....

اگر همه چیز درست پیش رفته باشد کار تمام هست.



منبع:wakeonlan

81:

اوبونتو یک سیستم عامل کاملاً‌ آزاد و رایگان بر پايه گنو/لینوکس٬ همراه با پشتیبانی در سطح جامعه کاربران و خدمات تجاری و حرفه‌ای هست.

اوبونتو توسط اجتماع بزرگی از کاربران و توسعه دهندگان در سراسر دنیا توسعه داده میشود و ما از شما نیز دعوت می‌نمائیم تا به این اجتماع بپیوندید!

اجتماع اوبونتو بر پايه ایده‌های فلسفه اوبونتو که می‌گوید: نر‌م‌افزار باید آزاد و رایگان در اختیار عموم باشد٬ همچنین ابزارهای نرم‌افزاری مختلف می‌بایست به صورت سفارشی و به زبان محلی کاربران در اختیارشان باشند و کاربران مجاز باشند نرم‌افزار را بر پايه نیازهای خود سفارشی نموده و هستفاده نمایند٬ شکل گرفته هست.



این آزادیها موجب شده‌اند٬ اوبونتو پايه اً با نرم افزارهای سنتیﹺ خصوصی متفاوت باشد.

نه تنها ابزارها و نرم‌افزارهای مورد نیازتان رایگان هستند٬ بلکه شما مجاز خواهید بود نرم‌افزارها را مطابق نیازتان و بگونه‌ای که مایلید سفارشی نموده و هستفاده نمائید.



اوبونتو برای هستفاده به عنوان رومیزی و کارگزار (سرور) مناسب هست.

نسخه فعلی اوبونتو از معماری‌های سخت افزاری مختلف شامل انواع PC های Intel x86 و 64bit و همچنین ماشین‌های UltraSPARC T1 شرکت SUN و PowerPC شرکت Apple پشتیبانی می‌کند.



اوبونتو دارای بیش از ۱۶۰۰۰ بسته نرم‌افزاری هست و هسته اصلی اون بر روی یک سی‌دی عرضه میشود.

اوبونتو دارای انواع ابزارهای نرم‌افزاری از نرم‌افزارهای کاتب و صفحه گستردهٔ اداری تا کارگزارهای اینترنتی و ابزارهای مناسب برنامه‌نویسی هست.

توضیحات کاملتر نسخه‌های اوبونتو٬ نسخه رومیزی و نسخه کارگزار.



Linux



منبع ubuntu-ir.org

82:

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


81 out of 100 based on 81 user ratings 231 reviews