hmm ok so looks like it all revolves around vt.c:
https://elixir.bootlin.com/linux/v7.2.9/source/drivers/tty/vt/vt.c
it has:
- a list of register console drivers (struct con_driver / struct consw) - corresponding to vtcon devices in /sys/class/vtconsole
- a list of virtual consoles, each with an index of a driver that handles it, and each with a buffer of characters and attributes (struct vc_data https://elixir.bootlin.com/linux/v7.2.9/source/include/linux/console_struct.h#L120)
it provides, in parallel:
- a vcs{,a,u} driver
- a tty driver for tty1-ttyN
- a console driver