PHP知识、源码、教程、框架、程序分享! -- PHP社区 关于我们 联系我们 联系电话 联系QQ

Linux系统工具Shell显示缓冲功能

发表时间:2013-09-01 点击:

[本文摘要]:Linux系统 工具 Shell 显示缓冲功能 图形显示的关键在于终端缓冲数据的能力。缓冲数据需要在终端中有额外的内存,以存储当前不需要在监视器卜显示的字符。 DEC VT系列终端使用的数据...

Linux系统工具Shell显示缓冲功能

图形显示的关键在于终端缓冲数据的能力。缓冲数据需要在终端中有额外的内存,以存储当前不需要在监视器卜显示的字符。

DEC VT系列终端使用的数据缓冲方式有两种:
◇ 数据滚动出主显示窗口时缓冲数据(称为历史数据);
◇ 缓冲一个完整的显示窗口(称为替代屏幕)。

第一种类型的缓冲称为滚动区域(scroll region)。滚动区域是终端在数据滚动出屏幕时用来“记住”数据的内存容量。标准的DEC VT102终端包含25行字符的查看区域。当终端显示一行新的字符时,上一行便向上滚动。当终端显示到达最后一行时,下一行将最上面的一行挤出显示区。

VT102终端的内存能够保存刚刚滚动出显示区的64行字符。用户可以锁定当前屏幕显示,使用方向键滚动回之前“滚动出”显示区的行。终端模拟包允许使用滚动条或鼠标滚轮滚动保存的数据,无需锁定显示区。当然,为了完整的模拟兼容性,大多数终端模拟包也允许锁定显示区,井使用箭头和向上/向下翻页滚动保存的数据。

第一种类型的缓冲称为替代屏幕(alternative screen)。通常,终端直接向监视器的普通显示区写入数据。后来开发了一种方法,可以使用两个屏幕区域存储数据,简单地实现了动画。这需要使用控制码通知终端向替代屏幕而不是当前显示屏幕写入数据,该数据保存在内存中。另一个控制码可队通知终端交替在监视器中显示普通屏幕数据和保存在替代屏幕的数据,这个过程几乎是瞬间完成的。通过在替代屏幕区中存储连续数据页面并在稍后进行显示,可以粗略地模拟动态图形。

模拟VT00系列的终端能够支持替代屏幕方式。

版权声明:本文系技术人员研究整理的智慧结晶,转载勿用于商业用途,并保留本文链接,侵权必究!

本文链接:http://php.aixc.cn/os/linux/104.html

声明:本站技术及源码均为原创,转载请勿用于商业用途,并注明出处及原文链接,侵权必究。