جمعه، بهمن ۱۶، ۱۳۸۸

این هفته: چه موقع می توان این (سیستم عامل) را لینوکس نامید؟


حد اکثر تا قبل از آنکه که گوگل لینوکس را روی دستگاه های قابل حمل رونق ببخشد. اما واقعا آندروید با لینوکس چه رابطه ای دارد؟
اخیرا به یکی از دوستان گوشی مایلستون موتورولا را نشان دادم. همین که اشاره کردم که این گوشی با آندروید کار می کند گفت: "آهان، این همان لینوکس گوگل برای گوشی های همراه است. اوپن آفیس روش اجرا می شه؟" مجبور شدم او را ناامید کنم، اما این موضوع این سوال را در ذهنم ایجاد کرد: وقتی که واسط کاربری (GUI) و API توسعه (Development API) متفاوت است، آیا هنوز این سیستم عامل لینوکس است؟
اکثریت لینوکس کارها می دانند که برروی دسکتاپ یا سرور مبتنی بر لینوکس در اصل مجموعه ای از یک کرنل سیستم عامل، کتابخانه های سیستمی، برنامه ها و یک واسط کاربری اجرا می شود. لینوکس به طور دقیق تر فقط به کرنل اطلاق می شود اما توانسته است خود را به عنوان اصطلاحی که به مجموعه کرنل، POSIX-API (به طور دقیقتر API پایه استاندارد لینوکس)، ابزارهای GNU، X11 و گنوم یا KDE بشناساند. این گونه کلاسیک لینوکس تنها یک امکان ساخت یک سیستم عامل کامل بر پایه کرنل لینوکس است که در جهت حفظ میراث یونیکس و استانداردهای آن قرار دارد.
برای مثال آندروید تنها شامل کرنل لینوکس (با چندین تغییر که آن را با کرنل استاندارد ناسازگار می سازد) و تعداد کمی از کتابخانه های اصلی و آشنای لینوکس است. تازه توسعه دهندگان از این ویژگی های لینوکسی چیزی نمی بینند زیرا همه برنامه بر روی ماشین مجازی جاوا دالویک (Dalvik) اجرا می شوند و توابع آندروید تنها از طریق API جاوا Android SDK قابل دسترسی هستند. همچنین Android Native Development Kit که در داخل دالویک تعبیه شده است تنها از طریق یک برنامه دالویک قابل استفاده است. کسی که یک سیستم آندروید دارد به هیچ وجه نمی تواند چیزی را در آن پیدا کند که تداعی گر لینوکس باشد.
آیا با این وجود آندروید یک لینوکس به حساب می آید؟ آن چه واضح است نه به معنای یک سرور یا دسکتاپ لینوکس. سوال این است که وسایلی که از کرنل لینوکس استفاده می کنند اما API معمول لینوکس را برای برنامه ها فراهم نمی کنند را چه باید نامید؟ می توان به آنها “Linux-Powered” گفت اما تنها وقتی که این موضوع به طور واضح بیان شود که یک سرور یا دسکتاپ لینوکس چیز کاملا متفاوتی است.
در این مساله تنها مربوط به تکنیک ساخت سیستم عامل نیست بلکه مساله آزادی و باز بودن نیز در میان است که چه کارهای با این وسیله ممکن است. کاربر باید بداند که سیستم های “Linux-powered” - نسبت به آنچه از توزیع های مرسوم لینوکس می شناسد - به معنای آزادی عمل کمتر است و همچنین این که بر روی چنین دستگاه هایی هر برنامه لینوکسی اجرا نخواهد شد (حتی وقتی سورس کد آنها در دسترش باشد و آنقدر تمیز نوشته شده باشند که بر روی هر گونه لینوکس قابل کامپایل و ترجمه باشند).
ما از بنیاد لینوکس (Linux Foundation)، صاحب امتیاز نام تجاری لینوکس، پرسیدیم که آیا در این موضوع (لینوکس نامیدن این سیستم عامل ها) سردرگمی کاربر را تهدید نمی کند؟ جیم زملین مدیر عامل بنیاد لینوکس این چنین پاسخ داد:
"پلاتفرم لینوکس در سطوح مختلف با روش های مختلف یکپارچه می شود. اولین سطح که کرنل است به طور کامل در سراسر اکوسیستم لینوکس یکی است. هر کس بخواهد که سخت افزارش توسط لینوکس پشتیبانی شود، کد خود را به سادگی به کرنل استاندارد در kernel.org اضافه می کند.
در دومین سطح کتابخانه های سیستمی مانند پایه استاندارد لینوکس (Linux Standard Base) وجود دارند که یک مجموعه از کتابخانه ها را تعریف می کنند که توسعه دهندگان لینوکس در همه انواع لینوکس انتظار دارند. اکوسیستم برای اجرای برنامه ها بر روی سطح بسیار بالاتری تعریف شده است، جایی که بازار تصمیم می گیرد کدام نسخه های لینوکس موفق هستند. آندروید برای مثال یک سیستم عامل محبوب برپایه لینوکس برای دستگاه های قابل حمل است. در آندروید محیط اجرای جاوا مشخص می کند که چه برنامه هایی سازگار هستند و آن ها را در بازار آندروید قابل دسترسی می کند. Palm Pre نیز یک مفهوم مشابه اما با یک محیط اجرای دیگر و یک SDK دیگر است. حتی Kindle آمازون نیز یک SDK جداگانه برای برنامه ها دارد.
همه این ها دستگاه های بر پایه لینوکس هستند و کسی گیج نمی شود. اکوسیستم های متفاوتی برای برنامه ها بر روی سیستم های لینوکسی متفاوت وجود دارند که همگی در لایه های عمیق داخلی سیستم به صورت واحد باقی می مانند."
در دومین سطح کتابخانه های سیستمی مانند پایه استاندارد لینوکس (Linux Standard Base) وجود دارند که یک مجموعه از کتابخانه ها را تعریف می کنند که توسعه دهندگان لینوکس در همه انواع لینوکس انتظار دارند. اکوسیستم برای اجرای برنامه ها بر روی سطح بسیار بالاتری تعریف شده است، جایی که بازار تصمیم می گیرد کدام نسخه های لینوکس موفق هستند. آندروید برای مثال یک سیستم عامل محبوب برپایه لینوکس برای دستگاه های قابل حمل است. در آندروید محیط اجرای جاوا مشخص می کند که چه برنامه هایی سازگار هستند و آن ها را در بازار آندروید قابل دسترسی می کند. Palm Pre نیز یک مفهوم مشابه اما با یک محیط اجرای دیگر و یک SDK دیگر است. حتی Kindle آمازون نیز یک SDK جداگانه برای برنامه ها دارد.
همه این ها دستگاه های بر پایه لینوکس هستند و کسی گیج نمی شود. اکوسیستم های متفاوتی برای برنامه ها بر روی سیستم های لینوکسی متفاوت وجود دارند که همگی در لایه های عمیق داخلی سیستم به صورت واحد باقی می مانند."

ترجمه مقاله Wann darf man Linux dazu sagen

هیچ نظری موجود نیست:

ارسال یک نظر