• گنو هرد، فراتر از لینوکس

    در نیمهٔ نخست دههٔ ۹۰ میلادی، پس از آن که لینوس توروالدز کرنل خود را با نام لینوکس به صورت آزاد منتشر کرد، اعضای پروژهٔ گنو که در طول ده سال گذشته در تلاش برای به وجود آوردن یک سیستم‌عامل آزاد بودند بر سر یک دوراهی تاریخی قرار گرفتند؛ ادامهٔ تلاش‌ها برای توسعهٔ میکروکرنل خود و سرویس‌دهنده‌های مربوط به آن تحت عنوان پروژهٔ هرد (HURD) یا استفاده از کرنل یک‌پارچهٔ جدیدی که هم به همان اندازه آزاد بود و هم در آن زمان تقریباً قابل استفاده بود. در نهایت و پس از کشمکش‌های بسیار، تصمیم بر این شد که پروژهٔ هرد متوقّف شده و تلاش‌ها بر روی توسعهٔ لینوکس به صورتی که با سیستم‌عامل گنو سازگار باشد متمرکز شود. این‌گونه بود که سیستم‌عامل جدیدی به نام گنو/لینوکس متولّد شد. ولی تفاوت این دو در چه بود؟

    #GNU HURD as Desktop

    کرنل

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

    کرنل یکپارچه (Monilithic kernel)

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

    میکروکرنل (Microkernel)

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

    کرنل پیوندی (Hybrid kernel)

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

    #GNU HURD as Desktop

    پروژهٔ هرد

    همان‌گونه که گفته شد، این پروژه در اواسط دههٔ ۹۰ میلادی تقریباً متوقّف شد. ولی مجموعه‌ای از دلایل موجب شد که توسعهٔ این پروژه از سال ۲۰۱۳ دوباره به صورت جدّی از سر گرفته شود. از جملهٔ این دلایل می‌توان به عدم مهاجرت لینوکس به آخرین نسخه از پروانهٔ انتشار GPL و هم‌چنین احساس قدیمی شدن ساختار کرنل یک‌پارچه برای قرن بیست و یکم اشاره کرد. خروجی این پروژه به صورت عمومی به گنو هرد شهرت دارد، ولی از نظر تکنیکی شامل میکروکرنل گنو-ماخ (GNU-MACH) و مجموعه‌ای از سرویس‌دهنده‌ها به نام هرد می‌شود که بر روی آن اجرا می‌شوند. به همین صورت سیستم‌عامل کاملی که به‌جای کرنل لینوکس از گنو-ماخ و هرد استفاده می‌کند با نام عمومی گنو/هرد شناخته می‌شود، هرچند اطلاق نام‌هایی مانند گنو/ماخ با سرویس‌دهنده‌های هرد و حتا گنو هم به آن محلّی از اشکال ندارد.

    تاریخچه

    در ابتدا قرار بود سیستم‌عامل گنو از کرنل تریکس (TRIX) که در MIT توسعه یافته بود استفاده کند و از این رو توسعه‌دهندگانش اقدام به اعمال تغییرات لازم بر این کرنل کرده بودند، ولی در سال ۱۹۸۶ بنیاد نرم‌افزار آزاد طی مذاکراتی با پروفسور رشید از دانشگاه کارنگی-ملون بر سر توسعهٔ مشترک کرنل ماخ به توافق رسید. این کار به آن‌ها اجازه می‌داد به‌جای تلاش برای تغییر کرنل TRIX، کرنل را به گونه‌ای که خودشان می‌خواستند توسعه دهند. با توسعه و بلوغ نسبی کرنل ماخ در پایان دههٔ ۸۰، بنیاد نرم‌افزار آزاد از سال ۱۹۹۰ کار بر روی سرویس‌دهنده‌های هرد را بر روی میکروکرنل ماخ آغاز کرد.

    وضعیت کنونی

    به گفتهٔ تیم توسعهٔ دبیان، گنو هرد برای ورودش به این توزیع در انتشار جسی بیش از ۸۰٪ آماده است. با توجّه به این که کرنل FreeBSD هنگام ورودش در انتشار ویزی دارای آمادگی ۸۵٪ بود، امید است به زودی شاهد توزیع گسترده و عمومی آن باشیم. این کرنل در حال حاضر به صورت غیر رسمی توسّط دو توزیع‌کنندهٔ بزرگ دبیان و آرچ قابل دریافت و استفاده است که در میان آن‌ها، توزیع دبیان از وضعیت بهتری برخوردار بوده و تا حد زیادی توانایی انجام کارهای عادی روزمره را دارد.

    کاستی‌ها

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

    هرد و لینوکس

    ریچارد استالمن رابطهٔ بین هرد و لینوکس را این‌گونه شرح می‌دهد:

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

    هنگامی که ما در ۱۹۹۰ شروع به توسعهٔ هرد کردیم، پرسشی که با آن مواجه بودیم این بود که «چگونه می‌توانیم کرنلی آزاد برای سیستم‌عامل گنو داشته باشیم؟» در آن زمان هیچ کرنل شبهٔونیکس آزادی وجود نداشت و ما هیچ تلاش دیگری را هم برای نوشتنش نمی‌شناختیم. تنها راهی که می‌توانستیم برای داشتن یک کرنل آزاد انتظار داشته باشیم این بود که خودمان بنویسیمش، پس شروع کردیم.

    ما پس از انتشار لینوکس دربارهٔ آن شنیدیم. در آن زمان پرسشی که دربرابر ما قرار داشت این بود که «آیا باید پروژهٔ هرد را لغو کنیم و به‌جایش از لینوکس استفاده کنیم؟» ما شنیدیم که لینوکس به هیچ‌وجه قابل انتقال نیست (این گزاره شاید امروزه درست نباشد، ولی در آن زمان این‌گونه گفته می‌شد). هم‌چنین ما شنیدیم که لینوکس از نظر معماری معادل دقیق یونیکس است، در حالی که کار ما به چیزی بسیار پرقدرت‌تر می‌انجامید.

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

    اگر ما با این پرسشی که مردم می‌پرسند مواجه بودیم (یعنی لینوکس موجود بود و می‌خواستیم تصمیم بگیریم که کرنل دیگری بنویسیم یا نه)، این کار را نمی‌کردیم. به جای آن پروژهٔ دیگری را برای کار بر رویش انتخاب می‌کردیم؛ چیزی که کاری را انجام دهد که هیج نرم‌افزار آزاد موجودی نمی‌توانست.

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

    نصب گنو/هرد

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

    $ wget http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz

    و با این دستور از حالت فشرده خارج کرد:

    $ tar xzf debian-hurd.img.tar.gz

    حال می‌توان آن را مستقیماً روی kvm اجرا کرد:

    $ kvm -drive file=debian-hurd*.img,cache=writeback -m 1G

    یا آن را تبدیل به دیسک virtualbox کرد تا از داخل این برنامه آن را مدیریت کرد:

    $ VBoxManage convertfromraw debian-hurd.img debian-hurd.vdi --format vdi

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


  • تلویزیون خود را هوشمند کنید

    همهٔ ما در ذهنمان فهرستی از نرم‌افزارهایی داریم که تنها به شنیدن نام و دانستن کلّیت کاری که می‌کنند، اکتفا کرده‌ایم و به خود مجال آزمودن آن‌ها را نداده‌ایم. تا چند هفته پیش نرم‌افزار XBMC برای من، یکی از همین گونه نرم‌افزارها بود و دلیل اصلی عدم آزمودن این نرم‌افزار، نوع آن بود: مرکز رسانه. دلایل زیادی را می‌توان برای عدم اقبال کاربران به نرم‌افزارهای مرکز رسانه مطرح کرد، ولی شاید مهم‌ترین این دلایل فاجعه‌ای بود که شرکت مایکروسافت با نام windows media center منتشر کرد و همگان را نسبت به این نام بدبین کرد. انگیزه‌ای که من را به نصب این نرم‌افزار آزاد واداشت، تنها کنجکاوی و مقداری زمان اضافی، در کنار سرعت اینترنت مناسب برای بارگیری و نصب این نرم‌افزار بود، ولی پس از نصب این نرم‌افزار تنها حسرت می‌خوردم که چرا مدت‌ها پیش به استفاده از این نرم‌افزار روی نیاورده بودم.

    نرم‌افزار XMBC که در نسخه ۱۴ به کودی (Kodi) تغییر نام خواهد داد، یک مرکز رسانهٔ آزاد با پروانه انتشار GPL است که در سال ۲۰۰۲ با هدف تبدیل دستگاه xbox به یک مرکز رسانه آغاز به کار کرد، اما در حال حاضر روی سکّوهای گنو/لینوکس، بی‌اس‌دی، ویندوز، مک او‌اس، اندروید، آی‌اواس و… اجرا می‌شود. این مرکز تفریح را می‌توان به صورت بسته‌های معمولی روی سیستم‌عامل فعلی دستگاه خود نصب کرد یا به صورت توزیع‌هایی از پیش پیکربندی‌شده مانند OpenELEC (سرنام عبارت Open Embedded Linux Entertainment Center) برای دستگاه‌های توکار یا Rasbmbc برای بردهای رایانه‌ای نصب کرد. از دستگاه‌هایی که قابلیت اجرای این مرکز رسانه را به صورت رسمی و مستقیم روی سخت‌افزار خود دارند، می‌توان به دستگاه‌های تلویزیونی Fire TV آمازون، سری‌های نخست و دوم تلویزیون اپل، کروم‌باکس‌ها، باکسی، رزبری‌پای و… اشاره کرد.

    وظیفه اصلی این نرم‌افزار در ابتدا، مدیریت آسان‌تر پرونده‌های چندرسانه‌ای موجود روی رایانه بود، ولی با استفاده از قدرت آزاد بودن نرم‌افزار و امکان نوشتن افزونه‌های مختلف برای آن، در حال حاضر تبدیل به یک سکّوی قدرتمند برای همهٔ امور مربوط به رسانه شده است. با استفاده از کودی می‌توانید علاوه بر دیدن سریال‌ها و فیلم‌های سینمایی یا گوش دادن به آهنگ‌های خود، پخش مستقیم اینترنتی شبکه‌های مختلف را مشاهده کنید، قسمت‌های جدید سریال‌های مورد علاقه‌تان را به صورت مستقیم از اینترنت دریافت کرده (streaming)، با استفاده از تیونر آنالوگ یا DVB-T، شبکه‌های تلویزیونی مورد علاقه خود را تماشا و برنامه‌های مورد علاقه خود را فارغ از مبدأ پخش آن ضبط کنید. مطّلع شوید چه ویدیوهایی بیشتر توسّط مردم دنیا دیده می‌شوند و با یک کلیک تماشایشان کنید، ویدیو‌های روی یوتوب را ببینید، در کلاس‌های درس آکادمی خان و یوداسیتی شرکت و حتا به دریافت پرونده‌های تورنت و ذخیرهٔ آن‌ها اقدام کنید.

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

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

    یکی از برتری‌های این مرکز رسانه نسبت به دیگر نمونه‌های مشابه، نرم‌افزار کنترل از راه دور آن برای دستگاه‌های همراه است که علاوه بر ارتباط با نرم‌افزار و امکانات کنترلی که یک کنترل عادّی دستگاه‌های تلویزیونی در اختیار شما می‌گذارد، امکان جست‌وجو در بین موارد موجود در کودی، دیدن وضعیت آن مورد (دیده شده یا نشده)، توضیح‌هایی دربارهٔ آن مورد از قبیل خلاصه داستان، سال ساخت و… را نیز در اختیار شما می‌گذارد. همچنین امکان جست‌وجو و بررسی در بین موارد موجود نیز با استفاده از فیلد‌هایی چون ژانر، کارگردان، بازیگر و شرکت وجود دارد. از دیگر مزایای استفاده از کنترل تلفن همراه، نمایش اعلان‌هایی روی صفحهٔ نمایش هنگام دریافت پیامک است که نام فرد تماس‌گیرنده و پیام را نمایش می‌دهد و دیگر نیاز نیست برای خواندن پیام‌ها، پخش فیلم را قطع کنید. در صورتی که شخصی با شما تماس بگیرد نیز شماره یا نام آن فرد روی صفحهٔ نمایش درج شده و در صورتی که کاربر به تماس پاسخ دهد، به صورت خودکار، پخش فیلم تا پایان تماس متوقف می‌شود و پس از آن پخش از سر گرفته می‌شود.

    از دیگر امکانات پیش‌رفتهٔ این نرم‌افزار، امکان کنترل شدن از طریق HDMI است (CEC) که به وسیلهٔ آن می‌توانید تنها با استفاده از کنترل از راه دور تلویزیون مجهّز به HDMI، نرم‌افزار کودی را هم کنترل کنید و دیگر نیاز به دستگاه جانبی دیگری برای استفاده از آن وجود ندارد.

    افزونه‌های مفید

    در این‌جا قصد داریم تعدادی از افزونه‌های مفید را برای کودی معرّفی کنیم. این افزونه‌ها لزوماً بهترین افزونه‌های موجود نیستند و تنها طبق تجربهٔ شخصی معرفی شده‌اند. این افزونه‌ها و بسیاری از افزونه‌های دیگر را می‌توان از طریق وب‌سایت TV addons دریافت کرد.

    ویدئو

    1Channel

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

    Docu-Hub

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

    Nasa

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

    Sports Devil

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

    World News live

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

    دیگر افزونه‌ها

    Youtube - Khan Academy - Udacity - TED Talks

    آهنگ

    Concert Archive

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

    JamBMC

    این افزونه می‌تواند در میان آهنگ‌هایی که پروانه انتشار آزاد دارند جست‌وجو کرده و آن‌ها را پخش کند.

    Music Video Jukebox

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

    Spotimc

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

    TuneIn Radio

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

    XBMC Karaoke Addon

    با این افزونه کارائوکه را به خانه بیاورید و با دوستانتان در خواندن آهنگ‌های دلخواهتان روی موسیقی بی‌کلام آن‌ها مسابقه بدهید.

    دیگر افزونه‌ها

    SoundCloud

    برنامه

    Axel Downloader

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

    Launcher

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

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

    Rom Launcher

    با استفاده از این افزونه می‌توانید دستگاه خود را بدون نیاز به تجهیزات اضافی به یک کنسول بازی تبدیل کرده و از بازی کردن با آن لذت ببرید.

    RSS Editor

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

    Transmission

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

    دیگر افزونه‌ها

    XBMC Audio Mixer


  • اینفوگرافی: ویندوز را ببندید، درها را باز کنید

    اینفوگرافی

    #Close Windows