Commit Graph

2005 Commits

Author SHA1 Message Date
4c87d72b44
kernel/binfmt: Add documentation + support script interpreters being scripts themselves
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-31 20:41:18 +02:00
d01087362e
libc: Set the close-on-exec flag for directories opened using opendir()
This is apparently mandated by POSIX.
2023-07-31 10:58:06 +02:00
3598dacbed
init: Remove support for 'Script' parameters
All checks were successful
continuous-integration/drone/push Build is passing
This can now be changed to good old 'Command', putting a shebang into the script,
thanks to the new shebang support in the kernel.
2023-07-30 18:47:38 +02:00
3638d3da46
kernel: Add binary format for shebang scripts 2023-07-30 18:46:19 +02:00
1c76675e40
kernel: Add a framework to add more executable formats, possibly from userspace
This lets us implement shebangs and possibly an interface similar to Linux's binfmt_misc.
2023-07-30 18:25:44 +02:00
6e269c6bc4
preinit: Search for init in several directories
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-30 13:08:53 +02:00
43fa128e29
Update README.md
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-30 11:55:20 +02:00
8475a3aad9
socket-client: Send a user-provided message to the server
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-07-30 11:46:53 +02:00
187f0ff83e
kernel: Rename Inode::blocking() to Inode::will_block_if_read()
All checks were successful
continuous-integration/drone/pr Build is passing
2023-07-30 11:41:53 +02:00
0c873923e8
kernel: Make OpenFileDescription shareable
All checks were successful
continuous-integration/drone/pr Build is passing
2023-07-30 11:33:46 +02:00
63745565db
apps: Add socket client
Some checks failed
continuous-integration/drone/pr Build is failing
2023-07-30 11:33:06 +02:00
7b24a4d1c6
libc: Add wrappers for listen(), connect(), and accept() 2023-07-30 11:33:06 +02:00
8d3b3aaf05
libluna: Add a few more network-related errno codes 2023-07-30 11:33:06 +02:00
bb3127c212
kernel: Implement listen(), connect() and accept() 2023-07-30 11:33:06 +02:00
cca806f088
libluna: Add a variant of CircularQueue that dynamically allocates its buffer at runtime
This is needed to implement the backlog queue for listening sockets.
2023-07-30 11:33:06 +02:00
7a7ae086f5
kernel: Use a did_close callback for UnixSockets 2023-07-30 11:33:06 +02:00
fb08594a18
kernel: Separate FileDescriptors and OpenFileDescription
Also, add a did_close() callback for OpenFileDescriptions losing all their references.
2023-07-30 11:33:06 +02:00
9303c44269
apps: Add socket-test 2023-07-30 11:33:06 +02:00
a12b018b03
kernel+libc: Add basic Unix sockets (creation and binding) 2023-07-30 11:33:06 +02:00
c4e30c3029
kernel: Add functionality to allow external inodes (such as sockets) to acquire an inode number from a file system
This is only implemented in tmpfs.
2023-07-30 11:33:06 +02:00
c1d08b904e
kernel+libluna: Add Buffer::dequeue_data() 2023-07-30 11:33:05 +02:00
200bb6c240
kernel+libc+libos: Add inode type for sockets 2023-07-30 11:33:05 +02:00
6b0bc66fd2
libluna: Add new socket-related errno codes 2023-07-30 11:33:05 +02:00
4ed7ec5e93
libluna: Store SharedPtr's ref count in the object itself
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-30 11:32:46 +02:00
28cc4b2306
kernel: Add default action for SIGWINCH
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-27 14:00:30 +02:00
11df5a2ec3
kernel: Use pid_t internally for process IDs
All checks were successful
continuous-integration/drone/push Build is passing
This removes a bunch of casts between pid_t and u64, and makes more sense since pid_t is literally the data type for process IDs.
2023-07-26 21:32:00 +02:00
5aad7d3154
kernel/x86_64: Fail on invalid interrupts instead of calling FIXME_UNHANDLED_INTERRUPT
All checks were successful
continuous-integration/drone/push Build is passing
A FIXME is something that should be changed later,
this is a check for something that should never happen.
2023-07-25 18:23:33 +02:00
58fa297068
libluna: Wrap around when iterating through a HashTable's buckets array
All checks were successful
continuous-integration/drone/push Build is passing
Why am I so dumb?
2023-07-25 18:19:45 +02:00
28dd8194af
kernel: Include waited-for grandchildren in RUSAGE_CHILDREN's times
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 17:50:15 +02:00
b88da4811f
kernel: Remove debug message in readlink
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 17:30:56 +02:00
7f990b161b
libluna: Fix comparison of StringViews without null termination
All checks were successful
continuous-integration/drone/push Build is passing
This regressed in de7e58c274, and made value arguments pretty much unusable.

This really needs a test...
2023-07-25 17:25:18 +02:00
9bb3fed611
libluna: Use the right unsigned integer type for wcscmp()'s return type 2023-07-25 17:23:27 +02:00
105ed79f8f
kernel: Reenable userspace stack tracing, but hidden behind a config flag
All checks were successful
continuous-integration/drone/push Build is passing
Sometimes this is needed for userspace program debugging (such as ports),
but sometimes it can crash, so we leave it off by default.
2023-07-25 17:02:09 +02:00
905e71527e
libc: Actually implement sigsetjmp() and siglongjmp() 2023-07-24 19:39:22 +02:00
c6d91c89cd
stat: Change program description
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 19:17:36 +02:00
2e2b87b714
ports+tools: Add bc port
All checks were successful
continuous-integration/drone/push Build is passing
It segfaults when writing "about", but oh well...
2023-07-24 19:14:22 +02:00
b12f42cfe2
libc: Add SIGWINCH
Not used for anything at the moment, I guess if a user program wants to send it...

Required by bc.
2023-07-24 19:11:06 +02:00
c70790bf62
ports: Add some defaults for CMake projects as well
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 18:50:51 +02:00
a990cc145e
ports: Add initial documentation to the port system
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 18:29:44 +02:00
b0d7870ec6
ports: Add minitar (with examples!)
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 17:20:54 +02:00
9a00b29304
ports: Basic ports system + nasm port
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 17:07:49 +02:00
033aff4f6c
all: Error out on bidirectional characters (CVE-2021-42574)
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 15:06:48 +02:00
c5af1bcef9
libc: Fix typo in fopen description
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-24 11:57:47 +02:00
b3c478f19e
init: Make the log stream line-buffered
All checks were successful
continuous-integration/drone/push Build is passing
Looks like log output stopped showing after buffering was implemented, since the log was not flushed properly.
2023-07-24 11:54:49 +02:00
ad3f3bf4db
kernel: Log the release name and build date in the boot log 2023-07-24 11:48:01 +02:00
01359af288
tools: Make the Ext2 partition bigger (32M)
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-22 16:11:34 +02:00
eeb9e16a74
libos: Make os::File a wrapper around stdio's FILE
All checks were successful
continuous-integration/drone/push Build is passing
This way, os::File benefits from the same buffering as stdio.h does.
2023-07-22 12:40:02 +02:00
358493a7bc
kernel: Add a system for release names in uname(), call alpha releases "Mercury"
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-22 12:21:01 +02:00
5110d740b8
all: Update the version number to 0.4.0
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-22 12:11:02 +02:00
759fb4fe0e
tools: Make replace-stdint.sh replace types only if they're followed by a space
All checks were successful
continuous-integration/drone/push Build is passing
Otherwise, size_to_read -> usizeo_read.
2023-07-22 11:59:41 +02:00