la32r_ans.zip
大小:2.54MB
价格:40积分
下载量:0
评分:
5.0
上传者:weixin_57973623
更新日期:2025-09-22

基于龙芯架构的操作系统ubuntu编译运行

资源文件列表(大概)

文件名
大小
la32r_ans/
-
la32r_ans/kernel.lds
1.12KB
la32r_ans/mk/
-
la32r_ans/mk/tests.mk
1.33KB
la32r_ans/mk/profiles.mk
501B
la32r_ans/tools/
-
la32r_ans/tools/bintoc
16.04KB
la32r_ans/tools/fsformat
17.27KB
la32r_ans/tools/bintoc.c
1.92KB
la32r_ans/tools/init-gen
577B
la32r_ans/tools/include.mk
193B
la32r_ans/tools/Makefile
116B
la32r_ans/tools/readelf/
-
la32r_ans/tools/readelf/readelf.c
1.73KB
la32r_ans/tools/readelf/hello.c
70B
la32r_ans/tools/readelf/elf.h
5.18KB
la32r_ans/tools/readelf/Makefile
161B
la32r_ans/tools/readelf/main.c
933B
la32r_ans/tools/readelf/.gitignore
14B
la32r_ans/tools/.gitignore
16B
la32r_ans/tools/all_one.c
197B
la32r_ans/tools/fsformat.c
8.54KB
la32r_ans/user/
-
la32r_ans/user/init.c
1.18KB
la32r_ans/user/testpipe.c
1.29KB
la32r_ans/user/num.c
686B
la32r_ans/user/icode.c
554B
la32r_ans/user/testptelibrary.c
1021B
la32r_ans/user/cat.c
586B
la32r_ans/user/tltest.c
230B
la32r_ans/user/include/
-
la32r_ans/user/include/fd.h
1.34KB
la32r_ans/user/include/fs.h
1.38KB
la32r_ans/user/include/fsreq.h
608B
la32r_ans/user/include/lib.h
4.56KB
la32r_ans/user/echo.c
303B
la32r_ans/user/testpiperace.c
1.74KB
la32r_ans/user/include.mk
860B
la32r_ans/user/lib/
-
la32r_ans/user/lib/libos.c
537B
la32r_ans/user/lib/syscall_lib.c
2.03KB
la32r_ans/user/lib/fork.c
5.79KB
la32r_ans/user/lib/fsipc.c
3.74KB
la32r_ans/user/lib/entry.S
187B
la32r_ans/user/lib/ipc.c
895B
la32r_ans/user/lib/spawn.c
6.59KB
la32r_ans/user/lib/pageref.c
611B
la32r_ans/user/lib/debugf.c
1.31KB
la32r_ans/user/lib/fprintf.c
754B
la32r_ans/user/lib/pipe.c
6.55KB
la32r_ans/user/lib/file.c
5.88KB
la32r_ans/user/lib/syscall_wrap.S
159B
la32r_ans/user/lib/wait.c
199B
la32r_ans/user/lib/console.c
1.43KB
la32r_ans/user/lib/fd.c
6.22KB
la32r_ans/user/lib/entry.o
9.58KB
la32r_ans/user/lib/syscall_wrap.o
1.54KB
la32r_ans/user/lib/debugf.o
12.24KB
la32r_ans/user/lib/libos.o
8.45KB
la32r_ans/user/lib/fork.o
15.19KB
la32r_ans/user/lib/syscall_lib.o
15.84KB
la32r_ans/user/lib/ipc.o
10.14KB
la32r_ans/user/lib/fd.o
20.82KB
la32r_ans/user/lib/pageref.o
7.32KB
la32r_ans/user/lib/file.o
18.16KB
la32r_ans/user/lib/fsipc.o
15.01KB
la32r_ans/user/lib/console.o
11.63KB
la32r_ans/user/lib/fprintf.o
9.31KB
la32r_ans/user/lib/wait.o
7.3KB
la32r_ans/user/lib/spawn.o
20.77KB
la32r_ans/user/lib/pipe.o
14.47KB
la32r_ans/user/sh.c
5.77KB
la32r_ans/user/fktest.c
340B
la32r_ans/user/pingpong.c
594B
la32r_ans/user/ls.c
1.49KB
la32r_ans/user/fstest.c
1.41KB
la32r_ans/user/devtst.c
2.59KB
la32r_ans/user/Makefile
480B
la32r_ans/user/idle.c
79B
la32r_ans/user/testarg.c
152B
la32r_ans/user/testbss.c
506B
la32r_ans/user/bare/
-
la32r_ans/user/bare/loop.S
380B
la32r_ans/user/bare/Makefile
429B
la32r_ans/user/bare/put_a.c
278B
la32r_ans/user/bare/overflow.S
313B
la32r_ans/user/bare/put_b.c
278B
la32r_ans/user/bare/loop.b
972B
la32r_ans/user/bare/loop.b.c
4.1KB
la32r_ans/user/bare/loop.x
3.02KB
la32r_ans/user/bare/overflow.b
992B
la32r_ans/user/bare/overflow.b.c
4.2KB
la32r_ans/user/bare/overflow.x
3.06KB
la32r_ans/user/bare/put_a.b
1.61KB
la32r_ans/user/bare/put_a.b.c
7.13KB
la32r_ans/user/bare/put_a.x
3.68KB
la32r_ans/user/bare/put_b.b
1.61KB
la32r_ans/user/bare/put_b.b.c
7.13KB
la32r_ans/user/bare/put_b.x
3.68KB
la32r_ans/user/testfdsharing.c
1.07KB
la32r_ans/user/halt.c
58B
la32r_ans/user/user.lds
395B
la32r_ans/user/pingpong.x
85.75KB
la32r_ans/user/tltest.b
83.58KB
la32r_ans/user/tltest.b.c
374.15KB
la32r_ans/user/tltest.x
85.64KB
la32r_ans/user/fktest.b
83.65KB
la32r_ans/user/fktest.b.c
374.43KB
la32r_ans/user/fktest.x
85.71KB
la32r_ans/user/pingpong.b
83.68KB
la32r_ans/user/pingpong.b.c
374.69KB
la32r_ans/user/testptelibrary.x
94.12KB
la32r_ans/user/devtst.b
88.13KB
la32r_ans/user/devtst.b.c
393.49KB
la32r_ans/user/devtst.x
90.19KB
la32r_ans/user/fstest.b
91.96KB
la32r_ans/user/fstest.b.c
408.51KB
la32r_ans/user/fstest.x
94.02KB
la32r_ans/user/icode.b
87.74KB
la32r_ans/user/icode.b.c
391.04KB
la32r_ans/user/icode.x
89.79KB
la32r_ans/user/testpipe.b
91.92KB
la32r_ans/user/testpipe.b.c
408.33KB
la32r_ans/user/testpipe.x
93.99KB
la32r_ans/user/testpiperace.b
87.9KB
la32r_ans/user/testpiperace.b.c
392.04KB
la32r_ans/user/testpiperace.x
90KB
la32r_ans/user/testptelibrary.b
92.01KB
la32r_ans/user/testptelibrary.b.c
408.46KB
la32r_ans/user/num.b
92.12KB
la32r_ans/user/echo.b
83.78KB
la32r_ans/user/halt.b
83.56KB
la32r_ans/user/ls.b
89.12KB
la32r_ans/user/sh.b
89.79KB
la32r_ans/user/cat.b
88.04KB
la32r_ans/user/testarg.b
83.71KB
la32r_ans/user/testbss.b
87.86KB
la32r_ans/user/testfdsharing.b
88.19KB
la32r_ans/user/init.b
96.3KB
la32r_ans/include/
-
la32r_ans/include/generated/
-
la32r_ans/include/generated/init_override.h
249B
la32r_ans/include/printk.h
929B
la32r_ans/include/print.h
1.26KB
la32r_ans/include/io.h
1.83KB
la32r_ans/include/string.h
317B
la32r_ans/include/bitops.h
777B
la32r_ans/include/cache.h
3.74KB
la32r_ans/include/syscall.h
423B
la32r_ans/include/machine.h
139B
la32r_ans/include/megasoc.h
521B
la32r_ans/include/error.h
1.46KB
la32r_ans/include/args.h
2.69KB
la32r_ans/include/stackframe.h
2.35KB
la32r_ans/include/elf.h
5.27KB
la32r_ans/include/types.h
855B
la32r_ans/include/kclock.h
630B
la32r_ans/include/asm/
-
la32r_ans/include/asm/regdef.h
1.8KB
la32r_ans/include/asm/sysdep.h
3.4KB
la32r_ans/include/asm/asm.h
1.26KB
la32r_ans/include/trap.h
1.69KB
la32r_ans/include/pmap.h
1.78KB
la32r_ans/include/mmu.h
8.93KB
la32r_ans/include/queue.h
13.38KB
la32r_ans/include/env.h
2.79KB
la32r_ans/include/sched.h
119B
la32r_ans/init/
-
la32r_ans/init/start.o
2.99KB
la32r_ans/init/init.o
8.04KB
la32r_ans/init/cache.o
10.14KB
la32r_ans/init/init.c
922B
la32r_ans/init/cache.c
1.31KB
la32r_ans/init/Makefile
190B
la32r_ans/init/start.S
1.15KB
la32r_ans/judges/
-
la32r_ans/judges/tools/
-
la32r_ans/judges/tools/wiki.py
3.13KB
la32r_ans/judges/tools/__pycache__/
-
la32r_ans/judges/tools/__pycache__/utils.cpython-310.pyc
1.16KB
la32r_ans/judges/tools/__pycache__/mostools.cpython-310.pyc
2.16KB
la32r_ans/judges/tools/__pycache__/publish.cpython-310.pyc
12.87KB
la32r_ans/judges/tools/echo-err.py
201B
la32r_ans/judges/tools/utils.py
990B
la32r_ans/judges/tools/full-test.py
3.07KB
la32r_ans/judges/tools/mostools.py
1.66KB
la32r_ans/judges/tools/mostd.py
241B
la32r_ans/judges/tools/guide-book.py
2.69KB
la32r_ans/judges/tools/judge.py
12.36KB
la32r_ans/judges/tools/deploy-cases.py
11.09KB
la32r_ans/judges/tools/publish.py
15.69KB
la32r_ans/judges/tools/utils.sh
181B
la32r_ans/judges/lab5_4/
-
la32r_ans/judges/lab5_4/standard
214B
la32r_ans/judges/full-test
18B
la32r_ans/judges/lab6_3/
-
la32r_ans/judges/lab6_3/standard
157B
la32r_ans/judges/lab6_3/run
288B
la32r_ans/judges/lab4_5/
-
la32r_ans/judges/lab4_5/standard
677B
la32r_ans/judges/lab5_2/
-
la32r_ans/judges/lab5_2/standard
195B
la32r_ans/judges/lab2_2/
-
la32r_ans/judges/lab2_2/standard
97B
la32r_ans/judges/lab6_1/
-
la32r_ans/judges/lab6_1/standard
163B
la32r_ans/judges/lab5_3/
-
la32r_ans/judges/lab5_3/standard
240B
la32r_ans/judges/lab3_1/
-
la32r_ans/judges/lab3_1/standard
72B
la32r_ans/judges/lab6_2/
-
la32r_ans/judges/lab6_2/standard
229B
la32r_ans/judges/lab6_2/run
339B
la32r_ans/judges/mos.yml
2.46KB
la32r_ans/judges/lab4_3/
-
la32r_ans/judges/lab4_3/standard
116B
la32r_ans/judges/lab4_2/
-
la32r_ans/judges/lab4_2/standard
365B
la32r_ans/judges/lab5_1/
-
la32r_ans/judges/lab5_1/standard
80B
la32r_ans/judges/lab5_1/run
191B
la32r_ans/judges/quartz-test
4.7KB
la32r_ans/judges/lab4_6/
-
la32r_ans/judges/lab4_6/standard
10B
la32r_ans/judges/judge-all
1.95KB
la32r_ans/judges/lab4_7/
-
la32r_ans/judges/lab4_7/standard
134B
la32r_ans/judges/judge-cg
2.06KB
la32r_ans/judges/lab4_4/
-
la32r_ans/judges/lab4_4/standard
172B
la32r_ans/judges/lab1_2/
-
la32r_ans/judges/lab1_2/standard
951B
la32r_ans/judges/check-style
2.91KB
la32r_ans/judges/judge
14B
la32r_ans/judges/lab4_1/
-
la32r_ans/judges/lab4_1/standard
25B
la32r_ans/judges/README.md
5.42KB
la32r_ans/judges/lab3_4/
-
la32r_ans/judges/lab3_4/standard
178B
la32r_ans/judges/lab1_1/
-
la32r_ans/judges/lab1_1/standard
287B
la32r_ans/judges/wiki
13B
la32r_ans/judges/pre-commit
38B
la32r_ans/judges/lab3_3/
-
la32r_ans/judges/lab3_3/standard
120B
la32r_ans/judges/problems.yml
5.02KB
la32r_ans/judges/lab2_1/
-
la32r_ans/judges/lab2_1/standard
163B
la32r_ans/judges/publish
16B
la32r_ans/judges/lab3_2/
-
la32r_ans/judges/lab3_2/standard
75B
la32r_ans/judges/lab5_5/
-
la32r_ans/judges/lab5_5/standard
1.21KB
la32r_ans/judges/lab6_4/
-
la32r_ans/judges/lab6_4/standard
139B
la32r_ans/judges/lab6_4/run
374B
la32r_ans/judges/lab2_3/
-
la32r_ans/judges/lab2_3/standard
66B
la32r_ans/include.mk
809B
la32r_ans/lib/
-
la32r_ans/lib/elfloader.o
8.83KB
la32r_ans/lib/print.o
15.17KB
la32r_ans/lib/string.o
7.34KB
la32r_ans/lib/elfloader.c
1.66KB
la32r_ans/lib/Makefile
235B
la32r_ans/lib/print.c
5.75KB
la32r_ans/lib/string.c
1.51KB
la32r_ans/kern/
-
la32r_ans/kern/machine.o
4.1KB
la32r_ans/kern/printk.o
6.88KB
la32r_ans/kern/panic.o
11.95KB
la32r_ans/kern/pmap.o
87.77KB
la32r_ans/kern/tlb_asm.o
2.54KB
la32r_ans/kern/tlbex.o
14.87KB
la32r_ans/kern/env.o
75.84KB
la32r_ans/kern/env_asm.o
1.64KB
la32r_ans/kern/sched.o
9.59KB
la32r_ans/kern/env.c
17.7KB
la32r_ans/kern/entry.S
315B
la32r_ans/kern/include.mk
374B
la32r_ans/kern/tlbex.c
2.35KB
la32r_ans/kern/traps.c
864B
la32r_ans/kern/printk.c
719B
la32r_ans/kern/env_asm.S
196B
la32r_ans/kern/tlb_asm.S
1.37KB
la32r_ans/kern/pmap.c
15.17KB
la32r_ans/kern/syscall_all.c
18.89KB
la32r_ans/kern/Makefile
212B
la32r_ans/kern/sched.c
1.79KB
la32r_ans/kern/panic.c
1.37KB
la32r_ans/kern/genex.S
808B
la32r_ans/kern/machine.c
1.44KB
la32r_ans/kern/entry.o
2.31KB
la32r_ans/kern/genex.o
2.54KB
la32r_ans/kern/traps.o
8.42KB
la32r_ans/kern/syscall_all.o
35.5KB
la32r_ans/Makefile
2.12KB
la32r_ans/.gitignore
130B
la32r_ans/fs/
-
la32r_ans/fs/serv.c
5.17KB
la32r_ans/fs/fs.c
19.88KB
la32r_ans/fs/serv.h
1KB
la32r_ans/fs/ide.c
1.88KB
la32r_ans/fs/Makefile
1.11KB
la32r_ans/fs/rootfs/
-
la32r_ans/fs/rootfs/motd
91B
la32r_ans/fs/rootfs/newmotd
40B
la32r_ans/fs/.gitignore
9B
la32r_ans/fs/check.c
1.98KB
la32r_ans/fs/check.x
114.93KB
la32r_ans/fs/fs.o
51.27KB
la32r_ans/fs/ide.o
8.35KB
la32r_ans/fs/serv.b
115.33KB
la32r_ans/fs/serv.b.c
515.14KB
la32r_ans/fs/serv.x
117.36KB
la32r_ans/fs/check.b
112.89KB
la32r_ans/fs/check.b.c
503.9KB
la32r_ans/tests/
-
la32r_ans/tests/lab5_4/
-
la32r_ans/tests/lab5_4/Makefile
48B
la32r_ans/tests/lab5_4/rootfs/
-
la32r_ans/tests/lab5_4/rootfs/motd
91B
la32r_ans/tests/lab5_4/rootfs/newmotd
40B
la32r_ans/tests/lab5_4/serv_check.c
4.59KB
la32r_ans/tests/lab5_4/kernel.mk
79B
la32r_ans/tests/lab4_5/
-
la32r_ans/tests/lab4_5/pingpong_strong.c
5.12KB
la32r_ans/tests/lab4_5/Makefile
52B
la32r_ans/tests/lab4_5/kernel.mk
32B
la32r_ans/tests/lab5_2/
-
la32r_ans/tests/lab5_2/Makefile
45B
la32r_ans/tests/lab5_2/rootfs/
-
la32r_ans/tests/lab5_2/rootfs/motd
91B
la32r_ans/tests/lab5_2/rootfs/newmotd
36B
la32r_ans/tests/lab5_2/fs_check.c
1.84KB
la32r_ans/tests/lab5_2/kernel.mk
68B
la32r_ans/tests/lab2_2/
-
la32r_ans/tests/lab2_2/init.c
4.42KB
la32r_ans/tests/lab2_2/kernel.mk
36B
la32r_ans/tests/lab6_1/
-
la32r_ans/tests/lab6_1/testpipe.c
1.29KB
la32r_ans/tests/lab6_1/testptelibrary.c
1022B
la32r_ans/tests/lab6_1/testpiperace.c
1.74KB
la32r_ans/tests/lab6_1/Makefile
77B
la32r_ans/tests/lab6_1/kernel.mk
59B
la32r_ans/tests/lab5_3/
-
la32r_ans/tests/lab5_3/mix_check.c
3.7KB
la32r_ans/tests/lab5_3/Makefile
46B
la32r_ans/tests/lab5_3/rootfs/
-
la32r_ans/tests/lab5_3/rootfs/motd
91B
la32r_ans/tests/lab5_3/rootfs/newmotd
36B
la32r_ans/tests/lab5_3/kernel.mk
69B
la32r_ans/tests/lab3_1/
-
la32r_ans/tests/lab3_1/init.c
161B
la32r_ans/tests/lab3_1/kernel.mk
36B
la32r_ans/tests/lab6_2/
-
la32r_ans/tests/lab6_2/fs/
-
la32r_ans/tests/lab6_2/fs/testshell.sh
12B
la32r_ans/tests/lab6_2/fs/script
60B
la32r_ans/tests/lab6_2/fs/lorem
106B
la32r_ans/tests/lab6_2/fs/aaa.txt
-
la32r_ans/tests/lab6_2/kernel.mk
76B
la32r_ans/tests/lab4_3/
-
la32r_ans/tests/lab4_3/ppa.c
694B
la32r_ans/tests/lab4_3/Makefile
40B
la32r_ans/tests/lab4_3/kernel.mk
25B
la32r_ans/tests/lab4_2/
-
la32r_ans/tests/lab4_2/init.c
344B
la32r_ans/tests/lab4_2/ppc.c
42B
la32r_ans/tests/lab4_2/Makefile
46B
la32r_ans/tests/lab4_2/kernel.mk
36B
la32r_ans/tests/lab4_2/ppb.c
2.66KB
la32r_ans/tests/include.mk
722B
la32r_ans/tests/lab5_1/
-
la32r_ans/tests/lab5_1/dev_check.c
3.72KB
la32r_ans/tests/lab5_1/Makefile
46B
la32r_ans/tests/lab5_1/kernel.mk
23B
la32r_ans/tests/lab4_6/
-
la32r_ans/tests/lab4_6/ppa.c
2.54KB
la32r_ans/tests/lab4_6/ppa.h
165B
la32r_ans/tests/lab4_6/Makefile
40B
la32r_ans/tests/lab4_6/kernel.mk
17B
la32r_ans/tests/lab4_7/
-
la32r_ans/tests/lab4_7/fktest.c
270B
la32r_ans/tests/lab4_7/Makefile
43B
la32r_ans/tests/lab4_7/kernel.mk
20B
la32r_ans/tests/lab4_4/
-
la32r_ans/tests/lab4_4/fktest.c
966B
la32r_ans/tests/lab4_4/Makefile
43B
la32r_ans/tests/lab4_4/kernel.mk
20B
la32r_ans/tests/lab1_2/
-
la32r_ans/tests/lab1_2/init.c
2.29KB
la32r_ans/tests/lab1_2/kernel.mk
36B
la32r_ans/tests/lab4_1/
-
la32r_ans/tests/lab4_1/init.c
167B
la32r_ans/tests/lab4_1/kernel.mk
36B
la32r_ans/tests/lab3_4/
-
la32r_ans/tests/lab3_4/entry.S
113B
la32r_ans/tests/lab3_4/Makefile
497B
la32r_ans/tests/lab3_4/pre_env_run.c
317B
la32r_ans/tests/lab3_4/kernel.mk
93B
la32r_ans/tests/lab3_4/quick_sort.c
9.58KB
la32r_ans/tests/lab3_3/
-
la32r_ans/tests/lab3_3/loop.S
44B
la32r_ans/tests/lab3_3/Makefile
483B
la32r_ans/tests/lab3_3/pre_env_run.c
556B
la32r_ans/tests/lab3_3/kernel.mk
70B
la32r_ans/tests/lab2_1/
-
la32r_ans/tests/lab2_1/init.c
2.56KB
la32r_ans/tests/lab2_1/kernel.mk
36B
la32r_ans/tests/lab3_2/
-
la32r_ans/tests/lab3_2/icode_check.lds
383B
la32r_ans/tests/lab3_2/entry.S
77B
la32r_ans/tests/lab3_2/elf-test-gen.py
1.21KB
la32r_ans/tests/lab3_2/elf-test-common.c
1.26KB
la32r_ans/tests/lab3_2/Makefile
555B
la32r_ans/tests/lab3_2/icode_check.c
613B
la32r_ans/tests/lab3_2/.gitignore
7B
la32r_ans/tests/lab3_2/kernel.mk
36B
la32r_ans/tests/lab5_5/
-
la32r_ans/tests/lab5_5/Makefile
53B
la32r_ans/tests/lab5_5/fs_strong_check.c
3.62KB
la32r_ans/tests/lab5_5/rootfs/
-
la32r_ans/tests/lab5_5/rootfs/motd
-
la32r_ans/tests/lab5_5/rootfs/etc/
-
la32r_ans/tests/lab5_5/rootfs/etc/profile
-
la32r_ans/tests/lab5_5/rootfs/newmotd
-
la32r_ans/tests/lab5_5/rootfs/bin/
-
la32r_ans/tests/lab5_5/rootfs/bin/test
-
la32r_ans/tests/lab5_5/.gitignore
15B
la32r_ans/tests/lab5_5/kernel.mk
84B
la32r_ans/tests/lab2_3/
-
la32r_ans/tests/lab2_3/init.c
1.85KB
la32r_ans/tests/lab2_3/kernel.mk
36B
la32r_ans/target/
-
la32r_ans/target/mos
1.09MB
la32r_ans/target/fs.img
4MB
la32r_ans/target/empty.img
4MB

