Jeremy Soller
6b2439f1b9
Improved 32-bit x86 support
2022-08-18 14:57:15 -06:00
Jeremy Soller
bd9ee98ba9
Use same code for clone_handler on 32-bit and 64-bit x86
2022-08-17 14:40:30 -06:00
Jeremy Soller
d47ba636a0
Support x86 in proc scheme
2022-08-17 14:32:12 -06:00
4lDO2
c3c135cb1d
Remove chmod from UserScheme
2022-08-13 19:44:44 +02:00
4lDO2
431407aff0
Remove SYS_CHMOD and cwd related syscalls/files.
2022-08-13 19:44:44 +02:00
Jeremy Soller
5d55d4eb87
Fix warnings
2022-07-29 18:33:54 -06:00
Jeremy Soller
0c80643077
Make graphical_debug arch independent and fix lots of warnings
2022-07-29 15:56:44 -06:00
Jeremy Soller
a1d9edee52
Use Mutex<u64> instead of AtomicU64 for user scheme packet ID
2022-07-29 09:25:40 -06:00
Jeremy Soller
bf9e630f65
Fix building proc scheme on non-x86_64
2022-07-29 09:25:17 -06:00
Jeremy Soller
f0d3e3281c
Use acpi on i686
2022-07-28 08:22:55 -06:00
4lDO2
ca4525462d
Return right number of bytes written for addrspace.
2022-07-28 14:16:07 +02:00
4lDO2
99362f98d2
Add a better interface for modifying addrspaces.
2022-07-27 10:52:52 +02:00
4lDO2
5bbfdcda6b
Add mmap-min-addr and support unmapping parent PTs.
2022-07-27 10:52:45 +02:00
4lDO2
308c2cc711
Support modifying processes' sigactions.
...
This is, other than vfork, the last piece of functionality that the
previous clone() offered (CLONE_SIGHAND) which previously was not
implemented.
2022-07-27 10:52:29 +02:00
4lDO2
6589083238
Partial: Migrate schemes to RMM.
2022-07-27 10:52:23 +02:00
4lDO2
8970ce1fe7
Benefit from addrspace abstraction in switch.
2022-07-27 10:52:22 +02:00
4lDO2
1cdd462244
Move the initfs scheme to userspace.
2022-07-27 10:52:22 +02:00
4lDO2
351d77ad9b
Improve floating point handling.
2022-07-27 10:52:22 +02:00
4lDO2
db3b834f19
Also inherit pgid, umask, sigmask.
2022-07-27 10:52:22 +02:00
4lDO2
4aea0cfd0c
Fix AddrSpace memory leak.
2022-07-27 10:52:22 +02:00
4lDO2
549c023398
Return correct bytes written in proc:X/addrspace.
2022-07-27 10:52:22 +02:00
4lDO2
59d74689dc
Copy filetable more efficiently.
2022-07-27 10:52:22 +02:00
4lDO2
240d91f951
Set address space/files when closing, not writing.
...
This fixes file descriptor leaks. Suppose relibc is just about to set
the address space. For this, it needs to write the address space fd to
the selection fd. To avoid having to close them in the kernel, it rather
memorizes what the file descriptors refer to internally, and then do the
actual operation when they are gone, i.e. when closing.
2022-07-27 10:52:19 +02:00
4lDO2
fa48c7aa97
Deduplicate code for transferring/creating grants.
2022-07-27 10:52:11 +02:00
4lDO2
cb40eb3792
Support reading all grants and transferring grants.
2022-07-27 10:52:10 +02:00
4lDO2
b50495bfa5
WIP: Support clone in userspace
...
Everything seems to work for the most part, but now there are tons of
daemons which rely on syscall::clone, which is now implemented in relibc
:(
2022-07-27 10:52:04 +02:00
4lDO2
283ada82a0
WIP: Remove SYS_CLONE (to be done in userspace).
2022-07-27 10:52:03 +02:00
4lDO2
563121596d
Fix running on multi_core.
...
Turns out the problem all along was that the ActivePageTable was never
dropped in usermode_bootstrap. So as soon as any other hardware thread
tried to do page table business, it deadlocked!
2022-07-27 10:51:45 +02:00
4lDO2
6e5015dcab
WIP: Add necessary interfaces for setuid/setgid.
2022-07-27 10:51:45 +02:00
4lDO2
37f9b292f1
Add kfmap to fix properly reobtaining grants.
2022-07-27 10:51:45 +02:00
4lDO2
de28cc4918
Add a Scheme supertrait for kernel-only methods.
2022-07-27 10:51:45 +02:00
4lDO2
31c4bc8a1c
Remove kernel support for fmap_old and funmap_old.
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
4lDO2
e6e1348072
Implement exec, and change UserGrant allocator.
2022-07-27 10:51:44 +02:00
4lDO2
846318e716
WIP: Attempt implementing fexec in userspace.
2022-07-27 10:51:43 +02:00
Jeremy Soller
b5a9301706
Map live disk only if not already mapped
2022-04-26 12:01:55 -06:00
Jeremy Soller
6e98736c94
Do not map live disk twice
2022-04-25 08:43:51 -06:00
4lDO2
df37b1f634
External initfs
2022-04-11 21:09:08 +00:00
4lDO2
4d7da495f5
Fix "clone grant using fmap"
...
This does the same as the previous MR, but fixes the issue where the
parent process got the mapping (and at the wrong address) and not the
child process.
2022-04-11 21:31:36 +02:00
Jeremy Soller
87b3bef06c
Revert "Merge branch 'clone_grant_using_fmap' into 'master'"
...
This reverts merge request !190
2022-03-30 14:54:49 +00:00
Jeremy Soller
37ebef2d35
Merge branch 'pipe_list_const_fn' into 'master'
...
Move more of `pipe:`'s initialization to compile time.
See merge request redox-os/kernel!182
2022-03-30 13:54:27 +00:00
Jeremy Soller
c5c5b33b6a
Merge branch 'clone_grant_using_fmap' into 'master'
...
Clone grant using fmap
See merge request redox-os/kernel!190
2022-03-30 13:53:08 +00:00
Jeremy Soller
52ad689d37
Notify debug: readers of new input after all input is processed
2022-02-14 08:49:34 -07:00
Jeremy Soller
1aae949fc4
Support for getting live disk from bootloader
2022-02-10 15:49:34 -07:00
4lDO2
a3356c3fdd
Clone grant using fmap
2021-12-30 11:27:44 +01:00
Jeremy Soller
515cab03eb
Fix a number of warnings
2021-11-29 20:01:27 -07:00
Jeremy Soller
64f1533d6f
Implement anonymous fmap
2021-09-22 21:04:04 -06:00
4lDO2
465c461b60
WIP: Stop using recursive mapping.
...
Note that this is very preliminary, and I merely got my already freezing
kernel branch not to triple fault, but I would probably apply this patch
to upstream.
What is changed here, is that rather than relying on recursive mapping
for accessing page table frames, it now uses linear translation
(virt=phys+KERNEL_OFFSET). The only problem is that the paging code now
makes assumptions that the entire physical address space remains mapped,
which is not necessarily the case on x86_64 architecturally, even though
systems with RAM more than a PML4 are very rare. We'd probably lazily
(but linearly) map physical address space using huge pages.
2021-08-11 17:46:33 +02:00
Jeremy Soller
0c3542ff51
Store funmap data with the context's grants
2021-08-10 20:46:30 -06:00
Jeremy Soller
f94dc3beb8
Allow current process to access its own proc data
2021-08-10 16:33:49 -06:00