Commit Graph

30 Commits

Author SHA1 Message Date
16b0531d42
kernel+apps+base+tools: Use Ext2 for the root partition file system
All checks were successful
continuous-integration/drone/push Build is passing
init is now split into two parts: preinit, which lives in the initrd and prepares the root file system for init,
and the actual /usr/bin/init, which lives in the root partition and starts services and reaps zombies.

The kernel now looks for /bin/preinit instead of /bin/init as the executable for the init process.

All configuration files in initrd/etc have been moved to base/etc. (The plan is to have only moon and preinit in the initrd.)

Since the current Ext2 implementation is read-only (and it's on a CDROM so it would be read-only anyways),
/home/selene is a tmpfs (as well as /tmp), to allow for a writable home directory.

The system is slower now, but that's to expect since the Ext2 code doesn't use caching and the ATA code still uses PIO.
2023-07-10 13:05:06 +02:00
21d093b1fa
initrd: Rename test-ext2fs to mount-ext2fs
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-06-25 20:54:37 +02:00
77686b26f8
kernel/Ext2: Read the root inode metadata from the disk 2023-06-25 20:35:36 +02:00
2aa7056e11
mount: Put the source argument first 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
6ad7491300
sh: Skip comments (and shebangs!) 2023-06-03 16:59:18 +02:00
0540879959
init+initrd: Create /tmp and mount it on boot 2023-06-03 11:34:53 +02:00
1035b91a3d
su: Do not change directory/set variables by default, instead add a --login option
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-11 20:11:09 +02:00
88180b34bd
initrd: Show default credentials in the motd
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-06 22:12:06 +02:00
cd86d1d6d0
apps+initrd: Add a login utility and make it run at startup 2023-05-06 22:03:50 +02:00
d7fee26aa2
initrd+libc: Add /etc/group and grp.h 2023-05-06 12:01:47 +02:00
d9b7e8edc0
init: Read and launch service files in order using sort()
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-02 20:56:28 +02:00
403b0f6b94
kernel+libc+init: Add a way to modify the system hostname
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-24 21:20:44 +02:00
257c2ffd0a
init: Add a configurable service system instead of always starting /bin/sh
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-22 13:56:08 +02:00
7667f49d62
libc: Add a password file and pwd.h 2023-04-08 16:30:18 +02:00
c0a7f6776f
kernel+libc: Add getpid()
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-11 22:19:58 +01:00
810c4bc257
kernel+libc: Start interfacing with the VFS from userspace (open & close)
This commit adds open and close syscalls to the kernel, and adds matching wrappers to libc.

No read/write support, so file descriptors are kind of useless for now.
2023-03-11 17:45:20 +01:00
cf758fdfdc Initial commit :) 2022-11-13 10:09:09 +01:00
046065c533 Fix tmpfs 2022-11-12 19:05:47 +01:00
3451d50a37 Try building a tmpfs, but weird stuff happens 2022-11-12 18:13:41 +01:00
cbc2e76082 Remove the .elf suffix from the kernel filename 2022-11-03 20:44:37 +01:00
9db1e8cdb3 Inform of the default user configuration in the MOTD 2022-10-28 21:58:17 +02:00
7d0e442cde libc: Add /etc/passwd and the pwd.h API
getpwent, getpwnam, getpwuid... they may have been a pain to implement but once they work they're awesome :)

Right now passwords are stored in plaintext in the world-readable passwd file, which is not good.
But I don't have any sort of hashing implemented so it'll stay that way for now.
2022-10-28 20:55:00 +02:00
b69fbd46bf init: Add a Message of the Day 2022-10-20 19:27:37 +02:00
b2d43d66c4 Remove boot/font.psf from the initrd
This font file is not being used, since we are using an embedded font and that seems to work (should be loaded from the initrd in the future though)
2022-10-07 15:38:08 +02:00
a0459df8d7 Remove userspace for now 2022-09-24 21:29:10 +02:00
c3e5251687 Some more userland and font failing 2022-09-23 16:41:43 +02:00
d8bfb76eef Try to make TextRenderer work... still failing
I can now safely call try_initialize() in early_init though
2022-09-19 20:17:37 +02:00
355ca6ea9f Change initrd/sys/config 2022-09-15 18:42:59 +02:00
1b727a66ea Ready. Set. Go! 2022-09-05 16:13:51 +02:00