انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: پرسش هایی درباره برنامه نویسی سیستمی  (دفعات بازدید: 1745 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پرسش هایی درباره برنامه نویسی سیستمی
« : 10 خرداد 1400، 03:37 ب‌ظ »
چند سوال درباره برنامه نویسی سیستمی (مثل برنامه نویسی سیستم عامل) دارم که گفتم اینجا بپرسم چون تعداد توسعه دهنده های اوبونتو اینجا زیاده.
۱. ما وقتی کدی رو می نویسیم، اجراش می کنیم تا مشکلاتش رو پیدا کنیم. یه سیستم عامل رو چطور میشه به طور مداوم تغییر داد و سپس اجرا کرد؟ چون اجرا کردن سیستم عامل به راحتی بقیه برنامه ها نیست.
۲. چقدر باید از چی سر دربیارم که بتونم وارد این حوزه بشم؟ باید اطلاعاتم از سخت افزار زیاد باشه؟ در چه حد باید برنامه نویسی بلد باشم؟
۳. چه راهنمایی هایی دیگری برای ورود به این حوزه دارید؟
ویرایش ۱:
۴. چه آموزشی (ترجیحا دوره ویدئویی) رو برای شروع این زمینه پیشنهاد میدید؟
« آخرین ویرایش: 12 خرداد 1400، 12:21 ق‌ظ توسط Reza Hosseinzadeh »
جست و جو کنید و چیز های جدید بیابید

آفلاین َUxmlai-ad

  • Sr. Member
  • *
  • ارسال: 486
  • جنسیت : پسر
  • متنفر از گنو و FSF
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #1 : 10 خرداد 1400، 07:33 ب‌ظ »
چند سوال درباره برنامه نویسی سیستمی (مثل برنامه نویسی سیستم عامل) دارم که گفتم اینجا بپرسم چون تعداد توسعه دهنده های اوبونتو اینجا زیاده.
۱. ما وقتی کدی رو می نویسیم، اجراش می کنیم تا مشکلاتش رو پیدا کنیم. یه سیستم عامل رو چطور میشه به طور مداوم تغییر داد و سپس اجرا کرد؟ چون اجرا کردن سیستم عامل به راحتی بقیه برنامه ها نیست.
۲. چقدر باید از چی سر دربیارم که بتونم وارد این حوزه بشم؟ باید اطلاعاتم از سخت افزار زیاد باشه؟ در چه حد باید برنامه نویسی بلد باشم؟
۳. چه راهنمایی هایی دیگری برای ورود به این حوزه دارید؟
نیاز نیست بعد از هر تغییر دوباره بوت کنید می تونید از یک نرم افزار مجازی ساز مثل VirtualBox استفاده کنید
متنفر از گنو و FSF

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #2 : 10 خرداد 1400، 07:40 ب‌ظ »
نیاز نیست بعد از هر تغییر دوباره بوت کنید می تونید از یک نرم افزار مجازی ساز مثل VirtualBox استفاده کنید
آخه بالاخره باید در مجازی ساز هم نصب کنم. هر بار این کار رو انجام دادن زیاد زمانبر نیست؟
جست و جو کنید و چیز های جدید بیابید

آفلاین mobin1387

  • Sr. Member
  • *
  • ارسال: 495
  • جنسیت : پسر
  • به زودی اینجا چیزی نوشته خواهد شد!
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #3 : 11 خرداد 1400، 10:11 ب‌ظ »
چند سوال درباره برنامه نویسی سیستمی (مثل برنامه نویسی سیستم عامل) دارم که گفتم اینجا بپرسم چون تعداد توسعه دهنده های اوبونتو اینجا زیاده.
۱. ما وقتی کدی رو می نویسیم، اجراش می کنیم تا مشکلاتش رو پیدا کنیم. یه سیستم عامل رو چطور میشه به طور مداوم تغییر داد و سپس اجرا کرد؟ چون اجرا کردن سیستم عامل به راحتی بقیه برنامه ها نیست.
۲. چقدر باید از چی سر دربیارم که بتونم وارد این حوزه بشم؟ باید اطلاعاتم از سخت افزار زیاد باشه؟ در چه حد باید برنامه نویسی بلد باشم؟
۳. چه راهنمایی هایی دیگری برای ورود به این حوزه دارید؟
فکر میکنم اولین نیازمندیش این باشه که با یک زبان سطح پایین آشنا باشید. اسمبلی، C، C++ زبان های سطح پایین مشهوریند.
نکته بعدی اینکه شما باید برای سیستم عامل خودتون (مثال) باید یک بوت لودر استفاده کنید مثال بارزش هم همین گراب خودمونه بعدش میتونید بوتش کنید ببنید چه کردید.

آفلاین Dragon-

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 5124
  • جنسیت : پسر
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #4 : 11 خرداد 1400، 10:26 ب‌ظ »
البته زبان‌های ++c/c دیگه سطح پایین محسوب نمیشن.
میدونید که زکات علم نشر آن است

آفلاین mobin1387

  • Sr. Member
  • *
  • ارسال: 495
  • جنسیت : پسر
  • به زودی اینجا چیزی نوشته خواهد شد!
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #5 : 11 خرداد 1400، 11:30 ب‌ظ »
البته زبان‌های ++c/c دیگه سطح پایین محسوب نمیشن.
درسته ولی بازم خیلی ممکنه به کارتون بیاد

آفلاین helium

  • Full Member
  • *
  • ارسال: 168
  • جنسیت : پسر
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #6 : 12 خرداد 1400، 12:12 ق‌ظ »
۱. ما وقتی کدی رو می نویسیم، اجراش می کنیم تا مشکلاتش رو پیدا کنیم. یه سیستم عامل رو چطور میشه به طور مداوم تغییر داد و سپس اجرا کرد؟ چون اجرا کردن سیستم عامل به راحتی بقیه برنامه ها نیست.

سلام ابتدا باید ببینید دنبال چه هستید. در این مورد، شناخت آنچه نیازهست و درک اون، کمک به حل مسئله یا ساخت یک نمونه بهتر می‌کند.

پس بهتره ریز بشید در مسائل و ببینید دنبال چی هستید، اون کد روی اون بخش چه تأثیری قرار داشته باشه، کد بر روی چه بخش‌های چه اثری می‌گذاره، دقیقا نیاز به بهبود توی چه زمینه‌ای هست و ...
به خدا چنان امیدوار باش که اگر گناه جن و انس را بیاوری به تو رحم کند.

لقمان حکیم

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #7 : 12 خرداد 1400، 12:15 ق‌ظ »
فکر میکنم اولین نیازمندیش این باشه که با یک زبان سطح پایین آشنا باشید. اسمبلی، C، C++ زبان های سطح پایین مشهوریند.
نکته بعدی اینکه شما باید برای سیستم عامل خودتون (مثال) باید یک بوت لودر استفاده کنید مثال بارزش هم همین گراب خودمونه بعدش میتونید بوتش کنید ببنید چه کردید.
گراب که دارم و همچنین برای زبان هم C/C++
جست و جو کنید و چیز های جدید بیابید

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #8 : 12 خرداد 1400، 12:19 ق‌ظ »
سلام ابتدا باید ببینید دنبال چه هستید. در این مورد، شناخت آنچه نیازهست و درک اون، کمک به حل مسئله یا ساخت یک نمونه بهتر می‌کند.

پس بهتره ریز بشید در مسائل و ببینید دنبال چی هستید، اون کد روی اون بخش چه تأثیری قرار داشته باشه، کد بر روی چه بخش‌های چه اثری می‌گذاره، دقیقا نیاز به بهبود توی چه زمینه‌ای هست و ...
مشکل تشخیص مشکل نیست؛ زمان اجرا مد نظرم هست. هر بار اجرای کد سیستم عامل زمان خیلی زیادی مصرف نمی کنه؟ هر بار بوت سیستم عاملی که نوشتیم (حتی در مجازی ساز) فکر کنم خیلی زمانبر باشه. برنامه نویس های برنامه های سیستمی مخصوصا سیستم عامل هر بار این کار رو می کنن؟
جست و جو کنید و چیز های جدید بیابید

آفلاین helium

  • Full Member
  • *
  • ارسال: 168
  • جنسیت : پسر
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #9 : 12 خرداد 1400، 12:26 ق‌ظ »
سلام منظورتون از برنامه‌های سیستمی رو بدونم بهتر می‌تونم کمک کنم. یک نمونه مثال بزنید لطفا.
به خدا چنان امیدوار باش که اگر گناه جن و انس را بیاوری به تو رحم کند.

لقمان حکیم

آفلاین helium

  • Full Member
  • *
  • ارسال: 168
  • جنسیت : پسر
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #10 : 12 خرداد 1400، 12:37 ق‌ظ »
برای اجرای مجازی سیستم‌عامل‌ها با سرعت بالا معمولا از QEMU استفاده می‌شه.

یک توصیه:
توسعه‌دهنده سیستم‌عامل serenity خیلی وقت هست که فیلم‌های لحظه به لحظهٔ توسعه این سیستم‌عامل (شبه‌یونیکس) رو داخل کانال ویدیویی قرار می‌دهد که از طریق سایت‌های داخلی هم قابل دسترسی هستند. این فیلم‌ها شامل روش کدنویس، رفع خطاهای موجود، برطرف کردن آسیب‌پذیری‌ها، افزودن ویژگی جدید یا حذف کدِ غیر ضرور، متصل کردن یک برنامه از پیش نوشته شده به این سیستم‌عامل، مصاحبه با اشخاصی که در نوشتن کدهای این سیستم‌عامل سهیم بوده‌اند و ... می‌شود:


https://github.com/SerenityOS/serenity
https://www.dideo.ir/ch/yt/UC3ts8coMP645hZw9JSD3pqQ/andreas-kling
به خدا چنان امیدوار باش که اگر گناه جن و انس را بیاوری به تو رحم کند.

لقمان حکیم

آفلاین َUxmlai-ad

  • Sr. Member
  • *
  • ارسال: 486
  • جنسیت : پسر
  • متنفر از گنو و FSF
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #11 : 12 خرداد 1400، 08:57 ق‌ظ »
wiki.osdev.org
به این سایت یه سری بزنید.
از اونجایی که یک سیستم عامل یک اپلیکیشن نیست باید برای کامپایل کردن اون از یک کامپایلر متقابل (Cross compiler) استفاده کنید که آموزش ایجاد اون داخل همون لینک هست باید باتوجه به نوع سیستم عامل میزبان مراحل رو دنبال کنیدhttps://wiki.osdev.org/GCC_Cross-Compiler برای بوت لودر هم می تونید از گراب استفاده کنید فقط باید سیستم عامل شما با استادارد مولتی بوت همخوانی داشته باشه. بوت شدن سیستم عامل نوشته شده در ماشین مجازی زمان زیادی نمی بره معمولا کسی یاد نمی ده یک سیستم عامل کامل بسازیم باید خودتون تلاش کنید تا به نتیجه برسید مطالعه هم خیلی مهم هست اگه بخواهیم صرفا کد های دیگران رو کپی کنیم به این کارمون نمیشه گفت ساختن یک سیستم عامل. این لینک هم نگاه کنید https://wiki.osdev.org/Bare_Bones
« آخرین ویرایش: 12 خرداد 1400، 09:05 ق‌ظ توسط Aminavy »
متنفر از گنو و FSF

آفلاین َUxmlai-ad

  • Sr. Member
  • *
  • ارسال: 486
  • جنسیت : پسر
  • متنفر از گنو و FSF
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #12 : 12 خرداد 1400، 09:13 ق‌ظ »
این لینک:
https://github.com/leowhitehead/basilica-os/tree/master

اگه همون کراس کامپایلر رو آماده کرده باشید با nasm بخش اسمبلی و با grub-common xorriso می تونید یک فایل iso بسازید باید make هم نصب کرده باشید با دستور make کامپایل می کنه و فایل ایمیج رو می سازه و با دستور make clean فایل های object, iso رو حذف می کنه
« آخرین ویرایش: 12 خرداد 1400، 09:18 ق‌ظ توسط Aminavy »
متنفر از گنو و FSF

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #13 : 12 خرداد 1400، 11:26 ق‌ظ »
سلام منظورتون از برنامه‌های سیستمی رو بدونم بهتر می‌تونم کمک کنم. یک نمونه مثال بزنید لطفا.
مثل سیستم عامل
جست و جو کنید و چیز های جدید بیابید

آفلاین 🇮🇷

  • رضا حسین‌زاده
  • High Hero Member
  • *
  • ارسال: 1001
  • کنجکاو
    • Reza
پاسخ : پرسش هایی درباره برنامه نویسی سیستمی
« پاسخ #14 : 12 خرداد 1400، 11:28 ق‌ظ »
برای اجرای مجازی سیستم‌عامل‌ها با سرعت بالا معمولا از QEMU استفاده می‌شه.

یک توصیه:
توسعه‌دهنده سیستم‌عامل serenity خیلی وقت هست که فیلم‌های لحظه به لحظهٔ توسعه این سیستم‌عامل (شبه‌یونیکس) رو داخل کانال ویدیویی قرار می‌دهد که از طریق سایت‌های داخلی هم قابل دسترسی هستند. این فیلم‌ها شامل روش کدنویس، رفع خطاهای موجود، برطرف کردن آسیب‌پذیری‌ها، افزودن ویژگی جدید یا حذف کدِ غیر ضرور، متصل کردن یک برنامه از پیش نوشته شده به این سیستم‌عامل، مصاحبه با اشخاصی که در نوشتن کدهای این سیستم‌عامل سهیم بوده‌اند و ... می‌شود:


https://github.com/SerenityOS/serenity
https://www.dideo.ir/ch/yt/UC3ts8coMP645hZw9JSD3pqQ/andreas-kling
ممنون از رفرنس هاتون. ان شاء الله استفاده خواهم کرد
جست و جو کنید و چیز های جدید بیابید