This PR enhances they object copy primitive in the kernel. This primitive is invoked on object creation, and is used to map regions of memory as required by executable loaders. However, the primitive is generalized: a destination object may be given a list of copy-from directives, which acts like a gather operation on object data from source objects copied into the destination. If possible, the kernel prefers to share pages between objects using copy on write.
This PR improves in the following ways:
Reorders some internal operations
Implements some basic GC work that page vectors need
Adds tests for object copy
Allows non-aligned copy, though the kernel may have to fallback to manual copy depending on parameters.
Allows specifying the source object to be zero, in which case the copy turns into a zeroing of the destination region.
This PR enhances they object copy primitive in the kernel. This primitive is invoked on object creation, and is used to map regions of memory as required by executable loaders. However, the primitive is generalized: a destination object may be given a list of copy-from directives, which acts like a gather operation on object data from source objects copied into the destination. If possible, the kernel prefers to share pages between objects using copy on write.
This PR improves in the following ways:
Still planning to add, before ready for review: