نمایش نتایج 1 تا 19 از 19

نام تاپیک: اولین کرنل من!

  1. #1

    اولین کرنل من!

    با سلام.

    بالاخره بعد از مطالعه راهنماهای موجود در اینترنت ، تونستم کرنلی رو بنویسم و منتشر کنم :) .

    لینک دانلود:

    http://uplod.ir/y829yfkxa6bk/velsa.zip.htm

    خب روش استفاده :

    ۱- نصب qemu-system :

    sudo apt-get install qemu-system


    ۲- اجرای کرنل:

    qemu-system-i386 -fda velsa.iso


    یا :

    qemu-system-i386 -fda velsa.flp


    کرنل ۱۶ بیت هست و در زبان اسمبلی نوشته شده. محیط توسعه هم دبیان لینوکس بود. همچنین من این رو منطبق با مستندات MikeOS نوشتم و دوست دارم توسعش بدم.

  2. #2

    نقل قول: اولین کرنل من!

    دوستان محترم دنبال توسعه و تبدیل کرنل به یک سیستم عامل هستم. نیاز دارم تا یک Application Userland خوب براش پیدا کنم. هرچیزی غیر از GNU (چون احتمالا نمونه تجاری و کدبسته هم خواهد داشت).

  3. #3

    نقل قول: اولین کرنل من!

    در ضمن :
    ١- كرنل در لينوكس نوشته ؛ كامپايل و تست شده
    ٢- حتما بعنوان فلاپي ديسك به مجازي ساز معرفي كنيد.

  4. #4

    نقل قول: اولین کرنل من!

    سلام
    اگر از روي مستندات mike os نوشتي. مطمئنا كرنل شما 32 بيت هست و نه 16. البته بايد بگم كه آموزشهاي مايك با يه كرنل واقعي خيلي فاصله و ناقص. من يكبار پيش هم به دوستان گفتم كه روي آموزشهاي نت تكيه نكنيد. ( و دليل هاي اونها رو هم شمردم). يكي از دوستان هم اصرار كرد و بعد از اينكه يه مقدار سعي كرد از جريان آموزش منحرف شه يه تغييرات كوچولو بده شكست خورد.

    من خود هم روز اول با همين آموزشها شروع كردم. اما خيلي زود متوجه شدم كه اشتباهات زيادي وجود داره. اومدم اونها رو حل كنم كه باعث شد يه بار ديگه كل سيستم عاملم رو از اول بنويسم. الان هم به كد سيستم عامل من نگاه كنيد مي تونيد يه قسمتهايي از كد مايك و يا بقيه رو بينيد كه صراحتا توي كد به نويسنده اشاره كردم.

    يه نمونه باز از اشكالات استفاده نكردن آمورشها از LDT (local descriptor table( هست. بعد از يه مدت خيلي راحت متوجه ميشيد كه GDT جوبگو نيست و بايد به هر فرايند توصيف كننده خودش رو بديد. اما به خاطر ديزاين اشتباه مجبور هستيد به اول بر گرديد و ...

  5. #5

    نقل قول: اولین کرنل من!

    بله من هم با کمی تغییر شکست خورد کارم :)

    تنها دلیلی که از مستندات مایک استفاده کردم ساده و قابل فهم بودنش بود (به نسبت کتاب OS Design And Implementation) .

  6. #6

    نقل قول: اولین کرنل من!

    من توی قسمت آموزش نوشتن سیستم عامل به یکسری از مطالبی که باید اونها رو قبل از نوشتن هسته بخونید اشاره کردم. متاسفانه قبل از نوشتن هسته باید در مورد تمامی علوم کامپیوتری حداقل اطلاعات متوسط داشته باشید. (درسهایی که توی دوره کارشناسی اراپه میشه). در حقیقت زمانی که مدرک کارشناسی رو دارن به شما می دن یعنی اینکه شما علم کافی برای طراحی سیستم های کامپیوتری رو دارید (یعنی یک مهندس هستید) و تحصیلات تکمیلی به منظور این هست که شما یه محقق علوم کامپیوتری بشید.

    من همون شکل که اشاره کردم هر روز که جلوتر رفتم متوجه شدم که باید مطالب بیشتری رو از این علوم بدونم. به عنوان مثال من در حال حاضر میخوام سیستم فایل آراکس (آراز) رو طراحی کنم و دارم روی سیستم فابلهای دیگه و ویژگیهایی سخت افزارها و ... تحقیق می کنم.

    تنها دلیلی که از مستندات مایک استفاده کردم ساده و قابل فهم بودنش بود (به نسبت کتاب OS Design And Implementation) .
    این مستندات فوقالعاده هستن و بدون اونها شروع یک کار اشتباه هست اما در کنار اونها بهتره کتابهای زیر رو مطالعه کنی:

    1. مرتبط به زبان برنامه نویسی (توی این مورد کتاب x86 disassembly و gnu gcc complete reference رو پیشنهاد میکنم)
    2. کتاب مرتبط با سخت افزار ( کتاب The Intel microprocessors نوشته barry b.bery رو پیشنهاد می کنم)
    3. زبان اسمبلی ( در ابتدا کتاب PC assembly که به صورت pdf روی نت هست و بعد کتاب Protected mode software architecture رو پیشنهاد میکنم. و البته اگر تونستید کتابهای دیگه)
    4. و در نهایت محیط توسعه‌ ( اگر لینوکس هست کتاب the Linux interface برای برنامه نویسی و فهم مفاهیم اولیه لینوکس و POSIX . و برای هسته لینوکس هم کتاب Linux kernel 3rd , و یا Linux kernel development 3th رو پیشنهاد می کنم. البته تسلط برنامه نویس روی خط فرمان و برنامه های لینوکسی هم یه بحث جدا هست که باعث قدرت هرچه بیشتر اون میشه. فهم هسته لینوکس هم می تونه توی یه دیزاین بهتر و ایده پیدا کردن نسبت به موضوع شما رو راهنمایی کنه)

    البته هر چقدر در مورد خود پلتفرم و زبان برنامه نویسی و کامپایلر بدونید کم هست و همیشه باید مطالعه کنید. مثلا من خودم ۴تا کتاب برای x86 دارم و سه تای دیگه از کتابخونه امانت گرفتم و دارم با هفت تا کتاب مطالعه میکنم. مفاهیم یکسان رو سعی می کنم از چندین کتاب بصورت همزمان بخونم تا کاملا متوجه شم. مثلا تا یه مدت زیادی با بیت granularity (دانه دانه) داخل توصیف گرها مشکل داشتم تا توی یکی از کتابها به صورت کامل این بیت رو شرح داده بود و مشکل من باهاش حل شد.

  7. #7

    نقل قول: اولین کرنل من!

    ممنون آقا پویا :).

    البته فعلا دبیرستانی هستم و خب تا کارشناسی راه زیادی رو در پیش دارم. در حال حاضر تمرکزم روی برنامه نویسی POSIX هست و با دو تن از دوستانم در حال طراحی و نوشتن یک شل یونیکس به نام EasyShell هستیم که برای کاربران تازه کار لینوکس / BSD / مک بتونه مفید واقع بشه. (در حقیقت در حال حاضر به فکر توسعه کرنل نیستیم و فقط به شل و ابزارهای جانبی فکر میکنیم) .

  8. #8

    نقل قول: اولین کرنل من!

    البته فعلا دبیرستانی هستم و خب تا کارشناسی راه زیادی رو در پیش دارم. در حال حاضر تمرکزم روی برنامه نویسی POSIX هست و با دو تن از دوستانم در حال طراحی و نوشتن یک شل یونیکس به نام EasyShell هستیم که برای کاربران تازه کار لینوکس / BSD / مک بتونه مفید واقع بشه. (در حقیقت در حال حاضر به فکر توسعه کرنل نیستیم و فقط به شل و ابزارهای جانبی فکر میکنیم) .
    اگر توي اين بازه سني اينقدر تونستي ئيشرفت كني واقعا عالي هست. و اگر ادامه بدي به جاهاي خوبي ميرسي.

    نوشتن شل عاليه. اما بهتره يه ايده خوب براش داشته باشي و تسلط كافي به POSIX. اون كتاب the linux interface بهترين كتابي هست كه تا حالا من براي يادگيري POSIX ديدم. حتما بخونش

  9. #9

    نقل قول: اولین کرنل من!

    نقل قول نوشته شده توسط pswin.pooya مشاهده تاپیک
    اگر توي اين بازه سني اينقدر تونستي ئيشرفت كني واقعا عالي هست. و اگر ادامه بدي به جاهاي خوبي ميرسي.

    نوشتن شل عاليه. اما بهتره يه ايده خوب براش داشته باشي و تسلط كافي به POSIX. اون كتاب the linux interface بهترين كتابي هست كه تا حالا من براي يادگيري POSIX ديدم. حتما بخونش
    البته کمی در مورد شلی که داریم روش کار میکنیم بخوام توضیح بدم به این شکل هست که کلا با دایرکتوری ها کار نداره (کلا cd توش معنی نمیده ) و کاربران تازه کار رو با دستورات پایه ای و عمیق یک سیستم یونیکس بیس آشنا میکنه. بعد از اون کاربران رو سوق میدیم به سمت Bash و Sh و هر شلی که خودشون دوست دارند (تقریبا توزیع لینوکس ما هم همینه.).

    یا یک مدیر بسته یا بهتر بگم رابط کاربری متنی مدیر بسته که داریم مینویسیم که با دستورات یکسان در تمام Unix Variant ها مثل توزیع های لینوکس و BSD بتونه کار کنه و به این شکل کاربر نهایی ترسی از ترمینال نداشته باشه

  10. #10

    نقل قول: اولین کرنل من!

    سلام مرسی از بابت لینک دانلود،می خواستم بدونم این کرنل در توزیع های دیگه کار نمی کنه؟ راستی می تونید یکم راج به سورسش توضیح بدید و این که چه قابلیت هایی داره؟

  11. #11

    نقل قول: اولین کرنل من!

    این یه مثال ساده از یه سیستم عامل ساده در اسمبلی هست. قرار نیست جایگزین لینوکس یا هر کرنل دیگری بشه

  12. #12
    کاربر دائمی آواتار aakh1361
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران - سه راه افسریه - شهرک کاروان
    پست
    380

    نقل قول: اولین کرنل من!

    برای یک نو جوان کار بزرگی تونستی انجام بدی همین که می تونی از این کدها سر در بیاری

    همون طور که دوستمون گفت این کرنل شما 16 بیتی هست
    1 - این کرنلت چیکار میکنه ؟ چه توابعی داره ؟
    2 - با چه زبونی نوشتی ؟
    2 - سورس کدت رو هم مایل بودی در دسترس قرار بده یک نگاه بهش بندازیم

  13. #13
    کاربر دائمی آواتار aakh1361
    تاریخ عضویت
    آبان 1383
    محل زندگی
    تهران - سه راه افسریه - شهرک کاروان
    پست
    380

    نقل قول: اولین کرنل من!

    چرا هجمش اینقدر کمه 466 byte !!!
    چرا وقتی هم دانلود میشه برنامه های فشرده ساز نمیشناسند فایل رو با اینکه پسوندش زیپ هست ؟

  14. #14

    نقل قول: اولین کرنل من!

    نقل قول نوشته شده توسط aakh1361 مشاهده تاپیک
    برای یک نو جوان کار بزرگی تونستی انجام بدی همین که می تونی از این کدها سر در بیاری

    همون طور که دوستمون گفت این کرنل شما 16 بیتی هست
    1 - این کرنلت چیکار میکنه ؟ چه توابعی داره ؟
    2 - با چه زبونی نوشتی ؟
    2 - سورس کدت رو هم مایل بودی در دسترس قرار بده یک نگاه بهش بندازیم
    1- کار خاصی بلد نیست! در واقع مثال Hello world هست فقط

    ۲- اسمبلی (سینتکس های اینتل)

    ۳- mikeos.berlios.de

    این آدرس سورسهای این کرنل رو داره یه جورایی برای درک عملکرد یک کرنل ، کدهای هسته (فقط هسته) مایک رو بازنویسی کردم.

  15. #15

    نقل قول: اولین کرنل من!

    نقل قول نوشته شده توسط aakh1361 مشاهده تاپیک
    چرا هجمش اینقدر کمه 466 byte !!!
    چرا وقتی هم دانلود میشه برنامه های فشرده ساز نمیشناسند فایل رو با اینکه پسوندش زیپ هست ؟
    جمعا ۱۳ خط کد هست :).

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

  16. #16
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: اولین کرنل من!

    اگه دوست داری با هم همکاری کنیم...
    من هم یه مدتیه می خوام یه کاری تو مایه ی همین MikeOS و KolibriOS و ... بکنم. ولی یه نفره خیلی حال می خواد!

  17. #17

    نقل قول: اولین کرنل من!

    نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
    اگه دوست داری با هم همکاری کنیم...
    من هم یه مدتیه می خوام یه کاری تو مایه ی همین MikeOS و KolibriOS و ... بکنم. ولی یه نفره خیلی حال می خواد!
    سلام. خوشحال میشم :) ولی فعلا دوست دارم در زمینه شبه یونیکس کار کنم. به همین دلیل دارم کتاب تننباوم رو هم میخونم :) .

  18. #18

    نقل قول: اولین کرنل من!

    سلام. خوشحال میشم :) ولی فعلا دوست دارم در زمینه شبه یونیکس کار کنم. به همین دلیل دارم کتاب تننباوم رو هم میخونم :) .
    سعي كن كتاب مينيكس و زبان اصليش رو بخوني. من هم يه ترجمه فارسي دارم و هم يه انگليسي. با اينكه هر دو اونها يه كتاب هستن. اما انگليسيش خيلي بهتره. ويرايش انگليسي كتاب رو ميتوني بصورت آفست بيرون پيداش كني.

  19. #19

    نقل قول: اولین کرنل من!

    نقل قول نوشته شده توسط pswin.pooya مشاهده تاپیک
    سعي كن كتاب مينيكس و زبان اصليش رو بخوني. من هم يه ترجمه فارسي دارم و هم يه انگليسي. با اينكه هر دو اونها يه كتاب هستن. اما انگليسيش خيلي بهتره. ويرايش انگليسي كتاب رو ميتوني بصورت آفست بيرون پيداش كني.
    ممنون. انگلیسیش رو دانلود کردم. البته اول فارسیش رو میخونم . اینطوری فهم انگلیسیش هم راحت تر میشه

تاپیک های مشابه

  1. اجرا برای اولین بار
    نوشته شده توسط بمب منطقی در بخش برنامه نویسی در 6 VB
    پاسخ: 14
    آخرین پست: پنج شنبه 26 آبان 1384, 01:10 صبح
  2. نقطه ضعف در کرنل ویندوز XP
    نوشته شده توسط Inprise در بخش امنیت در شبکه
    پاسخ: 0
    آخرین پست: جمعه 01 اسفند 1382, 06:42 صبح
  3. اولین کنفرانس PHP ایران
    نوشته شده توسط oxygenws در بخش PHP
    پاسخ: 4
    آخرین پست: پنج شنبه 30 بهمن 1382, 16:48 عصر
  4. اولین محیط ساخت گزارش ماکروسافت
    نوشته شده توسط S.Azish در بخش ابزارهای گزارشگیری در VB6
    پاسخ: 4
    آخرین پست: چهارشنبه 22 بهمن 1382, 03:12 صبح
  5. کرنل 2.6
    نوشته شده توسط linux در بخش توسعه‌ی لینوکس و نرم افزارهای آزاد
    پاسخ: 1
    آخرین پست: پنج شنبه 04 دی 1382, 17:44 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •