ccccourse / sp109b

系統程式 -- 109 下學期 (陳鍾誠課程的學生習題與報告)
0 stars 38 forks source link

2021/6/23 系統程式 簽到及發問區! #11

Open ccckmit opened 3 years ago

ccckmit commented 3 years ago

請寫『姓名:到』!

yichien1019 commented 3 years ago

110810519 劉怡謙 到

FUYUHSUAN commented 3 years ago

資工二 傅于軒 到

nohano1l commented 3 years ago

110810529 張佑豪 到

ukarara commented 3 years ago

110710516 蘇祐汝到

Chen-Chun commented 3 years ago

110810501 陳淳 到

JANZC2020 commented 3 years ago

資工四 110610557 詹子慶 到

AIONLin commented 3 years ago

110810521 林妍汝

ZYZatNQU commented 3 years ago

110610147 周育仲 到

laiy790 commented 3 years ago

110810523 陳艾葳 到!

yuexialiuye commented 3 years ago

110810517 黃羽溱 到!

boy20100619 commented 3 years ago

110810524梁齊恆 到!

07Nick-kciN21 commented 3 years ago

110810518徐仁鴻到

tenkai0812 commented 3 years ago

110810510 連思凱 到

110810550 commented 3 years ago

110810550 呂學誠 到

Deng-James commented 3 years ago

110810549 鄧筌祐 到

zxc21949049 commented 3 years ago

110810508 曾智暐

st741963456 commented 3 years ago

110810551 許嘉烜 到

victor0520 commented 3 years ago

110810532 汪建同 到

mark456tung commented 3 years ago

110810547 董長茂 到

ZKX-0326 commented 3 years ago

資工二 110810502 陳彥翔 到

hung890202 commented 3 years ago

110810533 洪嘉駿 到

kalen2019 commented 3 years ago

110610541 蔡文宏 到

www-abcdefg commented 3 years ago

110810534 柯泓吉 到

Pengbowei commented 3 years ago

110180531 彭柏瑋 到

NubletZ commented 3 years ago

110810538 魏美亞 到

ccckmit commented 3 years ago
guest@localhost:~/sp/10-riscv/04-xv6os/xv6$ make clean
rm -f *.tex *.dvi *.idx *.aux *.log *.ind *.ilg \
*/*.o */*.d */*.asm */*.sym \
user/initcode user/initcode.out kernel/kernel fs.img \
mkfs/mkfs .gdbinit \
        user/usys.S \
