From 4f7acf76cd0b008c63522b79ea35969c320ac7ad Mon Sep 17 00:00:00 2001 From: goodosuser <36658549+goodosuser@users.noreply.github.com> Date: Thu, 26 Jan 2023 00:11:18 +0330 Subject: [PATCH 1/8] Update README.txt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit به روز کردن توضیحات - توضیحات فارسی و قرار دادن نشانی ویدیو در آپارات --- README.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.txt b/README.txt index 822b63c..ef63ccf 100644 --- a/README.txt +++ b/README.txt @@ -1,6 +1,10 @@ -You can visit The Video tutorial Linked to this archive at https://www.youtube.com/watch?v=CGkmfBHEODE -This Archive has been uploaded by Nidhal Abidi From IKOW -Please visit Iknow @ www.youtube.com/iknowbrain -or at: -www.iknowbrain.work -Thank you for your support :) +سلام + +سامانه عامل از ابتدا، سامانه ای آزمایشی و آموزشی است که نوشتن سامانه عامل از ابتدا را به شما می آموزد. + +شما می توانید راهنمای ویدیویی این سامانه عامل را از نشانی زیر مشاهده کنید + http://www.aparat.ir/v/mtKEP + +You can visit The Video tutorial Linked to this archive at http://www.aparat.ir/v/mtKEP + + From f48534c9184d46196d378a4a80b3b94f8915955c Mon Sep 17 00:00:00 2001 From: goodosuser <36658549+goodosuser@users.noreply.github.com> Date: Thu, 26 Jan 2023 00:20:34 +0330 Subject: [PATCH 2/8] =?UTF-8?q?=D8=A8=D9=87=20=D9=87=D9=85=D8=B1=D8=A7?= =?UTF-8?q?=D9=87=20=DA=A9=D8=AF=D9=87=D8=A7=DB=8C=20=D9=82=D8=B3=D9=85?= =?UTF-8?q?=D8=AA=20=D9=87=D8=A7=DB=8C=20=D9=82=D8=A8=D9=84=DB=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit کد های قسمت های قبل حذف نشد و به صورت توضیح قرار داده شد --- src/kernel.c | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/kernel.c b/src/kernel.c index 5311484..36c254e 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -1,12 +1,43 @@ #include "../include/kb.h" #include "../include/isr.h" -#include "../include/idt.h" -#include "../include/util.h" #include "../include/shell.h" -kmain() + + +int kmain() { - isr_install(); + isr_install(); //interrupt service routin clearScreen(); - print("Hi and Welcome to NIDOS operating system\nPlease enter a command\n"); - launch_shell(0); -} + //int a = 5/0; //برای آزمایش وقفه- ۷ + print("Salam\nWelcome to OSFS 0.0.10\n Hi Mohammad \nthanks\n\nPlease Enter a command \n"); + + launch_shell(0); + /* برای قسمت ۲ تا ۹ بود- به جای پوسته + while(1){ + print ("\nOSFS> "); + + string ch = readStr(); + if(strEql(ch, "cmd")){ + print("\nYou are allready in cmd"); + } + else if(strEql(ch, "clear")){ + clearScreen(); + } + else{ + print("\nBad command!"); + } + print("\n"); + + + } + برای آموزش قسمت اول بود + char* vidmem=(char *)0xb8000; + vidmem[0] = 'A'; + vidmem[1] = 0x02; + vidmem[2] = 'L'; + vidmem[3] = 0x02; + vidmem[4] = 'I'; + vidmem[5] = 0x02; + + */ + return 0; +} From 35eccc9fa204367502e52ae8f7952a8afc43de7c Mon Sep 17 00:00:00 2001 From: goodosuser <36658549+goodosuser@users.noreply.github.com> Date: Thu, 26 Jan 2023 01:07:43 +0330 Subject: [PATCH 3/8] =?UTF-8?q?=D8=AD=D8=B0=D9=81=20=D8=AA=D8=B9=D8=B1?= =?UTF-8?q?=DB=8C=D9=81=20=D9=85=D8=AC=D8=AF=D8=AF=20=D9=85=D8=AA=D8=BA?= =?UTF-8?q?=DB=8C=D8=B1=D9=87=D8=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit متغیرها دوباره تعریف شده بودند. به صورت توضیح قرار داده شد --- include/idt.c | 20 ++++ include/isr.c | 249 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 269 insertions(+) create mode 100644 include/idt.c create mode 100644 include/isr.c diff --git a/include/idt.c b/include/idt.c new file mode 100644 index 0000000..ceb1f24 --- /dev/null +++ b/include/idt.c @@ -0,0 +1,20 @@ +#include "../include/idt.h" +#include "../include/util.h" + +#define IDT_ENTRIES 256 +idt_gate_t idt[IDT_ENTRIES]; +idt_register_t idt_reg; + +void set_idt_gate(int n, uint32 handler) { + idt[n].low_offset = low_16(handler); + idt[n].sel = KERNEL_CS; + idt[n].always0 = 0; + idt[n].flags = 0x8E; + idt[n].high_offset = high_16(handler); +} + +void set_idt() { + idt_reg.base = (uint32) &idt; + idt_reg.limit = IDT_ENTRIES * sizeof(idt_gate_t) - 1; + __asm__ __volatile__("lidtl (%0)" : : "r" (&idt_reg)); +} diff --git a/include/isr.c b/include/isr.c new file mode 100644 index 0000000..f1f7400 --- /dev/null +++ b/include/isr.c @@ -0,0 +1,249 @@ +#include "../include/isr.h" +#include "../include/idt.h" +#include "../include/screen.h" +#include "../include/util.h" + +/* To print the message which defines every exception */ +string exception_messages[] = { + "Division By Zero", + "Debug", + "Non Maskable Interrupt", + "Breakpoint", + "Into Detected Overflow", + "Out of Bounds", + "Invalid Opcode", + "No Coprocessor", + + "Double Fault", + "Coprocessor Segment Overrun", + "Bad TSS", + "Segment Not Present", + "Stack Fault", + "General Protection Fault", + "Page Fault", + "Unknown Interrupt", + + "Coprocessor Fault", + "Alignment Check", + "Machine Check", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved" +}; + +void isr_install() { + set_idt_gate(0, (uint32)isr0); + set_idt_gate(1, (uint32)isr1); + set_idt_gate(2, (uint32)isr2); + set_idt_gate(3, (uint32)isr3); + set_idt_gate(4, (uint32)isr4); + set_idt_gate(5, (uint32)isr5); + set_idt_gate(6, (uint32)isr6); + set_idt_gate(7, (uint32)isr7); + set_idt_gate(8, (uint32)isr8); + set_idt_gate(9, (uint32)isr9); + set_idt_gate(10, (uint32)isr10); + set_idt_gate(11, (uint32)isr11); + set_idt_gate(12, (uint32)isr12); + set_idt_gate(13, (uint32)isr13); + set_idt_gate(14, (uint32)isr14); + set_idt_gate(15, (uint32)isr15); + set_idt_gate(16, (uint32)isr16); + set_idt_gate(17, (uint32)isr17); + set_idt_gate(18, (uint32)isr18); + set_idt_gate(19, (uint32)isr19); + set_idt_gate(20, (uint32)isr20); + set_idt_gate(21, (uint32)isr21); + set_idt_gate(22, (uint32)isr22); + set_idt_gate(23, (uint32)isr23); + set_idt_gate(24, (uint32)isr24); + set_idt_gate(25, (uint32)isr25); + set_idt_gate(26, (uint32)isr26); + set_idt_gate(27, (uint32)isr27); + set_idt_gate(28, (uint32)isr28); + set_idt_gate(29, (uint32)isr29); + set_idt_gate(30, (uint32)isr30); + set_idt_gate(31, (uint32)isr31); + + set_idt(); // Load with ASM +} + +/*Handlers*/ +void isr0() +{ + print(exception_messages[0]); + asm("hlt"); +} +void isr1() +{ + print(exception_messages[1]); + asm("hlt"); +} +void isr2() +{ + print(exception_messages[2]); + asm("hlt"); +} +void isr3() +{ + print(exception_messages[3]); + asm("hlt"); +} +void isr4() +{ + print(exception_messages[4]); + asm("hlt"); +} +void isr5() +{ + print(exception_messages[5]); + asm("hlt"); +} +void isr6() +{ + print(exception_messages[6]); + asm("hlt"); +} +void isr7() +{ + print(exception_messages[7]); + asm("hlt"); +} +void isr8() +{ + print(exception_messages[8]); + asm("hlt"); +} +void isr9() +{ + print(exception_messages[9]); + asm("hlt"); +} +void isr10() +{ + print(exception_messages[10]); + asm("hlt"); +} +void isr11() +{ + print(exception_messages[11]); + asm("hlt"); +} +void isr12() +{ + print(exception_messages[12]); + asm("hlt"); +} +void isr13() +{ + print(exception_messages[13]); + asm("hlt"); +} +void isr14() +{ + print(exception_messages[14]); + asm("hlt"); +} +void isr15() +{ + print(exception_messages[15]); + asm("hlt"); +} +void isr16() +{ + print(exception_messages[16]); + asm("hlt"); +} +void isr17() +{ + print(exception_messages[17]); + asm("hlt"); +} +void isr18() +{ + print(exception_messages[18]); + asm("hlt"); +} +void isr19() +{ + print(exception_messages[19]); + asm("hlt"); +} +void isr20() +{ + print(exception_messages[20]); + asm("hlt"); +} +void isr21() +{ + print(exception_messages[21]); + asm("hlt"); +} +void isr22() +{ + print(exception_messages[22]); + asm("hlt"); +} +void isr23() +{ + print(exception_messages[23]); + asm("hlt"); +} +void isr24() +{ + print(exception_messages[24]); + asm("hlt"); +} +void isr25() +{ + print(exception_messages[25]); + asm("hlt"); +} +void isr26() +{ + print(exception_messages[26]); + asm("hlt"); +} +void isr27() +{ + print(exception_messages[27]); + asm("hlt"); +} +void isr28() +{ + print(exception_messages[28]); + asm("hlt"); +} +void isr29() +{ + print(exception_messages[29]); + asm("hlt"); +} +void isr30() +{ + print(exception_messages[30]); + asm("hlt"); +} +void isr31() +{ + print(exception_messages[31]); + asm("hlt"); +} + + +/*End Handlers*/ + + + + From cec66d70c72399d9ed928e41ff8b6e10352397d1 Mon Sep 17 00:00:00 2001 From: goodosuser <36658549+goodosuser@users.noreply.github.com> Date: Thu, 26 Jan 2023 01:09:51 +0330 Subject: [PATCH 4/8] =?UTF-8?q?=D8=AD=D8=B0=D9=81=20=D8=A8=D8=A7=D8=B1?= =?UTF-8?q?=DA=AF=D8=B0=D8=A7=D8=B1=DB=8C=20=D8=A7=D8=B4=D8=AA=D8=A8=D8=A7?= =?UTF-8?q?=D9=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit باید در پوشه src بارگذاری شود --- include/idt.c | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 include/idt.c diff --git a/include/idt.c b/include/idt.c deleted file mode 100644 index ceb1f24..0000000 --- a/include/idt.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "../include/idt.h" -#include "../include/util.h" - -#define IDT_ENTRIES 256 -idt_gate_t idt[IDT_ENTRIES]; -idt_register_t idt_reg; - -void set_idt_gate(int n, uint32 handler) { - idt[n].low_offset = low_16(handler); - idt[n].sel = KERNEL_CS; - idt[n].always0 = 0; - idt[n].flags = 0x8E; - idt[n].high_offset = high_16(handler); -} - -void set_idt() { - idt_reg.base = (uint32) &idt; - idt_reg.limit = IDT_ENTRIES * sizeof(idt_gate_t) - 1; - __asm__ __volatile__("lidtl (%0)" : : "r" (&idt_reg)); -} From 4839ad171fb3035120275d71797f1da71e0b4e8f Mon Sep 17 00:00:00 2001 From: goodosuser <36658549+goodosuser@users.noreply.github.com> Date: Thu, 26 Jan 2023 01:10:15 +0330 Subject: [PATCH 5/8] =?UTF-8?q?=D8=AD=D8=B0=D9=81=20=D8=A8=D8=A7=D8=B1?= =?UTF-8?q?=DA=AF=D8=B0=D8=A7=D8=B1=DB=8C=20=D8=A7=D8=B4=D8=AA=D8=A8=D8=A7?= =?UTF-8?q?=D9=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit باید در پوشه src بارگذاری شود --- include/isr.c | 249 -------------------------------------------------- 1 file changed, 249 deletions(-) delete mode 100644 include/isr.c diff --git a/include/isr.c b/include/isr.c deleted file mode 100644 index f1f7400..0000000 --- a/include/isr.c +++ /dev/null @@ -1,249 +0,0 @@ -#include "../include/isr.h" -#include "../include/idt.h" -#include "../include/screen.h" -#include "../include/util.h" - -/* To print the message which defines every exception */ -string exception_messages[] = { - "Division By Zero", - "Debug", - "Non Maskable Interrupt", - "Breakpoint", - "Into Detected Overflow", - "Out of Bounds", - "Invalid Opcode", - "No Coprocessor", - - "Double Fault", - "Coprocessor Segment Overrun", - "Bad TSS", - "Segment Not Present", - "Stack Fault", - "General Protection Fault", - "Page Fault", - "Unknown Interrupt", - - "Coprocessor Fault", - "Alignment Check", - "Machine Check", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved" -}; - -void isr_install() { - set_idt_gate(0, (uint32)isr0); - set_idt_gate(1, (uint32)isr1); - set_idt_gate(2, (uint32)isr2); - set_idt_gate(3, (uint32)isr3); - set_idt_gate(4, (uint32)isr4); - set_idt_gate(5, (uint32)isr5); - set_idt_gate(6, (uint32)isr6); - set_idt_gate(7, (uint32)isr7); - set_idt_gate(8, (uint32)isr8); - set_idt_gate(9, (uint32)isr9); - set_idt_gate(10, (uint32)isr10); - set_idt_gate(11, (uint32)isr11); - set_idt_gate(12, (uint32)isr12); - set_idt_gate(13, (uint32)isr13); - set_idt_gate(14, (uint32)isr14); - set_idt_gate(15, (uint32)isr15); - set_idt_gate(16, (uint32)isr16); - set_idt_gate(17, (uint32)isr17); - set_idt_gate(18, (uint32)isr18); - set_idt_gate(19, (uint32)isr19); - set_idt_gate(20, (uint32)isr20); - set_idt_gate(21, (uint32)isr21); - set_idt_gate(22, (uint32)isr22); - set_idt_gate(23, (uint32)isr23); - set_idt_gate(24, (uint32)isr24); - set_idt_gate(25, (uint32)isr25); - set_idt_gate(26, (uint32)isr26); - set_idt_gate(27, (uint32)isr27); - set_idt_gate(28, (uint32)isr28); - set_idt_gate(29, (uint32)isr29); - set_idt_gate(30, (uint32)isr30); - set_idt_gate(31, (uint32)isr31); - - set_idt(); // Load with ASM -} - -/*Handlers*/ -void isr0() -{ - print(exception_messages[0]); - asm("hlt"); -} -void isr1() -{ - print(exception_messages[1]); - asm("hlt"); -} -void isr2() -{ - print(exception_messages[2]); - asm("hlt"); -} -void isr3() -{ - print(exception_messages[3]); - asm("hlt"); -} -void isr4() -{ - print(exception_messages[4]); - asm("hlt"); -} -void isr5() -{ - print(exception_messages[5]); - asm("hlt"); -} -void isr6() -{ - print(exception_messages[6]); - asm("hlt"); -} -void isr7() -{ - print(exception_messages[7]); - asm("hlt"); -} -void isr8() -{ - print(exception_messages[8]); - asm("hlt"); -} -void isr9() -{ - print(exception_messages[9]); - asm("hlt"); -} -void isr10() -{ - print(exception_messages[10]); - asm("hlt"); -} -void isr11() -{ - print(exception_messages[11]); - asm("hlt"); -} -void isr12() -{ - print(exception_messages[12]); - asm("hlt"); -} -void isr13() -{ - print(exception_messages[13]); - asm("hlt"); -} -void isr14() -{ - print(exception_messages[14]); - asm("hlt"); -} -void isr15() -{ - print(exception_messages[15]); - asm("hlt"); -} -void isr16() -{ - print(exception_messages[16]); - asm("hlt"); -} -void isr17() -{ - print(exception_messages[17]); - asm("hlt"); -} -void isr18() -{ - print(exception_messages[18]); - asm("hlt"); -} -void isr19() -{ - print(exception_messages[19]); - asm("hlt"); -} -void isr20() -{ - print(exception_messages[20]); - asm("hlt"); -} -void isr21() -{ - print(exception_messages[21]); - asm("hlt"); -} -void isr22() -{ - print(exception_messages[22]); - asm("hlt"); -} -void isr23() -{ - print(exception_messages[23]); - asm("hlt"); -} -void isr24() -{ - print(exception_messages[24]); - asm("hlt"); -} -void isr25() -{ - print(exception_messages[25]); - asm("hlt"); -} -void isr26() -{ - print(exception_messages[26]); - asm("hlt"); -} -void isr27() -{ - print(exception_messages[27]); - asm("hlt"); -} -void isr28() -{ - print(exception_messages[28]); - asm("hlt"); -} -void isr29() -{ - print(exception_messages[29]); - asm("hlt"); -} -void isr30() -{ - print(exception_messages[30]); - asm("hlt"); -} -void isr31() -{ - print(exception_messages[31]); - asm("hlt"); -} - - -/*End Handlers*/ - - - - From 367b0bf7f1d7edb8e61bfb636964ada6afdb852c Mon Sep 17 00:00:00 2001 From: goodosuser <36658549+goodosuser@users.noreply.github.com> Date: Thu, 26 Jan 2023 01:11:11 +0330 Subject: [PATCH 6/8] =?UTF-8?q?=D8=AD=D8=B0=D9=81=20=D9=85=D8=AA=D8=BA?= =?UTF-8?q?=DB=8C=D8=B1=D9=87=D8=A7=DB=8C=20=D8=AF=D9=88=D8=A8=D8=A7=D8=B1?= =?UTF-8?q?=20=D8=AA=D8=B9=D8=B1=DB=8C=D9=81=20=D8=B4=D8=AF=D9=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit به صورت توضیح قرار داده شد --- src/idt.c | 4 +++ src/isr.c | 76 ++++++++++++++++++++++++++++--------------------------- 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/src/idt.c b/src/idt.c index 2f7ef6a..ceb1f24 100644 --- a/src/idt.c +++ b/src/idt.c @@ -1,6 +1,10 @@ #include "../include/idt.h" #include "../include/util.h" +#define IDT_ENTRIES 256 +idt_gate_t idt[IDT_ENTRIES]; +idt_register_t idt_reg; + void set_idt_gate(int n, uint32 handler) { idt[n].low_offset = low_16(handler); idt[n].sel = KERNEL_CS; diff --git a/src/isr.c b/src/isr.c index 6aa155e..f1f7400 100644 --- a/src/isr.c +++ b/src/isr.c @@ -3,6 +3,45 @@ #include "../include/screen.h" #include "../include/util.h" +/* To print the message which defines every exception */ +string exception_messages[] = { + "Division By Zero", + "Debug", + "Non Maskable Interrupt", + "Breakpoint", + "Into Detected Overflow", + "Out of Bounds", + "Invalid Opcode", + "No Coprocessor", + + "Double Fault", + "Coprocessor Segment Overrun", + "Bad TSS", + "Segment Not Present", + "Stack Fault", + "General Protection Fault", + "Page Fault", + "Unknown Interrupt", + + "Coprocessor Fault", + "Alignment Check", + "Machine Check", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved" +}; + void isr_install() { set_idt_gate(0, (uint32)isr0); set_idt_gate(1, (uint32)isr1); @@ -207,41 +246,4 @@ void isr31() -/* To print the message which defines every exception */ -string exception_messages[] = { - "Division By Zero", - "Debug", - "Non Maskable Interrupt", - "Breakpoint", - "Into Detected Overflow", - "Out of Bounds", - "Invalid Opcode", - "No Coprocessor", - - "Double Fault", - "Coprocessor Segment Overrun", - "Bad TSS", - "Segment Not Present", - "Stack Fault", - "General Protection Fault", - "Page Fault", - "Unknown Interrupt", - - "Coprocessor Fault", - "Alignment Check", - "Machine Check", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved", - "Reserved" -}; From 8be2f2aafda382a62bd20fd44efcf6b3fa1f9ab5 Mon Sep 17 00:00:00 2001 From: goodosuser <36658549+goodosuser@users.noreply.github.com> Date: Thu, 26 Jan 2023 01:12:51 +0330 Subject: [PATCH 7/8] =?UTF-8?q?=D8=AA=D8=B5=D8=AD=DB=8C=D8=AD=20=D8=AA?= =?UTF-8?q?=D8=B9=D8=B1=DB=8C=D9=81=20=D9=85=D8=AA=D8=BA=DB=8C=D8=B1=D9=87?= =?UTF-8?q?=D8=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit حذف تعریف مجدد و تعریف درست متن های وقفه --- include/idt.h | 4 +--- include/isr.h | 2 +- include/screen.h | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/include/idt.h b/include/idt.h index f80acc8..9db9e61 100644 --- a/include/idt.h +++ b/include/idt.h @@ -18,9 +18,7 @@ typedef struct { uint32 base; } __attribute__((packed)) idt_register_t; -#define IDT_ENTRIES 256 -idt_gate_t idt[IDT_ENTRIES]; -idt_register_t idt_reg; + /* Functions implemented in idt.c */ diff --git a/include/isr.h b/include/isr.h index 7210576..ef183bd 100644 --- a/include/isr.h +++ b/include/isr.h @@ -38,7 +38,7 @@ void isr30(); void isr31(); -string exception_messages[32]; +//string exception_messages[32]; void isr_install(); diff --git a/include/screen.h b/include/screen.h index 504e120..a9bfa72 100644 --- a/include/screen.h +++ b/include/screen.h @@ -2,8 +2,8 @@ #define SCREEN_H #include "system.h" #include "string.h" -int cursorX , cursorY; -const uint8 sw ,sh ,sd ; +//int cursorX , cursorY; +//const uint8 sw ,sh ,sd ; //We define the screen width, height, and depth. void clearLine(uint8 from,uint8 to); From 6c82bcf10f875b5524196a26558f90ff07b6e248 Mon Sep 17 00:00:00 2001 From: goodosuser <36658549+goodosuser@users.noreply.github.com> Date: Thu, 26 Jan 2023 01:59:11 +0330 Subject: [PATCH 8/8] =?UTF-8?q?=D8=A7=D9=85=DA=A9=D8=A7=D9=86=20=D8=AD?= =?UTF-8?q?=D8=B0=D9=81=20=D9=BE=D9=88=D8=B4=D9=87=20=DA=A9=D8=A7=D9=85?= =?UTF-8?q?=D9=BE=D8=A7=DB=8C=D9=84=20=D8=B4=D8=AF=D9=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit پوشه obj هم قابل حذف شد در clear --- makefile | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/makefile b/makefile index a5399ad..c1c404b 100644 --- a/makefile +++ b/makefile @@ -8,17 +8,18 @@ EMULATOR = qemu-system-i386 EMULATOR_FLAGS = -kernel OBJS = obj/kasm.o obj/kc.o obj/idt.o obj/isr.o obj/kb.o obj/screen.o obj/string.o obj/system.o obj/util.o obj/shell.o -OUTPUT = iknow/boot/kernel.bin +OUTPUT = OSFS/boot/kernel.bin run: all $(EMULATOR) $(EMULATOR_FLAGS) $(OUTPUT) all:$(OBJS) - mkdir iknow/ -p - mkdir iknow/boot/ -p + mkdir OSFS/ -p + mkdir OSFS/boot/ -p $(LINKER) $(LDFLAGS) -o $(OUTPUT) $(OBJS) obj/kasm.o:src/kernel.asm + mkdir obj/ -p $(ASSEMBLER) $(ASFLAGS) -o obj/kasm.o src/kernel.asm obj/kc.o:src/kernel.c @@ -51,18 +52,19 @@ obj/shell.o:src/shell.c build:all #Activate the install xorr if you do not have it already installed #sudo apt-get install xorriso - rm iknow/boot/grub/ -r -f - mkdir iknow/boot/grub/ - echo set default=0 >> iknow/boot/grub/grub.cfg - echo set timeout=0 >> iknow/boot/grub/grub.cfg - echo menuentry "IKnow" { >> iknow/boot/grub/grub.cfg - echo set root='(hd96)' >> iknow/boot/grub/grub.cfg - echo multiboot /boot/kernel.bin >> iknow/boot/grub/grub.cfg - echo } >> iknow/boot/grub/grub.cfg + rm OSFS/boot/grub/ -r -f + mkdir OSFS/boot/grub/ + echo set default=0 >> OSFS/boot/grub/grub.cfg + echo set timeout=5 >> OSFS/boot/grub/grub.cfg + echo menuentry "Salam 0.0.10" { >> OSFS/boot/grub/grub.cfg + echo set root='(hd96)' >> OSFS/boot/grub/grub.cfg + echo multiboot /boot/kernel.bin >> OSFS/boot/grub/grub.cfg + echo } >> OSFS/boot/grub/grub.cfg - grub-mkrescue -o iknow.iso iknow/ + grub-mkrescue -o OSFS.iso OSFS/ clear: + rm -r -f obj/ rm -f obj/*.o - rm -r -f iknow/ + rm -r -f OSFS/