نرم‌افزار چندسکویی

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

همچنین چند سکویی به دسته‌ای از نرم‌افزارها گفته می‌شود که در یک محیط از چند سکو استفاده شده‌است.

پلتفرم‌ها 
بسترهای نرم‌افزاری می‌توانند به نوع پردازنده (CPU) یا سخت‌افزار دیگری که یک سیستم عامل یا برنامه معین بر روی آن اجرا می‌شود، نوع سیستم عامل در رایانه یا ترکیبی از نوع سخت‌افزار و نوع سیستم عاملی که روی آن اجرا می‌شود، اشاره کنند. یک مثال از یک پلتفرم مشترک، Microsoft Windows است که با معماری x86 اجرا می‌شود. سایر سیستم عامل‌های رایانه رومیزی معروف شامل Linux / Unix و macOS هستند - هر دوی اینها خود کراس پلتفرم هستند. با این حال، بسیاری از دستگاه‌ها مانند تلفن‌های هوشمند وجود دارند که همچنین به‌طور مؤثر سیستم عامل رایانه هستند اما کمتر در مورد آنها حرفی زده می‌شود. نرم‌افزار کاربردی را می‌توان بسته به ویژگیهای یک سیستم عامل خاص - سخت‌افزار، سیستم عامل یا ماشین مجازی که در آن کار می‌کند - نوشت. بستر جاوا یک پلت فرم ماشین مجازی است که روی بسیاری از سیستم عامل‌ها و انواع سخت‌افزار اجرا می‌شود و بستر مشترک نرم‌افزاری است که می‌توان برای آن نوشت.

سیستم عامل‌های سخت‌افزار 
یک بستر سخت‌افزاری می‌تواند به معماری مجموعه دستورالعمل‌ها اشاره کند. به عنوان مثال: معماری x86 و انواع مختلف آن مانند IA-32 و x86-64. این ماشین‌ها غالباً یک نسخه از Microsoft Windows را اجرا می‌کنند، اگرچه می‌توانند سیستم عامل‌های دیگری از جمله Linux , OpenBSD , NetBSD , macOS و FreeBSD را نیز اجرا کنند.

معماری‌های ۳۲ بیتی ARM (و نسخه جدیدتر ۶۴ بیتی) در تلفن‌های هوشمند و رایانه‌های لوحی که از سیستم عامل‌های Android , iOS و سایر سیستم عامل‌های تلفن همراه استفاده می‌کنند، معمول است.

سیستم عامل‌های سخت‌افزار 
سیستم عامل‌های نرم‌افزاری می‌توانند یک سیستم عامل یا یک محیط برنامه‌نویسی باشند، گرچه معمولاً ترکیبی از هر دو است. یک استثنا قابل توجه در این مورد جاوا است که از یک ماشین مجازی مستقل از سیستم عامل برای کد کامپایل شده خود استفاده می‌کند، که در دنیای زبان برنامه‌نویسی جاوا به عنوان bytecode شناخته می‌شود. نمونه‌هایی از سیستم عامل‌های نرم‌افزاری عبارتند از:
 BlackBerry
 Android برای تلفن‌های هوشمند و رایانه‌های لوحی (x86، ARM)
 iOS (ARM)
 Microsoft Windows (x86، ARM)
 CLI، همچنین با نام پیاده‌سازی .NET Framework (از مایکروسافت) و نوع کراس پلت فرم Mono (قبلا توسط نوول و اکنون توسط زامارین [۶] شناخته می‌شود)
 JAVA
 مرورگرهای وب - کم و بیش با یکدیگر سازگار هستند، و برنامه‌های وب جاوا اسکریپت را اجرا می‌کنند
 Linux (x86، PowerPC , ARM و سایر معماری‌ها)
 macOS (x86، PowerPC (در ۱۰٫۵ به پایین) و ARM [7] (در Apple Silicon یا ۱۱٫۰ به بالا))
 Mendix
 Solaris
 SymbianOS
 SPARC
 Unix

منابع 

برنامه‌نویسی
سکوهای رایانش
نرم‌افزارهای چندسکویی
هم‌کنش‌پذیری