PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را دیدن نمیکنید برای دیدن کامل نوشته‌یِ و عکسها بر روی لینک مقابل کلیک کنید : سیستم عامل موبایل؟



بهمنیار
09-18-2011, 06:21 AM
از نگر شما کدام از سیستم عامل ها برای موبایل بهتر است؟
می توان مانند پی سی سیستم عامل موبایل را تغییر داد؟

sonixax
09-18-2011, 07:00 PM
می توان مانند پی سی سیستم عامل موبایل را تغییر داد؟
خیر نمیشود ، هر پردازنده فقط برنامه هایی که برایش نوشته شده را میتواند اجرا کند .
حتا سیستم عامل ویندوز هم از این قاعده مستثنی نیست - یعنی چه ؟ یعنی سیستم عامل ویندوز برای پردازنده های اینتل و AMD (۶۴ بیتی و 32 بیتی) کامپایل شده و فقط روی این پردازنده ها کار میکند (البته سیستم عامل های ۳۲ بیتی ویندوز روی پردازنده های ۶۴ بیتی کار میکنند چون پردازنده های ۶۴ بیتی توانایی شبیه سازی عملکرد پردازنده های 32 بیتی را دارند ولی عکس این داستان صادق نیست ، یعنی شما نمیتوانید یک سیستم عامل ۶۴ بیتی را روی یک پردازنده ۳۲ بیتی اجرا کنید ) و شما نمیتوانید این سیستم عامل را مثلن روی پردازنده ی Play Station 3 اجرا کنید و برای اینکه بتوانید این کار را بکنید نیازمند یک کامپایلر مناسب برای آن پردازنده و همچنین کد منبع سیستم عامل ویندوز دارید .
به همین دلیل شما نمیتوانید روی یک موبایل سیستم عامل موبایل دیگری را نصب کنید ، در عین حال گوشی های موبایل و کنسولهای بازی و حتی مایکروویو ها از یک حافظه ی داخلی به نام NAND بهره میگیرند و سیستم عامل این دستگاه ها روی آن نصب میشود . در موبایل ها و کنسول های بازی ی پیشرفته تر مانند Iphone و Play Station 3 شما این قابلیت را دارید تا آنچه روی NAND نوشته شده را پاک کنید و از نو رویش بنویسید ، یعنی میتوانید سیستم عاملش را Upgrade کنید و حتی اگر آن وسیله Exploit داشته باشد میشود رویش یک سیستم عامل دستنویس و یا دستکاری شده معروف به CFW نصب کرد ولی در گوشی ها و کنسول های قدیمی تر مانند ۱۱۰۰ نوکیا یا Play Station 2 شما نمیتوانید چنین کاری را بکنید چرا که NAND در آنها فقط خواندنی است .


از نگر شما کدام از سیستم عامل ها برای موبایل بهتر است؟
IOS

بهمنیار
09-19-2011, 04:52 AM
خیر نمیشود ، هر پردازنده فقط برنامه هایی که برایش نوشته شده را میتواند اجرا کند .
حتا سیستم عامل ویندوز هم از این قاعده مستثنی نیست - یعنی چه ؟ یعنی سیستم عامل ویندوز برای پردازنده های اینتل و AMD (۶۴ بیتی و 32 بیتی) کامپایل شده و فقط روی این پردازنده ها کار میکند (البته سیستم عامل های ۳۲ بیتی ویندوز روی پردازنده های ۶۴ بیتی کار میکنند چون پردازنده های ۶۴ بیتی توانایی شبیه سازی عملکرد پردازنده های 32 بیتی را دارند ولی عکس این داستان صادق نیست ، یعنی شما نمیتوانید یک سیستم عامل ۶۴ بیتی را روی یک پردازنده ۳۲ بیتی اجرا کنید ) و شما نمیتوانید این سیستم عامل را مثلن روی پردازنده ی Play Station 3 اجرا کنید و برای اینکه بتوانید این کار را بکنید نیازمند یک کامپایلر مناسب برای آن پردازنده و همچنین کد منبع سیستم عامل ویندوز دارید .
به همین دلیل شما نمیتوانید روی یک موبایل سیستم عامل موبایل دیگری را نصب کنید ، در عین حال گوشی های موبایل و کنسولهای بازی و حتی مایکروویو ها از یک حافظه ی داخلی به نام NAND بهره میگیرند و سیستم عامل این دستگاه ها روی آن نصب میشود . در موبایل ها و کنسول های بازی ی پیشرفته تر مانند Iphone و Play Station 3 شما این قابلیت را دارید تا آنچه روی NAND نوشته شده را پاک کنید و از نو رویش بنویسید ، یعنی میتوانید سیستم عاملش را Upgrade کنید و حتی اگر آن وسیله Exploit داشته باشد میشود رویش یک سیستم عامل دستنویس و یا دستکاری شده معروف به CFW نصب کرد ولی در گوشی ها و کنسول های قدیمی تر مانند ۱۱۰۰ نوکیا یا Play Station 2 شما نمیتوانید چنین کاری را بکنید چرا که NAND در آنها فقط خواندنی است .

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

