PDA

View Full Version : نحوه ساخت ظاهر سیستم عامل ها



negar.rafie
دوشنبه 28 اسفند 1391, 14:42 عصر
سلام
همون طور که میدونید سیستم عامل ها را با اسمبلی و c و ++c مینویسند
حالا میخواستم بدونم ظاهر سیستم عامل ها را چگونه و با چی درست میکنند؟

navidnkh
دوشنبه 28 اسفند 1391, 15:15 عصر
با همون C یا C++
یعنی محیط برنامه نویسی خاصی ندارن که استفاده کنن میان رو کارت گرافیک برنامه مینویسن و تیکه به تیکه رو میسازن
البته الگوریتم های خاصی داره

JaVa
دوشنبه 28 اسفند 1391, 15:35 عصر
با همون C یا C++
یعنی محیط برنامه نویسی خاصی ندارن که استفاده کنن میان رو کارت گرافیک برنامه مینویسن و تیکه به تیکه رو میسازن
البته الگوریتم های خاصی داره

میشه بیشتر توضیح بدید ؟

مثلا همین ویندوز سون رو چطور این گرافیک قدرتمند رو براش درست کردند ؟
(شاید مثلا با زبان C++ اومدن کد نویسی کردن(فایل DLL تولید کردن) بعد توی یه زبان سطح بالا اون کدها رو استفاده کردن در یک محیط گرافیکی )البته این فقط یه حدس هست:چشمک:

navidnkh
دوشنبه 28 اسفند 1391, 15:57 عصر
تقریبا میشه گفت همین طوریه که گفتین ، در اصل میان ساختار پایه رو میریزن و همیشه از اون استفاده میکنن
شاید بعضی کد های ویندوز 7 یا حتی 8 رو همزمان با تولیدش نساخته باشن مثلا زمان xp ساخته شده ، حالا داره توسعه پیدا میکنه ( به این منظور که زمان xpهم بوده در سیستم عامل ) البته این معلومه که مایکروسافت داره ما هارو گول میزنه یعنی میاد فقط رابط کاربری و کمی از ساختار هسته رو تغییر میده و به عنوان یک ویندوز جدید ارائه میده ، مگر نه هیچ موقع نمیاد از صفر شروع کنه.
اما در مورد اینکه چه جوری رابط کاربری مینویسن اصل کارش بر میگرده به کارت گرافیک یعنی معمولا با همون زبان c++ میان رو گذرگاه های کارت گرافیک برنامه مینویسن اساسا وقتی این کارو بکنن دیگه میتونن قالب های آماده ای درست کنن که در کل سیستم عامل از اونا استفاده میشه که تقریبا میشه گفت همون dll ها

navidnkh
دوشنبه 28 اسفند 1391, 16:00 عصر
راستی اگر علاقه مند به این موضوع هستی تو تایپیک قبلی که درست کردم همین کارو شرح میدم و توضیحاتی در موردش میدم که با C# چگونه یک سیستم عامل با یک رابط کاربری داشته باشیم

JaVa
دوشنبه 28 اسفند 1391, 16:10 عصر
راستی اگر علاقه مند به این موضوع هستی تو تایپیک قبلی که درست کردم همین کارو شرح میدم و توضیحاتی در موردش میدم که با C# چگونه یک سیستم عامل با یک رابط کاربری داشته باشیم

دوباره سلام.

ممنون از توضیحاتتون.

اتفاقا خیلی هم خوبه.

JaVa
دوشنبه 28 اسفند 1391, 16:13 عصر
راستی یه سئوال دیگه هم داشتم:

حجم کرنل سیستم عامل چقدره ؟

آیا حجم بیشتر سیستم عامل رو پوستش تشکیل میده یا خیر ؟

با تشکر

JaVa
دوشنبه 28 اسفند 1391, 16:13 عصر
با زبان vb.Net هم میشه همچین کاری کرد ؟

موفق باشید

navidnkh
دوشنبه 28 اسفند 1391, 16:23 عصر
راستی یه سئوال دیگه هم داشتم:

حجم کرنل سیستم عامل چقدره ؟

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


