There has been a sound in the Chinese community for some time:
Why would the failure of one component of KiCad like the schematics editor bring down the entire software including their unsaved PCB?
As a contributor I looked into the structure a bit; basically KiCad itself is the “KiWay,” acting like a bus, and loads components “KiFace” as dynamic libraries. What those complaining users and I wondering is, since the different components are relatively separate from the main program (has different processes, like Chrome), then why KiCad can’t try to tolerate the problems of a single component?
Kicad doesn’t have different processes when applications are launched from the project manager. They all live as separate windows of the same process. That’s why a segfault in one application brings down entire kicad.
Kiway is just mostly a memory abusing dynamic library interface. It has no redundancy ability. Honestly the kiface extension itself is silly as these are just libraries that cannot be used cross-platform and were better off using the native .dll/.so extensions.
We have some ideas for v7 for true IPC to add the process isolation, what form it will come in is still up in the air and unforunately more than a year out. We need to finish v6 first which is already a struggle as is.