user/_cat user/_echo user/_forktest user/_grep user/_init user/_kill user/_ln user/_ls user/_mkdir user/_rm user/_sh user/_stressfs user/_usertests user/_grind user/_wc user/_zombie 
guest@localhost:~/sp/10-riscv/04-xv6os/xv6$ make
riscv64-unknown-elf-gcc    -c -o kernel/entry.o kernel/entry.S
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/start.o kernel/start.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/console.o kernel/console.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/printf.o kernel/printf.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/uart.o kernel/uart.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/kalloc.o kernel/kalloc.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/spinlock.o kernel/spinlock.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/string.o kernel/string.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/main.o kernel/main.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/vm.o kernel/vm.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/proc.o kernel/proc.c
riscv64-unknown-elf-gcc    -c -o kernel/swtch.o kernel/swtch.S
riscv64-unknown-elf-gcc    -c -o kernel/trampoline.o kernel/trampoline.S
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/trap.o kernel/trap.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/syscall.o kernel/syscall.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/sysproc.o kernel/sysproc.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/bio.o kernel/bio.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/fs.o kernel/fs.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/log.o kernel/log.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/sleeplock.o kernel/sleeplock.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/file.o kernel/file.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/pipe.o kernel/pipe.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/exec.o kernel/exec.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/sysfile.o kernel/sysfile.c
riscv64-unknown-elf-gcc    -c -o kernel/kernelvec.o kernel/kernelvec.S
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/plic.o kernel/plic.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o kernel/virtio_disk.o kernel/virtio_disk.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie -march=rv64g -nostdinc -I. -Ikernel -c user/initcode.S -o user/initcode.o
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e start -Ttext 0 -o user/initcode.out user/initcode.o
riscv64-unknown-elf-objcopy -S -O binary user/initcode.out user/initcode
riscv64-unknown-elf-objdump -S user/initcode.o > user/initcode.asm
riscv64-unknown-elf-ld -z max-page-size=4096 -T kernel/kernel.ld -o kernel/kernel kernel/entry.o kernel/start.o kernel/console.o kernel/printf.o kernel/uart.o kernel/kalloc.o kernel/spinlock.o kernel/string.o kernel/main.o kernel/vm.o kernel/proc.o kernel/swtch.o kernel/trampoline.o kernel/trap.o kernel/syscall.o kernel/sysproc.o kernel/bio.o kernel/fs.o kernel/log.o kernel/sleeplock.o kernel/file.o kernel/pipe.o kernel/exec.o kernel/sysfile.o kernel/kernelvec.o kernel/plic.o kernel/virtio_disk.o 
riscv64-unknown-elf-ld: warning: cannot find entry symbol _entry; defaulting to 0000000080000000
riscv64-unknown-elf-objdump -S kernel/kernel > kernel/kernel.asm
riscv64-unknown-elf-objdump -t kernel/kernel | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > kernel/kernel.sym
guest@localhost:~/sp/10-riscv/04-xv6os/xv6$ ls
kernel  LICENSE  Makefile  mkfs  README  README.md  user
guest@localhost:~/sp/10-riscv/04-xv6os/xv6$ make qemu
gcc -Werror -Wall -I. -o mkfs/mkfs mkfs/mkfs.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/ulib.o user/ulib.c
perl user/usys.pl > user/usys.S
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie -c -o user/usys.o user/usys.S
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/printf.o user/printf.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/umalloc.o user/umalloc.c
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/cat.o user/cat.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_cat user/cat.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_cat > user/cat.asm
riscv64-unknown-elf-objdump -t user/_cat | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/cat.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/echo.o user/echo.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_echo user/echo.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_echo > user/echo.asm
riscv64-unknown-elf-objdump -t user/_echo | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/echo.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/forktest.o user/forktest.c
# forktest has less library code linked in - needs to be small
# in order to be able to max out the proc table.
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_forktest user/forktest.o user/ulib.o user/usys.o
riscv64-unknown-elf-objdump -S user/_forktest > user/forktest.asm
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/grep.o user/grep.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_grep user/grep.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_grep > user/grep.asm
riscv64-unknown-elf-objdump -t user/_grep | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/grep.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/init.o user/init.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_init user/init.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_init > user/init.asm
riscv64-unknown-elf-objdump -t user/_init | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/init.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/kill.o user/kill.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_kill user/kill.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_kill > user/kill.asm
riscv64-unknown-elf-objdump -t user/_kill | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/kill.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/ln.o user/ln.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_ln user/ln.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_ln > user/ln.asm
riscv64-unknown-elf-objdump -t user/_ln | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/ln.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/ls.o user/ls.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_ls user/ls.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_ls > user/ls.asm
riscv64-unknown-elf-objdump -t user/_ls | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/ls.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/mkdir.o user/mkdir.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_mkdir user/mkdir.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_mkdir > user/mkdir.asm
riscv64-unknown-elf-objdump -t user/_mkdir | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/mkdir.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/rm.o user/rm.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_rm user/rm.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_rm > user/rm.asm
riscv64-unknown-elf-objdump -t user/_rm | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/rm.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/sh.o user/sh.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_sh user/sh.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_sh > user/sh.asm
riscv64-unknown-elf-objdump -t user/_sh | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/sh.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/stressfs.o user/stressfs.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_stressfs user/stressfs.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_stressfs > user/stressfs.asm
riscv64-unknown-elf-objdump -t user/_stressfs | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/stressfs.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/usertests.o user/usertests.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_usertests user/usertests.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_usertests > user/usertests.asm
riscv64-unknown-elf-objdump -t user/_usertests | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/usertests.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/grind.o user/grind.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_grind user/grind.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_grind > user/grind.asm
riscv64-unknown-elf-objdump -t user/_grind | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/grind.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/wc.o user/wc.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_wc user/wc.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_wc > user/wc.asm
riscv64-unknown-elf-objdump -t user/_wc | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/wc.sym
riscv64-unknown-elf-gcc -Wall -Werror -O -fno-omit-frame-pointer -ggdb -MD -mcmodel=medany -ffreestanding -fno-common -nostdlib -mno-relax -I. -fno-stack-protector -fno-pie -no-pie   -c -o user/zombie.o user/zombie.c
riscv64-unknown-elf-ld -z max-page-size=4096 -N -e main -Ttext 0 -o user/_zombie user/zombie.o user/ulib.o user/usys.o user/printf.o user/umalloc.o
riscv64-unknown-elf-objdump -S user/_zombie > user/zombie.asm
riscv64-unknown-elf-objdump -t user/_zombie | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$/d' > user/zombie.sym
mkfs/mkfs fs.img README user/_cat user/_echo user/_forktest user/_grep user/_init user/_kill user/_ln user/_ls user/_mkdir user/_rm user/_sh user/_stressfs user/_usertests user/_grind user/_wc user/_zombie 
nmeta 46 (boot, super, log blocks 30 inode blocks 13, bitmap blocks 1) blocks 954 total 1000
balloc: first 595 blocks have been allocated
balloc: write bitmap block at sector 45
qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 256M -smp 3 -nographic -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0

