Commit Graph

114 Commits

Author SHA1 Message Date
4lDO2 d498eefb2f Disable userspace feature in redox-syscall.
This prevents the kernel from being able to accidentally call itself
using the syscall instruction.
2024-09-17 19:24:26 +02:00
4lDO2 97ea7ea6ec Disable syscall debug 2024-09-12 10:29:11 +02:00
4lDO2 e3e05ebca8 Fix root scheme order by using indexmap (tmp). 2024-09-11 22:09:29 +02:00
4lDO2 339271b4d7 Add getdents syscall, and switch schemes to it. 2024-09-11 22:09:26 +02:00
4lDO2 9673fa26b6 Expand Cargo features to separate lines.
This is much more diff- and by extension rebase-friendly.
2024-09-08 00:09:49 +02:00
Jacob Lorentzon 643d7400db Implement paravirtualized KVM TSC support 2024-09-03 21:20:06 +00:00
Jacob Lorentzon bf0fc66ac1 Improved scheme protocol. 2024-06-14 11:31:51 +00:00
4lDO2 66eb3361d3 Use saved regs instead of costly context.syscall. 2024-03-19 11:33:55 +01:00
bjorn3 e1f4bf4356 Misc arm device tree fixes 2024-03-17 19:28:58 +01:00
4lDO2 5ff26ca967 Remove paste dependency completely. 2024-03-16 17:49:31 +01:00
bjorn3 d5e1188b8e Remove doc feature 2024-03-15 09:55:27 +01:00
4lDO2 fa3e2a24d4 Optimize TLB flushing. 2024-03-04 19:03:01 +01:00
4lDO2 79381249a2 Implement a TLB shootdown draft. 2024-03-04 19:03:00 +01:00
bjorn3 782ec87f27 Fix UB in the locking code of context switching
The spin crate considers it UB to call force_write_unlock while there is
a threads trying to obtain a read lock on the same rwlock.

This also switches to the spinning_lot crate for the context rwlock as
it has support for a write guard keeping a reference to the rwlock using
an Arc instead of a reference.
2024-02-25 17:07:41 +01:00
Ron Williams 9331452bdb Use RedoxPath::as_parts. redox-path from crates.io 2024-02-09 15:05:45 +00:00
bjorn3 fa58f5887e The kernel now works fine without optimizations
It is relatively slow without optimizations, but it is still usable.
2024-01-24 14:15:09 +01:00
Jeremy Soller 87ee68998c Handle new path format 2024-01-18 12:35:32 -07:00
4lDO2 529c491fa0 Allow disabling profiling at compile time. 2023-12-17 00:49:28 +01:00
bjorn3 2d065083df Use HashMap instead of BTreeMap where possible
This shrinks the kernel from 905840 bytes to 862408 bytes.
2023-12-13 19:55:20 +01:00
bjorn3 a7165f822f Switch from the memoffset crate to the offset_of feature
The memoffset crate requires const_refs_to_cell to work in const
contexts. This feature has some known issues around it's semantics. The
offset_of feature however is currently on track for stabilization.
2023-12-12 20:21:31 +00:00
bjorn3 d819277d56 Make rustc directly invoke the linker 2023-10-03 09:53:37 +02:00
bjorn3 b9299224ea Move debuginfo option to Cargo.toml 2023-10-03 09:39:14 +02:00
4lDO2 ed3d2d7832 Allow disabling overwrite-based optimizations. 2023-09-14 16:44:12 +02:00
4lDO2 f028b77412 Use config.toml instead of x86_* Cargo feature. 2023-09-12 21:19:06 +02:00
4lDO2 c210e59a75 Add a config.toml to the kernel. 2023-09-12 21:13:58 +02:00
Jeremy Soller a4d0960b3f Update redox syscall 2023-09-08 11:16:53 -06:00
4lDO2 56f88e80c2 Usercopy migration 2023-07-06 13:03:21 +00:00
bjorn3 8c0be73224 Build the kernel with panic=abort
This reduces the kernel size and avoids the need to define the
eh_personality lang item.
2023-07-04 19:14:36 +02:00
Jeremy Soller 07ed93225e 0.3.4: Update syscall to matching version 2022-08-31 16:15:25 -06:00
Jeremy Soller bb12da2b68 Update syscall 2022-08-24 08:53:37 -06:00
Jeremy Soller cc6c974c91 Bump kernel to 0.3.0 to match syscall 2022-07-29 18:18:27 -06:00
Jeremy Soller e99cbcf5d2 Fixes for compiling aarch64 2022-07-29 18:06:53 -06:00
Jeremy Soller 8db4596f73 Use x86 crate on i686 as well 2022-07-28 08:22:26 -06:00
4lDO2 1cdd462244 Move the initfs scheme to userspace. 2022-07-27 10:52:22 +02:00
4lDO2 6e5015dcab WIP: Add necessary interfaces for setuid/setgid. 2022-07-27 10:51:45 +02:00
4lDO2 15b029de36 Fix everything all the way to booting to desktop. 2022-07-27 10:51:45 +02:00
Jeremy Soller 65bbd50416 Update kernel version to match syscall version 2022-04-26 08:28:05 -06:00
Jeremy Soller 6f83a0800a Set graphical_debug by default 2022-04-25 08:47:10 -06:00
4lDO2 df37b1f634 External initfs 2022-04-11 21:09:08 +00:00
4lDO2 6255bea143 Update to latest toolchain.
Multi-core is slightly broken when using the latest version of spin
(0.9.2). I believe this is because Once used to do SeqCst loads/stores
everywhere, which might have made any possible data race much harder to
come by.
2022-03-12 17:10:36 +01:00
Jeremy Soller ae3bdea4bc Update raw-cpuid 2022-03-01 18:12:06 -07:00
Jeremy Soller 1aae949fc4 Support for getting live disk from bootloader 2022-02-10 15:49:34 -07:00
Jeremy Soller 61279db991 Remove no_threaded_syscalls feature 2021-10-27 20:48:16 -06:00
Jeremy Soller 9ea278997c Disable threaded syscalls until threaded allocation issues are solved 2021-10-20 20:05:47 -06:00
4lDO2 d7a1c6255b Fix possible race condition in paranoid ISRs.
Additionally, because it turned out to be infeasible to rely on
link-time constants in global_asm! code, I have also converted the
interrupt handlers to naked fns. This removes the proc-macro-reliant
"paste" dependency, but inserts a tiny ud2 at the end of every ISR.
2021-08-06 17:34:56 +02:00
4lDO2 0968e4f87e Support fsgsbase at compile time. 2021-07-31 10:12:59 +02:00
4lDO2 3e5cf387d5 Use offset_of! in context::arch::switch_to.
This is definitely better than hardcoding the offsets!
2021-06-21 10:16:41 +02:00
4lDO2 1cf5f5ea22 Update dependencies to work with latest nightly. 2021-06-17 22:42:54 +02:00
4lDO2 2dc899dc3b Update paste and align interrupt handlers. 2021-06-17 22:42:50 +02:00
Jeremy Soller 28d1d7e847 Update version to 0.2.8 2021-05-05 21:21:57 -06:00