PDA

View Full Version : سوال: چگونه جدا از ویندوز برنامه نویسی c و C++‎‎‎انجام دهم؟



hamidrezab185
پنج شنبه 18 شهریور 1395, 22:11 عصر
دوستان ویندوز و مک در چه محیطی ساخته شده؟
من می خواهم در اینده سیستم عاملی بسازم که با مک و ویندوز رقابت کنم پس مایکروسافت و اپل یک محیطی دارن که سیستم عاملو بسازن
نمیشه برای ساخت سیستم عامل رقابت با ویندوز از خود ویندوز استفاده کنم
خب بیل گیتس برای ساخت داس و ویندوز در چه محیطی و از چه زبان برنامه نویسی استفاده کرده؟منظورم من این هست
دوستان اگر کسی اطلاعاتی درباره این محیط برنامه نویسی دارن از ما دریغ نکنن

محسن=0
جمعه 19 شهریور 1395, 09:15 صبح
درود بر شما .
هسته سیستم عاملها بیشتر با سی نوشته شده

hamidrezab185
جمعه 19 شهریور 1395, 10:32 صبح
درود بر شما .
هسته سیستم عاملها بیشتر با سی نوشته شده
خب برنامه نویسی cهست ولی منظور من این هست در چه محیطی جدا از ویندوز برای ساخت هسته از c استفاده کنم

M.Rahimy
جمعه 19 شهریور 1395, 13:09 عصر
باید بدونید که این کار (ساخت سیستم‌عامل برای رقابت با مک و ویندوز) بسیار بلندپروازانه و برای متخصصین ارشد برنامه‌نویسی و نرم‌افزار هم حوزهٔ ترسناکی‌ست.


تحت گنو/لینوکس (حالا هرتوزیعی که باهاش راحت بودید) میشه به راحتی شروع به کار ساخت سیستم‌عامل کرد. البته حقیقت اینه که سکو اونقدرها مهم نیست، اما در لینوکس ابزارهای خوبی برای این کار وجود داره. قبلا که سیستم‌عاملی وجود نداشت که تحت اون چیزی بنویسن، با دستگاه پانچ و کارتخوان و از طریق سیستم‌های spooling می‌نوشتن (درس سیستم‌عامل رشته‌ٔ نرم‌افزار).


برای شروع می‌تونید کد منبع هستهٔ لینوکس رو مشاهده و مطالعه کنید:
https://github.com/torvalds/linux
فایل READEME رو بخونید.



نسخه‌های اولیهٔ داس هم اوپن سورس شده اما برای الگوگیری پیشنهاد نمیشه و از این به عنوان نمونهٔ یک سیستم‌عامل بد یاد میشه (لقمان را گفتند ...)
http://www.computerhistory.org/atchm/microsoft-ms-dos-early-source-code/

hamidrezab185
جمعه 19 شهریور 1395, 16:09 عصر
باید بدونید که این کار (ساخت سیستم‌عامل برای رقابت با مک و ویندوز) بسیار بلندپروازانه و برای متخصصین ارشد برنامه‌نویسی و نرم‌افزار هم حوزهٔ ترسناکی‌ست.


تحت گنو/لینوکس (حالا هرتوزیعی که باهاش راحت بودید) میشه به راحتی شروع به کار ساخت سیستم‌عامل کرد. البته حقیقت اینه که سکو اونقدرها مهم نیست، اما در لینوکس ابزارهای خوبی برای این کار وجود داره. قبلا که سیستم‌عاملی وجود نداشت که تحت اون چیزی بنویسن، با دستگاه پانچ و کارتخوان و از طریق سیستم‌های spooling می‌نوشتن (درس سیستم‌عامل رشته‌ٔ نرم‌افزار).


برای شروع می‌تونید کد منبع هستهٔ لینوکس رو مشاهده و مطالعه کنید:
https://github.com/torvalds/linux
فایل READEME رو بخونید.



