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

نام تاپیک: ساخت یک OS با روش و کاربردی متفاوت

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

    Thumbs up ساخت یک OS با روش و کاربردی متفاوت

    سلام دوستان،
    نظرتون در مورد ساخت یه سیستم عامل که یه سری کار هایی که به اجبار باید انجام بشه رو انجام بده، اما در مورد بقیه ی کارها، فقط Internet رو Browse کنه؛ یعنی سیستم عامل مثل یه مرورگر Internet باشه.
    فعلا نظراتون رو بگید تا بعد بیشتر ادامه بدیم.
    در این صورت مثلا سیستم عامل می تونه وارد Web Desktop ها بشه، مثلا:
    ضمنا یه نکته مثبتی هم الان وجود داره نسبت به قبلا، اون هم HTML 5 هست!!!
    بیاید روش فکر کنیم، حتی می شه ایده رو از پایه تغییر داد و ایده های متفاوت و جالب تر و دست یافتنی دیگری هم داد.
    بدبین نباشید ولی در عین حال به دنبال برداشتن موانع و حل مشکلات باشید.

  2. #2

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    در مورد اين موضوع قبلا بحث شده.

    نظرتون در مورد ساخت یه سیستم عامل که یه سری کار هایی که به اجبار باید انجام بشه رو انجام بده، اما در مورد بقیه ی کارها، فقط Internet رو Browse کنه؛ یعنی سیستم عامل مثل یه مرورگر Internet باشه.
    اصولا سيستم عامل همينه. يعني همون كارهايي كه به اجبار بايد انجام بگيرن داخل هسته انجام ميشن و بقيه كارها (مثل شل و دسكتاپ و ...) همگي برنامه هاي سودمند جانبي هستن.

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    ببینید ما که نمی تونیم دوباره از اول یه Internet جدید راه بندازیم با Protocol های جدید و ... ؛ پس باید با همین Web که هست خودمون رو یکپارچه کنیم. اما منظور من این نیست که حتما یه Web OS بسازیم. فقط می گم مرز بین محیط فعلی سیستم عامل که در تصوراتمون هست رو با محیط Web برداریم. و فرض رو هم بر این می ذاریم که Internet در آینده در همه جا در دسترس خواهد بود.
    و ضمنا بخش شبکه یکی از بخش هایی هست که توی ساخت سیستم عامل مورد توجه قرار می گیره، در صورتی که ما می خوایم بیش تر روی این موضوع توی سیستم عاملمون تمرکز کنیم؛ پس کارمون راحت تر می شه نسبتا و احتمال موفقیتمون هم بیشتره، این که حتی یه ایده ی نسبتا ساده رو هم انجام بدیم یه قدمی هست برای ایده های بزرگ تر، ولی حالا فرض کنید همینش رو هم وا بمونیم، اون موقع چه طوری می تونیم ایده های پیچیده تر و سخت تر دیگه رو انجام بدیم؟!

  4. #4

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    ايده اي كه شما داريد خوبه و من نمي گم بد هست ولي اين كار رو ميشه با لينوكس هم انجام داد. اما يكسري از مشكلات وجود داره كه بايد اونها رو هم در نظر بگيريد:

    1. سرعت خطوط ارتباطي خيلي كمه و ميتونه منجر شه كه سرعت لود برنامه كمتر بشه (كه 100 درصد از برنامه اي كه روي هارد هست كندتر ميشه)
    2. خطوط ارتباطي به شدت ناامن هستند كه اين مساله از ديد كاربر خيلي بده
    3. استفاده از شبكه و خطوط ارتباطي هميشه هزينه داره با اينكه همه ميخوان فقط يكبار هزينه رو پرداخت كنن
    4. وب حال حاضر يا پروتكلهاي كنوني اين ظرفيت رو ندارن.

    مساله ديگه اينه كه كاربرها برنامه هايي با گرافيك بالا، راحتي كامل و حداكثر سرعت رو ميخوان. وب يا HTML 5 تنها ميتونه راحتي و گرافيك رو به همراه داشته باشه اما مشكل اينجاست كه صفحه هاي خود وب مستندات مرورگرها هستند و مرورگرها به شدت محدود و از لحاظ سرعت ناكارآمد هستند و بدتر از همه اينه خودشون يك وظيه (task) در حال اجرا هستند.


    مساله ديگه اينه كه اين موضوع به شدت با تعريف تئوريك سيستم عامل در تناقض هست. يعني هيچ وقت نميشه از اين مساله به عنوان سيستم عامل ياد كرد و يا اينكه سيستم عاملي بر اين مبنا ساخت. در حال حاضر سيستم عاملهاي زيادي هستند كه مبتي بر وب هستند اما اونها از سرويسهاي وب استفاده ميكنن و حتي دسكتاپ خودشون رو دارن يه نمونه بارز اونها اندرويد هست كه يه توزيع لينوكس به شمار ميره اين سيستم عامل بخوبي از امكانات گوگل استفاده ميكنه و در نتيجه باعث رضايت كاربراش شده اما باز هم از هسته لينوكس استفاده ميكنه اين موضوع نشون ميده كه طرح همچين ايده اي نيازي به يه OS جديد نداره بلكه شما هم ميتونيد با دستكاري لينوكس OS خودتون رو بسازيد.

    مثلا ميتونيد به جاي پروسس init برنامه خودتون رو كه يه دسكتاپ طرح وب رو لود ميكنه رو قرار بديد ( دقيقا اسم فايلش يادم نيست ولي يه چيزي توي مايه هايinit.c يا init/main.c بود)‌. شما بيشتر اينكه نياز به سيستم عامل جديد داشته باشيد براي اينكار نياز به يك مرورگر جديد داريد. حالا من فرض ميكنم كه شما يه مرورگر خوب رو ساختيد بعد از اون ميتونيد با ارتباط مرورگر با سرويسهاي سيستم عامل و فراهم كردن يه API جديد براي اينكار از OS استفاده بكنيد و از سخت افزار كار بكشيد اما در غير اين صورت حتي فكر كردن به اين موضوع هم اشتباه به نظر ميرسه.

    Internet در آینده در همه جا در دسترس خواهد
    الانشم همين شكليه ( به غير از كشور عقب مونده ما)‌. فقط مشكل در دسترس بودن اينترنت نيست مشكل خود وب هست.

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    ولي اين كار رو ميشه با لينوكس هم انجام داد.
    خیلی از کار ها رو با سیستم عامل های دیگه هم می شه انجام داد ولی ما می خوایم یه تجربه از انجام این کار برای خودمون داشته باشیم.
    سرعت خطوط ارتباطي خيلي كمه
    بله، خیلی از اون چیزی که می خوایم کم تره، ولی باز هم بستگی داره چه طور ازش استفاده کنیم. قرار نیست الکی همه ی کار ها Online انجام بشه، مثلا هم می شه سیستم عامل رنگ تک تک Pixel ها رو Online بگیره و هم می شه فقط بفهمه که چه کاری باید تو صفحه بکنه، بعد اون کارو خودش تو کامپیوتر بکنه؛ هر دوتاش Online هست ولی سرعت دومی بیشتره.
    مرورگرها به شدت محدود و از لحاظ سرعت ناكارآمد هستند و بدتر از همه اينه خودشون يك وظيه (task) در حال اجرا هستند.
    ولی در این جا مرورگر خود سیستم عامله (تقریبا) ولی قبول دارم مسئله ی سرعت رو، اما با همین سرعت خیلی کارها ی توپ می شه کرد.
    مساله ديگه اينه كه اين موضوع به شدت با تعريف تئوريك سيستم عامل در تناقض هست. يعني هيچ وقت نميشه از اين مساله به عنوان سيستم عامل ياد كرد و يا اينكه سيستم عاملي بر اين مبنا ساخت. در حال حاضر سيستم عاملهاي زيادي هستند كه مبتي بر وب هستند
    قبول دارم، ولی ایده ی ما ساخت یه Web Desktop نیست، که اسمشو OS بذاریم، می شه گفت ساخت یه سیستم عامل هست که Web Desktop، محیط Desktop اون هست، نه چیز دیگه ای. پس با تعریف OS تناقض نداره.
    طرح همچين ايده اي نيازي به يه OS جديد نداره بلكه شما هم ميتونيد با دستكاري لينوكس OS خودتون رو بسازيد.
    ما اومدیم برای تجربه و یادگیری یه سیستم عامل بسازیم، تازه ساده تر از Linux. پس نیازی نیست Linux رو تغییر بدیم؛ ما اگه بخوایم Linux رو برای این ایده مون تغییر بدیم، تقریبا هیچ کار نکردیم و هیچی چیز یاد نگرفتیم!!! ما الان برامون وقت و دوباره کاری مهم نیست، یادگیری و تجربه ی خودمون مهمه، بعد می شه رو کاربرد ها و چیز های دیگه فکر کرد.
    كشور عقب مونده ما
    من هم همین رو در نظر گرفته بودم.
    فقط مشكل در دسترس بودن اينترنت نيست مشكل خود وب هست.
    قبول دارم، ولی این هایی که این جور اختراعات رو کردن، انعطاف پذیر ساختنشون، بالاخره می شه این مشکل رو حل کرد.

  6. #6

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    ما اومدیم برای تجربه و یادگیری یه سیستم عامل بسازیم، تازه ساده تر از Linux. پس نیازی نیست Linux رو تغییر بدیم؛ ما اگه بخوایم Linux رو برای این ایده مون تغییر بدیم، تقریبا هیچ کار نکردیم و هیچی چیز یاد نگرفتیم!!! ما الان برامون وقت و دوباره کاری مهم نیست، یادگیری و تجربه ی خودمون مهمه، بعد می شه رو کاربرد ها و چیز های دیگه فکر کرد.
    همين الانش توي دستكاري لينوكس مونديم. اگر ميخواي تجربه به دست بياري اولش بايه سيستم عامل متعارف شروع كن (مثل خود من) تا ببيني مشكلات پشت صحنه چي هست و اگر تونستي اونها رو حل كني ميتوني يه ايده دقيقتر بدي. خود من الان سه سال هست كه دارم روي آراكس (آراز)‌ كار ميكنم منتها تا حالا نتونستم نتيجه دلخواه رو بگيرم (البته كم وقت گذاشتم) من خودم اميدوارم بتونم تا آخر شهريور طبق زمانبندي كه من داشتم به نتيجه برسم منتها فعلا يه پروژه ديگه بشدت مشغولم كرده و شب و روزم يكي شده.

    به نظر من شما هم مثل من از صفر شروع كن اون وقت مشكلات واقعي براي اينكار رو درك ميكني. البته چون لازمه روي گرافيك وب كار كني يه مقدار هم بزني توي خط WebGL به نفعت هست ميتوني باهاش يه تكنولوژي جديد رو تركيب كني. قضيه WebGL و OpenGL ES به قدري مهم شده كه اگر بخوام بهت توضيح بدم حتي باورت نميشه و اگر فقط OpenGL ES رو خوب بلد باشي با لينوكس و دستكاري اون يه در آمد خيلي خوب پيدا ميكني.

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    من کاملا این حرف رو قبول دارم، ولی منظور من این بود که ''برای این ایده'' این طوریه. چون این دقیقا یه قسمت ساده ای از لینوکس رو تشکیل می ده. وگرنه که با مطالعه ی لینوکس و گسترش اون خیلی هم موافقم.
    حالا می گم چرا اکثرا می رن سراغ Linux؟ مگه KolibriOS چشه؟ به نظر من خیلی جالبه. خویه روی KolibriOS تمرکز کنیم واسه شروع تا این که بریم سراغ یه غولی به نام Linux.

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    به نظرم به جای مقدمات کار دیگه خود کار رو شروع کنیم و به خود ایده فکر کنیم و ایده پردازی کنیم، بهتر باشه.

  9. #9

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    به نظرم به جای مقدمات کار دیگه خود کار رو شروع کنیم و به خود ایده فکر کنیم و ایده پردازی کنیم، بهتر باشه.
    با اين حرفت موافقم. بهتره خود كار رو شروع كني.
    من کاملا این حرف رو قبول دارم، ولی منظور من این بود که ''برای این ایده'' این طوریه. چون این دقیقا یه قسمت ساده ای از لینوکس رو تشکیل می ده. وگرنه که با مطالعه ی لینوکس و گسترش اون خیلی هم موافقم.
    آراكس يه توزيع لينوكس نيست من كلي روش زحمت دارم ميكشم كه بتونم بعضي از مشكلات لينوكس رو حل كنم.

    حالا می گم چرا اکثرا می رن سراغ Linux؟
    من براي نوشتن آراكس سورس لينوكس دارم مطالعه كردم (و دارم ميكنم) علتش هم اينه كه بهترين سيستم عامل متن باز به حساب ميره اما در كنار اون سورس سه تا سيستم عامل ديگه رو كه براي كاربردهاي آموزشي نوشته شده بود رو هم خوندم.

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    یا حق
    سلام!
    من منظورم رو بد رسونده بودم. منظورم از "قسمت ساده ای از لینوکس"، این بود که طرح ما یه قسمت ساده ای از لینوکس می شد که بدون هیچ (تقریبا ) زحمتی ایجاد می شد. چون Web Browser که هست، این هم هست، اون هم که هست، ... . نه این که منظورم این باشه که آراکس یا ... توزیع ساده ای از لینوکس باشه.
    ضمنا اگه بخوایم Start بزنیم و در مقدمات زیاده روی نکنیم، خوب یکی از واضح ترین چیز ها اینه که این OS رو باید ببریم توی Protected Mode. خوب پس باید ببینیم چه جوری دقیقا این کار رو بکنیم. در واقع باید یه اطلاعاتی در مورد GDT و LDT و PMode و A20 Lines و ... به دست بیاریم.
    ضمنا من دوست دارم همه همکاری کنن. ولی من که خودم دست به کار می شم می رم که بگردم و نتایج رو بگم.
    موفق باشیم!

  11. #11

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    ضمنا اگه بخوایم Start بزنیم و در مقدمات زیاده روی نکنیم، خوب یکی از واضح ترین چیز ها اینه که این OS رو باید ببریم توی Protected Mode. خوب پس باید ببینیم چه جوری دقیقا این کار رو بکنیم. در واقع باید یه اطلاعاتی در مورد GDT و LDT و PMode و A20 Lines و ... به دست بیاریم.
    من قبلا تمام اين كارها رو كردم. اگر سوالي داشتي ميتوني بپرسي. اما بجاي اينكه وقت خودت رو تلف كني از گراپ استفاده كن اون خودش ميبره تو pmode و A20 رو هم مقدار دهي ميكنه به غير از اون يه GDT اوليه رو هم ميسازه كه بعدا ميتوني تغييرش بدي. (خيلي از مشكلها رو برات حل ميكنه) به غير از اين موارد مشكلهاي دست و پا زدن با انواع درايورها رو توي استارت آپ حل ميكنه.

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

    Thumbs up نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    سلام!
    خیلی دوست دارم کدها با FASM نوشته بشه، چون درکل بهترین Assembler هست.
    برای فعال کردن A20 می شه این Macro رو داشت:
    ;=================================================  ========;
    ; A20 11/12/03 ;
    ;---------------------------------------------------------;
    ; ;
    ; Enable the A20 line. ;
    ; ;
    ; (c) Craig Bamford, All rights reserved. ;
    ;================================================= ========;

    ;================================================= ===;
    ; Enable A20. ;
    ;================================================= ===;

    Enable_A20:
    pusha
    cli
    cld
    mov al,255
    out 0xa1,al
    out 0x21,al
    l.5: in al,0x64
    test al,2
    jnz l.5
    mov al,0xD1
    out 0x64,al
    l.6: in al,0x64
    test al,2
    jnz l.6
    mov al,0xDF
    out 0x60,al
    mov cx,14h
    l.7:
    out 0edh,ax
    loop l.7
    sti
    popa
    ret

    در مورد A20 خوندم ولی اگه کسی خلاصه و خوب می تونه توضیح بده بگه لطفا.

  13. #13

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    در مورد A20 خوندم ولی اگه کسی خلاصه و خوب می تونه توضیح بده بگه لطفا.
    بيخيال A20 و pmode بشو. اونها رو يه بوت لودر مثل گراپ حلش ميكنه. فقط مشكل اينها نيستن مشكلهايي بزرگتري هستن مثل اندازه حافظه، نگاشت حافظه (براي پيدا كردن حفره ها و حافظه قابل دسترس و ...) ، لود ماژولها و ... همه اينكارها رو گراپ انجام ميده و تحت يه استاندارد به اسم مولتي بوت اونها رو بهت ميده كه ميتوني توي كرنل ازشون استفاده بكني. من خودم هم مثل شما همه اين كدها رو خودم نوشتم اما ديدم فايده نداره و يه عالمه ايراد پيدا ميشه.

    در مورد a20 بهتره مطلب زير رو بخوني:
    http://wiki.osdev.org/A20

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    آخه من یه کم گیج شدم در مورد GRUB. کی... کو... کجاس...! می شه یه توضیحی بدین مختصر. من یه Search زدم، بیش تر در مورد Linux و ... صحبت می کنن. آیا این یه Bootloader برای همه است؟ یعنی اختصاصا که برای مسئله ی خاصی نیست؟ و این که ماهیتش چیه دقیقا؟ قطعه کده؟ برنامه ای داره؟ چیزی داره؟ به چه زبانی؟ ... ممنون می شم یه توضیحی بدید.

  15. #15

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    گراب براي همه سيستم عاملها جواب ميده و استاندارد مولتي بوت رو رعايت ميكنه. اول كامپايلش ميكني بعد ميزني روي ديكسي كه ميخواي باهاش بوت شه. روش كار رو توي مقاله زير توضيح داده:

    http://wiki.osdev.org/GRUB

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    من که چیزی نفهمیدم!
    دستورات لینوکس رو نوشته، من توی محیط Windows کار می کنم.
    مثلا فرض کنیم من الان KERNEL.asm رو دارم، و مثلا با FASM هم می تونم Compile کنم، خوب با GRUB باید چی کار کرد مثلا؟

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    سلام!
    من رفتم به Visopsys یه نگاهی انداختم به Boot Loader اش. یه مشکلی دارم، Make File ها چی هستند؟ باید چی کارشون کنم؟ مثلا محتویات یه نمونه Make File ای که دیدم این بود:
    ##
    ## Visopsys
    ## Copyright (C) 1998-2011 J. Andrew McLaughlin
    ##
    ## Makefile
    ##

    # This makefile builds all the MBRs, boot sectors, and the OS loader.

    ROOT=../..
    BOOTBUILDDIR=${ROOT}/build/system/boot
    LOADERBUILDDIR=${ROOT}/build

    include ${ROOT}/Makefile.include

    WARN = -w+orphan-labels
    SECTOPTS = -f bin ${WARN}
    LDROPTS = -f elf ${WARN}
    LINKOPTS = -Wl,-warn-common,-X,--oformat,binary,-e,loaderMain,-Ttext,0x00000000
    STDDEPS = loader.h Makefile
    BOOTDEPS = bootsect-fatBPB.s bootsect-diskparms.s bootsect-print.s \
    bootsect-error.s bootsect-read.s
    OBJS = obj/loaderMain.o \
    obj/loaderA20.o \
    obj/loaderVideo.o \
    obj/loaderDetectHardware.o \
    obj/loaderLoadFile.o \
    obj/loaderLoadKernel.o \
    obj/loaderDiskError.o \
    obj/loaderPrintRoutines.o

    all: target-dirs bootsectors ${LOADERBUILDDIR}/vloader

    target-dirs:
    mkdir -p obj ${BOOTBUILDDIR} ${LOADERBUILDDIR}

    bootsectors: ${BOOTBUILDDIR}/mbr.simple ${BOOTBUILDDIR}/mbr.bootmenu ${BOOTBUILDDIR}/bootmenu ${BOOTBUILDDIR}/bootsect.fat ${BOOTBUILDDIR}/bootsect.fat32 ${BOOTBUILDDIR}/bootsect.fatnoboot ${BOOTBUILDDIR}/bootsect.fatnoboot32

    #
    # MBRs and Boot sectors
    #

    ${BOOTBUILDDIR}/mbr.simple: mbr-simple.s ${BOOTDEPS} ${STDDEPS}
    ${NASM} ${SECTOPTS} $< -o $@

    ${BOOTBUILDDIR}/mbr.bootmenu: mbr-bootmenu.s ${BOOTDEPS} ${STDDEPS}
    ${NASM} ${SECTOPTS} $< -o $@

    ${BOOTBUILDDIR}/bootmenu: bootmenu.s ${BOOTDEPS} ${STDDEPS}
    ${NASM} ${SECTOPTS} $< -o $@

    ${BOOTBUILDDIR}/bootsect.fat: bootsect-fat.s ${BOOTDEPS} ${STDDEPS}
    ${NASM} ${SECTOPTS} $< -o $@

    ${BOOTBUILDDIR}/bootsect.fat32: bootsect-fat.s ${BOOTDEPS} ${STDDEPS}
    ${NASM} ${SECTOPTS} -DFAT32 $< -o $@

    ${BOOTBUILDDIR}/bootsect.fatnoboot: bootsect-fatnoboot.s ${BOOTDEPS} ${STDDEPS}
    ${NASM} ${SECTOPTS} $< -o $@

    ${BOOTBUILDDIR}/bootsect.fatnoboot32: bootsect-fatnoboot.s ${BOOTDEPS} ${STDDEPS}
    ${NASM} ${SECTOPTS} -DFAT32 $< -o $@

    #
    # Loader files
    #

    ${LOADERBUILDDIR}/vloader: ${OBJS} ${STDDEPS}
    ${CC} -nodefaultlibs -nostartfiles ${OPT} ${LINKOPTS} ${OBJS} -o $@

    obj/%.o: %.s ${STDDEPS}
    ${NASM} ${LDROPTS} $< -o $@

    #
    # Miscellany
    #

    clean:
    rm -Rf *~ *.o core obj
    rm -Rf ${BOOTBUILDDIR} ${LOADERBUILDDIR}/vloader

  18. #18

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    دستورات لینوکس رو نوشته، من توی محیط Windows کار می کنم.
    من اولش توي ويندوز كار ميكردم و از MSVC استفاده مي كردم بعد از يه مدت كوتاه متوجه شدم كه كار كردن توي ويندوز هيچ فايده اي نداره و سوئيچ كردم به لينوكس و لذت برنامه نويسي داخل لينوكس رو به تمام معنا تجربه كردم. همونطور كه توي تاپيك زير گفتم بيشتر ابزارها براي لينوكس هستن و كار با ابزارهاي ويندوز سختر هست و مطلب كمتري براشون پيدا ميشه

    https://barnamenevis.org/showthread.p...A7%D9%85%D9%84

    Make File ها چی هستند؟
    نحوه كامپايل پروژه رو مشخص مي كنن و انعطاف پذيري زيادي رو فراهم مي كنن كه داخل لينوكس ازشون استفاده ميشه. داخل لينوكس كافيه وارد دايركتوري كه فايل توشه بشي و دستور make رو تايپ كني بعدش بصورت خودكار برنامه مورد نظرت ساخته ميشه. مثلا بالايي از كامپايلر CC براي فايلهاي C و از nasm براي اسمبلي استفاده كرده (nasm محبوبترين اسمبلر مابين برنامه نويسهاي سيستم عامل بخاطر قابليتهاي بالاي اون مخصوصا توي تعريف ماكروها هست).

    نمي دونم ميشه از Makefileها تحت ويندوز استفاده كرد يا نه! اگر ميخواي بزني توي خط OS بهتره بري سراغ لينوكس و اول از همه bash لينوكس رو ياد بگيري چون به شدت ازش استفاده مي كني. داخل لينوكس ميتوني درايوها مجازي با فرمت دلخواه خودت و يا يكي از فرمتها آماده بسازي و استفاده كني (البته نميشه گفت مجازي)‌ و يا اينكه از ست كامپايلرهاي gnu

    اينم makefile سيستم عامل من (براي كرنل) هست:
    http://arax.svn.sourceforge.net/view...11&view=markup

    تا حالا 9 بار از اول نوشتمش اما چيز تميزي از آب در اومده.

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    سلام!
    من به نظرم اگه قراره چیزی ساخته بشه روی این حساب نکنیم که همه Linux دارن، بهتره. من به یه سری از دلایل نمی تونم به Linux برم. پس توی همین Windows توسعه بدم بهتره. یه سری Tutorial در مورد GRUB رو هم دیدم، واسه Windows اش نوشته بود: ha! forget it
    من که فعلا مجبورم توی Windows کار کنم. ولی توی Windows هم می شه از Assembler ها و شبیه ساز ها و ... استفاده کرد. فکر کنم باید GRUB رو بی خیال شم. نمی دونم، اگه راهی دارید بگید.

  20. #20

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    اگر نمی تونی سوئیچ کنی به لینوکس یعنی اینکه نمی تونی از امکانات فوقالعاده GCC و LD و ... استفاده کنی و این یعنی احتمال موفقیت اگر صفر نباشه خیلی کم هست. البته توی ویندوز میتونی تحت crgwin از امکانات لینوکسی استفاده کنی فقط این مورد بشدت اذیتت می کنه.

    من به یه سری از دلایل نمی تونم به Linux برم.
    واقعا نمی دونم چه دلیلی داری که نمی تونی سوئیچ کنی به لینوکس. (چون حتی سخت افزار مورد نیاز لینوکس به مراتب کمتر از ویندوز هست (هسته لینوکس حدود 32 مگ تا 64 مگ حافظه لازم داره. پس میمونه فقط قضیه یاد گرفتن که"نابرده رنج گنج میسر نشود.)

    استفاده کرد. فکر کنم باید GRUB رو بی خیال شم. نمی دونم، اگه راهی دارید بگید.
    ترجیح اکثر برنامه نویسهای سیستم عامل Grub هست و اگر از گراب خوشت نمیاد می تونی از بوت لودرهای دیگه استفاده کنی فقط مشکلی که هست اینه که اکثر اونها تحت لینوکس کامپایل میشن. اگر میخوای تحت ویندوز کار کنی آخرین راهی که برات میمونه نوشتن دستی هست که کلی دردسر داره

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    سلام!
    خیلی ممنون از پاسخ هاتون!
    من که تا الان هر کاری رو که دستی کردم جزئیات بیشتری رو یاد گرفتم، ضمنا بعدا می شه روش کار رو تغییر داد، اما فکر می کنم فعلا باید توی Windows کار کنم.

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

    نقل قول: ساخت یک OS با روش و کاربردی متفاوت

    یه کم چرخیدم، فعلا به این رسیدم که بهتره یه چیز اساسی و ساده ای مثل KolibriOS رو گسترش بدیم، لزوما نه این که بهترش کنیم، قسمت های مختلفش رو تجزیه و تحلیل کنیم و بفهمیم و تغییر بدیم ، اگه جایی رو شد بهینه کنیم و نهایتا اون چیزی رو که خودمون می خوایم رو روش پیاده کنیم.
    من تازه Google Chrome رو OS اش رو دیدم، یه جورایی پرپر شدم، شاید یه جورایی منظورم اون بود ولی یه چیزای عالی داشت که به ذهنم نرسیده بود.

    جعبه ابزار من : Windows + FASM + HLA + Virtual Machine + ...o

    خیلی مایلم این کارو بیشتر تو FASM انجام بدیم واسه راحتی کار هم از HLA استفاده کنیم.
    حالا کسی پایه است؟
    (انتقاد/پیشنهاد؟)

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

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