自计算早期以来,闪烁是一种常见的做法,尤其是对于光标。
但是,当我运行strace
检查它们的系统调用时,终端仿真器konsole
和 shellbash
都不要注册任何类型的计时器(通过timer_settime()
)或间隔计时器(通过setitimer()
)。同时,这些程序不能使用自旋锁来等待一定的时间。
真正的终端能够做到这一点,因为它们的控制器可以理解眨眼退出控制序列。但是图形监视器显然不能做这些事情。
那么这些程序如何让它们的文本闪烁,尤其是在图形环境中呢?文本也可以在非 X 图形终端中闪烁(就像你按Ctrl+Alt+F2
)。
闪烁的终端光标是如何发明的?这个问题展示了它们被发明的原因,以及真实终端如何实现它们的技术细节。