PDA

View Full Version : سوال: نوشتن رابط کاربري



jeson_park
شنبه 18 تیر 1390, 08:14 صبح
سلام
براي نوشتن رابط کاربري سيستم عامل بايد چيکار کرده؟؟
تنها راهش استفاده از وقفه هاي بايوس هست؟؟
اگه ميشه منابعي رو براي اين کار معرفي کنيد

pswin.pooya
شنبه 18 تیر 1390, 16:53 عصر
سلام
اين موضوع بستگي به سيستم عاملي داره كه ميخواي توش بنويسي. اما اگر از نظر سخت افزار مي نويسي بايد بري دنبال نوع پورتي كه ميخواي باهاش كار كني

توي اين تاپيك يكي دو تا كتاب معرفي كردم كه كتاب "راه اندازي و كنترل دستگاههاي جانبي" هم براي ويندوز رو شرح ميده و هم نحوه ساخت سخت افزار

http://barnamenevis.org/showthread.php?270051-%D9%85%D9%86%D8%A7%D8%A8%D8%B9-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84

jeson_park
سه شنبه 21 تیر 1390, 08:46 صبح
یه منبع برای آموزش سخت افزار (کتاب ) مکعرفی کنید

کتاب Structed computer organization تننباوم خوبه؟

alamate_aoal
سه شنبه 21 تیر 1390, 21:29 عصر
این کتابی که شما معرفی کردید از خوب هم خوبتره و ترجمه ی اون با نام "اصول سیستم های کامپیوتری" تو بازار موجوده و قیمت اون هم 12800 تومان ناقابله!
انتشارات نوآوران دانشگاه پارسه اونو منتشر کرده با ترجمه مهران گرمه ای و دو نفر دیگه

jeson_park
پنج شنبه 07 مهر 1390, 16:06 عصر
سلام
اين موضوع بستگي به سيستم عاملي داره كه ميخواي توش بنويسي. اما اگر از نظر سخت افزار مي نويسي بايد بري دنبال نوع پورتي كه ميخواي باهاش كار كني

ببخشید من دارم الان کتاب آقای تننباوم رو می خونم(کتابی که توی پست 3 معرفی کردم)
منظور شما از پورتی که می خوای باهاش بنویسی چیه؟؟
منظور بنده از رابط کاربری برا سیستم عامل مثلا ویندوز نیست که!
من می خوام برای سیستم عاملی که خودم می نویسم یه رابط کاربری تهیه کنم
یعنی میخوام خودم یه کتابخانه گرافیکی کوچیک بنویسم که بعد با اون رابط کاربری ساده رو برای سیستم عامل طراحی کنم

pswin.pooya
پنج شنبه 07 مهر 1390, 18:51 عصر
آخه من که نمی دونم چجور سیستم عاملی دار مینویسی:
پلتفرم؟
مود پردازنده؟
سخت افزارهایی که پشتیبانی میکنه؟
زبان برنامه نویسی؟
....


یعنی میخوام خودم یه کتابخانه گرافیکی کوچیک بنویسم که بعد با اون رابط کاربری ساده رو برای سیستم عامل طراحی کنم من اولش فکر کردم که منظورت ارتباط با PC هست. در مورد کتابخونه گرافیکی اول باید بری سراغ کتاب گرافیک کامپیوتری کافمن و با اصول گرافیک آشنا بشی اگ هم داری OS مینویسی باید یه درایور سخت افزاری برای PC بنویسی یه حداقل درایور رو میشه با استاندارد VESA نوشت و برای بیشتر از اون هم باید داکیومنتهای کارتهای گرافیکی سازنده ها رو بخونی تا بدونی هر کدومشون چه کار انجام میدن. لینک زیر میتونه کمکتون کنه:

http://wiki.osdev.org/Category:Video

