got a lot of great answers to "how is the shell involved in handling Ctrl+C" to the effect of one of:
- "the shell is responsible for sending a SIGINT"
- "the shell takes input from the terminal emulator and relays it to the program"
- "it must be handled by the layer above the program, which is the shell"
and while none of those is true, they feel like they totally _could_ be true in a different world. It feels hard to explain why it might be useful to have a more "accurate" mental model
it feels like there's this mental model a lot of people have for the terminal which is a little like this (with some more stuff about signals etc)
and it's not "true" that the shell is in between the terminal emulator and programs in this way but it feels more compelling to me in some ways than the reality.
@b0rk What is the correct version? Is the shell at the same level as the (other) programs? Or is the shell a tiny bit special here?
@bartavi it's something like this but this diagram doesn't do a great job of describing the shell's role on its own (or what the terminal driver does)