آیا حجم بیشتر سیستم عامل رو پوستش تشکیل میده یا خیر ؟

ممکن یک سیستم عامل رابط کاربری قوی نداشته باشه یا اصلا رابط کاربری نداشته باشه (به اصتلاح متنی) ولی هسته قوی داشته باشه که اینجا هسته حجم بیشتری داره و بر عکسش هم صادقه


با زبان vb.Net هم میشه همچین کاری کرد ؟

شما هم مثل من در اصل Vb.net کار هستی :چشمک:
طبق گفته سایت بله میشه ولی مثال های خیلی کمتری داره ، به شخصه امتحانش نکردم ولی فکر کنم اگر بخوای یه سیستم قوی بنویسی به مشکل بر بخوری البته یه نکته بگم شکل بیشتر دستورات C#.net شباهت زیادی به Vb.net داره که به نظر من اصلا سخت نیست

JaVa
دوشنبه 28 اسفند 1391, 16:32 عصر
شما هم مثل من در اصل Vb.net کار هستی
طبق گفته سایت بله میشه ولی مثال های خیلی کمتری داره ، به شخصه امتحانش نکردم ولی فکر کنم اگر بخوای یه سیستم قوی بنویسی به مشکل بر بخوری البته یه نکته بگم شکل بیشتر دستورات C#‎.net شباهت زیادی به Vb.net داره که به نظر من اصلا سخت نیست

من اگه وقت بکنم پشت سر شما(البته چراغ خاموش:چشمک:) اون تایپیک رو دنبال می کنم. و کدهاش رو به ویبی دات نت می نویسم.
حدستون هم درسته من بیشتر اوقات با ویبی می نویسم.

موفق باشید

pswin.pooya
چهارشنبه 30 اسفند 1391, 01:24 صبح
سلام

چند تا موضوع وجود داره. یکی نوشتن کامپوننت های بصری مثل textbox و label هست که هیچ استاندارد خاصی براش وجود نداره و هرکی هر جوری عشق کرد کار میکنه. اما از یه جنبه دیگه رسم مواردی مثل خط و دایره و ... هست که براشون الگوریتمهای تقزیبا ثابت و استاندارد وجود داره. این قسمت نرم افزاری GUI هست.

از دیدگاه سخت افزاری هر سخت افزار گرافیکی مثل مانیتور باید استانداردهای خاصی رو رعایت کنه که بایوس بتونه اون رو شناسایی کنه. بعد از شناسایی بایوس یک مد که بهش مد متنی گفته میشه رو بصورت پیش فرض ست میکنه. و یه قسمت از حافظه کارت گرافیکی ( که بهش بافر فریم گفته میشه )‌رو روی RAM با آدرس B800 و یا ... م‍پ می کنه. بنابراین با هر تغییر داخل این حافظه مپ شده تغییرات به حافظه کارت گرافیک و نهایتا مانیتور اعمال میشه. اما برای مدهای گرافیکی به استاندارهای بالاتری نظیر VESA و ... نیاز هست. و یا برای استفاده از مواردی مثل شتاب دهنده دو و سه بعدی باید از درایورهای ویژه کارت گرافیکی استفاده کرد. این درایورها از ساختار درونی کارت گرافیکی مطلع هستند و بعد از رسیدن دستورها به اونها، دستورات رسیده رو به زبان کارت گرافیک ترجمه میکنن و داده رو به سمت کارت گرافیک ارسال می کنن. بعد از اون یک روند پیچیده به نام رندرینگ شروع میشه که داخل کارتهای گرافیکی مدرن از تقریبا ۳ مرحله تا بیشتر ادامه داره. مثل برای کارتهای گرافیکی با شیدر مدل دو روند رندرینگ سه بعدی از چهار مرحله پردازش ورتکس -> رستری سازی -> پردازش فرگمنت -> پردازشهای پست (مثل alpha blending و ... ) تشکیل شده. بعدش دادهای پردازش ده روی یک بافر به نام بافر فریم که یه نوع حافظه با سرعت دسترسی بالا هست قرار می گیرند و باز هم معمولا قطعه ای به نام DAC این دادهای رو به سیگنالهای آنالوگ قابل تشخیص برای مانیتور تبدیل می کنه.

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

