Line 2: |
Line 2: |
| | | |
| == Parasite code injection == | | == Parasite code injection == |
− | This thing was split into a separate project called [https://github.com/xemul/compel compel]. | + | This thing was split into a sub-project called [[compel]]. |
| Compel is an utility to execute code in foreign process address space. It is based on the same technology we use in CRIU to obtain some process-private data on dump. | | Compel is an utility to execute code in foreign process address space. It is based on the same technology we use in CRIU to obtain some process-private data on dump. |
| We don't currently maintain compel and it's quite out-dated, but still functional. | | We don't currently maintain compel and it's quite out-dated, but still functional. |
| + | |
| + | ''See also: [[Code blobs]]'' |
| | | |
| == Managing protocol buffers objects == | | == Managing protocol buffers objects == |
Line 17: |
Line 19: |
| See more examples in our protobuf/*.proto files. | | See more examples in our protobuf/*.proto files. |
| | | |
− | It is also worth noting, that we have a unique number for all kinds of custom protobuf options(see [[Images#Notes_about_protobuf]]), so you don't have to worry that it might collide with others. | + | It is also worth noting, that we have a unique number for all kinds of custom protobuf options, so you don't have to worry that it might collide with others. |
| + | |
| + | ''See also: [[Images]]'' |
| | | |
| == Sharing of kernel objects == | | == Sharing of kernel objects == |
Line 24: |
Line 28: |
| | | |
| In kernel there's no API that can just reveal the tasks-to-objects map. Instead, there's an API called <code>kcmp()</code> that compares two e.g. file descriptors and reports back whether the file referenced by them is the same or not. In CRIU we have a [https://github.com/xemul/criu/blob/master/kcmp-ids.c KCMPIDS] engine that uses this API, build [[kcmp trees]] and turns the equals-notequals answers into a list of IDs of objects. | | In kernel there's no API that can just reveal the tasks-to-objects map. Instead, there's an API called <code>kcmp()</code> that compares two e.g. file descriptors and reports back whether the file referenced by them is the same or not. In CRIU we have a [https://github.com/xemul/criu/blob/master/kcmp-ids.c KCMPIDS] engine that uses this API, build [[kcmp trees]] and turns the equals-notequals answers into a list of IDs of objects. |
| + | |
| + | ''See also: [[Kcmp trees]]'' |
| | | |
| [[Category:Development]] | | [[Category:Development]] |
| [[Category:Under the hood]] | | [[Category:Under the hood]] |