Age | Commit message (Collapse) | Author |
|
|
|
Userland can now interface with processes by writing/reading from
`/proc/<pid>/<entry>`
It can send signals, for example `echo 15 > /proc/1/signal`
|
|
After making this change I am now actually doubting if using
C strings is a good idea and maybe it should just always just the
string view library that userland makes use of.
But old code and the upcoming commits rely upon this so it is a change my
future less lazy self will do.
|
|
Previously it was possible for fragmentation to occur and as a result
certain allocations would have a linear virtual address space but not a
linear physical address space. This is bad since a lot of calls to
kmalloc_align rely upon both being linear, it has now been changed such
that all allocations done by kmalloc_align now guarantee this mapping
holds for both virtual and physical addresses.
It was due to oversight and sheer luck that this had been working for so
long.
|
|
The commit is self explanatory. It was a simple mistype that went
unnoticed for a while.
|
|
O_TRUNC as a mode does not seem to imply write permissions
but we still wish to truncate the file before giving back a file
descriptor. Therefore the kernel can now override any permission checks
if it wishes to do a truncation while still using the "ordinary path".
|
|
|
|
Any blocks with the value zero appear to indicate a region completly
filled to zeros.
I don't see this anywhere in the spec but it does make sense and the
behavior matches files that I have on my FreeBSD machine so I guess it
must be valid.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I appear to have assumed that len would always be the number requested
not the number left to be read. Therefore to get the number of bytes
left ot read I did `len - rc` but the `- rc` was already accounted for
by line 298.
|
|
Current method is also really bad since it uses multiple copies when it
should instead just copy to the send buffer of the network card
directly. But I have other things that I want to prioritize first.
|
|
The other inode might already have been freed when close() is called.
|
|
|
|
This makes use of TSC and now provides a file system interface for
userland programs to change the system time.
|
|
|
|
There is no need for these to be seperate. They will probably move to
the same struct soon.
|
|
|
|
|
|
This significantly reduces I/O operations on the bitmap when large
writes occur.
|
|
|
|
Don't invalidate the cache of a block if written to. Instead the cache
can be changed and then be written to disk. This is optimal for ext2
since it gets to keep the cache and the hard drive since it may not have
to do extra reads when doing writes.
|
|
|
|
Off by one error in block/inode lookup that caused roughly two days of debugging
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Instead of using the "append only" list it now uses "relist" which
allows for indexes to be removed.
|
|
Instead of having to store state in variables functions are called to
check the object directly.
|
|
|
|
|
|
It appears that there was a race condition where the process got closed
before the server accepted the incoming request. Causing the file
descriptor to have "0" in the reference count but it would still be
given when calling accept.
|
|
|
|
|