From 5bc53ddf424359d5d22f5b621a54ae46cc84971d Mon Sep 17 00:00:00 2001
From: Godones <1925466036@qq.com>
Date: Mon, 24 Jul 2023 10:27:57 +0800
Subject: [PATCH 01/17] fix: update makefile
---
Makefile | 17 ++-
kernel/src/fs/poll.rs | 2 +-
kernel/src/syscall.rs | 268 +++++++++++++++++++++---------------------
sdcard/bin/true | Bin 0 -> 4952 bytes
4 files changed, 143 insertions(+), 144 deletions(-)
create mode 100755 sdcard/bin/true
diff --git a/Makefile b/Makefile
index 1d61963d..25f45554 100644
--- a/Makefile
+++ b/Makefile
@@ -78,9 +78,9 @@ trace_info:
user:
@cd apps && make all
-sdcard:$(img) user testelf
+sdcard:$(img) testelf user
-run:install compile img
+run:install compile sdcard
@echo qemu booot $(SMP)
$(call boot_qemu)
@#rm ./kernel-qemu
@@ -113,16 +113,16 @@ test:install compile $(img) SecondFile testelf
$(call boot_qemu)
testelf:
- @sudo mkdir /fat/ostest
- @sudo cp test/* /fat/ostest -r
- @sudo mkdir /fat/libc
+ @#sudo mkdir /fat/ostest
+ @#sudo cp test/* /fat/ostest -r
+ @#sudo mkdir /fat/libc
if [ -d "sdcard" ]; then \
sudo cp sdcard/* /fat -r; \
sudo cp sdcard/* /fat/bin -r;\
fi
- if [ -d "tools/siglibc" ]; then \
- sudo cp tools/siglibc/build/* /fat/libc -r; \
- fi
+ #if [ -d "tools/siglibc" ]; then \
+# sudo cp tools/siglibc/build/* /fat/libc -r; \
+# fi
@sync
dtb:
@@ -157,7 +157,6 @@ fat32:
@sudo cp tools/f1.txt /fat
@sudo mkdir /fat/folder
@sudo cp tools/f1.txt /fat/folder
- @sudo mkdir /fat/bin
@sync
diff --git a/kernel/src/fs/poll.rs b/kernel/src/fs/poll.rs
index 1faf05df..471b2edc 100644
--- a/kernel/src/fs/poll.rs
+++ b/kernel/src/fs/poll.rs
@@ -8,7 +8,7 @@ use crate::fs::file::FilePollExt;
use crate::task::{current_task, do_suspend};
use crate::timer::TimeSpec;
-///# Reference:https://man7.org/linux/man-pages/man2/ppoll.2.html
+/// Reference:https://man7.org/linux/man-pages/man2/ppoll.2.html
#[syscall_func(73)]
pub fn ppoll(fds_ptr: usize, nfds: usize, time: usize, mask: usize) -> isize {
assert_eq!(time, 0);
diff --git a/kernel/src/syscall.rs b/kernel/src/syscall.rs
index 556b834d..74bbb101 100644
--- a/kernel/src/syscall.rs
+++ b/kernel/src/syscall.rs
@@ -1,141 +1,141 @@
use spin::Once;
use syscall_table::{register_syscall, Table};
static SYSCALL_TABLE: Once
= Once::new();
-pub fn register_all_syscall() {
- let mut table = Table::new();
- register_syscall!(
- table,
- (160, uname),
- (198, socket),
- (200, bind),
- (201, listening),
- (202, accept),
- (203, connect),
- (204, getsockname),
- (206, sendto),
- (207, recvfrom),
- (208, setsockopt),
- (209, getsockopt),
- (210, shutdown),
- (199, socket_pair),
- (2003, system_shutdown),
- (169, get_time_of_day),
- (153, times),
- (101, nanosleep),
- (113, clock_get_time),
- (102, getitimer),
- (103, setitimer),
- (114, clock_getres),
- (115, clock_nanosleep),
- (116, syslog),
- (179, sys_info),
- (118, sched_setparam),
- (121, sched_getparam),
- (122, sched_setaffinity),
- (123, sched_getaffinity),
- (120, sched_getscheduler),
- (119, sched_setscheduler),
- (165, getrusage),
- (2002, sys_event_get),
- (2000, sys_framebuffer),
- (2001, sys_framebuffer_flush),
- (59, sys_pipe),
- (23, sys_dup),
- (24, sys_dup2),
- (98, futex),
- (99, set_robust_list),
- (100, get_robust_list),
- (134, sigaction),
- (137, sigtimewait),
- (135, sigprocmask),
- (129, kill),
- (130, tkill),
- (139, signal_return),
- (133, sigsuspend),
- (194, shmget),
- (196, shmat),
- (195, shmctl),
- (93, do_exit),
- (94, exit_group),
- (124, do_suspend),
- (154, set_pgid),
- (155, git_pgid),
- (172, get_pid),
- (173, get_ppid),
- (174, getuid),
- (175, geteuid),
- (176, getgid),
- (177, getegid),
- (178, get_tid),
- (220, clone),
- (221, do_exec),
- (260, wait4),
- (214, do_brk),
- (96, set_tid_address),
- (261, prlimit64),
- (40, sys_mount),
- (39, sys_umount),
- (56, sys_openat),
- (57, sys_close),
- (61, sys_getdents),
- (45, sys_truncate),
- (46, sys_ftruncate),
- (63, sys_read),
- (64, sys_write),
- (17, sys_getcwd),
- (49, sys_chdir),
- (83, sys_mkdir),
- (62, sys_lseek),
- (80, sys_fstat),
- (37, sys_linkat),
- (35, sys_unlinkat),
- (36, sys_symlinkat),
- (78, sys_readlinkat),
- (79, sys_fstateat),
- (44, sys_fstatfs),
- (43, sys_statfs),
- (276, sys_renameat),
- (34, sys_mkdirat),
- (5, sys_setxattr),
- (6, sys_lsetxattr),
- (7, sys_fsetxattr),
- (8, sys_getxattr),
- (9, sys_lgetxattr),
- (10, sys_fgetxattr),
- (11, sys_listxattr),
- (12, sys_llistxattr),
- (13, sys_flistxattr),
- (14, sys_removexattr),
- (15, sys_lremovexattr),
- (66, sys_writev),
- (65, sys_readv),
- (67, sys_pread),
- (68, sys_pwrite),
- (16, sys_fremovexattr),
- (71, send_file),
- (81, sync),
- (82, fsync),
- (25, fcntl),
- (29, ioctl),
- (88, utimensat),
- (48, faccessat),
- (52, chmod),
- (53, chmodat),
- (166, unmask),
- (72, pselect6),
- (73, ppoll),
- (283, membarrier),
- (215, do_munmap),
- (222, do_mmap),
- (226, map_protect),
- (227, msync),
- (233, madvise),
- );
- SYSCALL_TABLE.call_once(|| table);
+pub fn register_all_syscall(){
+ let mut table = Table::new();
+ register_syscall!(table,
+ (160, uname),
+ (198, socket),
+ (200, bind),
+ (201, listening),
+ (202, accept),
+ (203, connect),
+ (204, getsockname),
+ (206, sendto),
+ (207, recvfrom),
+ (208, setsockopt),
+ (209, getsockopt),
+ (210, shutdown),
+ (199, socket_pair),
+ (2003, system_shutdown),
+ (169, get_time_of_day),
+ (153, times),
+ (101, nanosleep),
+ (113, clock_get_time),
+ (102, getitimer),
+ (103, setitimer),
+ (114, clock_getres),
+ (115, clock_nanosleep),
+ (116, syslog),
+ (179, sys_info),
+ (118, sched_setparam),
+ (121, sched_getparam),
+ (122, sched_setaffinity),
+ (123, sched_getaffinity),
+ (120, sched_getscheduler),
+ (119, sched_setscheduler),
+ (165, getrusage),
+ (2002, sys_event_get),
+ (2000, sys_framebuffer),
+ (2001, sys_framebuffer_flush),
+ (59, sys_pipe),
+ (23, sys_dup),
+ (24, sys_dup2),
+ (98, futex),
+ (99, set_robust_list),
+ (100, get_robust_list),
+ (134, sigaction),
+ (137, sigtimewait),
+ (135, sigprocmask),
+ (129, kill),
+ (130, tkill),
+ (139, signal_return),
+ (133, sigsuspend),
+ (194, shmget),
+ (196, shmat),
+ (195, shmctl),
+ (93, do_exit),
+ (94, exit_group),
+ (124, do_suspend),
+ (154, set_pgid),
+ (155, git_pgid),
+ (172, get_pid),
+ (173, get_ppid),
+ (174, getuid),
+ (175, geteuid),
+ (176, getgid),
+ (177, getegid),
+ (178, get_tid),
+ (220, clone),
+ (221, do_exec),
+ (260, wait4),
+ (214, do_brk),
+ (96, set_tid_address),
+ (261, prlimit64),
+ (40, sys_mount),
+ (39, sys_umount),
+ (56, sys_openat),
+ (57, sys_close),
+ (61, sys_getdents),
+ (45, sys_truncate),
+ (46, sys_ftruncate),
+ (63, sys_read),
+ (64, sys_write),
+ (17, sys_getcwd),
+ (49, sys_chdir),
+ (83, sys_mkdir),
+ (62, sys_lseek),
+ (80, sys_fstat),
+ (37, sys_linkat),
+ (35, sys_unlinkat),
+ (36, sys_symlinkat),
+ (78, sys_readlinkat),
+ (79, sys_fstateat),
+ (44, sys_fstatfs),
+ (43, sys_statfs),
+ (276, sys_renameat),
+ (34, sys_mkdirat),
+ (5, sys_setxattr),
+ (6, sys_lsetxattr),
+ (7, sys_fsetxattr),
+ (8, sys_getxattr),
+ (9, sys_lgetxattr),
+ (10, sys_fgetxattr),
+ (11, sys_listxattr),
+ (12, sys_llistxattr),
+ (13, sys_flistxattr),
+ (14, sys_removexattr),
+ (15, sys_lremovexattr),
+ (66, sys_writev),
+ (65, sys_readv),
+ (67, sys_pread),
+ (68, sys_pwrite),
+ (16, sys_fremovexattr),
+ (71, send_file),
+ (81, sync),
+ (82, fsync),
+ (25, fcntl),
+ (29, ioctl),
+ (88, utimensat),
+ (48, faccessat),
+ (52, chmod),
+ (53, chmodat),
+ (166, unmask),
+ (72, pselect6),
+ (73, ppoll),
+ (283, membarrier),
+ (215, do_munmap),
+ (222, do_mmap),
+ (226, map_protect),
+ (227, msync),
+ (233, madvise),
+
+ );
+ SYSCALL_TABLE.call_once(||table);
}
-pub fn do_syscall(id: usize, args: &[usize]) -> Option {
- let res = SYSCALL_TABLE.get().unwrap().do_call(id, &args);
- res
+pub fn do_syscall(id:usize,args:&[usize])->Option{
+ let res = SYSCALL_TABLE.get().unwrap().do_call(id,&args);
+ res
}
use crate::driver::sys_event_get;
use crate::fs::chmod;
diff --git a/sdcard/bin/true b/sdcard/bin/true
new file mode 100755
index 0000000000000000000000000000000000000000..ab76b21a0d431ebeebd649c994116dbdc4b0ae45
GIT binary patch
literal 4952
zcmeHLU2GiH6+ZXQ&dk~|Yr~D#DM7I5C5c-Fvt-v<2O_!!1yiZ5N+lYe8qCBAv;ouD
zB=o7fnf-ABO^GHUk%EAB^CucrNE=v7%>z8xe(ggNyAlP0>zD_GH{hQT!cMK%3ZppVs;=_T$De7;8}2ev4_Z~Fvl{~CNDFx}|9
zfG+3*D+FUTnfxos4L8#?W$v#xx?k(eV*U~nFn(Kx=+FuxC!77f&>1;c6MtZCAADr5
z)G1{$su+xfk*Ac}H?ePaKjIV$tAwsE?W0U0wGuR|L1XIV6iu@BPI+`z!6eY&4AVPD
z(I{FcZ(?7ka(*`Loa;TXR-CVI{LdlyX$s9TTgXi9N=cvQ;&YCueex2Qr;}Hm7)%+<;&4DxSXT
z2QvX5<{!)WiZ;=}G})Dn%H;m2$U*0j4*!twe5W@ke@CY&y+#i0->rP?v~^OsI74=}
z&oW1k!|p6O0JShP)DOQeN4y;~%dCfWo+=PkqR`J+McUXl61z-ph0Tx?&S*k^=L;ua
zcu(+-OD>=WP!vDo~nwRDV>oytbU=8{t^(!?!a
zT=8^13LnR_ZCaAG*~x5FThF41*)kPB^fkl`cI~Isoxm%a$_x0;ovz;Tk(0~0*7gI6
zpMjr&U-59oYo|h>%h42Yj5EK&`d2cZ+gCP
zwUKYafQ)Tj
z(3L@+7UUVmH?kEtgPot`lne&`1v~qyuU)lMITv=ift^;wXmaLfnb>M0@)d6T^#&s
zPPA2M?Vx*E=VHDaSS&Ksc&^+hI=kFav+ATXGx%B=+3?qRa)r%c9s
z7%oepbzpgg#4NT&w(bHJfQT`fG>_*;`Vyv#=XGJ
zz0mtUPw!AYKlX6Da}SBey@>Od$lFag=SofM+yk68u!R11RfBHR);A!3Hh*FNB+s<_
z^IR*vn^C^5d^)g2)m{mIIK^fXxL1X`XHZuh{x~^Wj6@h?dX}7hw?CQ+0b934nygSW
z$>Tj4r^t>ug>2DkG@ysUYsfQ
z_vfpRk%oj%6sObnI$%0dbIZjsReP$|;Pc$tw~S957Y8$#MB)=))eQ#I|xFl0>C#QZ~KHJbi@H}*GDeSH=9uFuEzRGlF&~Z
zo%Qr|=AvZnGh%9AW~N{dtw79}_55g)01nl=f`ELH*IlUe!j+9~)$NPhv+77AW!L5Z<#kp{|+kk@E$%{BWMi
z7lGk7#%lJeLv-X^-t*V;!v)kZooVf3@KvRzXpgiGg7$6LHC8JZE~h6xdjE^0lSIRu~SHN@b2t!#eo`7&XS@q{soyVzisVTS8|FqxCrnH*GpXmv|oztWX^)V$Lz
zdHqIL?p5;$3&$le}wNZ)eZip7rq`#qNoBtnG*s
zb@V^kKd@t<=LzZ<=zV^GI(GDJ=^5yuj@~CXZ{5-JbT4&0^~_TPn|pTb==mdcY{euP
z_ty#gpXl$W4)4e6d;00#X9hfFzWdJ-h)|Z|^~ZZ+zP+)!`SePYzu|Z4+rZ-IW=s_6
zT7U7Ko9c}3_}?>bSxk&EUah>x7f(OHOpSScna=wBXMO(b&%1uE-en?an$I767YV*!
z1n2qN3+D&xcVh#ufD8PW{qHN6)gqpNu0Fdq57zI)hSEPcp907EA4r1lB-ir?^9L|c
zvI71VpTEUtToVxbeQ<8D{4fTK`P0|&rvt~{fd3a*SNa2`UwdwJeh|0CeW3ed0ULb%
Nf3tWI
Date: Mon, 24 Jul 2023 10:41:37 +0800
Subject: [PATCH 02/17] test: try test
---
.gitignore | 2 +-
Makefile | 6 +++---
apps/init/src/main.rs | 20 ++++++++++++++------
kernel-qemu | Bin 0 -> 2256800 bytes
kernel/src/task/mod.rs | 12 +++++++-----
5 files changed, 25 insertions(+), 15 deletions(-)
create mode 100755 kernel-qemu
diff --git a/.gitignore b/.gitignore
index 39999d8b..2b0422cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,7 +11,7 @@ Cargo.lock
# These are backup files generated by rustfmt
**/*.rs.bk
-kernel-qemu
+#kernel-qemu
.idea
build
*.dts
diff --git a/Makefile b/Makefile
index 25f45554..35cb9755 100644
--- a/Makefile
+++ b/Makefile
@@ -19,7 +19,7 @@ VF2 ?=n
CV1811h ?=n
FEATURES :=
QEMU_ARGS :=
-
+MEMORY_SIZE := 128M
img ?=fat32
@@ -51,11 +51,11 @@ define boot_qemu
-device virtio-blk-device,drive=x0 \
-kernel kernel-qemu\
-$(QEMU_ARGS) \
- -smp $(SMP) -m 256M \
+ -smp $(SMP) -m $(MEMORY_SIZE) \
-serial mon:stdio
endef
-all:run
+all:
install:
@cargo install --git https://github.com/os-module/elfinfo
diff --git a/apps/init/src/main.rs b/apps/init/src/main.rs
index 20e8facf..6029f92d 100644
--- a/apps/init/src/main.rs
+++ b/apps/init/src/main.rs
@@ -1,14 +1,15 @@
#![no_std]
#![no_main]
-use Mstd::println;
+use Mstd::shutdown;
use Mstd::process::{exec, fork, wait};
use Mstd::thread::m_yield;
#[no_mangle]
fn main() -> isize {
if fork() == 0 {
- exec("/bin/shell\0", &[0 as *const u8], &[0 as *const u8]);
+ // exec("/bin/shell\0", &[0 as *const u8], &[0 as *const u8]);
+ run_test("./busybox_testcode.sh\0");
} else {
loop {
let mut exit_code: i32 = 0;
@@ -17,11 +18,18 @@ fn main() -> isize {
m_yield();
continue;
}
- println!(
- "[Init] Released a task, tid={}, exit_code={}",
- tid, exit_code,
- );
+ // println!(
+ // "[Init] Released a task, tid={}, exit_code={}",
+ // tid, exit_code,
+ // );
+ shutdown();
}
}
0
}
+
+
+fn run_test(sh: &str) {
+ let args = &[sh.as_ptr()];
+ exec(sh, args, &[0 as *const u8]);
+}
\ No newline at end of file
diff --git a/kernel-qemu b/kernel-qemu
new file mode 100755
index 0000000000000000000000000000000000000000..adb1c7cbb814eefeaa6012aff028a18302d4ea51
GIT binary patch
literal 2256800
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