f1089e2b8a
Kernel: start work on ram file system
2023-07-10 13:26:14 +03:00
6d93c1eb92
LibC: add NAME_MAX to limits.h
...
This is defined to 255 which is _XOPEN_NAME_MAX, smallest value
for XOPEN compliance
2023-07-10 11:48:11 +03:00
363c325c79
Kenrel: Fix inode comparison
...
We should not compare rdevs
2023-07-10 11:48:11 +03:00
583504ebe0
Kernel: Inode rename directory functions
2023-07-10 11:48:11 +03:00
b354b77f8b
Kernel: Mark Ext2 classes final
2023-07-10 11:48:11 +03:00
74af46cb4a
BAN: RefPtr can be constructed from other types
2023-07-10 11:48:11 +03:00
19dab08275
Kernel: add more functionality to PCI
2023-07-09 23:04:11 +03:00
3840fbf957
Kernel: Edit lock scopes and make string copy able to fail
2023-07-07 23:12:19 +03:00
78c091f7f8
Kernel: Move open file descriptors to their own class
...
This simplifies code a lot :)
2023-07-07 23:11:37 +03:00
274ecbba78
LibC: limits.h now defined OPEN_MAX
2023-07-07 23:08:49 +03:00
683c2a68cd
Shell: $(...) expansion works now :)
2023-07-06 23:22:57 +03:00
ad98181069
Shell: you can call Shell -c ... to invoke the shell as interpreter
2023-07-06 23:22:49 +03:00
a549336530
Kernel/LibC: add basic dup2
2023-07-06 23:17:54 +03:00
4eb95c963d
Kernel/LibC: Add basic pipe() syscall and command
...
You can now create pipes :)
2023-07-06 22:16:26 +03:00
22caacd2a9
LibC: add read() and write() to unistd
2023-07-06 22:15:55 +03:00
af30d537da
Kernel: TTY now unblocks semaphore after read
...
This allows concurrent reads not fully reading the buffer not block
indefinately.
2023-07-06 21:32:34 +03:00
f1bd26fb92
Kernel: Add O_CLOEXEC
2023-07-06 20:00:33 +03:00
5c6bbcb62f
Kernel: Remove spammy process/thread exit printing
2023-07-06 10:34:46 +03:00
21bd87bb07
Userspace: Shell now has 'env' for printing environment
2023-07-06 10:32:43 +03:00
79450df04c
Userspace: Shell imporove 'time' command
2023-07-06 09:45:04 +03:00
7f8b7b811e
Userspace: Shell now has time builtin
2023-07-06 00:39:04 +03:00
3c068aa0ae
Kernel/LibC: add clock_gettime() for CLOCK_MONOTONIC
...
This gets the number of milliseconds since boot
2023-07-06 00:38:29 +03:00
86df258365
Kernel: rework the whole PageTable structure
...
We now have page table structure for kernel memory which is shared
between all processes.
2023-07-05 23:41:35 +03:00
d99e704728
LibC: Fix syscall SYS_READ and SYS_WRITE arguments
2023-06-19 10:38:29 +03:00
0d620f3e0f
Kernel: Rewrite and optimize DiskCache
...
DiskCache now consists of PageCaches which are caches of contiguous
sectors. This allows the disk cache to be ordered and faster traversal.
We seem to have a problem somewhere during reading. The stack gets
corrupted.
2023-06-19 10:31:47 +03:00
4dce0f9074
Userspace: u8sum fix error message
2023-06-19 10:31:23 +03:00
54f89cba33
Userspace: Shell now processes $ arguments
2023-06-19 01:39:24 +03:00
de88f60d1a
Userspace: Shell argument parsing now appriciates quotes
2023-06-19 01:07:00 +03:00
f7060970e6
Userspace: Shell argument parse now results in BAN::String
2023-06-19 00:34:44 +03:00
e7a98ac6cc
Userspace: Shell now sets SHELL environment variable
2023-06-18 23:35:51 +03:00
10544db52e
LibELF: We use BAN::Vector<uint8_t> as elf storage
...
This is made possible by the dynamic kmalloc
2023-06-18 23:29:23 +03:00
5e123031aa
Kernel: kmalloc has now somewhat dynamic storage
...
Allocations bigger than PAGE_SIZE and those not forced to be identity
mapped are now done on a GeneralAllocator. This allows us to use kmalloc
for big allocations; bigger than the fixed 1 MiB storage.
This is still a hack and the whole kmalloc will have to be rewritten at
some point, but for now this does the job :D
2023-06-18 23:27:00 +03:00
388f530edd
Kernel: Add GeneralAllocator::paddr_of
...
Yoy can now query physical address of a virtual address for general
allocator allocation
2023-06-18 23:25:51 +03:00
d354cccd37
Kernel: Add enum for ISR name to number
2023-06-18 23:24:27 +03:00
714305ef56
Kernel: General allocator takes first valid vaddr as parameter
2023-06-17 22:23:34 +03:00
f83ae1e9c6
Kernel: Move print during boot
2023-06-12 23:45:36 +03:00
c38e8de6b5
BAN: Optional can be constructed inplace
2023-06-12 23:45:36 +03:00
97638f7ade
BAN: Add operator-> and operator* to Optional
2023-06-12 22:25:14 +03:00
326a30d1af
Userspace: Add u8sum
...
This program caluculates the sum of bytes in file mod 256
2023-06-12 20:36:16 +03:00
32e1473c94
Kernel: Make disk IO blocking thread safe
...
This was causing a lot of deadlocks on vms without kvm accel
2023-06-12 18:57:47 +03:00
bf617036c7
Kernel: Rework syscall calling
...
I removed the intermediate function when calling syscalls. Now syscall
handler calls the current process automatically. Only exception is
sys_fork, since it needs a assembly trampoline for the new thread.
2023-06-12 14:16:48 +03:00
ce55422a24
Kernel: Remove Shell from kernel
...
This is now obsolete since we have a userspace Shell.
2023-06-12 02:04:52 +03:00
388cc7c3bb
Base: add home directories for root and user
2023-06-12 02:03:13 +03:00
37f9404d93
BuildSystem: every file except /home/* is now owned by root
2023-06-12 02:03:13 +03:00
38dff41e25
Userspace: Shell processes PS1 '\~' as cwd and implement cd
2023-06-12 02:03:13 +03:00
d360340b9e
Userspace: init now sets HOME environment variable and cd's into HOME
2023-06-12 02:02:52 +03:00
0f63cfa43f
Kernel/LibC: add SYS_{SET,GET}_PWD and chdir, getpwd
2023-06-12 02:02:52 +03:00
537780ee1e
Kernel: allocate thread stacks from 0x300000 onwards
...
I had a problem where thread stack was overlapping with elf loading
2023-06-12 01:02:19 +03:00
4ca99fcb4e
Kernel: Fix bug in elf loading
...
We were allocating one extra page
2023-06-12 00:59:19 +03:00
eb7ee13f43
Userspace: init now default logins as user
2023-06-12 00:46:07 +03:00