Piscar é uma prática comum desde os primórdios da computação, especialmente para cursores.
No entanto, quando corro strace
para verificar suas chamadas de sistema, tanto um emulador de terminal konsole
quanto um shell bash
, não registra nenhum tipo de timer (through timer_settime()
) ou timer de intervalo (through setitimer()
). Enquanto isso, esses programas não podiam usar o spinlock para esperar um determinado tempo.
Os terminais reais são capazes de fazer isso, pois seus controladores podem entender a sequência de controle de escape do piscar. Mas os monitores gráficos não podem fazer essas coisas aparentemente.
Então, como esses programas fazem seu texto piscar, especialmente em um ambiente gráfico? O texto também pode piscar no terminal gráfico não-X (como se você pressionasse Ctrl+Alt+F2
).
Como foi inventado o cursor do terminal piscante? Esta questão mostra a razão pela qual eles foram inventados e detalhes técnicos sobre como os terminais reais os implementam.