资源内容介绍

MOS操作系统
# 评测说明本目录维护用于 MOS 的自动部署和评测工具,以及各课下测试点的评测数据。## 评测数据评测数据用于定义一个测试点的评测逻辑,由 MOS 评测程序 [judges/tools/judge.py](judges/tools/judge.py) 解析。评测数据位于本仓库和 [quizs](http://git.os.buaa.edu.cn/star_os/quizs) 仓库的 `judges/<case>` 或 `judges/<case>.py`,对应的测试目录通常为 `tests/<case>`,其中 `<case>` 需匹配正则表达式 `lab[1-6]_[a-z0-9_]+`(对于课下测试则为 `lab[1-6]_(\d+)`,`(\d+)` 部分从 `1` 开始编号)。如果 `judges/<case>` 是目录,评测程序会识别其中的下列文件:- `standard` :定义期望输出或自定义评测逻辑的文本文件,用于检查被测程序的输出(下称**学生输出**); - 若该文件不存在,则不会检查学生输出:只要被测程序以返回值 0 退出,即视为评测通过。- `run` :定义被测程序运行方式的**可执行文件**,用于代替被测程序的运行命令。 - 若该文件不存在,则使用 `make run` 运行被测程序。如果 `judges/<case>` 是普通文件,或仅存在 `judges/<case>.py`,评测程序会将其视为以上的 `standard` 文件。### `standard` 文件以下介绍 `standard` 文件的内容规范。一个 `standard` 文件可以包含一个或多个 Case,各 Case 间使用一行 `:` 分隔,每个 Case 需要包含一个或多个**标准文本行**,表示期望学生输出中包含的文本。评测学生输出时,各 Case 内的标准文本行必须依次出现,不同 Case 内的文本行可以任意顺序出现,类似多个并发的用户进程的输出行为。学生输出的每一行至多匹配一个标准文本行。以标点符号或 `def `、`class ` 或 `from ` 开头的标准文本行需要被括在一对单引号之间,其中嵌套的单引号需要使用 `\'` 转义。其他情况下,是否使用单引号均可。如果将标准文本行括在一对双引号之间,则该标准文本行是**宽松的**。对于宽松的标准文本行,允许在学生输出的任意部分进行匹配;对于非宽松的标准文本行,只会在学生输出的**可信部分**中进行匹配。可信部分包括:- 测试目录(`tests/lab<case>`)下的用户程序通过 `debugf`、`user_panic`、`user_halt` 进行的输出;- 测试目录定义的 `init-override`(通常为 `tests/lab<case>/init.c`)中的代码通过 `printk`、`panic` 进行的输出。由于评测前会将测试点提供的测试目录覆盖到 `tests` 下,上述的可信部分一定是由测试程序本身输出的,因此在期望输出公开后,这一机制可以防止学生在被测程序中伪造输出,欺骗评测程序,其具体实现可见 `tools/preload` 目录和 `mk/tests.mk` 中的构建过程。课上测试点与课下测试不同,不会向学生下发实际评测使用的所有测试目录,所以评测数据需要支持自定义的评测规则和反馈信息,以帮助学生判断问题。目前的设计如下:- 支持在 Case 的顶部使用 Python 的 `def` 语法定义该 Case 的初始化函数,该函数将在评测前**解析该 Case 时**被调用,不传入任何参数。- 初始化函数中的 `def` 行可省略,省略后将被视为 `def _():` ,但函数体中必须使用 4 个空格缩进。- 定义初始化函数后,可以省略 Case 前的分隔行 `:`,同时函数的名称将被作为该 Case 的 id。若函数名称为 `_` 或未定义初始化函数,其 id 将被自动生成。- 初始化函数中可访问这些接口(名称): - `name(s: str)` :可设置当前 Case 的名称。 - 对于定义了名称的 Case,评测结束后,将会向学生(stderr)反馈它们的名称和评测结果。 - `score(s: str)` :可设置当前 Case 的得分。 - 目前这个得分并没有被使用,可能需要等待 http://git.os.buaa.edu.cn/osome/quartz-judger/-/issues/30 完成后使用新的接口向 quartz 反馈测试点(对应一个 OSome 定义的 case)的得分。 - `post(f: Callable[[str]])` :可设置当前 Case 的后处理函数(post hook),该 hook 将在**评测结束后**被调用,传入的参数是完整学生输出中的**可信部分**。 - `permissive()`:可设置当前 Case 为宽松模式,即将其中所有标准文本行都视为**宽松的**,无论是否使用了双引号。 - `self`: 当前 Case 对应的 Python 对象,可以手动设置其他属性,如动态生成其标准文本行列表 `self.lines: list[str]` 。 - `utils.py` 中定义的输出函数,如 `red`、`green`、`bred`、`bgreen`。以 `b` 开头的函数会向 stderr 输出,可用于向学生反馈信息。- 在 post hook 函数中,除了上述接口和传入的可信输出 `str`,还可以访问以下接口: - `cases: dict[str, Case]` :所有 `Case` 的字典,将 Case 的 id 对应到其 `Case` 对象。 - `self.passed: bool` :当前 Case 是否通过(学生输出中依次出现了所有的标准文本行),可以通过对该属性赋值来强制设置当前 Case 的评测结果。- `judges/tools` 目录下提供了一个 `mostd.py`,定义了以上接口名称。可以在 `standard` 文件顶部 `from mostd import *`,使其符合 Python 脚本的语法,便于编辑器的语法高亮和代码提示。- 以 `#` 开头的行、空行和 `from mostd import *` 行会被忽略,不会被解析为标准文本行。

