قضیه از این قراره که خیلی از ماها به هر دلیلی نیاز داریم که در Linux به Partition هایی که توسط Windows به صورت NTFS پیکر بندی شده اند دسترسی داشته باشیم . برای خود من این نیاز موقعی وجود دارد که می خواهم یک دیسک سخت ( Hard Disk ) از نوع متحرک داشته باشم که مثل قابلمه هایی که با خودمون مدرسه می بردیم و توش غذای ظهر رو می ذاشتیم ، همراهم باشه که اینور اونور نیاز پیدا کردم سریع با USB وصل کنم و هر Data که خواستم برای خودم روش کپی کنم و هر چیزی که کسی خواست بهش بدم . خواهی نخواهی باید یک Filesystem برای این Hard Disk انتخاب کنی که هر جا میری به هر دستگاهی وصل می کنی بشناستش و باهاش کار کنه .
سابق بر اینا که Hard Disk ام هنوز اینقدرها گنده نشده بود خیلی راحت با FAT32 پیکر بندی می کردم و هم در ویندوز و هم در Linux مثل آب خوردن روش می نوشتم و راحت کار می کردم . مشکل از اینجا شروع شد که این FAT32 دیگه Partition های خیلی گنده رو پشتیبانی نمی کنه و مجبور شدم که Convert کنم به NTFS و خلاصه چشتون روز بعد نبینه که حالا نه راه پس داشتم و نه پیش . به این معنا که از NTFS دیگه به FAT32 بر نمی گشت ( نمی دونم این Partition Magic هم دیگه Partition که ویندوز خودش داره مثل گربه باهاش کار می کنه و مشکلی نداره رو میگه ایراد داره !! ) و NTFS هم مشکلش این هستش که در Linux فقط Read Only کار می کنه !!! از اینجا بود که مصیبت ما شروع شد .
اصولا در kernel نسخه های 2.4 خواندن از روی Partition های NTFS پشتیبانی شده بود . این پشتیبانی دارای معایبی بود . اولین و مهمترین مشکلش همین بود که فقط امکان خواندن از روی این Partition ها رو داشت . دومین مشکلش این بود که Partition هایی از نوع NTFS که با Cluster Size های بیش از 4kB پیکر بندی شده بودند را نمی شناخت و نهایتا این نسخه با ماشین هایی که پردازنده های SMP داشتند مشکل داشت .
در Kernel های نسخه 2.6 به بعد پشتیبانی از NTFS مجددا نوشته شد و اینبار خیلی از ایرادهای نسخه های 2.4 رفع گردید . از جمله اینکه Partition های دارای Cluster Size های بزرگتر از 4kB رو پشتیبانی می کرد . قابلیت خواندن Sparse فایلها و Compressed فایلها در NTFS را داراست . از mmap پشتیبانی می کند طوری که کاربران Linux که می خواهند برنامه های Windows را توسط Wine در Linux اجرا کنند دیگر لازم نیست آنرا از روی Partition ای که با NTFS پیکر بندی شده جای دیگر منتقل کنند و بعد از آنجا اجرا کنند . براحتی می توانند مستقیما از روی Partition پیکر بندی شده با NTFS آنرا اجرا کنند . نهایتا سرعت بهینه تری در کار با این نوع Partition داراست و می توان آنها را در NFS هم به کار گرفت . در صورتیکه می خواهید Kernel شما از این نوع File System پشتیبانی کند می توانید سری به این صفحه بزنید . در صورتیکه از Redhat یا Fedora استفاده می کنید می توانید به راحتی با دریافت RPM مربوطه این امکان را برای نسخه خود فعال کنید .
اما همانطور که مشاهده کردید مشکل اصلی کماکان باقیست ! یعنی در Linux شما نمی توانید برای نوشتن بر روی Partition های NTFS دسترسی داشته باشید . علت این امر هم گویا این است که هنوز نتوانسته اند مکانیزم دقیق نوشتن و ایجاد فایل بر روی NTFS را پیدا کنند که کد درست آنرا بنویسند . لذا درست است که یک سری Patch های غیر رسمی برای نوشتن بر روی NTFS وجود دارد ، اما همه آنها اخطار داده اند که تنها بر اساس یک سری حدس و گمان نوشته اند که با چند تست محدود جواب داده است و در کارهای عادی ممکن است تمامی اطلاعات شما را از بین ببرند . ( کما اینکه اینگونه هم هستند ) . خوب پس فعلا تا وقتی که مکانیزم اصلی نوشتن بر روی NTFS توسط خود Microsoft مشخص نشود و یا اینکه Source های مربوطه در ویندوز فاش نشوند به نظر می آید که پشتیبانی از نوشتن بر روی NTFS دور از دسترس باشد .
اما برادران و خواهران Linux ای به همینجا قناعت نکرده اند . فکری که کرده اند این است که درست است که ما به نحوه دقیق نوشتن بر روی NTFS دسترسی نداریم ، اما یک فایلی در ویندوز داریم به نام ntfs.sys که همه کارهای مربوط به خواندن و نوشتن بر روی NTFS در ویندوز را انجام می دهد . خوب حالا تنها کاری که باید بکنند این است که راهی بیابند که توسط همین فایل در Linux کار خواندن و نوشتن بر روی NTFS را انجام دهند . در این راستا Wine بهترین گزینه است ، چرا که می تواند Binary های ویندوز را در لینوکس به خوبی اجرا کند . بر مبنای همین تفکر پروژه ای به نام Captive درست شده است که توسط همین فایل ntfs.sys که در ویندوز وجود دارد خواندن و نوشتن بر روی NTFS در لینوکس را انجام می دهد . درست است که سرعت آن به نسبت خود ویندوز و حتی پشتیبانی کرنل لینوکس در خواندن از NTFS بسیار کند تر است ، اما در هر صورت در حال حاضر تنها راه مطمئن نوشتن بر روی NTFS در Linux همین راه است که من خودم از آن استفاده می کنم و حاضرم شهادت بدهم که همانند گربه درست و خوب کار می کند :)
نمی دونم این چه مرضیه که این Microsoft نمی گذاره که نوشتن بر روی NTFS توسط سیستم عامل های دیگر نیز پشتیبانی بشود ، اما هر چی هست بی خود نیست که این حرفها رو پشت سرش می سازن دیگه :)) این جمله اش از همه بیشتر به من چسبید :
Windows 98: a 32 bit extension of a 16 bit filesystem for a 8 bit operating system built on a 4 bit processor by a two-bit company that can't stand one-bit of compitition.
خوب حتما قضیه این یاروها رو که بجای خلیج فارس خلیج عربی نوشتن اینا رو که می دونید . بحث سر اینه که چطوری حال اونایی بجای Persian Gulf می زنن Arabian Gulf رو بگیریم . به همین خاطر دیدم برو بچز یه سری لینک باحال درست کردن که خواهش کردن هر کس که دوست داره اعتراض کنه به این قضیه بیاد و با کلمه Arabian Gulf به این صفحه ها لینک بده که باعث بشه Search Engine ها اینها رو Index کنن و با لینک های زیادی که میدیم بهش Rank ش بره بالا و خلاصه نتیجه اول جستجو این صفحه ها باشه که طرف ارشاد بشه که دیگه از این دری وری ها Type نکنه .
این لینک رو که توی صبحانه پیدا کردم . این لینک هم مسعود درست کرده که خیلی باحاله و هر کس تو Google بزنه Arabian Gulf و این صفحه در ازای جستجوی اول براش بیاد حالی به حلولاتش داده میشه . اینم مسعود با متنی که من از احمد خواستم برامون بنویسه، ساخته که شبیه Error Page های Firefox هستش شبیه همون اولی که برای IE بود . شماهام هر کس دستش میرسه به اینا Link بده که rank شون بالا بره و دهن این عربا سرویس بشه :)
در ضمن این طومار رو هم امضا کنید . در همین رابطه اعتراض کرده که تا حالا خیلی ها امضا کردن .
اول از همه یه بودی یه روزی نبوده ، اما حالا دیگه هست :) یه نگاه بهش بندازید بد نیست . ادبیاتش از منم کوچه بازاری تره !!! دست من و تو کوچه بازاری نوشتن از پشت بسته :) در ضمن یک خونه تکونی می خوام الان بعد از این پست توی قسمت پیوندهای ( آدم یاد ازدواج و اینا میفته ! ) این بغل بکنم و اونایی که دیگه نمی خونم و غیر فعال هستند رو کم کنم و چند تایی اضافه کنم که یکیش همین بود هستش و یکی دیگه هم وبلاگ وب نوشت آقای ابطحی هستش .
یه سایت دیگه هم که یه جورایی در جریان شکل گیری و تهیه اش بودم و تا اونجایی که دیدم کلی آدم وارد و ناوارد در ساختنش سهیم بودند و رو هم رفته کار حرفه ای و قشنگی به نظر از آب در اومده ، معرفی می کنم به اسم آفتاب . البته من خودم سهم خیلی کوچکی در کارهای این سایت داشتم ( در حد سرور تنظیم کردن براشون ) اما چون فعلا در حال تست هستش ، شما هم یه نگاه بهش بندازید و براشون نظراتتون رو بگذارید .
روزبه پورنادر در وبلاگش که بعد از مدتها Update شده یه لینکی از گزارش صوتی تصویری نیویورک تایمز در مورد ایران گذاشته که شدیدا توصیه می کنم این گزارش رو ببینید و به نکته ای که روزبه روش دست گذاشته هم توجه کنید :) به قول روزبه اشکتون در میاد ! من نمی دونم مترجمه این شعر رو برای این گزارشگر نیویورک تایمز چی ترجمه کرده ! اما بنده خدا کارش خیلی سخت بوده :) فکرش رو بکنید که شما چطوری ترجمه می کردید :)
اگر دقت کرده باشید امروزه یک سیستمی برای همه سیستم عاملهای پر استفاده و به خصوص مناسب استفاده از شبکه جهانی در نظر گرفته می شود که کاربران آن به راحتی بتوانند با استفاده از آن سیستم ، آخرین تغییرات و تصحیحات بر روی سیستم عامل خود را بدون اینکه خبر داشته باشند در پس پرده چه اتفاقی می افتد از روی اینترنت دریافت کرده و بر روی سیستم عامل خود نصب کنند .
این پدیده را از چند منظر می توان نگریست . اول از همه پر واضح است که برای استفاده از امکانات شبکه جهانی اینترنت اولین و مهمترین عاملی که این استفاده را پر سود خواهد کرد مسئله امنیت است . یعنی شما تا وقتی از امنیت اطلاعات خود بر روی این شبکه مطمئن نباشید ، استفاده از این شبکه برای شما ضرری بیش از سود آن خواهد داشت . برای تامین این امنیت استفاده از سیستم عامل های امن ضروری است . اما همانطور که مشخص است هیچ سیستم عامل نمی تواند ادعای امنیت همیشگی و کامل داشته باشد و به همین دلیل سیستم مورد اشاره می تواند جبران ضعفهای امنیتی ناخواسته را کرده و قسمت های ناامن سیستم را به موقع بروز کند و مشکل امنیت را تا حد زیادی برای کاربران کاهش دهد . همچنین استفاده از نرم افزارهای بروز در سیستم عامل می تواند امکانات جدید و کیفیت بهتری را در اختیار شما قرار دهد که برای دسترسی به این امکانات جدید و کیفیت بهتر باید مرتبا نسخه های جدید نرم افزاری های کاربردی خود را استفاده کنید که استفاده از سیستم مورد اشاره می تواند به راحتی این امکان را در اختیار شما قرار دهد و شما را از آخرین تغییرات نرم افزارهای کاربردی مطلع سازد .
خوب به قول آقای حیدری در گفتگوی ویژه خبری شبکه دو تلویزیون اینها بخش هویج ماجرا است . حالا بیایید از منظر دیگری به قضیه بنگریم .
خوب همانطور که اشاره شد این تغییرات گاها خیلی زیاد و پیوسته بر روی سیستم عامل شما اتفاق می افتند ( صدالبته با خواست و موافقت خود شما ) و برای اینکه این تغییرات راحت و عملی باشد باید تغییرات به صورت Binary و آماده در اختیار شما قرار گیرند و به راحتی جایگزین Binary های قبلی شوند. منظور من از Binary این است که شما به هیچ عنوان نیازی به Source های تغییرات و Compile مجدد آنها ندارید و قبلا برای شما آماده شده اند و فقط جایگزین Binary های قبلی شما می شود .
صد البته ما فرض می کنیم شرکت ها و تامین کنندگان این تغییرات بروز منابع معتبر و شناخته شده ای هستند و برای آنها هم Privacy کابران بسیار مهم است . اما اگر بدبینانه به قضیه بنگریم ( در بحث امنیت همیشه بدبینانه ترین حالت را باید در نظر گرفت ) می توانیم دریابیم که در حقیقت شما تمام امنیت خود به این شرکت ها سپردید ، به طوری که اگر به هر دلیلی یکی از این شرکت های اراده کند ( حالا چه به خاطر منافع مادی چه سیاسی ! ) می تواند یک Update از این تغییرات منتشر کند که شاید ظرف کمتر از 1 روز بر روی همه کامپیوترهای سراسر جهان که از این سیستم عامل استفاده می کنند نصب شود و براحتی اطلاعات مورد نیاز آن شرکتها ( یا دولت مطبوعشان ) را به نحوی قابل دسترس این شرکتها قرار دهد. سریع فکر Trojan و از اینجور دری وری ها نیفتید ! چون اصولا روی کامپیوتر من و شما ( خودم رو که مطمئنم ! ) چیز بدرد بخوری نیست که حالا شرکتها و یا دولت های آنها بخواهند از آن خبر دار شوند ، اما این نکته که بر روی هر کامپیوتری که دارای آن سیستم عامل باشد برای آن شرکت راهی وجود خواهد داشت که در صورت لزوم به اطلاعات داخل آن نفوذ کند و یا آن را از کار بیندازد مطلبی است که من می خواهم به آن اشاره کنم . در صورتی که این منفذ با اجازه خود شما و توسط سیستمی که شما فکر می کردید می خواهد منفذهای احتمالی سیستم شما را از بین ببرد ایجاد شده است .
این مطلب را گفتم که اصولا بدانید استفاده از Automatic Update از نظر امنیت بر روی هر سیستم عاملی کاریست که گاها با خود بحث امنیت یک Paradox ایجاد می کند به این معنا که اگر Automatic Update نباشد ایرادات برنامه نویسی ( سهوی و ناخواسته ) که در مرور زمان مشخص می شود می تواند امنیت سیستم شما را به خطر بیندازد ، پس تنها گزینه بروز کردن آن است که در صورت استفاده از Automatic Update بازهم مشکلی که اشاره کردم از نظر امنیت وجود دارد.
خوب در خیلی از سیستم عاملها و نرم افزارهای کاربردی هیچ موقع استفاده کنندگان آنها به Source های آن دسترسی نداشته اند که بدونند اصولا در اصل سیستم عامل یا آن نرم افزار چه اتفاقی می افتد ، بنابراین این بحث اصلا موردی ندارد و خانه از پایبست ویران است ( مثال عام و کلی این مدل سیستم عاملها ویندوز است ) . به این معنا که اصولا اتفاقی که مثال زدم ممکن است در اصل بسته نرم افزاری و یا سیستم عامل وجود داشته باشد و کاربران آن باید با اطلاع از این قضیه استفاده از آن را بپذیرند . بنابراین استفاده از این سیستمهای Automatic Update در این سیستم های عامل و یا نرم افزارهای کاربردی می تواند بی دغدغه و پر سود باشد . در ویندوز که اصولا Automatic Update وجود دارد و حتما شما هم با آن سروکار داشته اید .
در سیستم عاملهای بازمتن ( OpenSource ) این مساله کمی متفاوت است . شما برای بروز نگه داشتن سیستم عامل خود دو انتخاب دارید . یکی استفاده از همین نوع سیستم های Automatic Update که این روزها بر روی انواع نسخه های Linux به همراه آن می آید و استفاده از آن هم بسیار ساده است ( که البته همه آنها بر پایه Binary Distribution هستند ) و یا اینکه خودتان آدمی باشید که اصولا مسائل امنیت در سیستم عامل و نرافزارهای کاربردی خود را از طریق مجامع عمومی آن دنبال کنید و درباره آخرین اصلاحیه ها تحقیق کنید و آنها را از طریق اصلاح Source و Compile مجدد بروز کنید . صدالبته این روش، روشیست به مراتب دشوارتر و وقت گیرتر از روش اول اما این بحث که مطرح شد در مورد آن مصداق ندارد . اصولا شرکتها و یا مجامع معتبر اگر بخواهند همچین کاری کنند مسلما در Source برنامه ای که منتشر می شود این کار را نخواهند کرد و دلیل آن کاملا واضح است .
اما در هر صورت نمی توان از یک کاربر عادی انتظار چنین عملی را داشت و استفاده از همین نرم افزارهای Automatic Udpate در حال حاضر گزینه ای منطقی به نظر می رسد ، اما این گزینه برای استفاده های خاص که شاید شامل سایت های استراتژیک و یا پروژه های محرمانه باشد، گزینه مناسبی نباشد . همانطور که مسلما در سایتهای استراتژیکی مانند Google که در هر صورت Base آنها بر پایه سیستم عامل Linux است این نوع سیستمها استفاده نمی شود و این نوع شرکتها هزینه های بسیاری را صرف بروز نگه داشتن سیستمهای خود و تامین امنیت بالاتر می کنند . ( این هزینه شامل استخدام نیروی فکری و کاری بیشتر برای درگیر کردن آنها با بحث امنیت می شود که راه دوم را پیاده سازی کنند ) .
در نهایت برای خیلی ها که اصلا علاقه ای به درگیر شدن با این مسائل ندارند و می خواهند از یک امنیت نسبی در استفاده از شبکه جهانی برخوردار باشند استفاده از این نوع سیستم های Automatic Update شدیدا توصیه می شود و به همین دلیل در مورد چندین توزیع Linux و FreeBSD این سیستمها را معرفی می کنم :
Redhat & Fedora : خوب شاید این توزیع از Linux پر مصرف ترین آن باشد ( به خصوص برای کابران عادی ) . این توزیع در نسخه های جدید خود از برنامه ای به نام yum پشتیبانی می کند که از طریق Package های معروف این توزیع ( RPM ) می تواند مرتبا با پخش کننده اصلی این توزیع ارتباط برقرار کرده و نسخه های بروز برنامه های نصب شده بر روی سیستم عامل شما را برایتان نصب کند ( اعم از نرم افزارهای کاربردی و Kernel ) . در همین رابطه سایتی به نام Fedoralegacy ایجاد شده است که مستقل از شرکت Redhat ( البته با کمک و پشتیبانی آنها ) نسخه های این توزیع را که از حیطه پشتیبانی این شرکت خارج شده است و دیگر توسط آن شرکت رسما پشتیبانی نمی شود را ، پشتیبانی غیر رسمی و بروز رسانی می کند . هم اکنون نسخه های مجانی Redhat ( اعم از 7.3 , 8 و 9 ) و نسخه اول Fedora ( Fedora Core 1 ) از پشتیبانی و بروز رسانی رسمی Redhat خارج شده اند و توسط این سایت بروز رسانی می شود . البته در نسخه های مختلف این توزیع راه های دیگری مانند استفاده از apt و up2date وجود دارد که بدلیل کثرت استفاده از yum این روزها به توزیح این برنامه بسنده می کنم . همچنین توزیع های مشابهی از Linux که از RPM برای بروز رسانی Package های خود استفاده می کنند ، می توانند از yum استفاده کنند البته با تنظیمات خاص و تنظیم سرورهای خاص آن توزیع برای بروز رسانی .
Debian : در این توزیع که یکی از پر کاربردترین توزیع های Linux برای مدیران شبکه و کاربران حرفه ای تر Linux هست . این توزیع از برنامه به نام apt-get برای بروز رسانی خودکار خود استفاده می کند . البته Debian با سیاستی که دارد اصولا Package ها رو پس از تست زیاد و اطمینان بیشتر منتشر می کند ، بنابراین معمولا اگر Update ای برای برنامه ای منتشر شود اصولا به خاطر ضعف های امنیتی احتمالی هست و الا برای پشتیبانی از قابلیت های جدید و یا نسخه های جدید برنامه ها معمولا برای منتظر نسخه بعدی توزیع باشید . اما این مطلب تنها به صورت رسمی است و شما می توانید از نسخه های جدید و غیر رسمی آن توسط این برنامه بهره مند شوید .
Slackware : این توزیع شاید در بین مخاطبان عام استفاده کمتری داشته باشد ، اما قدمت و ساختار آن مخاطبان بسیار زیاد و دو آتشه ای بین برنامه نویسان و توسعه دهندگان در سیستم عامل Linux ایجاد کرده است . جالب است بدانید به همین دلیل اصولا طرفداران این توزیع خیلی علاقه ای به سیستمی برای Automatic Update ندارند و ترجیح می دهند اصولا همه کار را خودشان و به سلیقه خودشان انجام دهند ، چراکه معمولا کاربران حرفه ای تر Linux هستند . اظهار نظر یکی از طرفداران سنی آن را در اینجا بخوانید :
On Mon, 2004-01-19 at 21:40, Brian Hatch wrote:
> For Debian, there is apt-get.
> For Red Hat, there is yum.
> For Slackware, there is what?
tar xvfz update.tar.gz
Supplement with:
mv, cp, rm as needed.
Brush up on vi shortcuts.
:)
FreeBSD : در FreeBSD با وجود Port Collection گرانقدر و بدرد بخور آن نیازی به سیستم خاصی نیست و اصولا نوشتن یک shell script ساده می توان Port Collection خود را همیشه بروز نگهدارید و از برنامه های بروز آن همیشه استفاده کنید . نمونه ای از این کار می توانید از اینجا مطالعه کنید . اصولا FreeBSD ساختار و خصوصیاتی دارد که شاید همه نوع کاربری را راضی نگه دارد بنابراین مخاطبان در عین محدود بودن بسیار عام و همه گیر هستند . این سیستم عامل خصوصیات منحصر به فردی دارد که شاید استفاده های خاص آن بیش از استفاده های عام آن باشد . به نظر من مهمترین آنها Performance فوق العاده این سیستم عامل در اجرای برنامه های کاربردی می باشد ( تجربه شخصی من به خوبی این را نشان داده ! می توانید خودتان این موضوع را با چند تست ساده پی ببرید . )