5d2bfc858e
Kernel: SYS_FORK can now fail instead of panicing on error
2023-07-19 17:47:12 +03:00
8b34880064
Kernel: Fix bug which made bochs unbootable
...
We could not boot if ATABus did not have valid primary device.
2023-07-13 15:53:09 +03:00
98c698d9ec
Kernel: Enable global bit on kernel pages
2023-07-13 15:23:25 +03:00
9ea2c1d932
Kernel: Support execute disable bit
...
We will now map executable memory explicitly as executable.
2023-07-13 14:28:53 +03:00
297e65f19a
Kernel: CPUID can detect wether cpu supports nxe bit
2023-07-13 14:24:58 +03:00
65559a3e44
Kernel: Fix multiple bugs with terminal
2023-07-13 13:09:52 +03:00
c3a71e94a9
Kernel: Fix ATA disk and partition numbering
2023-07-13 12:12:47 +03:00
fb4b363a16
Init: Use the new pwd.h api for user parsing
2023-07-13 12:01:41 +03:00
4154f43b49
LibC: add getpwname() and getpwuid()
2023-07-13 12:01:16 +03:00
b1fcb0b58f
LibC: implement endpwent(), getpwent() and setpwent()
2023-07-13 11:22:09 +03:00
00409ffa60
Kernel: Ext2Inode::create_file actually sets the inode data
...
We used to just create inode without touching its memory.
2023-07-13 10:20:56 +03:00
16acd50559
BAN: Iterators are now single general type with CONST template
...
This allows us to use the same base class for iterator and
const_iterator which were practically the same code.
2023-07-12 13:35:21 +03:00
5df48804e1
BAN: add either_or and either_or_t
...
This allows you to select type depending on constexpr evaluatable
boolean
2023-07-12 13:34:31 +03:00
9eab6710ce
BAN: Implement ConstIteratorDouble and add it to HashMap
...
This is same as IteratorDouble except it uses const_iterator and does
not return non-const references.
2023-07-12 11:41:05 +03:00
65424a6769
BAN: Generalize HashMapIterator to IteratorDouble
...
This iterator should be able to iterate any container within container
with type iterator defined.
This also fixed bug if first entry in outer container is empty container.
2023-07-12 09:29:05 +03:00
12d53ac233
Base: add empty directories with .gitkeep to base/
2023-07-11 08:02:28 +03:00
9bcfb34524
Kernel: Rewrite whole device structure
...
We now have DevFileSystem which is derived from RamFileSystem. All
devices are RamInodes. We don't have separate DeviceManager anymore.
To iterate over devices, you can loop througn every inode in devfs.
2023-07-10 23:17:14 +03:00
f88b9ae4f2
BAN: Add iterators to HashMap
2023-07-10 23:16:41 +03:00
8cd91f5a6a
Userspace: add basic 'touch' command
2023-07-10 16:38:15 +03:00
f65e5f4190
tee: indent with tabs
2023-07-10 16:18:08 +03:00
f521a98157
Userspace: Add basic tee command
2023-07-10 16:07:53 +03:00
ee4ef6638c
Kenrel: RamInode now implements truncate()
2023-07-10 16:07:09 +03:00
0910958c04
Kernel: OpenFileDescriptors can now store more than 8 bits of flags
2023-07-10 16:06:36 +03:00
d6408bcf17
Kernel: add O_TRUNC
...
this is not supported by anything yet
2023-07-10 15:48:18 +03:00
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
89d4fa4d9b
Kernel: Ext2 fill now return ENOTSUP on write
...
We used to crash the kernel
2023-07-10 15:34:25 +03:00
46e1419e70
Kernel: O_APPEND is now supported
2023-07-10 15:11:27 +03:00
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
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
74fc0aa308
Kernel: Inode::create_file() now takes uid and gid as parameters
2023-07-10 13:32:10 +03:00
d5f0448e48
Kernel: start work on ram file system
2023-07-10 13:26:14 +03:00
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
d713f252aa
Kenrel: Fix inode comparison
...
We should not compare rdevs
2023-07-10 11:48:11 +03:00
5ec2d85081
Kernel: Inode rename directory functions
2023-07-10 11:48:11 +03:00
0d132ee518
Kernel: Mark Ext2 classes final
2023-07-10 11:48:11 +03:00
fabbb9f531
BAN: RefPtr can be constructed from other types
2023-07-10 11:48:11 +03:00
80c8d52dc5
Kernel: add more functionality to PCI
2023-07-09 23:04:11 +03:00
b6c4a2dbf1
Kernel: Edit lock scopes and make string copy able to fail
2023-07-07 23:12:19 +03:00
a2f5ad7bed
Kernel: Move open file descriptors to their own class
...
This simplifies code a lot :)
2023-07-07 23:11:37 +03:00
a337f414fc
LibC: limits.h now defined OPEN_MAX
2023-07-07 23:08:49 +03:00
404b3dd44c
Shell: $(...) expansion works now :)
2023-07-06 23:22:57 +03:00
d04b031e30
Shell: you can call Shell -c ... to invoke the shell as interpreter
2023-07-06 23:22:49 +03:00
07fec6e211
Kernel/LibC: add basic dup2
2023-07-06 23:17:54 +03:00
4cd72992c8
Kernel/LibC: Add basic pipe() syscall and command
...
You can now create pipes :)
2023-07-06 22:16:26 +03:00
cdcb395640
LibC: add read() and write() to unistd
2023-07-06 22:15:55 +03:00
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
a74422281f
Kernel: Add O_CLOEXEC
2023-07-06 20:00:33 +03:00
a45f9ee76b
Kernel: Remove spammy process/thread exit printing
2023-07-06 10:34:46 +03:00
f19dc114d6
Userspace: Shell now has 'env' for printing environment
2023-07-06 10:32:43 +03:00
d2aabb669b
Userspace: Shell imporove 'time' command
2023-07-06 09:45:04 +03:00