用户评论 (0)

发表评论

captcha

相关资源

简易java开源订销管理系统.zip

这是“简易 java 开源订销管理系统”,仅供学习参考,请勿商用。

3.37MB11积分

凯撒java版SaaS-OA协同办公软件.zip

这是“凯撒 java 版 SaaS OA 协同办公软件”,仅供学习参考,请勿商用。

7.02MB10积分

Node+Express+MongoDB+Mongoose打造属于自己的个人博客系统,前后端分离

这是一个开源博客系统,由前台、后台和服务端三部分组成。此模板的功能相对完整,包含了一个博客所需的主要功能。 1.博客前台使用框架:Vue2 + Vue-Cli + Vuex + View Design,功能模块包括首页、项目经历、我的博客、关于我、友情链接、banner广告位、音乐播放器。博客前台页面简洁,可以很好地展现一个人的整体面貌。 2.博客后台使用框架:Vue3 + Vue-Cli + Vuex + Element Plus,功能模块有注册、登录、首页、用户管理、资讯管理、产品管理、友情链接和个人中心。资讯模块包含了常用的图片、相册和富文本编辑器。 3.博客服务端使用框架:Node + Express + MongoDB + Mongoose。服务端实现功能包括注册、登录、加密、会话控制、数据的增删改查、批量删除、图片(批量)上传、字段校验、响应拦截、错误处理、关联查询等,详细说明可查看代码的README文件。服务端实现了服务端开发的大多数基本功能。

739.98KB15积分

并发笔记啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

并发笔记

14.67MB18积分