نسخه‌های اولیهٔ داس هم اوپن سورس شده اما برای الگوگیری پیشنهاد نمیشه و از این به عنوان نمونهٔ یک سیستم‌عامل بد یاد میشه (لقمان را گفتند ...)
http://www.computerhistory.org/atchm/microsoft-ms-dos-early-source-code/
ممنونم ازشما و بدونید که بلند پروازی نیست من الا 13 سالم هست از 9 سالگی به c++ را شروع کردم و میدونم که می تونم
ممنون از شما دوست عزیز برای اطلاعات هایی که دادین هر جا که گشتم نبود

M.Rahimy
جمعه 19 شهریور 1395, 16:48 عصر
بله قطعا خواهید تونست.:تشویق:

باید بپرسم که چطور گشتی، چون من اولین چیزی که در گوگل امتحان کردم این بود: os dev
به همین راحتی.

خب حالا که پیش‌زمینهٔ برنامه‌نویسی موجود هست، بهتره زبان اسمبلی رو یاد بگیری و با این کتاب گام به گام پیش‌بری:

https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf


همین کارها رو با زبان C هم میشه کرد. بعدا پورتش کن به C .

-------

اما بهترین جایی که من دیدم این ویکی هست:
http://wiki.osdev.org/Main_Page

اول این صفحه‌اش رو بخون:
http://wiki.osdev.org/Getting_Started

تا با حقایق تلخ و شیرین آشنا بشی.

بعد اینجا که خیلی مهمه :
http://wiki.osdev.org/Beginner_Mistakes

و بعد هم دیدت باز میشه و می‌تونی در اینجا گام به گام پیش بری:
http://wiki.osdev.org/Bare_Bones

معمولا شما که از سنین پایین با کامپیوتر سرو کار داشتید، زبان انگلیسی‌تون خوب هست اما بهتره برای فهم بیشتر مطالب از یک بزرگتر کمک بگیری.

hamidrezab185
جمعه 19 شهریور 1395, 17:44 عصر
بله قطعا خواهید تونست.:تشویق:

باید بپرسم که چطور گشتی، چون من اولین چیزی که در گوگل امتحان کردم این بود: os dev
به همین راحتی.

خب حالا که پیش‌زمینهٔ برنامه‌نویسی موجود هست، بهتره زبان اسمبلی رو یاد بگیری و با این کتاب گام به گام پیش‌بری:

https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf


همین کارها رو با زبان C هم میشه کرد. بعدا پورتش کن به C .

-------

اما بهترین جایی که من دیدم این ویکی هست:
http://wiki.osdev.org/Main_Page

اول این صفحه‌اش رو بخون:
http://wiki.osdev.org/Getting_Started

تا با حقایق تلخ و شیرین آشنا بشی.

بعد اینجا که خیلی مهمه :
http://wiki.osdev.org/Beginner_Mistakes

و بعد هم دیدت باز میشه و می‌تونی در اینجا گام به گام پیش بری:
http://wiki.osdev.org/Bare_Bones

معمولا شما که از سنین پایین با کامپیوتر سرو کار داشتید، زبان انگلیسی‌تون خوب هست اما بهتره برای فهم بیشتر مطالب از یک بزرگتر کمک بگیری.
واقعا ممنونم از شما اطلاعات مفیدی بود

Desaghi
جمعه 19 شهریور 1395, 21:02 عصر
سوال اول را میشه این طور هم مطرح کرد:
چطور می شود کامپایلر/مفسری ساخت برای سیستم عاملی که هنوز وجود ندارد؟

M.Rahimy
یک شنبه 21 شهریور 1395, 20:15 عصر
سوال اول را میشه این طور هم مطرح کرد:
چطور می شود کامپایلر/مفسری ساخت برای سیستم عاملی که هنوز وجود ندارد؟

در هر محیط توسعه‌ای می‌توان برای محیط‌های دیگه کامپایل کرد. (cross-compile)

موضوع اینجاست که ما برای سیستم‌عامل مفسر نمی‌سازیم، برای معماریِ سیستم این کار رو می‌کنیم.

پس بهتره دنبال جواب این سوال باشیم: «آیا من می‌تونم از توی یک سیستم‌عامل و با یک پردازنده مشخص، کدی رو کامپایل کنم که برای پردازندهٔ دیگه کار کنه؟» بله!