در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس می‌بایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مونیتور ,فلاپی , کی بورد و غیره) داشته باشدو روتین‌هایی برای خواندن و یا نوشتن آنها به زبانهای سطح پائین بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ماشین مجازی (Virtual machine) یاد می‌شود که واقعیت سخت افزار را از دید برنامه نویسان مخفی می‌سازد.

سیستم عاملهای اولیه به زبان اسمبلی نوشته می‌شدند ولی امروز, اکثر سیستم عاملها به زبان C))(یا C++)نوشته می‌شوند . سیستم عامل ((UNIX ,OS/2 و ویندوز بیشتر به زبان C نوشته‌ شده‌اند و قسمت اندکی از آنها به زبان اسمبلی است.
مهمترین مزیت استفاده از زبان سطح بالا برای پیاده سازی سیستم عامل قابلیت حمل آن بر روی انواع کامپیوترها و سادگی پیاده سازی , تغییر و بسط دادن سیستم عامل می‌باشد.
ممکن است ادعا شود پیاده سازی سیستم عامل به زبان C باعث کاهش سرعت و افزایش مصرف حافظه می‌گردد . اگر چه یک برنامه نویس ماهر زبان اسمبلی , می‌تواند برنامه‌های کوچک و بسیار بهینه بنویسد ولی برای برنامه‌های بزرگ یک کامپایلر خوب, می‌تواند تحلیل پیچیده تری نسبت به مغز انسان ماهر انجام داده و بهینه سازی‌های کاملی را انجام دهد.
لذا در عمل برنامه‌های بزرگ C کد اسمبلی بهینه تر و کمتری را تولید می‌کنند, نسبت به حالتی که برنامه‌نویس بخواهد همان کاری به زبان اسمبلی انجام دهد . از طرف دیگر در عمل کارایی اصلی نتیجه ساختمان داده و الگوریتم‌های بهتر است نه نتیجه نوشتن برنامه به زبان اسمبلی .

همچنین اگر چه سیستم عاملها برنامه‌های بزرگی هستند ولی تنها بخش کوچکی از کد آنها, نسبت به کارایی , بحرانی(Critical) می‌باشد مثل مدیریت حافظه و زمانبندی CPU . لذا پس از آنکه سیستم عامل به زبان سطح بالا نوشته شد و به درستی عمل کرد می توان روتین های گلوگاه (bottleneck) و مهم را شناسایی کرد و سپس آنها را با روتین‌های معادل زبان اسمبلی جایگزین نمود.

Virtual Machine/ Enterprise System Architecture یا VM/ESA یکی از سیستمهای عامل IBM است که از قدیم الایام تحت عناوین VM/HPO,VM/XA, VM/SP تحت ماشینهایی نظیر IBM 9370, IBM/ES9000,IBM 4381 اجرا می شده است. آخرین ویرایش مورد حمایت این سیستم عامل در شرکت داده پردازی ایران نسخه VM/ESA 2.3.0 می باشد. ویژگی بارز این سیستم عامل عبارتست از در اختیار گرفتن منابع سخت افزاری فیزیکی و واقعی ماشین Mainframe و دستگاههای جانبی آنها و بوجود آوردن ماشینهای مجازی متعدد. یک ماشین مجازی در واقع تمامی ویژگیهای یک ماشین Mainframe واقعی از جمله CPU ، حافظه، دیسک، چاپگر، Card Reader و ….. را داراست و این در حالی است که بسیاری از این دستگاهها و امکانات وجود خارجی نداشته بلکه توسط هسته مرکزی Nucleus ) VM) که CP یا Control Program نام دارد شبیه سازی می گردند. لذا تصویری که از یک سایت Mainframe به همراه سیستم عامل VM می توان داشت در واقع بدین صورت است که تعداد زیادی (بالغ بر هزاران) ماشین مجازی بطور همزمان فعال هستند که هر یک از این ماشینها به درخواستهای یکی از کاربران سیستم پاسخگو خواهد بود. مثلا” یک کاربر در حال کامپایل و اجرای برنامه های کاربردی، کاربر دیگر در حال فعال نمودن یک سیستم عامل ثانوی(Second level ) مانند VSE/ESA یا OS/390 ، کاربر دیگر در حال edit نمودن فایلهای خود و ….. ـ نکته جالب آنکه سیستم عامل VM منابع فیزیکی سیستم Mainframe را به روش Time Sharing چنان میان کاربران مختلف تقسیم خواهد نمود که هر یک از کاربران تصور می نمایند منابع سیستم فقط در اختیار خود ایشان است.

نکته مثبت و قابل توجه آنکه می توان چندین نسخه از سیستمهای عامل OS/390,VSE,VM را بطور همزمان تحت یک سیستم عامل VM/ESA فعال نمود بطوریکه مثلا” ۳ سیستم مجزای VM ، ‏ ۵ سیستم کاملا” متفاوت OS/390 و ۱۰ سیستم VSE/ESA هر یک با کاربردهای خاص خود همزمان فعال گردند و هر یک پاسخگوی بخشی از کاربران با اهداف مختلف باشند. توجه داشته باشید که در عین حال نقل و انتقال اطلاعات سیستمهای عامل مختلف تحت VM با سهولت هر چه تمامتر میسر می باشد.

امکانات ارتباطی فوق العاده از جمله TCP/IP از اجزاء درونی VM/ESA هستند که پنجره VM را به روی کاربران intranet یا Internet جهانی می گشایند. 

