Commit Graph

296 Commits

Author SHA1 Message Date
Zhang Junyang f1c7564184 Move CPU context implementations to a specific module 2025-03-21 21:19:50 +08:00
Chen Chengjun af4cf19eb4 Modify the 100-lines example 2025-03-20 14:20:47 +08:00
Zhang Junyang 58ad43b0a9 Adjust feature selection 2025-03-20 11:44:28 +08:00
Zhang Junyang 2bcc13a9e2 `force-unwind-tables=yes` instead of `panic=unwind` 2025-03-20 11:44:28 +08:00
Ruihan Li 6476ef22ec Bump version to 0.14.0 2025-03-17 20:09:20 +08:00
Ruihan Li 32ffdee37b Fix PE/COFF header in EFI stub 2025-03-17 13:30:59 +08:00
Ruihan Li 10926ce547 Include payload as bytes in EFI stub 2025-03-17 13:30:59 +08:00
Zhang Junyang fbb8ea6ad1 Bump version to 0.13.0 2025-03-14 21:18:13 +08:00
Zhang Junyang 288942b970 Revise the docs of the slab and remove an unused type 2025-03-14 21:17:47 +08:00
Zhang Junyang 3d21258baf Add descriptions and READMEs for crates published with OSDK 2025-03-14 19:55:00 +08:00
Zhang Junyang a708a0c046 Inject a scalable slab allocator 2025-03-14 19:55:00 +08:00
Zhang Junyang eb74d87bed Bump version to 0.12.0 2025-03-14 09:48:59 +08:00
Zhang Junyang 28e7c0ff1f Add a fixed-size cache of frame allocation 2025-03-14 08:37:37 +08:00
Zhang Junyang 5f05963ee5 Inject a scalable buddy system allocator to OSTD
Co-authored-by: Zhe Tang <tangzh@stu.pku.edu.cn>
2025-03-14 08:37:37 +08:00
Zhang Junyang 9c430b9901 Move the test kernel to `OSDK/deps` 2025-03-14 08:37:37 +08:00
Fabing Li 30251964ee Bump version to 0.11.3 2025-02-27 11:55:02 +08:00
Fabing Li 9b8c6b5aa9 Update the toolchain version in template 2025-02-27 11:36:41 +08:00
Fabing Li cbb4b4e631 Fix lint errors 2025-02-27 11:36:41 +08:00
Fabing Li 82a2c4cdec Bumped version to 0.11.2 2025-02-27 09:05:03 +08:00
Zhang Junyang 17c8da7459 Fix the problem that OSDK picks the test kernel by default 2025-02-21 21:17:29 +08:00
Zhang Junyang d74d126e64 Enhance OSDK profile stability for SMP 2025-02-21 09:54:36 +08:00
Zejun Zhao faf2bcc3ef Make `cargo osdk profile` more fine-grained 2025-02-13 16:01:40 +08:00
Zhang Junyang 3e31df74e3 Fix an unfulfilled lint expectation on OSDK unit tests 2025-02-11 10:48:34 +08:00
Zhang Junyang 0fc2bccd44 Let OSDK forward commands to the base crate if it is kernel 2025-02-11 10:48:34 +08:00
Zhang Junyang cb2d8412aa Refactor the generation of base crates 2025-02-11 10:48:34 +08:00
Zhang Junyang 32a6025819 Refactor the parsing of OSDK crate types 2025-02-11 10:48:34 +08:00
Ruihan Li 95bbc7f367 Enforce `#[expect(lint)]` 2025-02-08 15:10:04 +08:00
Ruihan Li 0dca168717 Use `#[expect(lint)]`, not `#[allow(lint)]` 2025-02-08 15:10:04 +08:00
Zhang Junyang 397ce9652f Refactor boot modules to make heap allocation explicit 2025-01-02 10:41:51 +08:00
jiangjianfeng bfc71d1b27 Bump version to 0.11.1 2024-12-30 16:24:22 +08:00
Zhang Junyang 983a6af3cc Polish the doc and rename variables in `ostd::mm` 2024-12-27 12:12:51 +08:00
Zhang Junyang cdac59beda Implement a new set of physical page APIs 2024-12-27 12:12:51 +08:00
Zhang Junyang c9a37ccab1 Renaming concepts around pages and frames
This commit renames `Frame` -> `UntypedFrame` and `Page` -> `Frame`.
So do other concepts in the following list:
 - `Segment` -> `UntypedSegment`,
 - `ContPages` -> `Segment`,
 - `DynPage` -> `AnyFrame`,
 - `PageMeta` -> `FrameMeta`,
 - `FrameMeta` -> `UntypedMeta`.

