دشواری اصلی در بهینهسازی سیستم است. بکارگیری نابهجا از منابع سیستم میتواند در نرخ مصرف باتری دگرگونی بسیار زیادی بکند.
نوشتن نرمافزار برای هر سیستم کنشگری (OS) نیازمند پیروی از یک دستورکاری آرشیتکتی CPU ویژه به خود است. CPUهای ساخت AMD و Intel
و دیگر شرکتهای گمنام امروزین، از دو ساختار مهادین سود میبرند که x86 و x64 هستند: http://en.wikipedia.org/wiki/Instruc...t_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 روی مونیتور البته نیست!
[*] http://en.wikibooks.org/wiki/X86_Ass...2_line-by-line
در نهایت، امروز همه سیستمهای کنشگر مهادین روی یکی از این دو آرشیتکت همگردانی میشوند که شامل حال همه نگارشهای *nix و windows میباشد.
Apple اما از آنجاییکه سختافزار خود را دارد، با داشتن آرشیتکت CPU ویژه به خود نیز، نرمافزارهایش را وابسته به اجرا روی سختافزارهای ساخت خود میکند.
از Mac OS X Snow Leopard (v10.6) به بالا البته، Apple هم برای سیستمکنشگر Mac روی به X86-64 آورده است،
ولی سیستم کنشگر iOS برای نمونه، همچنان روی آرشیتک ویژه apple کار میکند.




















































پاسخ با گفتآورد