Ashwin Naren
f1d2d007bb
handle stop and continue
2025-12-15 16:49:04 -08:00
Ashwin Naren
f63ad250f4
implement restarting
2025-12-15 21:22:53 +00:00
Matthew Leach
b8edd4af68
fat32: downcase 8.3 filenames
...
Using mtools to prepare the initrd image results in an image that
exclusively uses 8.3 filenames; as per the spec, the 8.3 filenames are
stored uppercase. However, on most UNIX systems, people are used to
dealing with down-case names; therefore convert the strings to
lower-case before passing back to the user.
2025-12-14 06:38:42 +00:00
Matthew Leach
4cd9fab80b
scripts: deps: usertest: new
...
Add a script to build the userspace test program and include it in the
initramfs.
2025-12-13 19:21:22 -08:00
Matthew Leach
e2a9306037
build-deps: busybox: don't popd too many times
...
Fix the busybox deps script's dir stack underflow.
2025-12-13 19:21:22 -08:00
Ashwin Naren
a4e9cf9fd9
formatting
2025-12-11 20:09:47 +00:00
Ashwin Naren
6d967332b7
remove old todo
2025-12-11 20:09:47 +00:00
Ashwin Naren
76f7707e00
test writing
2025-12-11 20:09:47 +00:00
Ashwin Naren
b05c606a2a
testing
2025-12-11 20:09:47 +00:00
Ashwin Naren
e2534ffd9c
Implement /dev/zero
2025-12-10 14:37:59 -08:00
Ashwin Naren
71f025b437
Implement /dev/null ( #48 )
2025-12-09 08:40:27 -08:00
Matthew Leach
511a0db41e
arch: arm64: parse cmdline from chosen node
...
The kernel command line is passed via the FDT's chosen node. Use that,
rather than hard-coding it into the kernel.
Fixes : #20
2025-12-07 16:41:45 +00:00
Matthew Leach
abd5ef39c2
create-image: use mtools to populate image
...
Use the `mtools` set of utilities to populate the image without the need
to run mount the image (requring sudo).
2025-12-07 16:41:35 +00:00
Matthew Leach
76624b8be0
scripts/deps/bash: fix build for later gcc
...
'bool' has become a reserved keyword in c23. If gcc is modern enough
that this is the default standard, it results in an error. Default to
c99 for the host compiler to fix the problem.
Patch suggested by: @dec-mcgraw
Fixes : #43
2025-12-07 16:41:35 +00:00
Matthew Leach
afaae627cf
scripts/deps/bash: use release tar
...
Rather than closing the entire git repo, use the offical tar.gz release
from GNU.
2025-12-07 16:41:35 +00:00
Matthew Leach
dec7348015
rust-toolchain.toml: add rust-analyzer
...
Add rust analyzer to project rust deps.
2025-12-07 16:41:35 +00:00
Brian R.
8101e6278f
Update README.md
...
I was having a hard time figuring out what this meant when I was going through the instructions the first time, and I believe that this would help clarify things for people who got stuck like I did. I also corrected the name for "Any OS" to clarify this is for X86-64 Linux OSes, because of the command I provided in the README.
2025-12-07 16:40:54 +00:00
Ashwin Naren
661f368334
implement sys_kill
2025-12-01 19:55:41 +00:00
NerdNextDoor
0904a1994c
Introduce experimental macOS build support
...
Tested on my M4 MacBook Air, builds fine.
2025-11-30 21:15:30 +00:00
Matthew Leach
910203e0c2
syscalls: mprotect: implement
...
Implement the `mprotect` syscall. Including a bunch of tests for
ensuring proper VMA functionality regarding splitting and merging via
`mprotect`.
2025-11-30 20:13:36 +00:00
Matthew Leach
baf98c452f
libkernel: vmarea: shrink_to: implement
...
Implement a `shrink_to` function for a VMA. This shrinks the VMA's
region to the specified region, while recalculating file offsets and
size if the VMA is file-backed.
2025-11-30 20:13:36 +00:00
Matthew Leach
3e3a9ad0c5
libkernel: region: add punch_hole
...
Add a function for calculating the set difference when punching one
region out of another.
2025-11-30 20:13:36 +00:00
Matthew Leach
1b95049159
libkernel: memory: VMArea: page align on from_pheader
...
Page align any non-aligned program headers, fixing up the file offset
and filesz accordingly.
2025-11-30 20:13:36 +00:00
Herman Polloni
41814dddbe
Fix bash build on aarch64 host
2025-11-30 10:19:14 +00:00
Matthew Leach
8038a6c4e2
syscalls: sys_getrand: implement
...
Implement sys_getrand
2025-11-28 21:24:37 +00:00
Ashwin Naren
5f2c2491b8
implement fair scheduler
2025-11-28 21:06:07 +00:00
Bjorn Beishline
6d3af6a95d
Update syscall doc with newly implemented methods
2025-11-28 20:46:45 +00:00
Bjorn Beishline
911a85e4ef
Implement sys_set_robust_list and sys_gettid
2025-11-28 20:46:45 +00:00
Matthew Leach
fb405282cc
syscalls: rseq: return ENOSYS
...
Return ENOSYS for sys_rseq
2025-11-28 20:09:05 +00:00
Matthew Leach
1741b036bb
syscalls: getrlimit: return error
...
Return error for the moment for `sys_getrlimit`.
2025-11-28 20:09:05 +00:00
Matthew Leach
1ed714e47b
libkernel: memory: region: remove breaking assert in expand
...
The `expand` function adds bytes size into the region; the check `size
>= self.size` isn't needed since this is an expanding function, not a
resizing one. To emphasise that, rename the function to `expand_by`.
Also include a bunch of unit tests to ensure that expansion by regions
with differing sizes works correctly.
2025-11-28 20:09:05 +00:00
Matthew Leach
6e988c3639
syscall: socket: return with error
...
Return with an error when calling socket()
2025-11-28 20:09:05 +00:00
Matthew Leach
6a029c340a
syscall: gettimeofday: impement
...
Provide a dummy implementation of sys_gettimeofday
2025-11-28 20:09:05 +00:00
Matthew Leach
5f42f74c5c
process: exec: add AT_PH aux vectors
...
libc uses the program headers to find the TLS pheader. Therefore, we
need to push these values into the aux vector when creating the
userspace mappings for the process.
2025-11-28 20:09:05 +00:00
Matthew Leach
28980c6725
uname: fudge the version of the kernel for libc
...
libc bringup checks the version of the kernel and it appears as though
it's not happy with `0.1.0`:
```
FATAL: kernel too old
```
For now, fudge the version to keep libc happy.
2025-11-28 20:09:05 +00:00
Matthew Leach
74b483dd22
exec: add a dummy AT_RANDOM aux vector value
...
Add a dummy value for AT_RANDOM as part of the aux vector. This is a
security hole and needs fixing once an entropy engine has been
implemented.
2025-11-28 20:09:05 +00:00
Matthew Leach
825b3d7547
libkernel: mem: brk: return non-aligned break
...
Determine whether the program break needs extending with aligned logic,
but always return the requested, non-aligned, address.
Use `brk_addr` in unit tests instead.
2025-11-28 20:09:05 +00:00
Ashwin Naren
de76e243a2
properly shutdown system
2025-11-28 20:02:12 +00:00
Ashwin Naren
504f7f01dc
fix failing tests
2025-11-28 12:08:06 +00:00
Ashwin Naren
0c749d7ce8
Parse fat dates
2025-11-28 12:08:06 +00:00
Ashwin Naren
335412c441
include line/col info in kernel panic
2025-11-27 18:24:03 +00:00
Matthew Leach
58b903567d
LICENSE: add MIT
...
Add MIT LICENSE
Fixes : #12
2025-11-27 15:17:59 +00:00
Ashwin Naren
eff3dad5c7
schedule tasks based on last run time
2025-11-27 14:09:14 +00:00
Matthew Leach
e9f3f8764d
Merge pull request #13 from hardliner66/restructure_build
2025-11-26 06:28:58 +00:00
Steve Biedermann
e5c4ef7e74
restructure build scripts
2025-11-25 22:06:39 +01:00
Matthew Leach
b1ebd61763
Merge pull request #16 from hexagonal-sun/fat32-case-insensitive
...
libkernel: fs: fat32: make lookups case-insensitive
2025-11-24 21:35:38 +00:00
Matthew Leach
4735e7c59a
Merge pull request #15 from hardliner66/fix_readme_link
...
Fix link in readme
2025-11-24 21:28:13 +00:00
Matthew Leach
606500ba8b
libkernel: fs: fat32: make lookups case-insensitive
...
Fat32 is a case-insensitive filesystem, therefore when looking up a path
in a directory entry, convert all strings to lowercase before
comparison.
2025-11-24 21:25:51 +00:00
Steve Biedermann
bbdd96f953
fix link in readme
2025-11-24 21:18:40 +01:00
Matthew Leach
d09e7a9333
Merge pull request #14 from hardliner66/add_syscall_docs
2025-11-24 17:39:36 +00:00