xv6 kernel is booting

hart 2 starting
hart 1 starting
init: starting sh
ccckmit commented 3 years ago
qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 256M -smp 3 -nographic -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0

xv6 kernel is booting

hart 2 starting
hart 1 starting
init: starting sh
$ ls
.              1 1 1024
..             1 1 1024
README         2 2 2058
cat            2 3 24000
echo           2 4 22832
forktest       2 5 13200
grep           2 6 27344
init           2 7 23928
kill           2 8 22800
ln             2 9 22752
ls             2 10 26232
mkdir          2 11 22912
rm             2 12 22896
sh             2 13 41784
stressfs       2 14 23904
usertests      2 15 153560
grind          2 16 38032
wc             2 17 25144
zombie         2 18 22304
console        3 19 0
$ mkdir ccc
$ ls
.              1 1 1024
..             1 1 1024
README         2 2 2058
cat            2 3 24000
echo           2 4 22832
forktest       2 5 13200
grep           2 6 27344
init           2 7 23928
kill           2 8 22800
ln             2 9 22752
ls             2 10 26232
mkdir          2 11 22912
rm             2 12 22896
sh             2 13 41784
stressfs       2 14 23904
usertests      2 15 153560
grind          2 16 38032
wc             2 17 25144
zombie         2 18 22304
console        3 19 0
ccc            1 20 32
$ echo hello
hello
$ echo hello world > hello.txt
exec echo failed
$ echo hello_world > hello.txt
$ ls
.              1 1 1024
..             1 1 1024
README         2 2 2058
cat            2 3 24000
echo           2 4 22832
forktest       2 5 13200
grep           2 6 27344
init           2 7 23928
kill           2 8 22800
ln             2 9 22752
ls             2 10 26232
mkdir          2 11 22912
rm             2 12 22896
sh             2 13 41784
stressfs       2 14 23904
usertests      2 15 153560
grind          2 16 38032
wc             2 17 25144
zombie         2 18 22304
console        3 19 0
ccc            1 20 32
hello.txt      2 21 12
$ cat hello.txt
hello_world
$ wc README
44 295 2058 README
$ grep README xv6
grep: cannot open xv6
$ grep xv6 README
exec grep failed
$       
exec  failed
$ grep xv6 README
xv6 is a re-implementation of Dennis Ritchie's and Ken Thompson's Unix
Version 6 (v6).  xv6 loosely follows the structure and style of v6,
xv6 is inspired by John Lions's Commentary on UNIX 6th Edition (Peer
The code in the files that constitute xv6 is
(kaashoek,rtm@mit.edu). The main purpose of xv6 is as a teaching
$ grep xv6 README > xv6.txt
$ ls
.              1 1 1024
..             1 1 1024
README         2 2 2058
cat            2 3 24000
echo           2 4 22832
forktest       2 5 13200
grep           2 6 27344
init           2 7 23928
kill           2 8 22800
ln             2 9 22752
ls             2 10 26232
mkdir          2 11 22912
rm             2 12 22896
sh             2 13 41784
stressfs       2 14 23904
usertests      2 15 153560
grind          2 16 38032
wc             2 17 25144
zombie         2 18 22304
console        3 19 0
ccc            1 20 32
hello.txt      2 21 12
xv6.txt        2 22 318
$ cat xv6.txt 
xv6 is a re-implementation of Dennis Ritchie's and Ken Thompson's Unix
Version 6 (v6).  xv6 loosely follows the structure and style of v6,
xv6 is inspired by John Lions's Commentary on UNIX 6th Edition (Peer
The code in the files that constitute xv6 is
(kaashoek,rtm@mit.edu). The main purpose of xv6 is as a teaching
$ cat xv6.txt > ccc/xv6.txt.bak
$ ls ccc
.              1 20 48
..             1 1 1024
xv6.txt.bak    2 23 318
ccckmit commented 3 years ago
$ cat xv6.txt > ccc/xv6.txt.bak
$ ls ccc
.              1 20 48
..             1 1 1024
xv6.txt.bak    2 23 318
$ ls
.              1 1 1024
..             1 1 1024
README         2 2 2058
cat            2 3 24000
echo           2 4 22832
forktest       2 5 13200
grep           2 6 27344
init           2 7 23928
kill           2 8 22800
ln             2 9 22752
ls             2 10 26232
mkdir          2 11 22912
rm             2 12 22896
sh             2 13 41784
stressfs       2 14 23904
usertests      2 15 153560
grind          2 16 38032
wc             2 17 25144
zombie         2 18 22304
console        3 19 0
ccc            1 20 48
hello.txt      2 21 12
xv6.txt        2 22 318
$ QEMU: Terminated // Ctrl - A - X
ccckmit commented 3 years ago

