| 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]] |