Commit Graph

1168 Commits

Author SHA1 Message Date
Bananymous 0910958c04 Kernel: OpenFileDescriptors can now store more than 8 bits of flags 2023-07-10 16:06:36 +03:00
Bananymous d6408bcf17 Kernel: add O_TRUNC
this is not supported by anything yet
2023-07-10 15:48:18 +03:00
Bananymous 178fc00905 Kernel: creat() mode now has to be access mode
We provide the S_IFREG in creat
2023-07-10 15:34:41 +03:00
Bananymous 89d4fa4d9b Kernel: Ext2 fill now return ENOTSUP on write
We used to crash the kernel
2023-07-10 15:34:25 +03:00
Bananymous 46e1419e70 Kernel: O_APPEND is now supported 2023-07-10 15:11:27 +03:00
Bananymous f7c4bc908e Kernel: open() and openat() now take mode as parameter
O_CREAT now tries to create file if O_CREAT is specified
2023-07-10 15:08:54 +03:00
Bananymous a0ecbed726 Kernel: You can now read/write to RamInodes
RamFS should be stored on physical pages and not in kmalloc, but
that will be implemented later :)
2023-07-10 14:09:35 +03:00
Bananymous 74fc0aa308 Kernel: Inode::create_file() now takes uid and gid as parameters 2023-07-10 13:32:10 +03:00
Bananymous d5f0448e48 Kernel: start work on ram file system 2023-07-10 13:26:14 +03:00
Bananymous 51e4b11890 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
Bananymous d713f252aa Kenrel: Fix inode comparison
We should not compare rdevs
2023-07-10 11:48:11 +03:00
Bananymous 5ec2d85081 Kernel: Inode rename directory functions 2023-07-10 11:48:11 +03:00
Bananymous 0d132ee518 Kernel: Mark Ext2 classes final 2023-07-10 11:48:11 +03:00
Bananymous fabbb9f531 BAN: RefPtr can be constructed from other types 2023-07-10 11:48:11 +03:00
Bananymous 80c8d52dc5 Kernel: add more functionality to PCI 2023-07-09 23:04:11 +03:00
Bananymous b6c4a2dbf1 Kernel: Edit lock scopes and make string copy able to fail 2023-07-07 23:12:19 +03:00
Bananymous a2f5ad7bed Kernel: Move open file descriptors to their own class
This simplifies code a lot :)
2023-07-07 23:11:37 +03:00
Bananymous a337f414fc LibC: limits.h now defined OPEN_MAX 2023-07-07 23:08:49 +03:00
Bananymous 404b3dd44c Shell: $(...) expansion works now :) 2023-07-06 23:22:57 +03:00
Bananymous d04b031e30 Shell: you can call Shell -c ... to invoke the shell as interpreter 2023-07-06 23:22:49 +03:00
Bananymous 07fec6e211 Kernel/LibC: add basic dup2 2023-07-06 23:17:54 +03:00
Bananymous 4cd72992c8 Kernel/LibC: Add basic pipe() syscall and command
You can now create pipes :)
2023-07-06 22:16:26 +03:00
Bananymous cdcb395640 LibC: add read() and write() to unistd 2023-07-06 22:15:55 +03:00
Bananymous 5a8eb51968 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
Bananymous a74422281f Kernel: Add O_CLOEXEC 2023-07-06 20:00:33 +03:00
Bananymous a45f9ee76b Kernel: Remove spammy process/thread exit printing 2023-07-06 10:34:46 +03:00
Bananymous f19dc114d6 Userspace: Shell now has 'env' for printing environment 2023-07-06 10:32:43 +03:00
Bananymous d2aabb669b Userspace: Shell imporove 'time' command 2023-07-06 09:45:04 +03:00
Bananymous 9c3f4039a5 Userspace: Shell now has time builtin 2023-07-06 00:39:04 +03:00
Bananymous 1fb305fa45 Kernel/LibC: add clock_gettime() for CLOCK_MONOTONIC
This gets the number of milliseconds since boot
2023-07-06 00:38:29 +03:00
Bananymous 4086d7c3be 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
Bananymous 60fe5a656c LibC: Fix syscall SYS_READ and SYS_WRITE arguments 2023-06-19 10:38:29 +03:00
Bananymous 7d254c26bc 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
Bananymous 328d67f551 Userspace: u8sum fix error message 2023-06-19 10:31:23 +03:00
Bananymous 84ecf861cd Userspace: Shell now processes $ arguments 2023-06-19 01:39:24 +03:00
Bananymous 46a6daccfe Userspace: Shell argument parsing now appriciates quotes 2023-06-19 01:07:00 +03:00
Bananymous 3df3c37bad Userspace: Shell argument parse now results in BAN::String 2023-06-19 00:34:44 +03:00
Bananymous 191a24110a Userspace: Shell now sets SHELL environment variable 2023-06-18 23:35:51 +03:00
Bananymous 275a730485 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
Bananymous 9a7b2587af 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
Bananymous 09c824b90e 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
Bananymous 57e59d998f Kernel: Add enum for ISR name to number 2023-06-18 23:24:27 +03:00
Bananymous 44fb3945df Kernel: General allocator takes first valid vaddr as parameter 2023-06-17 22:23:34 +03:00
Bananymous 95c4e608de Kernel: Move print during boot 2023-06-12 23:45:36 +03:00
Bananymous b9603d9d23 BAN: Optional can be constructed inplace 2023-06-12 23:45:36 +03:00
Bananymous 16e5f96b1d BAN: Add operator-> and operator* to Optional 2023-06-12 22:25:14 +03:00
Bananymous d0a0e3bdef Userspace: Add u8sum
This program caluculates the sum of bytes in file mod 256
2023-06-12 20:36:16 +03:00
Bananymous 5dcc53bcf2 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
Bananymous 23543b15ca 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
Bananymous 2253c45feb Kernel: Remove Shell from kernel
This is now obsolete since we have a userspace Shell.
2023-06-12 02:04:52 +03:00