https://github.com/mit-pdos/xv6-riscv

  1. 進入點 -- https://github.com/mit-pdos/xv6-riscv/blob/riscv/kernel/entry.S
  2. C 語言入口 -- https://github.com/mit-pdos/xv6-riscv/blob/riscv/kernel/start.c
  3. start.c => https://github.com/mit-pdos/xv6-riscv/blob/riscv/kernel/main.c
  4. Scheduler -- https://github.com/mit-pdos/xv6-riscv/blob/riscv/kernel/proc.c
Chen-Chun commented 3 years ago

老師 我剛剛可以make qemu 但想要在會去就不可以

balloc: first 595 blocks have been allocated balloc: write bitmap block at sector 45 qemu-system-riscv64 -machine virt -bios none -kernel kernel/kernel -m 256M -smp 3 -nographic -drive file=fs.img,if=none,format=raw,id=x0 -device virtio-blk-device,drive=x0,bus=virtio-mmio-bus.0 qemu-system-riscv64: cannot set up guest memory 'riscv_virt_board.ram': Cannot allocate memory Makefile:164: recipe for target 'qemu' failed make: *** [qemu] Error 1 guest@localhost:~/sp/10-riscv/04-xv6os/xv6$

WWW-Jack commented 3 years ago

資工二 110810503 張凱証