گمان کنم این دعوا میان اپل و پی سی بود یک زمانی . ولی بعد دیگر نمی دانم سخت افزار پیشرفت کرد که مثل لینوکس را می شود روی هر دو سیستم پیاده کرد یا این که سخت افزاری ها یعنی اپل و آی بی ام و. . . کوتاه آمدند. یا یکی پیدا شد که سیست عاملی نوشت تا روی هر دو کار کند ؟ :39:

Mehrbod
09-19-2011, 10:47 AM
خوب پس هنوز در موبایل نسل جدید هم سیستم عامل وابسته به پلات فرم نوشته می شود خوب آیا این مشکل سخت افزار است یا نرم افزار ؟ یعنی کسی پیدا نشده که برای موبایل سیستم عاملی بدون وابستگی به پلات فرم بنویسد یا این که اصلا نمی شود این کار را انجام داد؟


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





گمان کنم این دعوا میان اپل و پی سی بود یک زمانی . ولی بعد دیگر نمی دانم سخت افزار پیشرفت کرد که مثل لینوکس را می شود روی هر دو سیستم پیاده کرد یا این که سخت افزاری ها یعنی اپل و آی بی ام و. . . کوتاه آمدند. یا یکی پیدا شد که سیست عاملی نوشت تا روی هر دو کار کند ؟ :39:

نوشتن نرم‌افزار برای هر سیستم کنشگری (OS) نیازمند پیروی از یک دستورکاری آرشیتکتی CPU ویژه به خود است. CPUهای ساخت AMD و Intel
و دیگر شرکت‌های گمنام امروزین، از دو ساختار مهادین سود می‌برند که x86 و x64 هستند: http://en.wikipedia.org/wiki/Instruction_set_architecture

کُد ریشه (source code) سیستم کنشگر سپس بکمک یک Compiler (هَمگردان) روی یکی از این آرشیتکت‌ها همگردانی می‌شود، برای نمونه کُد C زیر:




#include <stdio.h>

int main(void) {
printf("Hello, world!\n");
return 0;
}



روی آرشیتکت x86 به کُد زیر همگردانی می‌شود:




.text
LC0:
.ascii "Hello, world!\12\0"
.globl _main
_main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
movl $0, %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
call __alloca
call ___main
movl $LC0, (%esp)
call _printf
movl $0, %eax
leave
ret


در اینجا دستورهای:

pushl
call
movl
...


همگی بخشی از دستورهای زیرگردآیه از x86 instructions set هستند که برای یک CPU X86 فهمیدنی و انجام پذیر خواهند بود.

برونرفت برنامه چیزی بیشتر از نوشتن Hello World روی مونیتور البته نیست! :4:


http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax#.22hello.s.22_line-by-line



در نهایت، امروز همه سیستم‌های کنشگر مهادین روی یکی از این دو آرشیتکت همگردانی می‌شوند که شامل حال همه نگارش‌های *nix و windows می‌باشد.
Apple اما از آنجاییکه سخت‌افزار خود را دارد، با داشتن آرشیتکت CPU ویژه به خود نیز، نرم‌افزارهایش را وابسته به اجرا روی سخت‌افزارهای ساخت خود می‌کند.

از Mac OS X Snow Leopard (v10.6) (http://en.wikipedia.org/wiki/Mac_OS_X_v10.6) به بالا البته، Apple هم برای سیستم‌کنشگر Mac روی به X86-64 آورده است،
ولی سیستم کنشگر iOS برای نمونه، همچنان روی آرشیتک ویژه apple کار می‌کند.

sonixax
09-22-2011, 12:55 PM
روی آرشیتکت x86 به کُد زیر همگردانی می‌شود:
البته به زبان اسمبلی و روی سینتکس gas :53: