mozhgan
08-10-2011, 06:15 PM
آشنایی با User Mode Linux
تعدادی نرمافزار و امکانات اضافی برای هسته لینوکس ارائه شده است. یکی از این امکانات برای توسعه دهندگان نرمافزار، آزمایش کنندگان بتا، نویسندگان و بررسی کنندگان محصولات، سرویسهای فضای اینترنتی و... بسیار ارزشمند است. این امکان User Mode Linux یا اختصارا UML نامیده میشود. UML همانند Vmware، این امکان را فراهم میکند تا ماشینی را در یک ماشین دیگر اجرا نماییم. یعنی در آن واحد چندین نسخه مجزا و ایزوله شده لینوکس در حال اجرا روی یک سیستم واحد باشند.
نام این امکان چندان تشریح کننده عملکردش نیست. به این دلیل User Mode Linux نامیده شده است که در فضای کاربر یا User Space اجرا میشود. به کمک UML شما قادر خواهید بود تا یک سیستم مینیاتوری لینوکس را که دارای هسته و فایل سیستم خودش است را اجرا نمایید، بدون اینکه نیازی به داشتن مجوز ریشه روی تمام سیستم باشید. UML شما دنیای کوچک خودتان است و شما میتوانید هسته آنرا تنظیم کنید، شبکه بندی آنرا ایجاد نمایید و تمامی کارهای دیگر را میتوانید با این ماشین مجازیتان انجام دهید!
شما به یک توزیع خاص و یکسان لینوکس محدود نیستید. در حالی که Vmware به شما اجازه اجرای انواع مختلف سیستمعاملها را در فضای ماشین مجازی میدهد، UML به شما اجازه اجرا و نصب هر نوع توزیع و فایل سیستم لینوکس را میدهد. به این صورت که شما هسته UML را همانند تمامی دستورات معمولی سیستم اجرا میکنید و سپس هسته UML با هسته ماشین مادر ارتباط برقرار میکند. فقط هنگامی که یک بسته خاص نیاز به برقراری ارتباط مستقیم با سختافزار داشته باشد، ممکن است مشکلی پیشآید ولی برای این مشکلات نیز راهحلهایی وجود دارد.
فایل سیستم UML شما در حقیقت بصورت یک فایل به ازای هر UML ای است که اجرا میکنید. یعنی کل فایل سیستم هر UML در یک فایل مجزا قرار میگیرد. در بین هسته و فایل سیستم ایزوله شده، UML میتواند همانند جزیرهای عمل کند که کاربران میتوانند در آن وارد شوند، ولی نخواهند توانست به سیستم اصلی دست پیدا کنند. در صورت که اشکالی پیشآید، تنها UML دچار مشکل خواهد شد و هسته و فایل سیستمهای اصلی بدون تغییر باقی خواهند ماند.
موارد استفاده متعدد
چندین مورد استفاده برای امکانی مانند UML وجود دارد. مثلا برای آزمایش کنندگان بتا که دائما باید با نرمافزارهای مختلف سرو کله بزنند، UML یک امکان ایدهآل به شمار میرود. آنها مجبور نیستند نرمافزارها را بر روی ماشین خودشان و یا سیستم دیگری که ممکن است دورتر از دسترسشان باشد آزمایش کنند. نرمافزارهای آزمایشی را میتوان در یک نشست UML اجرا نمود بدون اینکه به سیستم اصلی آسیبی برساند و همه چیز (سیستم اصلی و سیستم مجازی) بصورت یکجا و همزمان قابل استفاده است.
UML برای هنگامی که شما به یک سرویس خاص اطمینان کافی ندارید بسیار مناسب است. آیا میترسید کسی به FTP Server شما نفوذ کند؟ کافی است آنرا در یک فضای UML اجرا نمایید. حتی اگر چنین اتفاقی رخ دهد، سیستم اصلیتان محفوظ است. آیا از هشدارهای امنیتی BIND نگران هستید؟ آنرا هم در یک UML قرار دهید.
البته نکته مهمی که در استفاده از UML باید در نظر داشته باشید دارای بودن حافظه کافی است. هر UML همانند هسته اصلی سیستم برای اجرا کردن برنامههای خود نیازمند حافظه جداگانهای است. بنابراین داشتن مقدار زیادی حافظه RAM به شما کمک زیادی خواهد کرد.
افت سرعت هنگامی که تعداد زیادی UML رد یک ماشین درحال اجرا باشد قابل ملاحضه است. در صورتی که تعداد زیادی UML در حال اجرا باشند، به سرعت حافظه سیستم به پایان خواهد رسید. برای جلوگیری از چنین رخدادی، شما امکان تخصیص جداگانه حافظه به هر یک از UML ها را دارا هستید. بنابراین سرویسهای مهمتر میتوانند از مقدار حافظه بیشتری بهرهمند گردند. به مجموع UML های روی یک ماشین ممکن است از مقدار حافظه موجود روی سیستم حافظه بیشتری تخصیص داده شده باشد. مشکلی نیست. هسته اصلی سیستم این درخواستها را همانند درخواستهای swap انجام میدهد. حتی این امکان وجود دارد که برای هر یک از UMLها یک فضای swap نیز اختصاص دهید.
آزمایش UML
ممکن است که UML هنوز کیفیت خیلی بالایی نداشته باشد، ولی به طور گسترده توسط آزمایش کنندگان بتا استفاده میشود که بیشترین رضایت را از آن دارند. برای نصب آن میتوانید از بستههای RPM (https://www.mypersianforum.com/showthread.php?t=4707) یا دبیان موجود و یا کامپایل کد منبع استفاده نمایید. ولی قبل از انجام آن حتما مطالعه و بررسی زیادی را انجام دهید.
نصب UML شامل دو مرحله است. نصب هسته و ابزارهای UML سپس نصب سیستمفایل آن. نصب هسته UML در یک سیستم مبتنی بر دبیان بسیار آسان است:
# apt-get install user-mode-linux
البته شما میتوانید به سادگی بستههای UML را از سایت http://packages.debian.org (http://packages.debian.org/) دریافت و نصب نمایید. در صورتی که از یک توزیع مبتنی بر RPM استفاده میکنید، کافی است به سایت پروژه (http://user-mode-linux.sourceforge.net/)UML (http://user-mode-linux.sourceforge.net/) مراجعه کرده و آنرا دانلود و نصب نمایید:
# rpm -ivh user_mode_linux
که بجای user_mode_linux باید نام کامل بسته را وارد نمایید. پس از نصب هسته UML همانطوری که گفته شد باید سیستم فایل UML را در سیستم خود اضافه نمایید. این فایل سیستم بسته به نوع توزیعی که مایلید از آن استفاده نمایید متفاوت خواهد بود. این فایل سیستمها نیز در صفحه دانلود صفحه پروژه UML موجود میباشند. این فایل سیستمها بصورت فایلهای bz2 ارائه شدهاند که باید با استفاده از دستور bzip2 آنها را از حالت فشرده خارج نمایید.
بطور پیشگزیده، UML فرض میکند که شما در حال اجرای X هستید و از داخل X میخواهید آنرا اجرا نمایید. بنابراین در صورتی که بخواهید بدون X آنرا اجرا نمایید با پیغام خطایی مواجه خواهید شد. البته امکان اجرای UML ها در محیط متنی خالص و بدون GUI نیز وجود دارد ولی برای انجام آن به تنظیمات جداگانهای نیاز میباشد.
هنگامی که تمامی اقلام مورد نیاز را نصب کردید، آسانترین راه برای اجرای UML از درون X تایپ دستوری مشابه زیر است:
$ linux ubd0=/path/to/unpacked/filesystem
هنگامی که UML شما شروع به کار کرد، پنجره کنسول مخصوص به خودش را باز میکند که نمونهای از آن را در تصویر زیر مشاهده میکنید. به صورت پیشگزیده دو حساب مختلف در UML فعال میباشد. حساب root با نام کاربری root و حساب user با کلمه عبور user که باید آنها را تعویض نمایید.
در صورتی که تنها میل به آزمایش UML باشید همین حد اطلاعات برای شما کفایت میکند. ولی برای اینکه آنرا در امور جدی مانند ایجاد ماشینهای مجازی که روی شبکه موجود باشند و سایر امور جدی بکار ببرید به اطلاعات بیشتری مانند نحوه شبکه بندی و ... نیاز خواهید داشت که در آینده به آنها خواهیم پرداخت. البته اکنون میتوانید از مستندات موجود در سایت پروژه UML استفاده نمایید.
در صورتی که نمیخواهید به خودتان دردسر نصب UML را بدهید، راهحل سادهتری نیز برای آزمایش آن وجود دارد. دیسک زندهای به نام Adios. یکی از قابلیتهایی که این دیسک زنده استثنایی ارائه میکند، User Mode Linux است. همه چیز آماده است! کافی است که سیستم خود را با استفاده از آن بوت کنید و سپس در منوی KDE روی آیکون User Mode Linux کلیک کنید. با هر کلیک، یک سیستم UML بوت و اجرا خواهد شد که قادر خواهید بود از آن استفاده نمایید. در صورتی که به UML علاقه مند شدهاید، توصیه میکنم که حتما نگاهی به آن بیاندازید.
تعدادی نرمافزار و امکانات اضافی برای هسته لینوکس ارائه شده است. یکی از این امکانات برای توسعه دهندگان نرمافزار، آزمایش کنندگان بتا، نویسندگان و بررسی کنندگان محصولات، سرویسهای فضای اینترنتی و... بسیار ارزشمند است. این امکان User Mode Linux یا اختصارا UML نامیده میشود. UML همانند Vmware، این امکان را فراهم میکند تا ماشینی را در یک ماشین دیگر اجرا نماییم. یعنی در آن واحد چندین نسخه مجزا و ایزوله شده لینوکس در حال اجرا روی یک سیستم واحد باشند.
نام این امکان چندان تشریح کننده عملکردش نیست. به این دلیل User Mode Linux نامیده شده است که در فضای کاربر یا User Space اجرا میشود. به کمک UML شما قادر خواهید بود تا یک سیستم مینیاتوری لینوکس را که دارای هسته و فایل سیستم خودش است را اجرا نمایید، بدون اینکه نیازی به داشتن مجوز ریشه روی تمام سیستم باشید. UML شما دنیای کوچک خودتان است و شما میتوانید هسته آنرا تنظیم کنید، شبکه بندی آنرا ایجاد نمایید و تمامی کارهای دیگر را میتوانید با این ماشین مجازیتان انجام دهید!
شما به یک توزیع خاص و یکسان لینوکس محدود نیستید. در حالی که Vmware به شما اجازه اجرای انواع مختلف سیستمعاملها را در فضای ماشین مجازی میدهد، UML به شما اجازه اجرا و نصب هر نوع توزیع و فایل سیستم لینوکس را میدهد. به این صورت که شما هسته UML را همانند تمامی دستورات معمولی سیستم اجرا میکنید و سپس هسته UML با هسته ماشین مادر ارتباط برقرار میکند. فقط هنگامی که یک بسته خاص نیاز به برقراری ارتباط مستقیم با سختافزار داشته باشد، ممکن است مشکلی پیشآید ولی برای این مشکلات نیز راهحلهایی وجود دارد.
فایل سیستم UML شما در حقیقت بصورت یک فایل به ازای هر UML ای است که اجرا میکنید. یعنی کل فایل سیستم هر UML در یک فایل مجزا قرار میگیرد. در بین هسته و فایل سیستم ایزوله شده، UML میتواند همانند جزیرهای عمل کند که کاربران میتوانند در آن وارد شوند، ولی نخواهند توانست به سیستم اصلی دست پیدا کنند. در صورت که اشکالی پیشآید، تنها UML دچار مشکل خواهد شد و هسته و فایل سیستمهای اصلی بدون تغییر باقی خواهند ماند.
موارد استفاده متعدد
چندین مورد استفاده برای امکانی مانند UML وجود دارد. مثلا برای آزمایش کنندگان بتا که دائما باید با نرمافزارهای مختلف سرو کله بزنند، UML یک امکان ایدهآل به شمار میرود. آنها مجبور نیستند نرمافزارها را بر روی ماشین خودشان و یا سیستم دیگری که ممکن است دورتر از دسترسشان باشد آزمایش کنند. نرمافزارهای آزمایشی را میتوان در یک نشست UML اجرا نمود بدون اینکه به سیستم اصلی آسیبی برساند و همه چیز (سیستم اصلی و سیستم مجازی) بصورت یکجا و همزمان قابل استفاده است.
UML برای هنگامی که شما به یک سرویس خاص اطمینان کافی ندارید بسیار مناسب است. آیا میترسید کسی به FTP Server شما نفوذ کند؟ کافی است آنرا در یک فضای UML اجرا نمایید. حتی اگر چنین اتفاقی رخ دهد، سیستم اصلیتان محفوظ است. آیا از هشدارهای امنیتی BIND نگران هستید؟ آنرا هم در یک UML قرار دهید.
البته نکته مهمی که در استفاده از UML باید در نظر داشته باشید دارای بودن حافظه کافی است. هر UML همانند هسته اصلی سیستم برای اجرا کردن برنامههای خود نیازمند حافظه جداگانهای است. بنابراین داشتن مقدار زیادی حافظه RAM به شما کمک زیادی خواهد کرد.
افت سرعت هنگامی که تعداد زیادی UML رد یک ماشین درحال اجرا باشد قابل ملاحضه است. در صورتی که تعداد زیادی UML در حال اجرا باشند، به سرعت حافظه سیستم به پایان خواهد رسید. برای جلوگیری از چنین رخدادی، شما امکان تخصیص جداگانه حافظه به هر یک از UML ها را دارا هستید. بنابراین سرویسهای مهمتر میتوانند از مقدار حافظه بیشتری بهرهمند گردند. به مجموع UML های روی یک ماشین ممکن است از مقدار حافظه موجود روی سیستم حافظه بیشتری تخصیص داده شده باشد. مشکلی نیست. هسته اصلی سیستم این درخواستها را همانند درخواستهای swap انجام میدهد. حتی این امکان وجود دارد که برای هر یک از UMLها یک فضای swap نیز اختصاص دهید.
آزمایش UML
ممکن است که UML هنوز کیفیت خیلی بالایی نداشته باشد، ولی به طور گسترده توسط آزمایش کنندگان بتا استفاده میشود که بیشترین رضایت را از آن دارند. برای نصب آن میتوانید از بستههای RPM (https://www.mypersianforum.com/showthread.php?t=4707) یا دبیان موجود و یا کامپایل کد منبع استفاده نمایید. ولی قبل از انجام آن حتما مطالعه و بررسی زیادی را انجام دهید.
نصب UML شامل دو مرحله است. نصب هسته و ابزارهای UML سپس نصب سیستمفایل آن. نصب هسته UML در یک سیستم مبتنی بر دبیان بسیار آسان است:
# apt-get install user-mode-linux
البته شما میتوانید به سادگی بستههای UML را از سایت http://packages.debian.org (http://packages.debian.org/) دریافت و نصب نمایید. در صورتی که از یک توزیع مبتنی بر RPM استفاده میکنید، کافی است به سایت پروژه (http://user-mode-linux.sourceforge.net/)UML (http://user-mode-linux.sourceforge.net/) مراجعه کرده و آنرا دانلود و نصب نمایید:
# rpm -ivh user_mode_linux
که بجای user_mode_linux باید نام کامل بسته را وارد نمایید. پس از نصب هسته UML همانطوری که گفته شد باید سیستم فایل UML را در سیستم خود اضافه نمایید. این فایل سیستم بسته به نوع توزیعی که مایلید از آن استفاده نمایید متفاوت خواهد بود. این فایل سیستمها نیز در صفحه دانلود صفحه پروژه UML موجود میباشند. این فایل سیستمها بصورت فایلهای bz2 ارائه شدهاند که باید با استفاده از دستور bzip2 آنها را از حالت فشرده خارج نمایید.
بطور پیشگزیده، UML فرض میکند که شما در حال اجرای X هستید و از داخل X میخواهید آنرا اجرا نمایید. بنابراین در صورتی که بخواهید بدون X آنرا اجرا نمایید با پیغام خطایی مواجه خواهید شد. البته امکان اجرای UML ها در محیط متنی خالص و بدون GUI نیز وجود دارد ولی برای انجام آن به تنظیمات جداگانهای نیاز میباشد.
هنگامی که تمامی اقلام مورد نیاز را نصب کردید، آسانترین راه برای اجرای UML از درون X تایپ دستوری مشابه زیر است:
$ linux ubd0=/path/to/unpacked/filesystem
هنگامی که UML شما شروع به کار کرد، پنجره کنسول مخصوص به خودش را باز میکند که نمونهای از آن را در تصویر زیر مشاهده میکنید. به صورت پیشگزیده دو حساب مختلف در UML فعال میباشد. حساب root با نام کاربری root و حساب user با کلمه عبور user که باید آنها را تعویض نمایید.
در صورتی که تنها میل به آزمایش UML باشید همین حد اطلاعات برای شما کفایت میکند. ولی برای اینکه آنرا در امور جدی مانند ایجاد ماشینهای مجازی که روی شبکه موجود باشند و سایر امور جدی بکار ببرید به اطلاعات بیشتری مانند نحوه شبکه بندی و ... نیاز خواهید داشت که در آینده به آنها خواهیم پرداخت. البته اکنون میتوانید از مستندات موجود در سایت پروژه UML استفاده نمایید.
در صورتی که نمیخواهید به خودتان دردسر نصب UML را بدهید، راهحل سادهتری نیز برای آزمایش آن وجود دارد. دیسک زندهای به نام Adios. یکی از قابلیتهایی که این دیسک زنده استثنایی ارائه میکند، User Mode Linux است. همه چیز آماده است! کافی است که سیستم خود را با استفاده از آن بوت کنید و سپس در منوی KDE روی آیکون User Mode Linux کلیک کنید. با هر کلیک، یک سیستم UML بوت و اجرا خواهد شد که قادر خواهید بود از آن استفاده نمایید. در صورتی که به UML علاقه مند شدهاید، توصیه میکنم که حتما نگاهی به آن بیاندازید.