Architecturally, Palm webOS is an embedded Linux operating system that hosts a custom User Interface (UI) System Manager built on standard browser technology.
منبع: https://developer.palm.com/content/r..._of_webos.html
ترجمه:
« از نظر ساختاری، Palm webOS یک سیستم عامل لینوکس embedded است که یک مدیر سیستم رابط کاربری را که بر اساس فناوری استاندارد مرورگر ساخته شده است میزبانی میکند. »
این نظر یکی از افراد در سایت developer.palm.com است:
webOS is somewhat difficult to categorize in this case. It is a linux based OS, and it doesn't run completely in a browser. webOS consists of a customized linux OS and a proprietary software stack running on top of that. In some ways it works like a standard OS, and in other ways it doesn't. For all intents and purposes though, it doesn't because it has a custom system for development and installation of applications.
There are many portions of webOS, though, that are essentially just webKit. Much of the UI consists of a webKit based 'browser' that handles the rendering. The guy that told you that webOS is entirely in a browser and runs things through an abstraction layer is incorrect.
منبع
ترجمه:
« طبقه بندی کردن webOS در این حالت مقداری مشکل است. آن یک سیستم عامل بر اساس لینوکس است، و آن تماما در یک مرورگر اجرا نمیشود. webOS از یک سیستم عامل لینوکس سفارشی سازی شده و یک پشتهء نرم افزار انحصاری که بر روی آن اجرا میشود تشکیل شده است. از بعضی جهات آن شبیه یک سیستم عامل استاندارد است، و از بعضی جهات دیگر نه. هرچند از نظر تمام اهداف عملی، آن چنان نیست چون برای توسعه و نصب اپلیکیشن ها یک سیستم سفارشی دارد.
اما بخشهای زیادی از webOS وجود دارند که اساسا فقط webKit هستند (م: webKit یک انجین HTML است). بخشهای زیادی از رابط کاربری از یک مرورگر بر اساس webKit تشکیل میشود که رندر کردن را انجام میدهد. کسی که به شما گفته است که webOS تماما در یک مرورگر است و چیزها را از طریق یک لایهء انتزاع اجرا میکند، در اشتباه است. »
خب این گفته ها مسلما خیلی با اونچه که شما ادعا کردید تفاوت میکنن. نه؟ اجرای یک سیستم عامل کامل تحت مرورگر کجا، و اینکه فقط بخشهای کاملا سطح بالایی از یک سیستم باشن که تحت مرورگر اجرا میشن کجا. درواقع هستهء webOS که سیستم عامل واقعی هست همون لینوکسه (یا یک لینوکس سفارشی و تغییر یافته)، و webOS شامل این لینوکس زیرین که عملیات و سرویسهای سطح پایین رو فراهم میکنه و سخت افزار رو مدیریت میکنه است + یک لایه و مجموعه ای از نرم افزارها بر روی اون که چیزهایی از این لایه که تحت مرورگر اجرا میشه بخشهای زیادی از رابط کاربری و احتمالا بعضی اپلیکیشن ها و نرم افزارها و سرویسهای سطح بالای دیگه هستن.
مسلما به یک رابط کاربری یا اپلیکیشن ها و نرم افزارهای سطح بالا نمیشه سیستم عامل گفت و هیچ با اون تعریف و ادعایی که شما مطرح کردید نمیخونه. این متن به صراحت گفته که webOS بر روی لینوکس بنا شده. و البته این طبیعی هم هست، چون طراحی و پیاده سازی یک سیستم عامل کامل کار خیلی دشوار و پرهزینه ای هست؛ تا چه برسه به اینکه بخوایم یه سیستم عامل کامل تحت مرورگر داشته باشیم. اصلا چنین چیزی تاحالا نه وجود نداشته، و نه بگم نشدنی هست، اما حداقل بسیار دشوار و ناکاراست و هیچ توجیه و هدف منطقی ای نداره. سیستم عامل یه چیزی سطح پایین هست که باید سخت افزار رو مدیریت کنه و سرویسهای سطح پایین بده، و اینا هیچ تناسبی با امکانات و پرفورمنس مرورگر و فناوریهای وب ندارن.
فکر میکنم اگر به مطالب بعدی هم با بی طرفی توجه کنید متوجه میشید که قضیه چیه.
اینکه بخش زیادی از رابط کاربری و بخشهای دیگری از webOS تحت webKit طراحی شدن باعث میشه اجرای کل این محیط (منظور محیط گرافیکی و لایه های نرم افزاری بالایی) تحت مرورگر کار سختی نباشه، چون اساسا فرق چندانی نداره. webKit یک موتور مرورگر وب هست. اما فکر میکنم تاحالا بقدر کافی مطمئن شدیم که این موتور فقط برای رابط گرافیکی و رندر کردن محیط گرافیکی و اجرای اپلیکیشن ها و بعضی اجزای دیگه بکار میره، نه اینکه تمام webOS بعنوان یک سیستم عامل کامل، تحت مرورگر اجرا بشه.
webOS بدون لینوکس که یک سیستم عامل متعارف است هیچی نخواهد بود جز یک لایه از نرم افزارهای سطح بالا و رابط کاربری و نرم افزار webKit که به تنهایی هیچ کاری ازشون برنمیاد، چون اینها خودشون باید روی یک سیستم عامل اجرا بشن.
بهرحال همونطور که اون شخص در بالا گفته و همونطور که از این مطالب متوجه میشیم، این قضیه یه مقدار پیچیده بود بخاطر طراحی خاص webOS و چند لایه و چند فناوری بودن اون. ولی فکر نمیکنم دیگه شکی باقی مونده باشه که اون چیزی که وظایف اصلی یک سیستم عامل متعارف رو انجام میده و اون چیزی که برنامه های webOS رو نهایتا روی سخت افزار اجرا و مدیریت میکنه، چیزی نیست جز همون لینوکس دوست داشتنی خودمون!
صرفا اینکه دیدید محیط گرافیکی و رابط کاربری و برنامه نویسی اپلیکیشن یک سیستم عامل تحت مرورگر و زبانهای و فناوریهای وب هست دلیل نمیشه که کل اون سیستم عامل تحت مرورگر اجرا میشه.
مطالب دیگر در همان تاپیک:
Our emulator is a x86 distribution of Linux with our custom components. This runs inside the VirtualBox application which emulates a virtualized PC.
ترجمه:
شبیه ساز ما یک توزیع x86 از لینوکس همراه با اجزای سفارشی ماست. این در داخل نرم افزار کاربردی VirtualBox اجرا میشود که یک PC مجازی را شبیه سازی میکند.
فکر کنم این یکی رو هم باید بعنوان مکمل ترجمه کنم تا موضوع بیشتر روشن بشه:
It was named webOS because the core technologies that applications use are the ones used in the web browser.
The application execution environment is WebKit, the same engine used in the Chrome and Safari browser. Apps are written in JavaScript, the language used for scripting in web pages. There is easy access to web services through the XmlHttpRequest object. Services are written using node.js, a JavaScript-powered execution engine also used on many web servers.
ترجمه:
« نام آن webOS گذاشته شد زیرا فناوریهای هسته ای که اپلیکیشن ها استفاده میکنند آنهایی هستند که در مرورگر وب استفاده میشوند.
محیط اجرای اپلیکیشن WebKit است، موتور یکسانی که در مرورگر Chrome و Safari استفاده میشود. اپلیکیشن ها با جاوااسکریپت نوشته میشوند، زبانی که برای اسکریپت نویسی در صفحات وب استفاده میشود. دسترسی آسان به سرویسهای وب از طریق شیء XmlHttpRequest وجود دارد. سرویسها با استفاده از node.js که یک موتور اجرای تحت جاوااسکریپت است که همچنین روی خیلی از وب سرورها استفاده میشود نوشته شده اند. »
این مطلب هم برای روشن شدن ساختار webOS خیلی مفید بود.
درواقع شما وقتی برای webOS اپلیکیشن نویسی میکنید یا سرویسهای سطح بالای اون، تحت فناوریهای وب هستن. اما این به این معنا نیست که خود webOS بر اساس مرورگر هست، بلکه محیط توسعهء نرم افزار سطح بالا و اپلیکیشن های کاربردی اون بر اساس فناوری های وب هست و در محیط یک مرورگر داخلی (WebKit) اجرا میشن. مثل اینکه شما روی ویندوز هم میتونید برنامه های کاربردی وب یا دسکتاپ رو با فناوریهای تحت وب طراحی کنید و در مرورگر اجرا کنید، اما خود ویندوز و سرویسهای سطح پایین اون تحت مرورگر و فناوریهای وب نیستن.
امروزه فناوریهای وب و مرورگرها اونقدری غنی و گسترده و کارا هستن که میشه باهاشون علاوه بر وب، اپلیکیشن های با کاربرد دسکتاپ هم طراحی و استفاده کرد و حتی فریمورک هایی برای این کار وجود دارن.
فکر میکنم اگر بخوایم چیزی رو با محیط برنامه نویسی webOS قیاس بکنیم باید بگیم یه چیزی توی مایه های Adobe AIR. تفاوت درمورد webOS اینه که این محیط و فریمورک اصلی ای است که برای برنامه نویسی در webOS در اختیار شما قرار داده شده و مثل محیط سیستم عاملهای PC، در انتخاب زبان و فناوری و فریمورک برنامه نویسی آپشن های متعدد و متنوع ندارید.
نکتهء اضافه شده: البته امکان برنامه نویسی با سی/سی++ هم برای webOS وجود داره که برای ساخت بازیهای گرافیکی قوی و پلاگین هایی که کارهایی رو انجام میدن که نیاز به پردازش با پرفورمنس بالا دارن، درنظر گرفته شده (این پلاگین ها در دسترس برنامه های استاندارد Javascript هستند که از فناوریهای وب استفاده میکنن).
منبع: https://developer.palm.com/content/r...k_start_c.html
و اینم نگاه کنید: https://developer.palm.com/content/api/dev-guide.html
پس نتیجه میگیریم که اگر محیط برنامه نویسی و سرویسهای سطح بالای یک سیستم تحت فناوری های وب بودن و در یک مرورگر داخلی اجرا میشدن دلیل بر این نیست که خود/کل اون سیستم عامل هم تحت فناوریهای وب و مرورگر نوشته شده و اجرا میشه. بعضی بخشهای سطح بالای سیستم عامل رو میشه تحت این فناوریها طراحی کرد، اما اصل و هستهء سیستم عامل کماکان مثل بقیهء سیستم عاملهاست. در webOS این فقط رابط کاربری و کتابخانه ها و سرویسهای سطح بالا و محیط برنامه نویسی شما بعنوان یک اپلیکیشن نویس یا برنامه نویس سطح بالاست که تحت فناوریهای وبه.
ضمنا برای یک نمونه از اینکه چطور محیط کاربری webOS میتونه در مرورگرهای عادی اجرا بشه نگاهی به این مطلب بکنید: https://developer.palm.com/content/a.../emulator.html
در این مطلب در بخش Emulator Host Mode آمده:
The webOS SDK Emulator (version 1.4.1 and later) includes a feature called Emulator Host Mode. This mode allows you to inspect your application using a desktop browser (Chrome or Safari). To accomplish this, the Emulator now contains its own web server that renders your application on port 8080, which is automatically mapped by the "palm-emulator" tool to port 5580 on your desktop.
After the Emulator is started, you can launch a browser on your desktop and render any applications in your browser directly!
ترجمه:
« شبیه ساز webOS SDK شامل یک ویژگی بنام Emulator Host Mode است. این حالت به شما اجازه میدهد اپلیکیشن تان را با استفاده از یک مرورگر دسکتاپ (Chrome یا Safari) بررسی کنید. برای انجام دادن این، شبیه ساز اکنون وب سرور خودش را شامل میشود که اپلیکیشن شما را روی پورت 8080 رندر میکند، که بصورت خودکار توسط ابزار palm-emulator به پورت 5580 بر روی دسکتاپ شما نگاشت میشود.
پس از اینکه شبیه ساز استارت شد، شما میتوانید یک مرورگر را در دسکتاپ خود آغاز کرده و هر اپلیکیشن ای را مستقیما در مرورگر خود رندر کنید. »
البته بنده نمیدونم آیا این دقیقا حالتی هست که برای اجرا روی ویندوز در مرورگرهای دسکتاپ پیاده شده یا نه. اما بهرحال این مطلب ثابت میکنه که مرورگر میتونه فقط یک واسطه و محیط نمایش و تعامل و اجرای اپلیکیشن هاش باشه و اینکه شما برنامه های webOS رو در مرورگر ببینید و بوسیلهء مرورگر باهاشون تعامل کنید و حتی مرورگر اونها رو اجرا کنه دلیل نمیشه که کل برنامه و کل سیستم عامل webOS داره توسط/در درون مرورگر شما اجرا میشه.
جدا داستان این webOS واقعا پیچیده بود و عجیب نیست که دربارش تصورات اشتباه بوجود بیاد.
هنوزم ابهامات و سوالات بی جوابی ممکنه وجود داشته باشه. اما فکر میکنم اونچه که در ارتباط با این بحث باید روشن میشد بحد کافی روشن شده باشه.
--------------------------------
جمع بندی این بحث و مطالب:
- منابعی که شما آوردید صرفا منابع خبری بودن که خیلی کلی از اجرای webOS در مرورگر و روی ویندوز خبر داده بودن و جزییات و طرز کار رو بیان نکرده بودن، و این مطالب لزوما هیچ تناقضی با مطالب مطرح شده ندارن، چون احتمالا تنها چیزی که از دیدگاه کاربر دیده میشه اجرای محیط کاربری و اپلیکیشن های کاربردی webOS در مرورگر هست.
- مطالبی که توسط افراد در فروم تخصصی و رسمی توسعه دهندگان webOS مطرح شد به صراحت مشخص میکنن که webOS بر اساس لینوکس است ولی بخشهای زیادی از رابط کاربری و بعضی برنامه ها و سرویسهای سطح بالا بخصوص برای اپلیکیشن نویسی، تحت فناوریهای وب و در موتور مرورگر داخلی اون اجرا میشن (البته لزوما تمام این برنامه ها که با فناوریهای وب هستن تحت موتور مرورگر داخلی اجرا نمیشن، چون بعضی از اونا میتونن مثلا حالت سرویس دهنده رو داشته باشن، نه برنامه های سمت کلاینت).
- محیط استاندارد اصلی اپلیکیشن نویسی webOS بر اساس فناوریهای وب است. یعنی وقتی شما برای webOS اپلیکیشن مینویسید این کار رو با زبانها و فناوریهای وب مثل جاوااسکریپت انجام میدید و تمام یا بیشتر اپلیکیشن های شما عملا در یک مرورگر داخلی اجرا میشن.
و دقیقا این محیط اپلیکیشن نویسی علتی است که اسم این سیستم عامل رو webOS گذاشتن. یعنی محیط اپلیکیشن نویسی webOS تحت فناوریهای وب و مرورگر است، نه اینکه تمام اجزای خودش تماما تحت فناوریهای وب نوشته شده و در مرورگر اجرا بشن. بنظرم تا اینجا کاملا روشن شد که این تصور کاملا اشتباهی است.
البته به امکان استفاده از سی/سی++ هم برای بعضی برنامه های خاص در بالاتر اشاره شد.
- برای اجرای webOS روی ویندوز نیاز به یک شبیه ساز سخت افزاری هست تا سخت افزارهایی رو که webOS روی اونا اجرا میشه شبیه سازی کنه. اما این شبیه ساز یک توزیع لینوکس همراه با اجزای سفارشی است که بنابراین خودش تحت شبیه ساز VirtualBox روی ویندوز اجرا میشه. یعنی درواقع ما دو مرحله شبیه سازی داریم! یک مرحله و لایه و نرم افزار که سخت افزار خاصی رو شبیه سازی میکنه، و یک لایه و نرم افزار شبیه ساز دیگه (VirtualBox) که اجازه میده اون نرم افزار شبیه سازی کنندهء سخت افزار که درواقع یک توزیع لینوکس هست، روی ویندوز اجرا بشه.
- اجرای webOS تحت مرورگرهای عادی در ویندوز، احتمالا کم و بیش به شکل همون سناریویی هست که در آخرین لینک و مطلب آوردیم. یعنی یک وب سرور بین مرورگر دسکتاپ ویندوز و webOS بعنوان واسطه ایفای نقش میکنه. چون میدونیم که اپلیکیشن های webOS تحت فناوریهای وب هستن و در مرورگر اجرا میشن بنابراین درصورت لزوم میتونن در مرورگرهای خارجی هم اجرا بشن.
بهرحال در نهایت کل سیستم عامل webOS در پشت صحنه در درون لایه های Emulator درحال اجراست.
درواقع گفتن «اجرای webOS تحت مرورگرهای عادی در ویندوز» باید از نظر فنی جملهء غلطی باشه، چون این خود/کل webOS نیست که تحت مرورگر اجرا میشه، بلکه اپلیکیشن های اون هستن (و نهایتا شاید بعلاوه بخش رابط کاربری اون).