مباحث مرتبط به گرافیک کامپیوتری هنوز به بلوغ خودشون نرسیدند و مرتبا در حال تغییرند. در حقیقت این زمینه علوم کامپیوتر یکی از سریعترین پیشرفتها رو داشته و داره و اینکه چگونه سیستم عاملها با این موضوع درگیر هستند خودش یکی از بحث های پیچیده به شمار میره. مثلا به درایورهای کارت گرافیکی جعبه سیاه گفته مبشه. یعنی به غیر از سازنده کس دیگه ای نمی دونه که داخلشون چه خبره و چه اتفاقی می افته.

linux
سه شنبه 13 فروردین 1392, 05:03 صبح
سلام
همون طور که میدونید سیستم عامل ها را با اسمبلی و c و ++c مینویسند
حالا میخواستم بدونم ظاهر سیستم عامل ها را چگونه و با چی درست میکنند؟
اگر نمای درستی از سیستم عامل در ذهن داشته باشید،باید بدونید که هر سیستم عامل یک بخش اصلی داره که با اسم کرنل یا هسته شناخته می‌شود که وظیفه‌اش کنترل منابع سیستم هست مثل حافظه و IO , CPU و در اصل منابع مورد نیاز هر برنامه اجرایی را تامین کرده و در اختیار آن قرار می‌دهد. در سیستم عاملهایی مثل لینوکس ظاهر سیستم عامل هم یک برنامه هست مثل بقیه برنامه‌ها.
برای لینوکس محیطهای گرافیکی زیادی هست که شاید پر کاربردترینشون gnome,kde هست. که اینها را هم با سی/سی++ نوشته اند در نسخه‌های جدید از کتابخانه opengl استفاده می‌کنند برای نمایش گرافیک گه خود opengl هم با سی نوشته شده .

linux
سه شنبه 13 فروردین 1392, 05:21 صبح
میشه بیشتر توضیح بدید ؟

مثلا همین ویندوز سون رو چطور این گرافیک قدرتمند رو براش درست کردند ؟
(شاید مثلا با زبان C++ اومدن کد نویسی کردن(فایل DLL تولید کردن) بعد توی یه زبان سطح بالا اون کدها رو استفاده کردن در یک محیط گرافیکی )البته این فقط یه حدس هست:چشمک:
دوست عزیز تصور شما از محیط گرافیکی تصور عجیب و غریبی هست. که اکثر دوستانی که شروع کارشان با ویندوز بوده به آن دچار هستند. محیط گرافیکی چیزی نیست جز مقداری pixel که به شکل خاصی روشن و خاموش می‌شوند. شما احتیاج دارید که بیشتر در مورد کارتهای گرافیکی مطالعه کنید.

linux
سه شنبه 13 فروردین 1392, 05:24 صبح
سلام

چند تا موضوع وجود داره. یکی نوشتن کامپوننت های بصری مثل textbox و label هست که هیچ استاندارد خاصی براش وجود نداره و هرکی هر جوری عشق کرد کار میکنه. اما از یه جنبه دیگه رسم مواردی مثل خط و دایره و ... هست که براشون الگوریتمهای تقزیبا ثابت و استاندارد وجود داره. این قسمت نرم افزاری GUI هست.

textbox و label هم از مجموع خط و خطوط تشکیل شده اند

prpe26
سه شنبه 13 فروردین 1392, 12:16 عصر
برای ساخت یک محیط گرافیکی به چند چیز من جمله Display Server مثل X.org و Mir ، یک مدیر نمایشگر مثل GDM , LightDM و یک مدیر پنجره مثل OpenBox , TWM , Compiz نیازمند هستید.

pswin.pooya
سه شنبه 13 فروردین 1392, 22:52 عصر
textbox و label هم از مجموع خط و خطوط تشکیل شده اند
هر کسی مثلا textbox رو به هر شکلی که بخواد میتونه طراحی کنه. یکی border میذاره یکی دیگه یه عکس و ... . این کاملا سلیقه ای هست.