ccckmit commented 3 years ago
mac020:pc mac020$ make clean
rm *.exe test
rm: *.exe: No such file or directory
make: *** [clean] Error 1
mac020:pc mac020$ make
gcc -I../../lib ../test.c board.c ../../lib/stdio.c -o test
mac020:pc mac020$ pwd
/Users/mac020/Desktop/ccc/sp/10-riscv/05-nix-v/01-puts/test/pc
mac020:pc mac020$ ./test
type some thing: xxx
xxx
you type: xxx
ccckmit commented 3 years ago
guest@localhost:~/sp/10-riscv/05-nix-v$ cd 01-puts/
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts$ ls
lib  os  README.md  test
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts$ cd test
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test$ cd pc
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test/pc$ make clean
rm *.exe test
rm: cannot remove '*.exe': No such file or directory
Makefile:11: recipe for target 'clean' failed
make: *** [clean] Error 1
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test/pc$ make
gcc -I../../lib ../test.c board.c ../../lib/stdio.c -o test
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test/pc$ ./test
type some thing: xxx
xxx
you type: xxx
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test/pc$ cd ..
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test$ cd qemu
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test/qemu$ ls
Makefile  os.elf  README.md
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test/qemu$ make cleanrm -f *.elf
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test/qemu$ make
riscv64-unknown-elf-gcc -I../../os -I../../lib -nostdlib -fno-builtin -mcmodel=medany -march=rv32ima -mabi=ilp32 -T ../../os/os.ld -o os.elf ../../os/start.s ../../os/os.c ../../os/board.c ../../lib/stdio.c ../test.c
guest@localhost:~/sp/10-riscv/05-nix-v/01-puts/test/qemu$ make qemu
Press Ctrl-A and then X to exit QEMU
qemu-system-riscv32 -nographic -smp 4 -machine virt -bios none -kernel os.elf
type some thing: xxx
you type: xxx
QEMU: Terminated
ccckmit commented 3 years ago
guest@localhost:~/sp/10-riscv/05-nix-v/02-printf/test/pc$ make
gcc -I../../lib ../test.c board.c ../../lib/stdio.c ../../lib/string.c -o test
guest@localhost:~/sp/10-riscv/05-nix-v/02-printf/test/pc$ ./test
hello ccc, you are 51 years old!
type some thing: xxx
xxx
you type: xxx
guest@localhost:~/sp/10-riscv/05-nix-v/02-printf/test/pc$ cd ..
guest@localhost:~/sp/10-riscv/05-nix-v/02-printf/test$ cd qemu
guest@localhost:~/sp/10-riscv/05-nix-v/02-printf/test/qemu$ ls
Makefile  os.elf  README.md
guest@localhost:~/sp/10-riscv/05-nix-v/02-printf/test/qemu$ make clean
rm -f *.elf
guest@localhost:~/sp/10-riscv/05-nix-v/02-printf/test/qemu$ make
riscv64-unknown-elf-gcc -I../../os -I../../lib -nostdlib -fno-builtin -mcmodel=medany -march=rv32ima -mabi=ilp32 -T ../../os/os.ld -o os.elf ../../os/start.s ../../os/os.c ../../os/board.c ../../lib/string.c ../../lib/stdio.c ../test.c
guest@localhost:~/sp/10-riscv/05-nix-v/02-printf/test/qemu$ make qemuPress Ctrl-A and then X to exit QEMU
qemu-system-riscv32 -nographic -smp 4 -machine virt -bios none -kernel os.elf
hello ccc, you are 51 years old!
type some thing: xxx
you type: xxx
QEMU: Terminated
ccckmit commented 3 years ago

休息到 3:10 之後用 Google Meet Q&A

ccckmit commented 3 years ago

Google Meet 開始 https://meet.google.com/odc-mawv-eon

ccckmit commented 3 years ago

RISC-V 規格書 -- https://riscv.org/technical/specifications/

各種板子的規格書 -- https://www.sifive.com/documentation