PDA

View Full Version : گفتگو: ساخت یک OS با روش و کاربردی متفاوت



IamOverlord
پنج شنبه 30 تیر 1390, 14:29 عصر
سلام دوستان،
نظرتون در مورد ساخت یه سیستم عامل که یه سری کار هایی که به اجبار باید انجام بشه رو انجام بده، اما در مورد بقیه ی کارها، فقط Internet رو Browse کنه؛ یعنی سیستم عامل مثل یه مرورگر Internet باشه.
فعلا نظراتون رو بگید تا بعد بیشتر ادامه بدیم.
در این صورت مثلا سیستم عامل می تونه وارد Web Desktop ها بشه، مثلا:

eyeos.org (http://eyeos.org)
ضمنا یه نکته مثبتی هم الان وجود داره نسبت به قبلا، اون هم HTML 5 هست!!!
بیاید روش فکر کنیم، حتی می شه ایده رو از پایه تغییر داد و ایده های متفاوت و جالب تر و دست یافتنی دیگری هم داد.
بدبین نباشید ولی در عین حال به دنبال برداشتن موانع و حل مشکلات باشید.

pswin.pooya
پنج شنبه 30 تیر 1390, 16:08 عصر
در مورد اين موضوع قبلا بحث شده.


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

اصولا سيستم عامل همينه. يعني همون كارهايي كه به اجبار بايد انجام بگيرن داخل هسته انجام ميشن و بقيه كارها (مثل شل و دسكتاپ و ...) همگي برنامه هاي سودمند جانبي هستن.

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

pswin.pooya
جمعه 31 تیر 1390, 14:29 عصر
ايده اي كه شما داريد خوبه و من نمي گم بد هست ولي اين كار رو ميشه با لينوكس هم انجام داد. اما يكسري از مشكلات وجود داره كه بايد اونها رو هم در نظر بگيريد:

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

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


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

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


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

IamOverlord
جمعه 31 تیر 1390, 15:20 عصر
ولي اين كار رو ميشه با لينوكس هم انجام داد.
خیلی از کار ها رو با سیستم عامل های دیگه هم می شه انجام داد ولی ما می خوایم یه تجربه از انجام این کار برای خودمون داشته باشیم.

سرعت خطوط ارتباطي خيلي كمه
بله، خیلی از اون چیزی که می خوایم کم تره، ولی باز هم بستگی داره چه طور ازش استفاده کنیم. قرار نیست الکی همه ی کار ها Online انجام بشه، مثلا هم می شه سیستم عامل رنگ تک تک Pixel ها رو Online بگیره و هم می شه فقط بفهمه که چه کاری باید تو صفحه بکنه، بعد اون کارو خودش تو کامپیوتر بکنه؛ هر دوتاش Online هست ولی سرعت دومی بیشتره.

مرورگرها به شدت محدود و از لحاظ سرعت ناكارآمد هستند و بدتر از همه اينه خودشون يك وظيه (task) در حال اجرا هستند.
ولی در این جا مرورگر خود سیستم عامله (تقریبا) ولی قبول دارم مسئله ی سرعت رو، اما با همین سرعت خیلی کارها ی توپ می شه کرد.

مساله ديگه اينه كه اين موضوع به شدت با تعريف تئوريك سيستم عامل در تناقض هست. يعني هيچ وقت نميشه از اين مساله به عنوان سيستم عامل ياد كرد و يا اينكه سيستم عاملي بر اين مبنا ساخت. در حال حاضر سيستم عاملهاي زيادي هستند كه مبتي بر وب هستند
قبول دارم، ولی ایده ی ما ساخت یه Web Desktop نیست، که اسمشو OS بذاریم، می شه گفت ساخت یه سیستم عامل هست که Web Desktop، محیط Desktop اون هست، نه چیز دیگه ای. پس با تعریف OS تناقض نداره.

طرح همچين ايده اي نيازي به يه OS جديد نداره بلكه شما هم ميتونيد با دستكاري لينوكس OS خودتون رو بسازيد.
ما اومدیم برای تجربه و یادگیری یه سیستم عامل بسازیم، تازه ساده تر از Linux. پس نیازی نیست Linux رو تغییر بدیم؛ ما اگه بخوایم Linux رو برای این ایده مون تغییر بدیم، تقریبا هیچ کار نکردیم و هیچی چیز یاد نگرفتیم!!! ما الان برامون وقت و دوباره کاری مهم نیست، یادگیری و تجربه ی خودمون مهمه، بعد می شه رو کاربرد ها و چیز های دیگه فکر کرد.

كشور عقب مونده ما
من هم همین رو در نظر گرفته بودم.

فقط مشكل در دسترس بودن اينترنت نيست مشكل خود وب هست.
قبول دارم، ولی این هایی که این جور اختراعات رو کردن، انعطاف پذیر ساختنشون، بالاخره می شه این مشکل رو حل کرد.

pswin.pooya
جمعه 31 تیر 1390, 16:00 عصر
ما اومدیم برای تجربه و یادگیری یه سیستم عامل بسازیم، تازه ساده تر از Linux. پس نیازی نیست Linux رو تغییر بدیم؛ ما اگه بخوایم Linux رو برای این ایده مون تغییر بدیم، تقریبا هیچ کار نکردیم و هیچی چیز یاد نگرفتیم!!! ما الان برامون وقت و دوباره کاری مهم نیست، یادگیری و تجربه ی خودمون مهمه، بعد می شه رو کاربرد ها و چیز های دیگه فکر کرد.

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

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

IamOverlord
جمعه 31 تیر 1390, 16:59 عصر
من کاملا این حرف رو قبول دارم، ولی منظور من این بود که ''برای این ایده'' این طوریه. چون این دقیقا یه قسمت ساده ای از لینوکس رو تشکیل می ده. وگرنه که با مطالعه ی لینوکس و گسترش اون خیلی هم موافقم.
حالا می گم چرا اکثرا می رن سراغ Linux؟ مگه KolibriOS (www.kolibrios.org/) چشه؟ به نظر من خیلی جالبه. خویه روی KolibriOS (www.kolibrios.org/) تمرکز کنیم واسه شروع تا این که بریم سراغ یه غولی به نام Linux.

IamOverlord
شنبه 01 مرداد 1390, 21:39 عصر
به نظرم به جای مقدمات کار دیگه خود کار رو شروع کنیم و به خود ایده فکر کنیم و ایده پردازی کنیم، بهتر باشه.

pswin.pooya
شنبه 01 مرداد 1390, 23:38 عصر
به نظرم به جای مقدمات کار دیگه خود کار رو شروع کنیم و به خود ایده فکر کنیم و ایده پردازی کنیم، بهتر باشه.

با اين حرفت موافقم. بهتره خود كار رو شروع كني.


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

آراكس يه توزيع لينوكس نيست من كلي روش زحمت دارم ميكشم كه بتونم بعضي از مشكلات لينوكس رو حل كنم.


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

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

pswin.pooya
یک شنبه 02 مرداد 1390, 09:59 صبح
ضمنا اگه بخوایم Start بزنیم و در مقدمات زیاده روی نکنیم، خوب یکی از واضح ترین چیز ها اینه که این OS رو باید ببریم توی Protected Mode. خوب پس باید ببینیم چه جوری دقیقا این کار رو بکنیم. در واقع باید یه اطلاعاتی در مورد GDT و LDT و PMode و A20 Lines و ... به دست بیاریم.

من قبلا تمام اين كارها رو كردم. اگر سوالي داشتي ميتوني بپرسي. اما بجاي اينكه وقت خودت رو تلف كني از گراپ استفاده كن اون خودش ميبره تو pmode و A20 رو هم مقدار دهي ميكنه به غير از اون يه GDT اوليه رو هم ميسازه كه بعدا ميتوني تغييرش بدي. (خيلي از مشكلها رو برات حل ميكنه) به غير از اين موارد مشكلهاي دست و پا زدن با انواع درايورها رو توي استارت آپ حل ميكنه.

IamOverlord
یک شنبه 02 مرداد 1390, 12:25 عصر
سلام!
خیلی دوست دارم کدها با 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 خوندم ولی اگه کسی خلاصه و خوب می تونه توضیح بده بگه لطفا.

pswin.pooya
یک شنبه 02 مرداد 1390, 12:50 عصر
در مورد A20 خوندم ولی اگه کسی خلاصه و خوب می تونه توضیح بده بگه لطفا.

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

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

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

pswin.pooya
یک شنبه 02 مرداد 1390, 13:43 عصر
گراب براي همه سيستم عاملها جواب ميده و استاندارد مولتي بوت رو رعايت ميكنه. اول كامپايلش ميكني بعد ميزني روي ديكسي كه ميخواي باهاش بوت شه. روش كار رو توي مقاله زير توضيح داده:

http://wiki.osdev.org/GRUB

IamOverlord
یک شنبه 02 مرداد 1390, 17:21 عصر
من که چیزی نفهمیدم! :گریه:
دستورات لینوکس رو نوشته، من توی محیط Windows کار می کنم.
مثلا فرض کنیم من الان KERNEL.asm رو دارم، و مثلا با FASM هم می تونم Compile کنم، خوب با GRUB باید چی کار کرد مثلا؟

IamOverlord
یک شنبه 02 مرداد 1390, 18:42 عصر
سلام!
من رفتم به 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

pswin.pooya
دوشنبه 03 مرداد 1390, 10:02 صبح
دستورات لینوکس رو نوشته، من توی محیط Windows کار می کنم.

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

http://barnamenevis.org/showthread.php?270050-%D8%B4%D8%B1%D9%88%D8%B9-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84


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

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

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

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

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

pswin.pooya
پنج شنبه 06 مرداد 1390, 14:08 عصر
اگر نمی تونی سوئیچ کنی به لینوکس یعنی اینکه نمی تونی از امکانات فوقالعاده GCC و LD و ... استفاده کنی و این یعنی احتمال موفقیت اگر صفر نباشه خیلی کم هست. البته توی ویندوز میتونی تحت crgwin از امکانات لینوکسی استفاده کنی فقط این مورد بشدت اذیتت می کنه.


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


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

IamOverlord
پنج شنبه 06 مرداد 1390, 17:07 عصر
سلام!
خیلی ممنون از پاسخ هاتون!
من که تا الان هر کاری رو که دستی کردم جزئیات بیشتری رو یاد گرفتم، ضمنا بعدا می شه روش کار رو تغییر داد، اما فکر می کنم فعلا باید توی Windows کار کنم.

IamOverlord
دوشنبه 14 آذر 1390, 12:19 عصر
یه کم چرخیدم، فعلا به این رسیدم که بهتره یه چیز اساسی و ساده ای مثل KolibriOS رو گسترش بدیم، لزوما نه این که بهترش کنیم، قسمت های مختلفش رو تجزیه و تحلیل کنیم و بفهمیم و تغییر بدیم ، اگه جایی رو شد بهینه کنیم و نهایتا اون چیزی رو که خودمون می خوایم رو روش پیاده کنیم.
من تازه Google Chrome رو OS اش رو دیدم، یه جورایی پرپر شدم، شاید یه جورایی منظورم اون بود ولی یه چیزای عالی داشت که به ذهنم نرسیده بود.

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

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