Commit Graph

43 Commits

Author SHA1 Message Date
Ruihan Li fdcf5fd0fe Remove the `AT_NULL` variant 2026-01-14 10:27:33 +08:00
wyt8 4fa2b55e47 Place the heap after bss segment 2026-01-13 22:01:15 +08:00
wyt8 dac3e94bea Consider the PIE condition when loading the ELF 2026-01-13 22:01:15 +08:00
Ruihan Li ca384fc427 Never allow overlapping ELF maps 2025-12-29 10:09:58 +08:00
Ruihan Li e92fbe3e69 Correct ELF alignment settings 2025-12-29 10:09:58 +08:00
Ruihan Li e2f7b0eb73 Clean up `ProgramToLoad` 2025-12-26 13:16:59 +08:00
Ruihan Li 2b8ccbf3d2 Clean up `load_elf.rs` and do overflow checks 2025-12-26 13:16:57 +08:00
Ruihan Li 586266b086 Clean up `elf_file.rs` 2025-12-25 15:41:58 +08:00
Zhang Junyang dd410444e5 Format with new `rustfmt` 2025-12-09 09:23:58 +08:00
Zhang Junyang 85ca6b8934 Use `Vmar::access_remote` to fill zeros upon ELF loading 2025-12-08 12:52:37 +08:00
Wang Siyuan 71632a51b5 `ProgramToLoad` only needs a `elf_inode: Arc<dyn Inode>` instead of a `Path` 2025-11-24 12:34:42 +08:00
Wang Siyuan 89e759894f Remove `Rights` from VMO 2025-10-29 12:22:22 +08:00
Cautreoxit 0126d9b356 Set AT_SECURE value based on ELF's configuration 2025-10-29 09:57:16 +08:00
Ruihan Li 8a16aa3b86 Refine the `ProcessVm` structure 2025-10-26 10:14:00 +08:00
Ruihan Li b07d06170b Remove `Rights` from VMAR 2025-10-26 10:14:00 +08:00
jiangjianfeng fe39a6803d Unshare VM during execve 2025-10-25 10:36:30 +08:00
jiangjianfeng 207bfe30e2 Support multithreaded execve 2025-10-25 10:36:30 +08:00
Ruihan Li 9ac0e31981 Implement better FS path APIs 2025-10-22 14:05:38 +08:00
Zejun Zhao d3e27ae03a Use vDSO for fallback of user-provided sa_restorer on RISC-V platforms 2025-08-28 17:35:55 +08:00
Zejun Zhao 47b05143cf Correct vDSO data segment's permission 2025-08-23 12:38:22 +08:00
Zejun Zhao e68631d1b6 Implement arch-aware vDSO 2025-08-23 12:38:22 +08:00
Ruihan Li f457acdb8b Rewrite documentations in the vDSO module 2025-08-22 16:20:01 +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
Zhang Junyang afe63e7123 Fix ELF loading when shebang/loader path is too long/far 2025-08-05 15:42:13 +08:00
Qingsong Chen e86f7584a3 Fix atomic mode issue when VMO commit needs IO 2025-07-23 11:23:03 +08:00
Wang Siyuan 37cc54f2aa Store `offset` in `MappedVmo` instead of `range` 2025-07-03 18:54:53 +08:00
Zhang Junyang 93015a6090 Make user program relocation code readable 2025-06-24 10:15:09 +08:00
Zejun Zhao 3790f616fd Rename `PageProperty::new` to `PageProperty::new_user` 2025-06-03 18:42:53 +08:00
Zhang Junyang 79b3f68892 Make the RCU lifetime of page tables explicit 2025-05-24 17:42:17 +08:00
Chen Chengjun 725a46fe72 Modify VMO usages and fix the atomic-mode issue during handling page fault 2025-04-30 20:59:15 +08:00
Ruihan Li 7e1abc1fbb Rename `ProcessVmarGuard::get` to `unwrap` 2025-04-14 21:13:11 +08:00
Chen Chengjun 2a20f6b59a Add mutable functionality to the process VMAR 2025-03-20 14:20:47 +08:00
Ruihan Li 0dca168717 Use `#[expect(lint)]`, not `#[allow(lint)]` 2025-02-08 15:10:04 +08:00
Ruihan Li b415538097 Remove useless `#[allow(lint)]` 2025-02-08 15:10:04 +08:00
Zhang Junyang cdac59beda Implement a new set of physical page APIs 2024-12-27 12:12:51 +08:00
Wang Siyuan 1e3403e756 Support ELF files with zero `p_filesz`. 2024-12-22 15:16:22 +08:00
Ruihan Li 35c20620bc Rewrite `exit()` and `exit_group()` 2024-12-17 19:36:38 +08:00
Marsman1996 d44737360f Remove assert in `check_segment_align` 2024-12-02 16:40:47 +08:00
Zhang Junyang 9e4257b655 Fix multiple issues pointed out by the new compiler 2024-10-13 22:32:05 +08:00
Shaowei Song ea489252f4 Refactor `Dentry` to optimize the vfs layer 2024-10-11 11:22:52 +08:00
Chen Chengjun ffc717f00b Enable handling page fault around 2024-08-28 11:04:03 +08:00
Chen Chengjun 6bde87d33a Fix a bug of InitStack during doing fork+exec 2024-08-25 15:14:11 +08:00
Zhang Junyang dafd16075f Remove the shim kernel crate 2024-08-23 23:37:50 +08:00