واقعا نمی دونم چه جور سیستم عاملی نوشتی اما برای پلتفرم x86 تو مودهای pmodeو long-mode حتی نوشتن یه درایور 256 رنگ هم کلی دردسر داره که خیلی از برنامه نویسهای فروم osdev.org رو با خودش درگیر کرده بعضیها استانداردها و داکیومنتها رو خوندن و خوب جواب گرفتن و بعضی دیگه یا جواب نگرفتن و یا یه جواب نسبی به کمک مپینگ بایوس گرفتن. اگر از نظر سخت افزاری بخوای من خودم یه برنامه دارم که میخوام توی درس معماری پیشرفته تا آخر ترم یه کامپیوتر ساده رو به همراه کارت گرافیکیش پیاده سازی کنم. فعلا اطلاعات کافی ندارم ولی سعی میکنم تا آخر ترم جواب بگیرم.

برای آشنایی با استانداردها و سخت افزارها اولیه و گرفتن یه دید کلی کتاب "مرجه برنامه نویسان PC پیتر نورتون" رو بخون که بهت یه دید خوب میده.

راستی برای کتابخونه گرافیکی هم میتونی از OpenGL ES و OpenGL استفاده کنی که هم پیاده سازی سخت افزاری دارن و هم نرم افزاری و من افرادی رو دیدم که توی سیستم عاملشون به عنوان API گرافیکی استفاده کردن. خود لینوکس و مک هم از OpenGL استفاده کردن

jeson_park
پنج شنبه 07 مهر 1390, 20:10 عصر
سلام
ممنون از جوابتون
پلت فرم:x86-64 هست
protected mode
زبان برنامه نویسی هم سی پلاس پلاس و اسمبلی هست
دوست عزیز من هدفم پیاده سازی سیستم عامل بزرگ(و در این مورد یه رابط گرافیک خفن!) نیست
همه چیز ساده طراحی شده
بیشتر من روی قسمت گرافیکیش تاکید دارم
چیزی که من دنبالش هستم اینه که می خوام روی یک شل رابط کاربری سوار کنم
کتاب پیتر نورتون رو هم پیدا نکردم متاسفانه
میشه در مورد این کتاب کافمن اطلاعات بیشتری بدین؟؟
در مورد openGL هم باید بگم که این ها خیلی بزرگن
من خیلی ساده تر از این ها رو می خوام!
به هر حال ممنون

pswin.pooya
پنج شنبه 07 مهر 1390, 20:51 عصر
پلت فرم:x86-64 هست
protected mode
شما باید با long-mode کار کنید نه pmode ( حداقل برای 64 بیتی)



protected mode
خب از اونجا که دارید با pmode کار می کنید به وقفه های بایوس دسترسی ندارید. ساده ترین گزینه توی این حالت اینه که قبل از سوئیچ به pmode مود گرافیکی بایوس رو ست کنید و بعدش از نگاشت حافظه اون استفاده کنید. البته من از ین حالت خیلی بدم میاد و به شدت برنامه نویس رو محدود میکنه (از نظر تعداد رنگ و ...) ولی خیلی سادست و سریع جئاب میده. راهکار دیگه اینه که با VBE کار کنید. مزیت VBE که توی شبیه سازهای bochs و quemu هست اینه که اجازه میده از طریق دو تا ثبات با سخت افزار گرافیکی vga ارتباط برقار کنید و کاملا vga رو شبیه سازی کنید. البته در صورتی که می خواهید حرفه ای کار کنید بهتون پیشنهاد میکنم 100 درصد داکیومنت VESA رو مطالعه کنید.


در مورد openGL هم باید بگم که این ها خیلی بزرگن
من خیلی ساده تر از این ها رو می خوام!
OpenGL تنها اون اصول گرافیکی رو که لازم داری بدونی رو پیاده سازی کرده و تنها کاری که باید بکنی یکی پورت اون هست و دومی استفاده.


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


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


چیزی که من دنبالش هستم اینه که می خوام روی یک شل رابط کاربری سوار کنم
شما در ابتدا باید یه درایور سخت افزاری بنویسید که مثلا بشه یه پیکسل باهاش رسم کرد.
بعدش یه API گرافیکی لازم دارید (همون OpenGL و یا روتینها خودتون که مثلا مثلث رسم کنن.)
در مرحله بعد باید بع فکر نوشتن یه شل گرافیکی باشید.


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