PDA

View Full Version : شناسوندن کرنل به grub



brightening-eyes
پنج شنبه 20 تیر 1392, 18:24 عصر
سلام
آقایون دارم یه سیستم عامل مینویسم
کرنل رو چه جوری میتونم به boot loader بشناسونم؟
یه سوال دیگه اینه که تو ویندوز grub رو چه جوری میشه کامپایل کرد؟
و بازم یه سوال دیگه اینه که با bochs چه جوری میتونم تست کنم؟
و اینکه آقایون آیا grub فایل exe رو ساپورت میکنه یا نه؟
و بازم یه سوال دیگه اینه که فرضا سیستم عامل قشنگ ما نوشته شد
چی کار میتونم بکنم که exe ویندوز رو بساپورته؟
همینطور چرا نمیتونم از هدرهای سی استفاده کنم؟
خوب اگه اینکلود کنم و مستحفیض بشم چی میشه؟
و اینکه چه جوری میتونم برا سیستم عاملم یه نصب مثل نصب ویندوز بزارم
ممنون

pswin.pooya
پنج شنبه 20 تیر 1392, 22:57 عصر
سلام

برای گراب در مورد مولتی بود مطالعه کنید.

برای exe فرمت PE و فرمت coff رو مطالعه کنید. البته اگر منظورتون فایلهای اجرایی ویندوز هست. کار خیلی پیچیده تر هست و باید اول ساختار سیستم عامل ویندوز رو بشناسید.

brightening-eyes
جمعه 21 تیر 1392, 05:09 صبح
خوب حالا چرا نمیتونم از هدرهای سی مثل stdio.h و stdlib.h استفاده کنم؟
مگه چی میشه استفاده کنم؟
حالا من یه سیستم عامل رو نوشتم
چه جوری بیارمش رو فلاپی
چون با partcopy که میزنم 1001 خطای گوناگون لطف میکنند
دلیلش چیه
حتی من MikeOS رو هم نتونستم بهش بشناسونم چه برسه به سیستم عامل خودم!
خوب یه سوال دیگم دارم و اونم اینه که چجوری میشه برا سیستم عامل اینستالر ساخت؟

yassersajjadi
جمعه 21 تیر 1392, 10:48 صبح
سلام ، شما دوست من خیلی تند داری میری
آقای پویا شاهینفر یه توصیه به من کرد خیلی بدردم خرد ، اونم سویچ کردن روی لینوکسه
من نظرم اینه که اگه تصمیمت جدیه اول روی سیستمت اوبونتو رو نصب کن (میتونی با vmware workstationنصب کنیش که خیلی خوب میشه )
بعد واسه لود کرنل میتونی از گراب استفاده کنی که تورو خیلی کمک میکنه واسه امتحانشم میتونی از qemu استفاده کنی کافیه توی ترمینال بنویسی
sudo apt-get update
sudo apt-get install qemu
تا نصب بشه
واسه ساخت کرنل هم باید از makefile استفاده کنی که یادگیریش هم کار زیاد سختی نیست میتونی چند نمونه اولیه از github.com دانلود و استفاده کنی کافیه بری توی سایتش و توی سرچش بنویسی simple operating system
وبعد هم طبق مراحلی که اقای شاهینفر توضیح دادن در قسمت مراحل ساخت سیستم عامل پیش بری
این هدر هایی که میگی چرا نمیشه استفاده کرد وقتی تو از یه تابع مثل printf استفاده میکنی رجوع میشه به سورس این تابع و شما که میخوای از این تابع استفاده کنی باید در نظر داشته باشی که سیستم عاملی که داری مینویسی هیچ چیزی رو بطور پیش فرض نداره و شما هیچ درایوری واسه گرافیک و مابقی چیزها نداری تا از این هدر ها استفاده کنی بنابراین شما باید اول درایوری برای گرافیک بنویسی و بعد دوباره توابع لازم رو مثل printf بنویسی و بعد هم میتونی اون هدر ها رو خودت دوباره تشکیل بدی و استفاده کنی

brightening-eyes
جمعه 21 تیر 1392, 11:03 صبح
خوب با این حساب با همون اسمبلی بنویسم که خیلی بهتره
میتونم خیلی راحت جمش کنم بره
ولی یه سوال دیگه
من کرنل MikeOS رو دانلود کردم و خوندم
بد کدنویسی نکرده بودن ولی اگه یه کم باهاش ور برم بهتر میشه
حالا من چه جوری میتونم با bochs بوت لودرش رو لود کنم؟
من از ویندوز استفاده میکنم
با imdisc ایمپورتش کردم تو درایو I چون درایو A و B Insert Disk میفرمودند
بعد این که چه جوری با Bochs ران کنم؟
فایل کانفیگ رو هم نوشتم و بهش دادم ولی هیچ چی نمیاره

