The file /dev/console is the physical system console. Programmers should write console messages to /dev/console.
/dev/console is selected by the boot(F) CONSOLE parameter. If no CONSOLE parameter is set, the first console-capable device is used.
The file /dev/syscon is the virtual system console; that is, it ``floats'' to whatever device was last used to change system states. Usually /dev/console and /dev/syscon are identical. init(ADM) uses /dev/syscon to prompt for system state changes and for other interactions.
The file /dev/sysmsg is a node for the sysmsg pseudo-device driver. This driver sends I/O to the physical system console via console I/O entry points, rather than the STREAMS interfaces. /dev/sysmsg is used during the sysinit phase of init since the console may not yet have been fully initialized, and since init can not remake the /dev/console node until the root file system becomes writeable).
/dev/console /dev/syscon /dev/sysmsg