|
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 |
|
|
4ed7ec5e93
|
libluna: Store SharedPtr's ref count in the object itself
continuous-integration/drone/push Build is passing
|
2023-07-30 11:32:46 +02:00 |
|
|
11df5a2ec3
|
kernel: Use pid_t internally for process IDs
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 |
|
|
cd6bf745a7
|
tests+kernel+init: Run tests automatically in a headless way
continuous-integration/drone/push Build is failing
|
2023-07-21 14:09:37 +02:00 |
|
|
0d41e1f7b6
|
kernel/ext2: Change outdated FIXME
continuous-integration/drone/push Build is passing
|
2023-07-15 13:17:58 +02:00 |
|
|
de6fe7f7c2
|
kernel+libc+sh: Make the TTY device actually follow termios rules
continuous-integration/drone/push Build is passing
Like, so much more termios compatibility!
|
2023-07-13 20:33:20 +02:00 |
|
|
efd5bae7a5
|
kernel: Implement querying the terminal window size
continuous-integration/drone/push Build is failing
|
2023-07-12 22:09:28 +02:00 |
|
|
546d900454
|
libc+apps: Start implementing POSIX-compliant termios.h wrappers around tty ioctls
continuous-integration/drone/push Build is passing
|
2023-07-12 19:23:06 +02:00 |
|
|
81e1fdf81e
|
kernel+libc+login+sh+su: Implement foreground and background process groups in the default console
continuous-integration/drone/push Build is passing
Also, the console sends SIGINT to the foreground process group when ^C is pressed!
|
2023-07-12 13:49:37 +02:00 |
|
|
69f9701097
|
kernel+libc: Implement isatty()
continuous-integration/drone/push Build is failing
|
2023-07-11 12:05:09 +02:00 |
|
|
56f3d26969
|
kernel+libluna: Fix the CRC32 algorithm and use it to verify the GPT header
continuous-integration/drone/push Build is passing
|
2023-07-10 14:54:55 +02:00 |
|
|
a1b92fcc3f
|
kernel: Add the MOUNT_DEBUG flag
|
2023-07-10 13:04:34 +02:00 |
|
|
3b1219ecf2
|
kernel/ext2: Make the inner extended superblock struct packed as well
continuous-integration/drone/push Build is passing
|
2023-07-02 19:50:27 +02:00 |
|
|
d363d5e915
|
kernel/ext2: Make sure we don't crash when accessing the last inode
continuous-integration/drone/push Build is passing
|
2023-07-02 17:30:14 +02:00 |
|
|
da689dd1a7
|
kernel/ext2: Allow reading up to 4 MB of data from files
This is done by scanning the singly indirect pointer of the inode.
|
2023-06-25 20:35:39 +02:00 |
|
|
41f578aa18
|
kernel/ext2: Add support for symbolic links
|
2023-06-25 20:35:38 +02:00 |
|
|
34e1ef36b1
|
kernel: Make pivot_root() reset the parent entry of the new root directory
Otherwise it would just be pointing to the old parent fs, and we don't want that.
|
2023-06-25 20:35:38 +02:00 |
|
|
a62265b504
|
kernel/ext2: Implement directory traversal
|
2023-06-25 20:35:37 +02:00 |
|
|
4fe6c506ec
|
kernel/ext2: Implement Inode::read()
|
2023-06-25 20:35:37 +02:00 |
|
|
77686b26f8
|
kernel/Ext2: Read the root inode metadata from the disk
|
2023-06-25 20:35:36 +02:00 |
|
|
a9460469d9
|
kernel+libc+apps: Add a source parameter to the mount() system call
|
2023-06-25 20:35:35 +02:00 |
|
|
707f64acb5
|
kernel: Add an Ext2 filesystem skeleton
|
2023-06-25 20:35:35 +02:00 |
|
|
3b6f5b28fc
|
kernel: Make the configurable filename restrictions actually compile
continuous-integration/drone/push Build is passing
|
2023-06-22 20:24:33 +02:00 |
|
|
fdf2bb2501
|
kernel: Make the filename restrictions configurable
continuous-integration/drone/push Build is passing
|
2023-06-22 20:22:43 +02:00 |
|
|
b4a6e4d56d
|
libluna/PathParser: Make dirname() and basename() static functions
continuous-integration/drone/push Build is passing
This avoids creating a PathParser to use them, which allocates memory that won't be used.
|
2023-06-19 11:21:58 +02:00 |
|
|
b7bdec9ece
|
kernel: Add a bunch more config definitions and hide debug messages behind them
|
2023-06-18 20:18:00 +02:00 |
|
|
27d9cd0e87
|
kernel: Move TmpFS::*Inode into a separate file
continuous-integration/drone/push Build is passing
|
2023-06-18 11:33:40 +02:00 |
|
|
266fa4a0d4
|
kernel: Start counting partition numbers at 1
continuous-integration/drone/push Build is passing
This makes more sense for the end user.
|
2023-06-17 19:50:58 +02:00 |
|
|
7cace9a0d7
|
kernel: Provide more meaningful panic messages for critical failures
|
2023-06-17 19:43:25 +02:00 |
|
|
e79d4297ea
|
kernel: Make the root inode be a mountpoint as well + add pivot_root()
continuous-integration/drone/push Build is passing
|
2023-06-17 17:27:22 +02:00 |
|
|
592558d7ad
|
kernel: Add GUID partition table support
|
2023-06-17 12:03:37 +02:00 |
|
|
32d2e0e6b7
|
kernel: Remove register_special_device()'s name parameter
continuous-integration/drone/push Build is passing
This is now duplicate information that can be queried using device->device_path().
|
2023-06-16 21:46:51 +02:00 |
|
|
738b218a49
|
kernel/ATA+MBR: Dynamically generate device names + create devices for MBR partitions
continuous-integration/drone/pr Build is passing
|
2023-06-16 21:30:50 +02:00 |
|
|
72b8ebe02c
|
kernel: Make the MBR code read from a device instead of an inode
continuous-integration/drone/pr Build is failing
|
2023-06-16 21:10:33 +02:00 |
|
|
93922932fa
|
kernel: Start reading the MBR partition table from the ATAPI drive
|
2023-06-16 21:10:33 +02:00 |
|
|
a0fa1f2cfd
|
kernel+init: Create a device node in /dev to access the CDROM from userspace!
Still using PIO, though.
|
2023-06-16 21:10:33 +02:00 |
|
|
1090815c8d
|
kernel: Honor the sticky bit
|
2023-06-03 11:55:10 +02:00 |
|
|
ff952cfe16
|
kernel+init: Let userspace control devfs mountpoints
continuous-integration/drone/push Build is passing
|
2023-06-02 21:45:31 +02:00 |
|
|
bd8aaa917f
|
kernel+libc+ln: Add support for userspace hard link creation
continuous-integration/drone/push Build is passing
|
2023-05-27 11:32:40 +02:00 |
|
|
a98e9e8009
|
kernel: Add /dev/full
continuous-integration/drone/push Build is passing
|
2023-05-27 10:42:45 +02:00 |
|
|
cba0a23db9
|
kernel: Make the framebuffer a block device
continuous-integration/drone/push Build is passing
|
2023-05-26 20:36:35 +02:00 |
|
|
7cdb967730
|
kernel: compilation fix
continuous-integration/drone/push Build is passing
|
2023-05-26 20:30:39 +02:00 |
|
|
62e14e7580
|
kernel+libos+apps: Support block devices and disallow seeking character devices or pipes
continuous-integration/drone/push Build is failing
|
2023-05-26 20:27:47 +02:00 |
|
|
3a51807fa6
|
kernel+stat: Handle pipes correctly in stat()
continuous-integration/drone/push Build is passing
|
2023-05-23 20:54:25 +02:00 |
|
|
1094042a7d
|
kernel: Implement st_dev and st_rdev
continuous-integration/drone/push Build is failing
|
2023-05-23 20:45:24 +02:00 |
|
|
67a9d130e2
|
kernel: Add initial support for symbolic links :D
|
2023-05-20 21:49:24 +02:00 |
|
|
d7c563aebd
|
kernel: Add reference counting for mounts
continuous-integration/drone/push Build is passing
This will make sure we cannot unmount a file system while there is another one mounted inside it.
|
2023-05-18 16:22:31 +02:00 |
|
|
3a73d49aa1
|
kernel: Remove a mount from the mountpoint list after unmounting it
|
2023-05-18 16:18:09 +02:00 |
|
|
8f6bd29da3
|
kernel: Make file system reference counting work for current directories
continuous-integration/drone/push Build is passing
Also, make pipes usable again.
|
2023-05-17 20:37:01 +02:00 |
|
|
29174ca228
|
kernel/VFS: Add a way to unmount file systems
|
2023-05-17 19:52:26 +02:00 |
|
|
e7d482e78a
|
kernel+init: Add a VFS mount system and auto-populate the devfs
|
2023-05-17 19:40:37 +02:00 |
|
|
efc6d03f23
|
kernel+libc: Add support for unnamed pipes
continuous-integration/drone/push Build is passing
|
2023-05-10 22:48:31 +02:00 |
|
|
4753e80583
|
kernel: Make DeviceRegistry store the created devices instead of creating them when requested
continuous-integration/drone/push Build is passing
|
2023-05-09 18:31:27 +02:00 |
|
|
77560bbc3e
|
kernel+tools: Allow loading files with different owners + add a more dynamic install script
continuous-integration/drone/push Build is passing
|
2023-05-06 12:11:35 +02:00 |
|
|
3a1c22bb93
|
kernel: Add keyboard combinations for debug information dumps
Ctrl+Alt+E: Dump threads
Ctrl+Alt+M: Dump memory usage
Ctrl+Alt+H: Dump heap state
|
2023-05-04 23:32:48 +02:00 |
|
|
7058ec945a
|
libluna: Use a String for name and handle prefix correctly in TarStream
|
2023-05-02 10:51:53 +02:00 |
|
|
0c1d33f2ec
|
kernel: Move some files into subdirectories
continuous-integration/drone/push Build is passing
|
2023-04-28 15:55:06 +02:00 |
|
|
24f4ce9669
|
kernel: Only allow Ctrl+D on an empty line
|
2023-04-26 20:42:26 +02:00 |
|
|
4f6e020196
|
kernel+libc: Add framebuffer ioctls
continuous-integration/drone/push Build is passing
|
2023-04-21 18:25:53 +02:00 |
|
|
841fc25137
|
kernel+init: Add a framebuffer special device file
continuous-integration/drone/push Build is passing
|
2023-04-21 18:18:15 +02:00 |
|
|
949321932f
|
kernel: Do not forbid filenames starting with a hyphen
continuous-integration/drone/push Build is passing
Some programs on Linux seem to use those, better be careful.
|
2023-04-16 11:33:35 +02:00 |
|
|
e6954d2e49
|
kernel: Disallow problematic characters, control characters and invalid UTF-8 in filenames
|
2023-04-16 11:25:32 +02:00 |
|
|
82e7b0e860
|
kernel: Introduce *at() syscall framework, add openat() and fstatat()
continuous-integration/drone/push Build is passing
|
2023-04-15 20:26:15 +02:00 |
|
|
df95126ccd
|
kernel: Remove unneeded debug logs & random cleanups
continuous-integration/drone/push Build is passing
|
2023-04-14 21:10:38 +02:00 |
|
|
417e505750
|
kernel+libc: Add unlink(), rmdir(), remove()
|
2023-04-12 18:11:36 +02:00 |
|
|
2d30935fdb
|
kernel: Give each thread a working directory
|
2023-04-11 22:14:57 +02:00 |
|
|
fee33e7a14
|
kernel: Add ioctls() for termios stuff to ConsoleDevice
Only handles echoing for now.
|
2023-04-09 11:23:57 +02:00 |
|
|
76eb8cd129
|
kernel: Add an ioctl() system call
|
2023-04-09 11:22:57 +02:00 |
|
|
3887b98a7d
|
kernel: Support setuid binaries
continuous-integration/drone/push Build is passing
You still have to run "chmod 4755 /bin/su" as root inside Luna for now, as this is not done by the install scripts.
|
2023-04-08 16:32:56 +02:00 |
|
|
f6f9254eb4
|
kernel: Add process and filesystem UIDs and GIDs
|
2023-04-08 13:12:49 +02:00 |
|
|
64bca780a7
|
kernel: Add /dev/zero
continuous-integration/drone/push Build is passing
|
2023-03-30 21:19:16 +02:00 |
|
|
5623f3c699
|
tmpfs: Set the mode of the root directory on creation
|
2023-03-29 01:06:26 +02:00 |
|
|
8eb4d693ac
|
VFS: Add virtual method get() for getdents() and make existence checking occur in add_entry()
|
2023-03-28 21:15:26 +02:00 |
|
|
f084b57f39
|
kernel+sh: Allow using Ctrl+D to send EOF
continuous-integration/drone/push Build is failing
|
2023-03-24 17:21:21 +01:00 |
|
|
95e884db97
|
kernel: Fix compilation
|
2023-03-23 21:34:09 +01:00 |
|
|
cda036ce70
|
ConsoleDevice: Use a temporary buffer for backspace handling
continuous-integration/drone/push Build is failing
|
2023-03-23 21:22:12 +01:00 |
|
|
d33fccc66f
|
kernel: Implement reading from /dev/console
|
2023-03-19 19:15:19 +01:00 |
|
|
41514d9ad2
|
kernel: Add support for blocking reads
|
2023-03-19 11:21:50 +01:00 |
|
|
6a6a56a8b4
|
kernel: Make /dev/console actually respect the length parameter instead of trusting userspace's null terminators
|
2023-03-18 20:10:00 +01:00 |
|
|
7173c05a22
|
kernel: Add support for special device files and add a mknod() syscall
|
2023-03-18 09:10:33 +01:00 |
|
|
d66506256d
|
kernel/VFS+libc: Introduce modes
continuous-integration/drone/push Build is passing
|
2023-03-12 16:55:46 +01:00 |
|
|
354ffd033c
|
VFS: Add a size() method to inodes to implement seeking to the end of a file
continuous-integration/drone/push Build is passing
|
2023-03-12 14:49:21 +01:00 |
|
|
b54a7f3a80
|
kernel+libc: Add O_* flags and parse them in open()
continuous-integration/drone/push Build is passing
O_RDONLY, O_WRONLY, O_RDWR, O_TRUNC, O_CREAT and O_EXCL are fully implemented.
O_APPEND is partially implemented.
Other flags are not here yet.
|
2023-03-12 14:43:58 +01:00 |
|
|
c6aa2fe4ad
|
VFS: Populate the initial filesystem based on the initial ramdisk
|
2023-03-11 10:23:46 +01:00 |
|
|
ac304073b4
|
tmpfs: Disallow creating files/folders with already used names
|
2023-03-11 10:14:42 +01:00 |
|
|
d95ef110c9
|
vfs: Add support for creating directories given a full path
|
2023-03-11 01:13:44 +01:00 |
|
|
e5a41d2d52
|
tmpfs: Implement FileInode read() and write()
|
2023-03-11 00:52:39 +01:00 |
|
|
6fbf97292a
|
VFS: Implement resolve_path() using PathParser
continuous-integration/drone/push Build is passing
Already works better than old luna (handles .. correctly)
|
2023-03-10 22:18:48 +01:00 |
|
|
ff770b7328
|
VFS+TmpFS: Add support for creating subdirectories (mkdir)
continuous-integration/drone/push Build is passing
|
2023-03-10 21:09:08 +01:00 |
|
|
abdd460525
|
tmpfs: use adopt_shared_if_nonnull instead of plain adopt_shared in FileSystem::create()
|
2023-03-07 22:16:52 +01:00 |
|
|
65dd3cd7fb
|
TmpFS: Use StaticString<128> instead of char[128]
|
2023-02-27 15:22:39 +01:00 |
|
|
8ba571a30e
|
TmpFS: Use a fixed char array in DirInode's Entry instead of OwnedStringView
|
2023-02-27 15:22:39 +01:00 |
|
|
01b6294f76
|
kernel: Implement creating file inodes in tmpfs directories
|
2023-02-27 15:22:38 +01:00 |
|
|
a65f4311aa
|
tmpfs: make the root inode a DirInode instead of a FileInode
|
2023-02-27 15:22:38 +01:00 |
|
|
dd2f31d8d0
|
tmpfs: add DirInode skeleton
|
2023-02-27 15:22:38 +01:00 |
|
|
5fb292bc0e
|
tmpfs: rename tmpfs::Inode to tmpfs::FileInode
|
2023-02-27 15:22:37 +01:00 |
|
|
d3bda46325
|
tmpfs: Make m_next_inode_number atomic
|
2023-02-27 15:22:37 +01:00 |
|
|
ba9d725481
|
kernel: Rename FileSystem::root() to root_inode() and add a shortcut for the root filesystem's root inode
|
2023-02-27 15:22:37 +01:00 |
|
|
3a2b8bcfd7
|
kernel: Make a factory function for filesystem creation of inodes, and add inode numbers
Now every filesystem must provide fs->create_file_inode() for new inodes :)
|
2023-02-27 15:22:37 +01:00 |
|