I only went through the first commits but looking at the bigger picture it seems to me that several of my comments are addressed in much later changes.
I think it would be better if things were ordered differently: first introduce the linux device, request and cache it on client side, then introduce the inproc object infrastructure and ways to try retrieving the inproc objects from clients (failing at first) and then maybe implement one object at a time?