Commit Graph

664 Commits

Author SHA1 Message Date
Chen Chengjun 9985d64535 Complete some remaining rename tasks 2025-08-12 15:20:17 +08:00
jiangjianfeng 9a56028afc Support parsing shebang with multiple arguments in intepreter line 2025-08-12 11:23:30 +08:00
Ruihan Li cdd28787ed Replace `write_vals` by `fill_zeros` in `VmIo` 2025-08-10 16:40:11 +08:00
Ruihan Li 2700d88bef Provide efficient `VmIo` with VM readers/writers 2025-08-10 16:40:11 +08:00
Ruihan Li aa7aca3dde Add `VmWriter::fill_zeros` 2025-08-10 16:40:11 +08:00
Tate, Hongliang Tian f2ead0b3ed Remove O_TMPFILE flag because it is not really supported 2025-08-09 16:26:50 +08:00
jiangjianfeng f6478d62cc Refactor the implementation about sigstack 2025-08-08 12:06:26 +08:00
Ruihan Li c19c7765d8 Fix race conditions in `pause_timeout` 2025-08-06 17:17:34 +08:00
Ruihan Li 20893be80e Allow to receive empty SEQPACKET packets 2025-08-06 17:17:34 +08:00
Chen Chengjun c6a6e66aac Rename Dentry to Path in the other modules and rename some local variables 2025-08-06 14:06:39 +08:00
Chen Chengjun 6aa516e2bf Move Path to mod.rs of the path module 2025-08-06 14:06:39 +08:00
Chen Chengjun 34dac93175 Rename Dentry and Dentry_ in the path module 2025-08-06 14:06:39 +08:00
jiangjianfeng de97644b4c Move `ThreadFsInfo` from `PosixThread` to `ThreadLocal` 2025-08-06 13:38:42 +08:00
Zhang Junyang afe63e7123 Fix ELF loading when shebang/loader path is too long/far 2025-08-05 15:42:13 +08:00
Wang Siyuan 3ebb5a25b2 Refactor task schedulers to conform with the new semantics 2025-08-05 13:37:01 +08:00
Wang Siyuan 48fa40bbf2 Support the system call `memfd_create` 2025-07-31 09:29:12 +08:00
Wang Siyuan 59ceb6d27c Add a method `inode` for `FileLike` 2025-07-31 09:29:12 +08:00
Tate, Hongliang Tian 659f079c2d Revise the doc of OSTD's scheduling module 2025-07-29 21:58:23 +08:00
Wei Zhang 8a801676ab Disallow masking SIGKILL and SIGSTOP in user space
According to the Linux man pages[1], "It is not possible to block SIGKILL
or SIGSTOP. Attempts to do so are silently ignored." This patch ensures
compliance by explicitly removing SIGKILL and SIGSTOP from the signal
mask in the `MaskOp::SetMask` operation of the `rt_sigprocmask` syscall.

