Skip to content

Conversation

@rilysh
Copy link
Contributor

@rilysh rilysh commented Feb 17, 2023

vmm_map_memory can also return NULL, as a result, v_address will be pointed as NULL. For a workaround, handling it with 0 should fix this state.
In syscall_nanosleep, the req param was passed as a constant, and Clang seems to return a warning when compiling. It might not be necessary but I removed req from the const position.

Note: This might require some review since I haven't thoroughly tested the changes yet.

@Milton612
Copy link

How have you been able to build this project? I've only been successful in building the kernel and even then I don't know how to build the userspace binaries

@rilysh
Copy link
Contributor Author

rilysh commented Mar 16, 2023

@Milton612 you may want to take a look at https://github.com/ozkl/soso/tree/master/toolchain
Unfortunately, there's no makefile for userspace binaries, for now. You have to manually go through the process of cross compiling them. However, it might be possible to compile the compiler for soso but I'm not sure about that yet.

@Dashbloxx
Copy link

Dashbloxx commented Mar 19, 2023

This project is extremely broken, even the kernel was hard to build.
A while ago I made this, which uses Soso's kernel and is an attempt to have Soso working again

Edit: I have been able to create a very basic userland program that works on Soso and the fork I've made

@ajh123
Copy link

ajh123 commented Jun 14, 2024

From looking at the existing makefiles I think we need to do the following to make a build:

  1. Compile clang, binutils, etc ... using the binutils patch and add the final executables to your $PATH.
  2. Compile the kernel with simply just make (use this PR to make compiling successful)
  3. Navigate into the userspace folder, and run make all
  4. Create the initrd by using the create-initrd.sh script.
  5. Create a cd disk image by using the create-cd-image.sh script.

The thing I'm not sure how to do, is step 1.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

info->v_address = (uint32_t)result;

is sufficient here as it is simpler

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

instead of removing const from the arg, it is better to introduce void* here:
if (!check_user_access((void*)req))

@ozkl ozkl merged commit 71d93b4 into ozkl:master May 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants