من یه چیزی از شما میخوام.شما یه فایل iso درست کنید که بوت بشه و مثلا اسم شما رو بنویسه.سیستمعامل پیش کش.اگر این کار رو کردین اونوقت میشه یه کارایی کرد.مثلا از برنامههای گنو استفاده کرد.تا یه سیستمعامل بشه.در حقیقت شما Kernel بنویسید.
من یه چیزی از شما میخوام.شما یه فایل iso درست کنید که بوت بشه و مثلا اسم شما رو بنویسه.سیستمعامل پیش کش.اگر این کار رو کردین اونوقت میشه یه کارایی کرد.مثلا از برنامههای گنو استفاده کرد.تا یه سیستمعامل بشه.در حقیقت شما Kernel بنویسید.
ما هم هدفمان همین هست! نمیخوایم درگام اول یه چیزی فراتر از لینوکس بنویسیم!
آقا اگه مشکلی نیست ما هم می خوایم به تیمتون بپینودیم، قبلا خیلی علاقه به این کار داشتم
ولی احتمالا چون تنهایی میخواستم اینکارو بکنم موفق نشدم، حالا دوباره میخوام شروع کنم
منم یکسری منابع و سورس دارم، سورسا بیشترش به اسمبلیس
یه برنامه هم هست به اسم emu8086 که داخلش یه سیستم عامل خیلی کوچیکی طراحی شده، فقط یک خط فرمان با
چنتا دستور هست بد نیست اونم ببیینم.
شاد باشید
دقیقا اون سیستم عاملی که داری مد نظر ماست! اگه ببینیمش که فوق العادست ...
ممنون، راستی، چون ممکنه اینجا بهمون گیر بدن برای کارا بیا تو گروه سیستم عامل سازان عضو شو(بیا میفهمی)
آقایونی که میخوان چوب لا چرخ این کار بکنن لطفا الکی نیان بگین اینو بنویس اونو بنویس شد شد اگرم نشد عوضش کلی چیز از هم یاد میگیریم ...
اینم کرنلی که گفتی :
#make_BIN#
; where to load (for emulator)?
#LOAD_SEGMENT=0800#
#LOAD_OFFSET=0000#
; set these values to registers on load,
; actually only DS, ES, CS, IP, SS, SP are
; important. In real world these values
; are left by "micro-os_loader":
#AL=0B#
#AH=00#
#BH=00#
#BL=00#
#CH=00#
#CL=02#
#DH=00#
#DL=00#
#DS=0800#
#ES=0800#
#SI=7C02#
#DI=0000#
#BP=0000#
#CS=0800#
#IP=0000#
#SS=07C0#
#SP=03FE#
include 'emu8086.inc'
; Kernel is loaded at 0800:0000
ORG 0000h
; skip the data section:
JMP start
;==== data section =====================
; welcome message:
msg DB 'Welcome to micro-os!', 13, 10,
DB 'type help if you need it', 0
cmd_size EQU 10 ; size of command_buffer
command_buffer DB cmd_size DUP('x')
clean_str DB cmd_size DUP(' '), 0
prompt DB '>', 0
; commands:
cHELP DB 'help', 0
cCLS DB 'cls', 0
cQUIT DB 'quit', 0
cEXIT DB 'exit', 0
cREBOOT DB 'reboot', 0
help_msg DB 'Thank you for using micro-os!', 13, 10
DB 'List of supported commands:', 13, 10
DB 'help - print out this list.', 13, 10
DB 'cls - clear the screen.', 13, 10
DB 'reboot - reboot the machine.', 13, 10
DB 'quit - same as reboot.', 13, 10
DB 'exit - same as reboot.', 13, 10
DB 'more to come!', 13, 10, 0
unknown DB 'Unknown command: ' , 0
;======================================
start:
; set data segment:
PUSH CS
POP DS
; set default video mode 80x25:
MOV AH, 00h
MOV AL, 03h
INT 10h
; clear screen:
CALL clear_screen
; print out the message:
LEA SI, msg
CALL print_string
eternal_loop:
CALL GET_COMMAND
CALL PROCESS_CMD
; make eternal loop:
JMP eternal_loop
;===========================================
GET_COMMAND PROC NEAR
; set cursor position to bottom
; of the screen:
MOV AX, 40h
MOV ES, AX
MOV AL, ES:[84h]
GOTOXY 0, AL
; clear command line:
LEA SI, clean_str
CALL print_string
GOTOXY 0, AL
; show prompt:
LEA SI, prompt
CALL print_string
; wait for a command:
MOV DX, cmd_size ; buffer size.
LEA DI, command_buffer
CALL get_string
RET
GET_COMMAND ENDP
;===========================================
PROCESS_CMD PROC NEAR
;//// check commands here ///
; set ES to DS
PUSH DS
POP ES
CLD ; forward compare.
; compare command buffer with 'help'
LEA SI, command_buffer
MOV CX, 5 ; size of ['help',0] string.
LEA DI, cHELP
REPE CMPSB
JE help_command
; compare command buffer with 'cls'
LEA SI, command_buffer
MOV CX, 4 ; size of ['cls',0] string.
LEA DI, cCLS
REPE CMPSB
JNE not_cls
JMP cls_command
not_cls:
; compare command buffer with 'quit'
LEA SI, command_buffer
MOV CX, 5 ; size of ['quit',0] string.
LEA DI, cQUIT
REPE CMPSB
JE reboot_command
; compare command buffer with 'exit'
LEA SI, command_buffer
MOV CX, 5 ; size of ['exit',0] string.
LEA DI, cEXIT
REPE CMPSB
JE reboot_command
; compare command buffer with 'reboot'
LEA SI, command_buffer
MOV CX, 7 ; size of ['reboot',0] string.
LEA DI, cREBOOT
REPE CMPSB
JE reboot_command
;////////////////////////////
; if gets here, then command is
; unknown...
MOV AL, 1
CALL SCROLL_T_AREA
; set cursor position just
; above prompt line:
MOV AX, 40h
MOV ES, AX
MOV AL, ES:[84h]
DEC AL
GOTOXY 0, AL
LEA SI, unknown
CALL print_string
LEA SI, command_buffer
CALL print_string
MOV AL, 1
CALL SCROLL_T_AREA
JMP processed
; +++++ 'help' COMMAND ++++++
help_command:
; scroll text area 9 lines up:
MOV AL, 9
CALL SCROLL_T_AREA
; set cursor position 9 lines
; above prompt line:
MOV AX, 40h
MOV ES, AX
MOV AL, ES:[84h]
SUB AL, 9
GOTOXY 0, AL
LEA SI, help_msg
CALL print_string
MOV AL, 1
CALL SCROLL_T_AREA
JMP processed
; +++++ 'cls' COMMAND ++++++
cls_command:
; clear screen:
CALL clear_screen
JMP processed
; +++ 'quit', 'exit', 'reboot' +++
reboot_command:
; store magic value at 0040h:0072h:
; 0000h - cold boot.
; 1234h - warm boot.
MOV AX, 0040h
MOV DS, AX
MOV w.[0072h], 0000h ; cold boot.
JMP 0FFFFh:0000h ; reboot!
; ++++++++++++++++++++++++++
processed:
RET
PROCESS_CMD ENDP
;===========================================
; scroll all screen except last row
; up by value specified in AL
SCROLL_T_AREA PROC NEAR
MOV DX, 40h
MOV ES, DX ; for getting screen parameters.
MOV AH, 06h ; scroll up function id.
MOV BH, 07 ; attribute for new lines.
MOV CH, 0 ; upper row.
MOV CL, 0 ; upper col.
MOV DI, 84h ; rows on screen -1,
MOV DH, ES:[DI] ; lower row (byte).
DEC DH ; don't scroll bottom line.
MOV DI, 4Ah ; columns on screen,
MOV DL, ES:[DI]
DEC DL ; lower col.
INT 10h
RET
SCROLL_T_AREA ENDP
;===========================================
DEFINE_PRINT_STRING
DEFINE_GET_STRING
DEFINE_CLEAR_SCREEN
END
لودرش میخوای بزارم یا همین بسه ؟
راستی جناب آقای Mehrdad_bx لطفا قبل از ارسال دعوتنامه از دوستان رزومه بخواهید و ببینید در چه چیزهایی و در چه حد میتونن کمک کنند و در ضمن زیاد شلوغ نشه فوقش 20 - 25 نفر زیاده زیاد و گر نه به مشکل بر میخوریم ...
سلام دوست عزیز
عضویت برا عموم آزاد شد. ولی خوبه، زیاد نمیان عضو شن(اونایی که بلد نیستن نمیان)
درمورد شما هم که رزومه لازم نبود! استاد مایی.
باشه ممنون از توضیحاتتون پس دوستان هر کسی دوست داشت بیاد با هر توانایی که داره حداقل اگرم کمکی نتونید بکنید که 100 % میتونید خیلی چیزها یاد میگیرید ...
و در ضمن من به هیچ عنوان رزومه ندادم که استاد و غیر استاد و ... مشخص شه من دیدم همه خودشون و زمینه ی فعالیتشون رو معرفی کردن منم این کار رو کردم و گرنه همه یک گروهیم برای رسیدن به یک هدف ...
رزومه فقط برای در این پروژه فقط برای اینکه بدونیم کی بیشتر کجا به کارمون میاد تا پروژه بدون عیب و نقص تموم شه و جرقه ای باشه برای اون هایی که فقط در زندگی بلدن بگن نمیشه , سخته و ... تا بدونن کار نشد نداره ...
خوب دوستان به این چیزها برای شروع نیاز داریم :
1.برنمه نویس (C,C++,Assembly) دوستان در مورد زبان های دیگه سوال نکنید چون فعلا تو بخش کرنل و لودر هستیم و فقط این زبانها فعلا به کار میان تا بعد که وارد گرافیک شیم انشالله که از دوستان C# کار دعوت میکنیم ...
2.مقاله و منابع و جمع آوری و تحلیل مقالات و تجزیه و تبقه یندی اونها که بخش زیادی از مقالات رو در دست دارم فقط یکی میخواد برای کار های بعدیش که گفتم چون به هی وجه وقت ندارم برای این کار ...
در ضمن یک نام برای این سیتم عامل انتخاب کنید هر کی هر چی به ذهنش میرسه بگه تا با هم سر یم اسم به توافق نظر برسیم ...
اسم تمامی دوستانی که در این پروژه همکاری کنند از برنامه نویس تا ... هر چه و هر چه و در هر زمینه ای که باشد نامشان در About سیستم عامل ثبت خواهد شد ...
دنبال © پروژه هستم قبول دارم پروژه باید اپن سورس باشه ولی نه فعلا وقتی که پروژه کامل شد سورس در دسترس عموم قرار داده میشه فعلا فقط بچه های گروه چون بخش اصلی سیستم عامل هستش هست و اگر بخوایم از اول سورس رو باز قرار بدیم همه درش دستی میبرند و واویلا به حال همکاران بیچاره ی این پروژه ...
دوستان Id های خودتون رو اینجا قرار بدین تا بتونیم با هم راحت تر ارتباط برقرار کنیم ...
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)