pswin.pooya
جمعه 21 تیر 1392, 11:55 صبح
yassersajjadi: (http://barnamenevis.org/member.php?245099-yassersajjadi)
ذوست ممنون. راستی کار OS رو به کجا رسوندی؟

brightening-eyes (http://barnamenevis.org/member.php?277390-brightening-eyes):
اگر فرضت بر این باشه که با MikeOS و ویندوز جلو بری مثل خیلی های دیگه خیلی زود متوقف میشی و نمی تونی کاری کنی. من بارها و بارها اشاره کردم که آموزشهای مایک مفیده اما با اونها کار رو ادامه ندید. این آموزشها ایرادات زیادی دارن و از یه طرف دیگه ابزار کار در ویندوز به شدت محدود هست. بالاخره توی ویندوز به جایی می رسید که نمی تونید ادامه بدید

yassersajjadi
جمعه 21 تیر 1392, 12:11 عصر
OS توی دو قسمت گیر کردم یکی سیستم فایله و یکی دیگه هم درایور vga , svga, 3d
سیستم فایل اینقدر وسیعه که اصلا نمیفهمم چی به چیه
نمیدونم بایدچیکار کنم فعلا دو ماه هست دارم روش مطالعه میکنم
تا اینجا تونستم سمافور ها و مانیتور و صف بندی ها اسپین لاک و مموری منیجر (first fit) رو تموم کنم الانم روی api و اون دو مورد بالا کار میکنم که فوق العاده مبهمن

brightening-eyes
جمعه 21 تیر 1392, 12:29 عصر
خوب چه طوره از Cygwin استفاده کنم؟
رو سیستمم نصبه
ولی من میخوام اون پروژه ی لعنتی مایکو یه بلایی سرش بیارم
حالا اینکه تو cygwin چی
اگه به جایی نمیرسم چی رو پیشنهاد میکنی؟
آخه میدونی، من همچین سپیچ کردم رو نوشتن سیستم عامل
و اینکه میخوام یه چیز کوفتی بنویسم
اگه پروژه مایک خوب نیست چی رو دانلود کنم و دستکاری کنم
یه OS معرفی کنین
چون میخوام همچین بترکونمش و یه چیز درست کنم
ممنون

yassersajjadi
جمعه 21 تیر 1392, 12:48 عصر
دوست من شما اگه اوبونتو رو نصب کنی به طور پیش فرض روش gcc و ld نصبه و با نصب nasm ,qemu هم کار دیگه ای نمیمونه
این یه نمونه خیلی خوبه واسه شروع
https://github.com/c2nes/os
البته باید واسه امتحانش از گراب استفاده کنی

brightening-eyes
جمعه 21 تیر 1392, 13:06 عصر
ببینم
Magnifier داره؟
screen reader چی؟
آخه من درست نمیتونم اون صفحه لعنتی رو ببینم
اگه به اسم اکانتم نگاه کنی ازش میتونی بخونی
واسه این دارم با ویندوز کار میکنم چون ذره بین داره

pswin.pooya
جمعه 21 تیر 1392, 16:02 عصر
تا اینجا تونستم سمافور ها و مانیتور و صف بندی ها اسپین لاک و مموری منیجر (first fit) رو تموم کنم الانم روی api و اون دو مورد بالا کار میکنم که فوق العاده مبهمن
سلام
خیلی خوبه که سمافورها و قفلها رو تموم کردی. من توی ابنها یه مقدار گیر دارم. از منبع خاصی براشون استفاده کردی؟ تستشون هم کردی؟


برای سیستم فایل هم سیستم فایل لینوکس رو مطالعه کن. خیلی از سرنخ ها رو بهت میده

brightening-eyes
جمعه 21 تیر 1392, 16:15 عصر
خوب حالا آقایون چه جوری Grub رو ببرم رو ویندوز؟
یعنی از خیر Grub بگزرم؟

yassersajjadi
جمعه 21 تیر 1392, 17:53 عصر
آره از لینوکس و و چند تا پروژه که از github گرفتمشون یه مقدار کمک گرفتم من هم یه مقداری سر اسپین گیر کرده بودم اون چند تا پروژه خیلی کمکم کرد
تستشون هم کردم فعلا که به مشکلی بر نخوردم
یه نمونه از اون پروژه هایی که خیلی به دردم خورد https://codeload.github.com/jbussdieker/EOS/zip/master
یه نگاه ضرر نداره

brightening-eyes
جمعه 21 تیر 1392, 21:41 عصر
سلام
ممنون
ولی نگفتین اوبونتو برا من اسکرین ریدری، مگنیفایری نداره
به هر حال من میخوام سیستم عاملمو روش بنویسم
ممنون میشم بگین

yassersajjadi
شنبه 22 تیر 1392, 15:37 عصر
اوبونتو یه سیستم عامل کامه ، بعضی از نرم افزارای مهندسیو نداره که اونا هم به درد شما نمیخوره بقیه ابزارا رو داره