• اگر سمپادی هستی همین الان عضو شو :

    ثبت نام عضویت

نرم افزار توسعه Nirync

Imposter

cmp [age], 80; je .die
کنکوری 1406
ارسال‌ها
45
امتیاز
157
نام مرکز سمپاد
اسمبلی x86
شهر
Keyboard.asm
سال فارغ التحصیلی
1406
مدال المپیاد
نیاوردم والا
خب احتمالا درباره Nirasm خونده باشید توی تاپیک کرنل و بوت لودر من Nirasm

من برای طراحی بوت لودر و کرنلم یک نرم افزار توسعه با C# ساختم که دیدم از بس که اهمیتش و کاربردش توی پروژم زیاده حیفه دربارش هیچ توضیحی ندم.

Nirync چیه؟

نیرینک یا همون Nirasm Sync یک نرم افزار توسعه هست.

Nirync چطوری کار میکنه؟
ما معمولا برای مرتب سازی کدهای کرنلمون یه همچین ساختار فایلی داریم مثلا :
keryboard.asm
kernel.asm
ver.asm
crtr.asm
botm.asm

حالا چرا این کار ها رو میکنیم؟ معمولا اگه بیاییم همه کد ها رو توی کرنل قرار بدیم اینطوری کد ها خیلی طولانی و دیباگ سخت و کد ها به هم ریخته میشن
پس ما مجبوریم همه رو جدا کنیم و به همشون یک ادرس رم بدیم ( سگمنت و افست )
همین جای کار یکم ازار دهنده هست. مثلا باید حساب کنی که اره مثلا کرنل از اینجا تا اینجا رم رو اشغال میکنه پس مثلا فایل کیبورد باید از فلان جای رم شروع شه و این یکم حوصله سربر و وقت تلف کن هست.
پس من اومدم نیرینک رو نوشتم که یه پوشه داره به نام syncf
توی پوشه syncf به ترتیب همین فایل ها رو ایجاد میکنیم ولی براشون ادرس رم تعیین نمیکنیم.
بعد یه فایل داره به نام NewLine.txt که اسمش هیچ معنی نداره نگید عه این دیه چیه نوشتی؟
خب توی این فایل ترتیب سینک فایل ها رو مینویسیم مثلا
C:\personals\kernel.asm
C:\personals\keyboard.asm
و...
و نرم افزار نیرینک همین ترتیب رو رعایت میکنه و اول کرنل رو میاره و بعد کیبورد رو و...
و در نهایت ما یه فایل داریم به نام kernel.asm که توی یک پوشه دیگه قرار گرفته و ما باهاش کار نداریم و کل فایل هایی که میخواستیم سینک کنیم توی همین هستن
اما یه مشکل داره اونم دیباگشه
مثلا Nasm یه موقع میاد میگه توی فایل نهایی کرنل خط فلان باگ داره
حالا ما باید بریم توی همون فایل به هم ریخته و پر کد و باگ رو از وسط پیدا کنیم که خودم دنبال رفع این باگم ( هیچ فکری براش نکردم )
و!
و!
و!
و اینکه مشکل دیگه اینکه اگر کرنلمون حجمش بیشتر از چیزی بشه که توی بوت لودر تعیین شده اونجوری هم خطا پیش میاد
ولی برای این یکی فکر کردم! یه کار خیلی ساده
نیرینک بیاد و حجم کرنل رو بسنجه و ببینه که چند سکتور رو اشغال میکنه و همونقدر رو توی بوت لودر وارد کنه.
 
Back
بالا