From bc19108eae8d6280704ea757e2049eb838fa07a7 Mon Sep 17 00:00:00 2001 From: AceVest Date: Wed, 9 Jul 2014 23:13:50 +0800 Subject: [PATCH] update bin/Makefile --- bin/Makefile | 28 +++++++++++++---------- bin/hello | Bin 0 -> 17211 bytes bin/{helloworld.c => hello.c} | 4 ++-- bin/helloworld.S | 30 ------------------------ bin/shell | Bin 0 -> 17296 bytes bin/shell.S | 29 ----------------------- bin/shell.c | 42 +++------------------------------- drivers/blk_rw.c | 2 +- drivers/ide.c | 3 +-- fs/ext2.c | 8 +++---- {lib => kernel}/assert.c | 0 kernel/cpuid.c | 2 +- kernel/setup.c | 5 ++-- lib/keyboard.c | 2 ++ lib/libc.S | 22 ++++++++++++++++++ scripts/copy.sh | 4 ++-- 16 files changed, 56 insertions(+), 125 deletions(-) create mode 100755 bin/hello rename bin/{helloworld.c => hello.c} (93%) delete mode 100644 bin/helloworld.S create mode 100755 bin/shell delete mode 100644 bin/shell.S rename {lib => kernel}/assert.c (100%) create mode 100644 lib/libc.S diff --git a/bin/Makefile b/bin/Makefile index a64df42..848260c 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -1,20 +1,24 @@ CC = gcc +LDFLAG = -e _start CFLAGS = -c -I../include -fno-builtin -LDOBJS = ../lib/errno.c.o ../lib/fork.c.o ../lib/lib.c.o ../lib/open.c.o \ - ../lib/stat.c.o ../lib/string.c.o ../lib/write.c.o ../lib/exec.c.o \ - ../lib/vsprintf.c.o ../lib/read.c.o \ - ../lib/keyboard.c.o ../lib/exit.c.o ../lib/syscall.c.o -all: - gcc -c shell.S -o shell.S.c.o - gcc $(CFLAGS) shell.c -o shell.c.o - ld $(LDOBJS) shell.S.c.o shell.c.o -o sh - gcc -c helloworld.S -o helloworld.S.c.o - gcc $(CFLAGS) helloworld.c -o helloworld.c.o - ld $(LDOBJS) helloworld.S.c.o helloworld.c.o -o hw +LIBC_DIRS = ../lib +LIBC_SRCS := $(foreach DIR, $(LIBC_DIRS), $(wildcard $(DIR)/*.[cS])) +LIBC_OBJS := $(patsubst %,%.o,$(LIBC_SRCS)) +BINS := shell hello + +all:$(BINS) + +shell: shell.o + gcc $(CFLAGS) shell.c -o shell.o + ld ${LIBC_OBJS} shell.o -o shell +hello: hello.o + gcc $(CFLAGS) hello.c -o hello.o + ld $(LIBC_OBJS) hello.o -o hello + .PHONY:clean clean: - rm sh hw helloworld.c.o -f + rm $(BINS) *.o -f .PHONY:c c: make clean diff --git a/bin/hello b/bin/hello new file mode 100755 index 0000000000000000000000000000000000000000..9df53d89f0491da600e6835ba85c0bafe8bbc43d GIT binary patch literal 17211 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 literal 0 HcmV?d00001 diff --git a/bin/helloworld.c b/bin/hello.c similarity index 93% rename from bin/helloworld.c rename to bin/hello.c index 8b4e9c8..917720f 100644 --- a/bin/helloworld.c +++ b/bin/hello.c @@ -1,6 +1,6 @@ /* *-------------------------------------------------------------------------- - * File Name: helloworld.c + * File Name: hello.c * * Author: Zhao Yanbai [zhaoyanbai@126.com] * Tue Feb 23 22:44:40 2010 @@ -12,7 +12,7 @@ #include #include -int hw() +int main() { printf("hello world\n"); //syscall3(SYSC_WRITE, 0, "fuck", 5); diff --git a/bin/helloworld.S b/bin/helloworld.S deleted file mode 100644 index 55c1ab8..0000000 --- a/bin/helloworld.S +++ /dev/null @@ -1,30 +0,0 @@ -/* - *-------------------------------------------------------------------------- - * File Name: helloworld.S - * - * Author: Zhao Yanbai [zhaoyanbai@126.com] - * Tue Feb 23 20:15:27 2010 - * - * Description: none - * - *-------------------------------------------------------------------------- - */ -#define ASM -#include -.global _start -_start: - nop - nop - nop - #xchg %bx, %bx -loop: - #jmp loop - call hw - - nop - nop - nop - nop - nop -die: - jmp die diff --git a/bin/shell b/bin/shell new file mode 100755 index 0000000000000000000000000000000000000000..2be5a31a4b149db06511776db49fd4aacaafa143 GIT binary patch literal 17296 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

N!A{Nhn$M13>d66t7H>SR~8c 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 literal 0 HcmV?d00001 diff --git a/bin/shell.S b/bin/shell.S deleted file mode 100644 index 93330fc..0000000 --- a/bin/shell.S +++ /dev/null @@ -1,29 +0,0 @@ -/* - *-------------------------------------------------------------------------- - * File Name: shell.S - * - * Author: Zhao Yanbai [zhaoyanbai@126.com] - * Wed Feb 24 17:47:27 2010 - * - * Description: none - * - *-------------------------------------------------------------------------- - */ -.global _start -_start: - nop - nop - nop -loop: - #jmp loop - call shell - nop - nop - nop - nop - nop - nop - nop - nop -die: - jmp die diff --git a/bin/shell.c b/bin/shell.c index 3883d96..4389260 100644 --- a/bin/shell.c +++ b/bin/shell.c @@ -17,6 +17,7 @@ char cmd[CMD_SIZE]; void get_cmd() { +#if 0 int i; i=0; @@ -72,9 +73,10 @@ reinput: } cmd[CMD_SIZE-1] = 0; +#endif } -int shell() +int main() { char buf[CMD_SIZE]; @@ -113,41 +115,3 @@ int shell() return 0; } - -#if 0 -int shell() -{ - pid_t pid; - - pid = fork(); - - if(pid<0) - { - printf("shit happens in shell\n"); - while(1); - } - else if(pid == 0) - { - execv("/bin/hw", NULL); - } - else - { - - while(1) - { - int k; - char ch; - extern char ParseKbdInput(int k); - extern unsigned char read_kbd(); - //asm("xchg %bx, %bx"); - k = read_kbd(); - ch = ParseKbdInput(k); - if(ch != -1) - printf("<%c>",ch); - } - } - - - return 0; -} -#endif diff --git a/drivers/blk_rw.c b/drivers/blk_rw.c index 2b7865f..1441f59 100644 --- a/drivers/blk_rw.c +++ b/drivers/blk_rw.c @@ -27,7 +27,7 @@ void blk_rw(dev_t dev, u64_t offset, u32_t size, char *buf) u32_t scnt = size / SECT_SIZE; - printk("%s lba %u scnt %u\n", __func__, (u32_t)lba, scnt); + printd("%s lba %u scnt %u\n", __func__, (u32_t)lba, scnt); ide_do_read(lba, scnt, buf); } diff --git a/drivers/ide.c b/drivers/ide.c index 1e4be54..3d2f6cc 100644 --- a/drivers/ide.c +++ b/drivers/ide.c @@ -80,7 +80,6 @@ void ide_printl() void ide_cmd_out(dev_t dev, u32 sect_cnt, u64 sect_nr, u32 cmd) { - printk("sect_cnt %u sect_nr %u \n", sect_cnt, (u32)sect_nr); drv.pio_cnt++; drv.read_mode = cmd; @@ -230,7 +229,7 @@ void init_pci_controller(unsigned int classcode) void ide_default_intr() { - printk("%s\n", __func__); + printd("%s\n", __func__); u8_t status = inb(REG_STATUS(0)); drv.irq_cnt++; diff --git a/fs/ext2.c b/fs/ext2.c index ce08dec..45cf95a 100644 --- a/fs/ext2.c +++ b/fs/ext2.c @@ -26,8 +26,6 @@ void ext2_setup_fs() if(buf == 0) panic("out of memory"); - printk("EXT2_BLOCK_SIZE %u\n", EXT2_BLOCK_SIZE); - BLKRW(EXT2_SB_OFFSET, 1, buf); memcpy(EXT2_SB, buf, sizeof(*(EXT2_SB))); @@ -39,11 +37,11 @@ void ext2_setup_fs() } printk("Ext2 File System Information:\n"); - printk("inodes cnt %u blocks cnt %u free blocks %u free inodes %u\n", + printk(" inodes %u blocks %u free blocks %u free inodes %u\n", EXT2_SB->s_inodes_count, EXT2_SB->s_blocks_count, EXT2_SB->s_free_blocks_count, EXT2_SB->s_free_inodes_count); - printk("block size %u log block size %u first data block %u\n", + printk(" block size %u log block size %u first data block %u\n", EXT2_BLOCK_SIZE, EXT2_SB->s_log_block_size, EXT2_SB->s_first_data_block); - printk("blocks per group %u inodes per group %u\n", EXT2_SB->s_blocks_per_group, EXT2_SB->s_inodes_per_group); + printk(" blocks per group %u inodes per group %u\n", EXT2_SB->s_blocks_per_group, EXT2_SB->s_inodes_per_group); } diff --git a/lib/assert.c b/kernel/assert.c similarity index 100% rename from lib/assert.c rename to kernel/assert.c diff --git a/kernel/cpuid.c b/kernel/cpuid.c index 383cb81..6d94a79 100644 --- a/kernel/cpuid.c +++ b/kernel/cpuid.c @@ -71,7 +71,7 @@ void detect_cpu() memcpy(pbs + 40 , &r.ecx, 4); memcpy(pbs + 44 , &r.edx, 4); pbs[48] = 0; - printk("Model Name: %s",pbs); + printk("%s",pbs); /**********************Get Number of Processors********************/ int pn;//number of logical processors in one physical processor diff --git a/kernel/setup.c b/kernel/setup.c index e0239e3..afeef42 100644 --- a/kernel/setup.c +++ b/kernel/setup.c @@ -54,6 +54,7 @@ const char *version = " by " BUIDER; +int main() { } // for libc void setup_kernel() { @@ -92,8 +93,8 @@ void setup_kernel() detect_cpu(); - printk("%s\n", version); - setup_fs(); + + printk("%s\n", version); } diff --git a/lib/keyboard.c b/lib/keyboard.c index 0a3a896..c9043aa 100644 --- a/lib/keyboard.c +++ b/lib/keyboard.c @@ -13,6 +13,7 @@ * *-------------------------------------------------------------------------- */ +#if 0 #include #include #include @@ -227,3 +228,4 @@ End: return -1; } +#endif diff --git a/lib/libc.S b/lib/libc.S new file mode 100644 index 0000000..0d3c9af --- /dev/null +++ b/lib/libc.S @@ -0,0 +1,22 @@ +.extern main +.global _start + +_start: + nop + nop + nop + nop + nop + nop + + call main + + nop + nop + nop + nop + nop + nop + nop +1: + jmp 1b diff --git a/scripts/copy.sh b/scripts/copy.sh index efdd1db..44f2f07 100755 --- a/scripts/copy.sh +++ b/scripts/copy.sh @@ -16,8 +16,8 @@ cp scripts/grub.cfg /mnt/boot/grub2/ md5sum /mnt/boot/Kernel mkdir -p /mnt/bin/ -cp ./bin/hw /mnt/bin/ -cp ./bin/sh /mnt/bin/ +cp ./bin/shell /mnt/bin/ +cp ./bin/hello /mnt/bin/ umount /mnt/ -- 2.47.0