از ویژگیهای دیگر سیستم عامل VM ، تخصیص دینامیکی منابع به کاربران است. یعنی می توان بدون بروز اشکال منابعی را از یک کاربر گرفته در اختیار کاربر دیگر قرار داد. این امر بدون خروج این کاربران از سیستم میسر است.
vmvare یه نرم‌افزار تجاریه که به کمکش می‌تونین همزمان از چند تا سیستم عامل استفاده کنید. خودشون بهش میگن: «زیربنای مجازی»، ولی من بهش می‌گم: ماشین مجازی. با سیستمهای مدیریت بوت (مثل Grub یا Lilo یا نرم‌افزارهای ویندوزی system commander یا boot magic) اشتباه نگیرید. با سیستمهای مدیریت بوت می‌تونین چند تا سیستم عامل روی ماشینتون داشته باشین ولی همزمان می‌تونین فقط از یکیشون استفاده کنید ولی با vmware می‌تونین همزمان از دو یا چند سیستم عامل استفاده کنین! یعنی با فشار یه دکمه یا کلیک بر روی موشی بین دو تا سیستم عامل بدون کوچکترین وقفه‌ی زمانی سوئیچ کنید. این نرم‌افزار رو اولین بار برای لینوکس نوشتن ولی بعدا نسخه‌ی ویندوزیش رو هم اومد. آخرین نسخه‌اش، ۴٫۵٫۲ه. است .

هر كدام از برنامه‌های MS-DOS در ماشین مجازی خودش Virtual Machine اجرا می‌شد كه یك محیط گرافیكی ویندوز بود. تمامی این برنامه‌ها و دستورالعمل‌ها سعی بر آن داشتند كه از طریق دستورات IN , OUT و همچنین دستورالعمل‌های خواندن و نوشتن روی حافظه قطعه، استفاده از وقفه سخت‌افزاری، مستقیماً با سخت‌افزار ارتباط برقرار كنند. در اینجا دو یا چند دستور كه در یك زمان می‌خواهند از پردازشگر استفاده می‌كنند می‌توانست باعث ایجاد تداخل در دستورات ارسالی یه سخت‌افزار شود. مطمئناً بر سر استفاده از نمایشگر، صفحه ‌كلید و ماوس ناهماهنگی پیش می‌آمد. در پایان برای دست‌یابی به Multiple Application ،برای استفاده از یك سخت‌افزار فیزیكی، مایكروسافت مفهوم Virtual Device Driver را با هدف مجازی نمودن قطعات سخت‌افزاری، مطرح كرد و درایورها VXD نام گرفتند چرا كه اغلب درایورها اسم‌هايي شبیه به این جمله داشتند كه در آن X نوع قطعه سخت‌افزاری است كه كنترل می‌شد.

با استفاده از این مفهوم، Win 3.0 تصویر ماشین مجازی قطعات سخت‌افزاری زیادی را ساخت اما هنوز هم اغلب قطعات با استفاده از درایورهای Real-Mode MS-DOS راه‌اندازی می‌شدند.در جاهایی كه برنامه می‌خواهد دسترسی مستقیم به سخت‌افزار داشته‌ باشد VXD بعنوان یك واسط عمل می‌كند و قطعه را راه‌اندازی می‌كند. بطور خلاصه كاری را كه درایور VXD انجام می‌دهد سوییچ كردن پردازنده به Real-Mode و فراخوانی Virtual 8086 Mode برای اجرا شدن درایور در MS-DOS ، است.

سوییچ كردن مد كاری و اجرای درایورهای Real-Mode عامل اصلی پیشرفت‌های گسترده در سیستم عامل و ساختار سخت‌افزارها شد. win 3.0 اشكالات زیادی داشت كه برای رفع آنها معماری كامپیوتر تغییرات چشمگیری كرد و مایكروسافت سیستم OS/2 را كه سازگار با IBM هم بود وارد بازار كرد.
نسخه OS/2 مایكروسافت Windows NT شد كه در حدود ۱۹۶۰ و كمی بعد از win 3.1 بعنوان اولین نسخه عمومی در دسترس مصرف همگان قرار گرفت. مایكروسافت ویندوز NT را به قصد فراهم كردن یك بنیاد پایدار و مطمئن برای اجرای ویندوز ساخت. درایورهای win NT از یك تكنولوژی كاملاً جدید بنام Kernel Mode استفاده می‌كرد كه عملاً هیچ نقطه مشتركی با دو تكنولوژی متداول قبلی نداشت. در درایورهای win NT از زبان برنامه‌نویسی C استفاده می‌شد و CPU می‌توانست براحتی آن را recompile كرده و اجرا كند.

معرفی نرم افزار Virtual PC
این نرم افزار بسیار مفیدی است برای ساختن یک کامپیوتر مجازی درون کامپیوتر تان . می توانید هر سخت افزاری که می خواهید (البته پائین تر از سطح سخت افزار های کامپیوتر خودتان) برای آن انتخاب کنید ، روی ان سیستم عامل نصب کنید ، درایو های مجازی برای آن بسازید و… .
محیط این نرم افزار بسیار ساده و کار کردن با آن بسیار راحت است .

روی New کلیک کنید .
پنجره ای با نام New Virtual Machine Wizard باز می شود ، Next را بزنید . در پنجره باز شده می توانید انتخاب کنید که کامپیوتر مجازی بسازید یا تغییراتی در کامپیوتر های مجازی قبلی بدهید .
ما حالت تنظیمات پیش فرض و قرار دادی را برای ساخت ماشین مجازی استفاده می کنیم . یعنی گزینه ی : Use default setting to create a Virtual Machine . next را بزنید .
در اینجا آدرس محلی که می خواهید فایل کامپیوتر مجازی تان در آن باشد را بدهید و اسم آن را نیز تعیین کنید . Next را بزنید در صفحه توجه داشته باشید که گزینه When I click finish,open Setting فعال باشد . حالا finish را بزنید .