[1]: https://www.man7.org/linux/man-pages/man2/sigprocmask.2.html
2025-07-28 17:08:10 +08:00
Yuke Peng 2154124dc4 Format the user exception log 2025-07-28 15:01:49 +08:00
Ruihan Li e52634cb78 Add some references for signal-related types 2025-07-28 10:50:38 +08:00
Ruihan Li 83b0564c99 Remove TLS-related stuffs from `LinuxABI` 2025-07-28 10:50:38 +08:00
jiangjianfeng 28d5d94c8c Support setting reuseaddr for UDP socket 2025-07-28 10:20:50 +08:00
jiangjianfeng ff39f6df75 Correct the reuseaddr behavior 2025-07-28 10:20:50 +08:00
王英泰 345cc9d055 Save FPU context on signal stack for LoongArch 2025-07-25 17:37:24 +08:00
王英泰 5c4b3fdd19 Finish the arch section for LoongArch in kernel 2025-07-25 17:37:24 +08:00
王英泰 4562361ef0 Add the random support for LoongArch in kernel 2025-07-25 17:37:24 +08:00
王英泰 5ca18b31ad Add the syscall support for LoongArch in kernel 2025-07-25 17:37:24 +08:00
王英泰 5c590f0c6b Add the process support for LoongArch in kernel 2025-07-25 17:37:24 +08:00
王英泰 3824af8c89 Add the trap section for LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 91e7785915 Add the cpu section of LoongArch in OSTD and kernel 2025-07-25 17:37:24 +08:00
jiangjianfeng 9219207b97 Add CLONE_PIDFD & pidfd_open support 2025-07-24 21:11:24 +08:00
jiangjianfeng dbc6e7c71a Add support for `/proc/sys/kernel/pid_max` 2025-07-24 21:11:24 +08:00
Ruihan Li 5ccadb6253 Support SOCK_SEQPACKET 2025-07-23 20:02:15 +08:00
Ruihan Li c3572e9548 Support SCM_CREDENTIALS 2025-07-23 20:02:15 +08:00
Ruihan Li ab897ccd2f Support SO_PASSCRED
Co-authored-by: Jianfeng Jiang <jiangjianfeng.jjf@antgroup.com>
2025-07-23 20:02:15 +08:00
Qingsong Chen e86f7584a3 Fix atomic mode issue when VMO commit needs IO 2025-07-23 11:23:03 +08:00
Qingsong Chen eb64ca1cea Fix VMO commit address when needs IO 2025-07-23 11:23:03 +08:00
Cautreoxit 6ecccad3ee Add sys_ioprio_set and sys_ioprio_get 2025-07-22 17:22:52 +08:00
Chen Chengjun ef0382b164 Enhance waitid syscall support 2025-07-21 21:31:32 +08:00
Chen Chengjun 4d52241c6c Fix some definition errors of siginfo_t 2025-07-21 21:31:32 +08:00
Cautreoxit c6011b9650 Add fadvise64 syscall 2025-07-21 21:29:17 +08:00
Yang Zhichao 9570f14d80 Add AMD support for cache_size and tlb_size 2025-07-21 20:08:42 +08:00
Yang Zhichao d09c6c7584 Add a fallback to RDTSC estimation when TSC info is unavailable 2025-07-21 20:08:42 +08:00
Yang Zhichao 496c50f296 Fix get_cpuid_level function to directly return the CPUID 0x0 EAX value instead of TSC denominator 2025-07-21 20:08:42 +08:00
Yang Zhichao 85e605250b Fix cache line size calculation in get_clflush_size function 2025-07-21 20:08:42 +08:00
Marsman1996 62d426d9b7 Add check for empty directory and more forms of root directory in `rmdir` 2025-07-21 11:33:14 +08:00
Ruihan Li 4d8078166e Send and receive UNIX control messages 2025-07-21 10:46:08 +08:00
Qingsong Chen f1299d4b8d Save FPU context on signal stack 2025-07-18 11:40:16 +08:00
Qingsong Chen 6cd53fbb8a Refactor FPU context using pre_schedule_handler 2025-07-18 11:40:16 +08:00
Chen Chengjun 749fe77591 Add an initial script to mount several file systems 2025-07-17 13:51:45 +08:00
Chen Chengjun df69af324e Forbid creating a directory in sysfs 2025-07-17 13:51:45 +08:00
Chen Chengjun 16292742d2 Leverage FsRegistry to remove the hardcode in mount syscall 2025-07-17 13:51:45 +08:00
Chen Chengjun 9783bbddda Implement FsType for exsiting file systems 2025-07-17 13:51:45 +08:00
Chen Chengjun cb1732706a Introduce FsType and FsRegistry 2025-07-17 13:51:45 +08:00
Ruihan Li cdd7950d2e Remove some variants in `ostd::Error` 2025-07-15 23:05:30 +08:00
Chen Chengjun d02202dc73 Support the basic cgroupfs 2025-07-14 20:35:05 +08:00
Chen Chengjun 19a3f5576d Introduce the FsManager 2025-07-14 20:35:05 +08:00
Chen Chengjun b90b79810c Provide more powerful macros to assist in implementing the SysTree-related traits 2025-07-14 20:35:05 +08:00
Chen Chengjun a8b4c23319 Add SysTreeInodeTy trait to abstract the view part of MVC arch 2025-07-14 20:35:05 +08:00
Chen Chengjun 774291611c Add two error types in aster_systree::Error 2025-07-14 20:35:05 +08:00
Chen Chengjun 9c68d96fa2 Attach SysPerms to systree nodes and attributes 2025-07-14 20:35:05 +08:00
Chen Chengjun e229eb379b Enable getting path through SysObj 2025-07-14 20:35:05 +08:00
Ruihan Li a5e927b675 Make the framebuffer backspace work 2025-07-14 20:24:29 +08:00
Ruihan Li b1079c2bc5 Add support for font setting 2025-07-14 20:24:29 +08:00
jiangjianfeng d317ce3246 Adjust `max_len` to avoid EFAULT when reading CString 2025-07-14 15:43:34 +08:00
jiangjianfeng 010da31b3e Align execve argument limits with Linux 2025-07-14 15:43:34 +08:00
yuankunzhang a4c918efd7 fs: validate workdir when creating overlayfs instance
The workdir needs to be an empty directory on the same filesystem
as upperdir.
2025-07-11 09:26:31 +08:00
jiangjianfeng 665de6bd35 Make RISC-V code compile under new exception APIs 2025-07-09 10:49:43 +08:00
jiangjianfeng 7f3ca86467 Refactor x86 exception related code 2025-07-09 10:49:43 +08:00
Chen Chengjun 2a34a041c4 Fix the mask set in the signalfd 2025-07-08 15:50:41 +08:00
js2xxx 1a12080c58 Fix integer overflow when updating vruntime after pending weight update 2025-07-05 18:23:17 +08:00
Ruihan Li 0fce977b40 Clean up `trapframe` items 2025-07-05 18:19:26 +08:00
Wang Siyuan 37cc54f2aa Store `offset` in `MappedVmo` instead of `range` 2025-07-03 18:54:53 +08:00
Ruihan Li abbf152d74 Re-enable framebuffer 2025-07-03 17:47:56 +08:00
Ruihan Li d73cbb5008 Clarify the `DeviceId` encoding 2025-07-03 14:30:14 +08:00
Wang Siyuan a13297ae4c Add fields in `/proc/*/stat` and `/proc/*/status` 2025-07-02 20:13:47 +08:00
Wei Zhang 513532fe95 Correctly handle partial writes and reads in writev and readv
When using writev or readv, if data is partially written or read, the
written or read bytes number should be returned instead of error.
2025-07-02 17:14:10 +08:00
Chen Chengjun fe24c2d8ae Ensure proper handling of out-of-bounds VMO access during page fault processing 2025-07-02 16:08:00 +08:00
js2xxx 4571fabc7a Fix integer overflow due to fair weight change 2025-07-02 11:00:34 +08:00
Ruihan Li 6146434f15 Unify the styles of the `arch` modules 2025-06-30 15:43:41 +08:00
Ruihan Li 3f1bf99b2a Make `mremap` behavior consistent with Linux 2025-06-26 11:41:56 +08:00
Ruihan Li 079be2f30f Enable syscall tests for UNIX sockets 2025-06-26 11:11:03 +08:00
Ruihan Li bef9304c85 Fix minor problems of UNIX sockets 2025-06-26 11:11:03 +08:00
Wang Siyuan 810580bda5 Fix underflow when merging VMAs 2025-06-26 11:10:38 +08:00
jiangjianfeng e4c5c36be9 Support SO_PEERCRED & SO_PEERGROUPS 2025-06-24 17:25:44 +08:00
jiangjianfeng d7e88f93bd Support SO_ACCEPTCONN 2025-06-24 17:25:44 +08:00
jiangjianfeng ec8beab540 Support SO_PRIORITY 2025-06-24 17:25:44 +08:00
jiangjianfeng 8f6bc07b23 Support SO_SNDBUFFORCE & SO_RCVBUFFORCE 2025-06-24 17:25:44 +08:00
Ruihan Li b891d7d215 Introduce `Endpoint` and `EndpointState` 2025-06-24 15:41:53 +08:00
Wang Siyuan a0cbe7551a Fix some user space address check 2025-06-24 12:15:24 +08:00
Wang Siyuan f442cc6d81 Automatically merge adjacent and compatible `VmMapping`s 2025-06-24 12:15:24 +08:00
js2xxx c5d57d5216 Fix mapping between `sched_attr` and `SchedPolicy` 2025-06-24 10:31:32 +08:00
Zhang Junyang 93015a6090 Make user program relocation code readable 2025-06-24 10:15:09 +08:00
Ruihan Li 35e0918bce Don't race between enabling IRQs and halting CPU 2025-06-23 22:53:35 +08:00
Ruihan Li b96c8f9ed2 Make `ostd::trap::irq` public 2025-06-23 22:53:35 +08:00
Ruihan Li 751e0b2ebf Don't jump to the end of the cursor range 2025-06-23 10:54:30 +08:00
Ruihan Li 1c423d6b6d Unwrap some unreachable errors 2025-06-23 10:54:30 +08:00
Marsman1996 826f56aeed Check file_table in PID directory before access 2025-06-22 17:58:33 +08:00
Marsman1996 1c56fbc871 Fix unwrap panic of dropped VMAR in PID status 2025-06-22 17:58:33 +08:00
Wang Siyuan 11f9675f37 Support the system call `mremap` 2025-06-21 16:18:09 +08:00
Wang Siyuan 33345f184a Count RSS when dropping `RssDelta` 2025-06-21 16:18:09 +08:00
Marsman1996 bb3f21b41e Fix integer overflow in futex wake 2025-06-20 15:58:19 +08:00
jiangjianfeng 95faea0fb0 Support WSTOPPED and WCONTINUED 2025-06-20 11:51:44 +08:00
Ruihan Li bcf1e69878 Expose `head`/`tail` of `RingBuffer` 2025-06-19 16:30:02 +08:00
Marsman1996 2f097ab8f8 Check file_table before use 2025-06-18 17:28:28 +08:00
Ruihan Li 4a9977d9a7 Make zero reads/writes' behavior right 2025-06-17 16:09:33 +08:00
Ruihan Li 837f908690 Fix some pollee mistakes 2025-06-17 16:06:48 +08:00
Marsman1996 5a514f6163 Check `VSOCK_GLOBAL` when creating `VsockStreamSocket` 2025-06-16 14:43:17 +08:00
Qingsong Chen ef7fdc6647 Fix improper handling of O_TRUNC for non-regular files 2025-06-16 12:10:58 +08:00
Chen Chengjun 627dd0386b Enable FUTEX_WAKE_OP 2025-06-16 11:02:17 +08:00
Chen Chengjun 860bb6c07f Adjust and correct parts of the futex implementation code 2025-06-16 11:02:17 +08:00
Zhang Junyang 45059bad21 Create a new PT rather than clearing it upon `exec*` 2025-06-16 10:18:19 +08:00
Zhang Junyang 525085ab86 Implement system call `msync` 2025-06-15 16:25:37 +08:00
Ruihan Li 796635486c Handle broken netlink attributes 2025-06-13 11:27:22 +08:00
Ruihan Li deab9b6f72 Truncate netlink messages 2025-06-13 11:27:22 +08:00
Ruihan Li 0e8106abfa Restrict visibility for TCP internals 2025-06-13 11:07:11 +08:00
Ruihan Li 639bc91e31 Clean up public re-exports under `net/` 2025-06-13 11:07:11 +08:00
Zhang Junyang 86a7aa09eb Improve exception handling panic message 2025-06-13 10:35:47 +08:00
Wang Siyuan b605bed576 Fix some typos 2025-06-12 22:35:54 +08:00
Zhang Junyang e78927b449 Manage frame tracking outside the page table 2025-06-12 22:34:46 +08:00
Zhang Junyang 22ccfb1f2b Move COW out of OSTD 2025-06-12 22:34:46 +08:00
Ruihan Li 0661a0656b Never queue an ignored signal 2025-06-12 16:15:53 +08:00
Cautreoxit 3e32a38316 Add sys_close_range 2025-06-11 19:56:12 +08:00
Ruihan Li 71e08b3942 Clean up TTY termios definitions 2025-06-10 14:30:02 +08:00
Marsman1996 8583eea62b Fix unreachable error in sys_timer_settime 2025-06-10 11:22:50 +08:00
Marsman1996 9109741e8b Add TFDSetTimeFlags and fix reachable panic 2025-06-10 11:22:50 +08:00
Cautreoxit 0b471ef370 Add sys_epoll_pwait2 2025-06-09 20:20:40 +08:00
jiangjianfeng 597139a7f7 Fix a clippy error 2025-06-09 17:22:14 +08:00
Cautreoxit e9f35f6ab8 Debug for try_from impl for Duration 2025-06-09 14:51:05 +08:00
Ruihan Li fe6b78058c Correct the blocking behavior 2025-06-09 13:10:34 +08:00
Ruihan Li 67065835ef Redefine the TTY driver interface 2025-06-09 13:10:34 +08:00
Ruihan Li 5a9a63e1a7 Use one lock for `LineDiscipline` 2025-06-09 13:10:34 +08:00
Ruihan Li 45258d0475 Unpack `LineDiscipline` from `Arc` 2025-06-09 13:10:34 +08:00
Ruihan Li 9e2dde5ebb Add `enqueue_signal_async` 2025-06-09 13:10:34 +08:00
Chen Chengjun c56aee92f4 Re-organize some systree-related code 2025-06-09 11:13:48 +08:00
Chen Chengjun 1dd1c8c775 Enable read and write operations of the attribute to handle offset 2025-06-09 11:13:48 +08:00
Chen Chengjun 3b1248ba7c Fix some potential bugs of sysfs 2025-06-09 11:13:48 +08:00
Marsman1996 01328ee404 Fix panic when mount with invalid file system type 2025-06-06 18:26:24 +08:00
jiangjianfeng f0957d2f54 Fix clippy warnings in kernel crate 2025-06-06 18:22:09 +08:00
Cautreoxit 2e3de6218f Add more features for statx syscall 2025-06-06 15:07:20 +08:00
jiangjianfeng f946f09ee4 Implement netlink uevent socket 2025-06-06 11:33:09 +08:00
Wang Siyuan 58e4f45bb1 Add per-CPU counters and track RSS for each `Vmar` 2025-06-03 23:24:32 +08:00
Zejun Zhao 3790f616fd Rename `PageProperty::new` to `PageProperty::new_user` 2025-06-03 18:42:53 +08:00
Ruihan Li 63daf69e17 Fix incorrect types in `sys_getcpu` 2025-05-29 10:33:02 +08:00
Ruihan Li 56e9824dd1 Make `current_cpu_racy` a method of `CpuId` 2025-05-29 10:33:02 +08:00
Zhang Junyang 79b3f68892 Make the RCU lifetime of page tables explicit 2025-05-24 17:42:17 +08:00
Zhang Junyang 54fbdcf059 Implement the stray marking in PT to ensure serializability 2025-05-24 17:42:17 +08:00
Zhang Junyang 5b7637eac3 Remove the activation lock and use RCU to protect PT removal 2025-05-24 17:42:17 +08:00
Qingsong Chen 189daa2e09 Fix the return value of `read_link` for ext2 2025-05-23 10:17:08 +08:00