This commit also re-organized the source in the `mm/page` and `mm/frame`
module to accommodate the changes.
2024-12-27 12:12:51 +08:00
Cautreoxit bd89c9c578 Bump the version to 0.11.0 2024-12-26 19:20:58 +08:00
Fabing Li 6f98c4900d Bump version to 0.10.3 2024-12-20 09:49:35 +08:00
Ruihan Li c5d1542736 Bump version to 0.10.2 2024-12-17 10:47:41 +08:00
Ruize Tang ea1874aa46 Enhance OSDK performance by using size and modified time instead of sha256sum 2024-12-15 16:42:57 +08:00
Ruize Tang 9d82ac8958 Enhance OSDK performance by using hard link instead of copy 2024-12-15 16:42:57 +08:00
Ruize Tang 7601509e6e Fix OSDK original directory not restored if bundle validation fails 2024-12-15 16:42:57 +08:00
Ruize Tang 858e95ed4d Enhance OSDK performance by reusing existing base, bundle and build 2024-12-15 16:42:57 +08:00
Ruihan Li 18d5eb1f02 Use physical addresses in boot segments 2024-12-13 10:42:05 +08:00
Ruihan Li a3ae1aa28a Make segments explicit and aligned 2024-12-13 10:42:05 +08:00
Ruihan Li 6eecde7812 Remove some unused sections 2024-12-13 10:42:05 +08:00
Zejun Zhao 00e3688aa8 Bump version to 0.10.1 2024-12-07 19:02:46 +08:00
jiangjianfeng ef2419a48c Bump version to 0.10.0 2024-12-02 10:30:32 +08:00
Marsman1996 6d3bb5a9d0 Fix compile error caused by updated `Step::steps_between` in Rust 2024-12-01 18:56:28 +08:00
Qingsong Chen f762eb8913 Remove the `lazy_static` dependency 2024-11-28 15:28:30 +08:00
Hsy-Intel d67976da88 Support TDX debugging feature 2024-11-26 19:15:22 +08:00
Ruize Tang 5f35189a51 Add compile flags to disable the red zone optimization 2024-11-22 04:40:07 +08:00
Ruihan Li 5233827160 Don't preempt without good reason 2024-11-06 21:53:55 +08:00
Yuke Peng d977fe54c6 Fix wrong serde name in OSDK 2024-10-26 20:44:45 +08:00
Jianfeng Jiang fe339fd81e Bump version to 0.9.4 2024-10-24 21:00:14 +08:00
Zhang Junyang a716763772 Remove the linkage feature usage for `ostd::main` 2024-10-20 13:24:58 +08:00
Zhang Junyang 131a25c15c Provide the way to override the panic handler. 2024-10-20 13:24:58 +08:00
Fabing Li 64d7303b0e Bump version to 0.9.3 2024-10-16 10:28:54 +08:00
Zhang Junyang 3f1fa33b13 Bump and publish linux-bzimage crate series with OSTD and OSDK 2024-10-16 10:05:34 +08:00
Zhang Junyang 662894ee90 Refine relocations in x86-64 EFI boot 2024-10-16 10:05:34 +08:00
Zhang Junyang e78303b01a Fix OSDK lint warnings from the new tool-chain 2024-10-14 16:41:15 +08:00
Zhang Junyang 9e4257b655 Fix multiple issues pointed out by the new compiler 2024-10-13 22:32:05 +08:00
Zhang Junyang 5f2bd9d0ac Update the Rust toolchain to `nightly-2024-10-12` 2024-10-13 22:32:05 +08:00
jiangjianfeng 493574d9f3 Bump version to 0.9.2 2024-10-12 20:06:26 +08:00
Zhang Junyang 909639fd70 Separate `SegmentSlice` from `Segment` 2024-10-09 19:23:46 +08:00
Fabing Li d930829866 Bump version to 0.9.1 2024-10-08 17:53:47 +08:00
Yuke Peng 8e210c2241 Add ktest array to riscv64 linker 2024-10-08 11:47:01 +08:00
Ruihan Li 5b336eabdc Bump version to 0.9.0 2024-09-30 20:37:57 +08:00
Zhang Junyang ab8b6afee5 OSDK GDB server args with QEMU-style options 2024-09-30 16:04:03 +08:00
Zhang Junyang 43e3f8cf6b Update the OSDK default GDB socket 2024-09-30 16:04:03 +08:00
Zhang Junyang ecae3475cc Integrate the SVG flame graph generation into OSDK 2024-09-30 16:04:03 +08:00
Zhang Junyang a67a6e6a38 Add documentation for OSDK profiling 2024-09-30 16:04:03 +08:00
Zhang Junyang eca9aacbf0 Introduce `cargo osdk profile` for flame graph profiling 2024-09-30 16:04:03 +08:00
YanWQ-monad 4fa0e6334b Add RISC-V base support 2024-09-30 10:02:08 +08:00
Zhang Junyang 8b2ca77804 Bump the OSDK's Cargo.lock when bumping the versions 2024-09-21 15:19:35 +08:00
Qingsong Chen c2f7a10b84 Implement cpu_local with GS and ensure GS points to TSS 2024-09-19 13:00:36 +08:00
Marsman1996 52bde1721e Bump version to 0.8.3 2024-09-18 20:10:08 +08:00
Jianfeng Jiang f3174dbbbc Make task store Arc<Thread> and process store Arc<Task> 2024-09-14 17:34:14 +08:00
Zhang Junyang 5df3c9b749 Avoid flushing TLB one by one when the un-mapped range is large 2024-09-14 17:29:39 +08:00
Yuke Peng 32ea24e945 Bump version to 0.8.2 2024-09-13 23:43:22 +08:00
Zhang Junyang d9eccdcfbe Implement remote TLB flush on `VmSpace` 2024-09-13 20:10:03 +08:00
Jianfeng Jiang b3b5e136bd Delay the canonicalization until after processing the CLI arguments 2024-08-30 22:46:34 +08:00
Yuke Peng a2778e66f3 Bump version to 0.8.1 2024-08-27 22:13:38 +08:00
Cautreoxit 86f09eef75 Fix all spelling mistakes in history by typos tool 2024-08-27 12:19:48 +08:00
Zhang Junyang 4231645c02 Fix `is_tdx_enabled` in OSDK tests 2024-08-25 20:42:04 +08:00
Zhang Junyang d91573248c Fix local development version OSDK's out-tree behavior 2024-08-25 20:42:04 +08:00
Zhang Junyang f7a9510be0 Refactor the `this_cpu` API with `PinCurrentCpu` 2024-08-25 20:14:06 +08:00
Zhang Junyang 1e24911198 Upgrade the version of `bytemuck` since it's yanked 2024-08-24 17:18:24 +08:00
Zhang Junyang 34b3aac2e3 Bump and publish `ostd-test` and `ostd-macros` 2024-08-24 17:18:24 +08:00
Zhang Junyang e50b05d1ee Bump version to 0.8.0 2024-08-23 23:37:50 +08:00
Zhang Junyang d76c7a5b1e OSDK check and clippy with `cfg(ktest)` 2024-08-23 23:37:50 +08:00
Zhang Junyang be3492d7f0 Extract the OSTD test runner as a kernel 2024-08-23 23:37:50 +08:00
Zhang Junyang cad36ecdab Don't inherit OSDK manifest values from workspace root 2024-08-23 23:37:50 +08:00
Cautreoxit 1833f8047e Modify Dockerfile and bump the version file 2024-08-22 09:55:19 +08:00
Shaowei Song 2102107be1 Refactor `VmReader`&`VmWriter` as given fallibility marker 2024-08-21 22:24:15 +08:00
Hsy-Intel 3a6768ecb2 Add TDX support for OSDK test 2024-08-13 20:27:21 +08:00
Hsy-Intel 8317c4c1e8 Rename "intel_tdx" feature to "cvm_guest" 2024-08-09 17:11:12 +08:00
Marsman1996 8dc08dccba Add test for new crate with hypen 2024-08-08 19:55:15 +08:00
Marsman1996 923ca16d32 Make code more readable 2024-08-08 19:55:15 +08:00
Marsman1996 ae63aa699b Fix panic when OSDK creating crate with `-` in its name 2024-08-08 19:55:15 +08:00
Zhang Junyang 37a9590cfe Refactor `ostd::task::processor` based on faster CPU-local cells 2024-08-08 19:21:03 +08:00
Zhang Junyang 05564ecd4f Abort on double panics 2024-08-08 19:21:03 +08:00
Zhang Junyang fe68b4b510 Generalize single instruction CPU local operations by `cpu_local_cell` 2024-08-08 19:21:03 +08:00
azongchang 4d19c710a2 Bump linux-bzimage-builder to 0.2.0 2024-08-05 15:36:55 +08:00
azongchang 6752baf166 Utilize libflate crate to compress and decompress payload 2024-08-05 15:36:55 +08:00
Zhang Junyang 393c9019c0 Boot application processors into spin loops
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-30 10:24:09 +08:00
Zhang Junyang 91d524c19a Allow debugging with KVM enabled 2024-07-29 22:46:32 +08:00
Zhang Junyang 3ae884081f Fix both the preempt count atomicity and the CPU-local init problem 2024-07-25 13:20:09 +08:00
YanWQ-monad eb5356c492 Set EM_386 only in x86 2024-07-22 21:47:37 +08:00
Zhang Junyang 20524ae64a Update the 100-line kernel and format it as well 2024-07-20 20:56:29 +08:00
Jianfeng Jiang f86583dbce Make essential changes for publishing OSTD 2024-07-18 18:18:05 +08:00
Zhang Junyang 9cbbcf63a7 Switch the dependency of `unwinding` back to `crates.io` 2024-07-09 09:45:58 +08:00
Shaowei Song 02bf6a9b47 Bump version to 0.6.2 2024-07-08 17:13:16 +08:00
Yuke Peng defb563541 Bump version to 0.6.1 2024-07-08 15:26:29 +08:00
Zhang Junyang 0f8d8da372 Refactor code related to CPU local memory
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-03 17:40:53 +08:00
Ruihan Li 74239781c9 Update `Cargo.lock` 2024-06-29 12:38:23 +08:00
Jianfeng Jiang f51e002bb2 Bump version to 0.6.0 2024-06-28 21:20:08 +08:00
Jianfeng Jiang 72e726295f Include the 100 lines kernel in CI 2024-06-28 20:22:12 +08:00
Chen Chengjun 5f7cf245ac Enable exception table mechanism 2024-06-28 15:36:21 +08:00
Jianfeng Jiang 3de8a9330a Fix the OSDK CI failure 2024-06-27 15:45:49 +08:00
Jianfeng Jiang fe7251c413 Rename aster_main as ostd::main 2024-06-27 15:45:49 +08:00
Jianfeng Jiang 59350a8578 Rename aster-frame to ostd 2024-06-27 15:45:49 +08:00
Jianfeng Jiang fb59fa7a55 Use matrix to simplify osdk test 2024-06-27 15:44:29 +08:00
Fabing Li 4700ab71bc Bumped Asterinas & OSDK version to 0.5.1 2024-06-26 19:12:17 +08:00
fgh1999 18b11ec193 Fix debug target path in OSDK 2024-06-26 19:09:46 +08:00
Jianfeng Jiang 237c223b1c Update the aster-frame version used by OSDK 2024-06-24 11:11:43 +08:00
Zhang Junyang d2eb9e16ff [chore] Bump to 0.5.0 2024-06-21 10:57:08 +08:00
Zhang Junyang 46fd09833e Update the Rust toolchain to 2024-06-20 2024-06-21 10:57:08 +08:00
Zhang Junyang a089fbd4fc Fix a needless borrow in OSDK 2024-06-21 10:57:08 +08:00
Zhang Junyang eaf51ccb24 Fix multiple dead code problems 2024-06-21 10:57:08 +08:00
Zhang Junyang 8633893bb9 Add `cfg(ktest)` as a well-known configuration 2024-06-21 10:57:08 +08:00
Zhang Junyang ab1d931cb7 Adjust for Rust unstable feature's stability change 2024-06-21 10:57:08 +08:00
Ruihan Li c06c1aa422 Fix bad `ASTER_GIT_REV` 2024-06-18 12:45:03 +08:00
Hsy-Intel 6014ecfc0f Add tdx guide for osdk 2024-06-14 19:49:03 +08:00
Jianfeng Jiang 6cf28751c6 Not add project_type if the manifest is in workspace root 2024-06-09 22:55:01 +08:00
Jianfeng Jiang 3b95191f7e Subcommand `new` should not parse CommonArgs 2024-06-09 22:55:01 +08:00
Jianfeng Jiang 1391ff59f2 Polish OSDK documentation 2024-06-09 22:55:01 +08:00
Zhang Junyang 74e4623e70 Let OSDK allow specifying additional boot drive options 2024-06-07 10:46:06 +08:00
Zhang Junyang 37e23a16a3 Bring OSDK's full support of QCOW2 booting 2024-06-07 10:46:06 +08:00
Zhang Junyang 03a39c94ca Refactor the representation of page metadata 2024-06-03 22:16:02 +08:00
Jianfeng Jiang 6c34db52b3 Bump only package version in Cargo.toml 2024-06-01 20:13:03 +08:00
Chen Chengjun c02eacd50c Use deny(unsafe_code) instead of forbid(unsafe_code) 2024-05-31 16:05:58 +08:00
skpupil da3e279ac6 Increase memory size and change boot mode in CI 2024-05-31 15:19:17 +08:00
Zhang Junyang f581ebdd03 Add workarounds for slow `memcpy` 2024-05-28 22:35:25 +08:00
Zhang Junyang 8e874e6a88 Let OSDK print source lines of the panic stack trace 2024-05-23 12:37:57 +08:00
Zhang Junyang f420286920 Make stripping ELF optional for QEMU direct boot 2024-05-23 12:37:57 +08:00
Jianfeng Jiang 32b1fb3723 Fix OSDK CI bugs & Build OSDK with stable channel in CI 2024-05-23 12:32:25 +08:00
Jianfeng Jiang 07fbbcfd8c Add syscall clone3 2024-05-21 19:22:13 +08:00
YanWQ-monad ccc4e6ec6b Move whole kernel ELF to VMA 2024-05-15 21:31:09 +08:00
Jianfeng Jiang 7a82132ecc Bump version in the documentation 2024-05-10 10:47:53 +08:00
Zhang Junyang 57f4ed778d Update proper dep for builder in OSDK and allow publishing 2024-05-08 15:41:32 +08:00
Zhang Junyang ee740020d0 Use `clone_from` in OSDK instead of assigning clones 2024-05-06 12:19:16 +08:00
Zhang Junyang cc4111cab2 Remove the vars mechanism in OSDK and polish documents 2024-04-25 09:44:46 +08:00