Драйвер "системной консоли" - syscons.

Какое место занимает этот драйвер в работе FreeBSD?

Как любой Юникс, FreeBSD дает возможность пользователю общаться с компьютером через различные типы терминалов. Это может быть и "железный" терминал, подключенный, например, через COM-порт и другой компьютер, соединяющийся по сети (программой telnet). Но основным терминалом конечно же является дисплей и клавиатура той "писишки", на которой и запущена FreeBSD.

Естественно, работа программ (их ввод и вывод) не должны существенно отличаться как при работе с "железным" терминалом, так и при работе с "родными" дисплеем и клавиатурой. Поэтому, даже при вводе/выводе на терминал компьютера программа никогда не обращается к соответствующему "железу" (видео-контроллер и контроллер клавиатуры) напрямую.

Конечно, и в других операционных системах (даже таких простых, как MS DOS) обычная программа не "лезет в железо", а пользуется библиотечными функциями (getchar, print и т.п.) или функциями BIOS. Но, в данном случае, речь идет о том, что даже между самой системой FreeBSD (системными библиотеками) и "железными" устройствами, стоят соответствующие "драйверы терминалов", которые и обеспечивают "однообразие" при работе с очень разными терминалами.

Так вот, syscons - как раз такая программа, которая с одной стороны общается непосредственно с регистрами контроллеров (видео и клавиатуры) вашей "писишки", а с другой стороны изображает для операционной системы некоторое законченное устройство, наподобие внешнего терминала.

Надо заметить, что в FreeBSD есть еще один "альтернативный" драйвер консоли - pcvt. Для того, чтобы заменит на него syscons надо персобрать ядро системы с соответствующими опциями.

Но, поскольку, в "стандартной поставке" FreeBSD "встроен" именно syscons, он же и используется в большинстве случаев.

Поэтому я ограничусь только описанием syscons (тем более, что pcvt я практически не знаю :-)

Что полезного вы можете здесь прочитать?

Итак...


Иван Паскаль pascal@tsu.ru