The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз консольной библиотеки ncurses 6.5, opennews (??), 28-Апр-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


7. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (7), 28-Апр-24, 10:40 
Что значит консольная библиотека, ктонить может сказать? А libcurl, libmad, libssh2, libgit это тоже консольные библиотеки? А если я их в графическом по использую?
Ответить | Правка | Наверх | Cообщить модератору

9. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (25), 28-Апр-24, 10:57 
> Что значит консольная библиотека, ктонить может сказать?

Это библиотека для эмуляции графического интерфейса в консоли.
Просто в какой-то момент внезапно выяснилось, что command line отнюдь не лучший способ взаимодействия с пользователем.
Пришлось писать либу, которая будет в консоле рисовать кнопочки, таблички, вкладки и тд.
Ну, т.е. тот же самый GUI, только не как у нормальных людей.

Ответить | Правка | Наверх | Cообщить модератору

24. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (32), 28-Апр-24, 12:03 
Когда придумали curses, GUI у "нормальных людей" ещё не было. Тогда GUI был только у Xerox PARC.
Ответить | Правка | Наверх | Cообщить модератору

27. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (27), 28-Апр-24, 12:07 
> GUI у "нормальных людей" ещё не было. Тогда GUI был только у Xerox PARC.

А пользователи Xerox PARC это разве не "нормальные люди"?
Кто тогда? Мажоры?

Ответить | Правка | Наверх | Cообщить модератору

31. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (32), 28-Апр-24, 12:17 
Сотрудники Xerox PARC - исследователи.
Ответить | Правка | Наверх | Cообщить модератору

117. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от rvs2016 (ok), 29-Апр-24, 15:37 
>> GUI у "нормальных людей" ещё не было. Тогда GUI был только у Xerox PARC.
>
> А пользователи Xerox PARC это разве не "нормальные люди"?
> Кто тогда? Мажоры?

Пижоны? :-)

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

36. "Релиз консольной библиотеки ncurses 6.5"  +1 +/
Сообщение от Аноним (-), 28-Апр-24, 13:09 
> Когда придумали curses

При чем тут curses, если речь про ncurses?
А ее выпустили в 1993 году.

Это при том что Xerox Star вышел в 1981, Apple Lisa с полноценным UI в 1983-84м.
А потом были Mac OS, NeXTSTEP, Amiga, IRIX, GEOS, OS/2 и Windows аж до 3.1.
И все с нормальным UI для нормальных людей.

Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

39. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от fi (ok), 28-Апр-24, 13:58 
ncurses (new curses) «изначально являлась pcurses...

Развитием AT&T curses можно считать как минимум следующие реализации: pcurses от Павела Кёртиса (1982)

сама curses развитие termcap и  terminfo

ну вы поняли - была от начала эры 1.1.1970 00:00:00 )))

Ответить | Правка | Наверх | Cообщить модератору

12. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 28-Апр-24, 11:13 
Консольная библиотека - это, очевидно, та, которая не связана (linked) ни с каким с графическим сервером.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

19. "Релиз консольной библиотеки ncurses 6.5"  +1 +/
Сообщение от Прохожий (??), 28-Апр-24, 11:56 
Очевидно, это не исчерпывающее определение.
Ответить | Правка | Наверх | Cообщить модератору

18. "Релиз консольной библиотеки ncurses 6.5"  –1 +/
Сообщение от Геймер (?), 28-Апр-24, 11:52 
Консольная программаи может работать на "безголовом" ПК через UART, RS-232, не требуя видеокарты, монитора.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

22. "Релиз консольной библиотеки ncurses 6.5"  +1 +/
Сообщение от Прохожий (??), 28-Апр-24, 11:59 
Монитор - это обязательная часть любой консольной программы.
Ответить | Правка | Наверх | Cообщить модератору

26. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (32), 28-Апр-24, 12:06 
Обязательная часть консольной программы это текстовый терминал. И он может быть виртуальным.
Ответить | Правка | Наверх | Cообщить модератору

33. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Прохожий (??), 28-Апр-24, 12:35 
Он-то, конечно, может быть виртуальным. Но в итоге весь вывод всё равно должен оказаться на мониторе. Иначе зачем вообще нужна консоль, если человек не читает с неё?
Ответить | Правка | Наверх | Cообщить модератору

53. "Релиз консольной библиотеки ncurses 6.5"  +2 +/
Сообщение от Аноним (71), 28-Апр-24, 16:40 
Консольная программа читает из stdin и пишет в stdout. Для неё это просто текстовые буферы. А с каким (псевдо)устройством они связаны (с терминалом, принтером, /dev/null и т.п.) ведает ОС, под управлением которой программа запущена.
Ответить | Правка | Наверх | Cообщить модератору

118. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от rvs2016 (ok), 29-Апр-24, 15:41 
> в итоге весь вывод всё равно должен оказаться на мониторе

Лучше сказать обобщённо: вывод должен оказаться на устройстве вывода (хоть на принтере, хоть на расстановке звёзд на небе в порядке, начертаний буковок).

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

29. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Геймер (?), 28-Апр-24, 12:14 
Не только монитора на "безголовом" компьютере нет, но и клавиатуры тоже
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

34. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Прохожий (??), 28-Апр-24, 12:36 
И зачем там консоль, которая подразумевает наличие человека?
Ответить | Правка | Наверх | Cообщить модератору

69. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Геймер (?), 28-Апр-24, 21:11 
Вы, как и многие, смешиваете в одно консоль в UNIX и TUI в DOS/Windows. Консоль в Linux - это всего лишь текстовой буфер в интерфейсе ядра, к которому может быть подключены монитор-клавиатура, а моет и не подключены. Консольная программа просто направляет туда кусок текста и всё. В DOS/Windows текстовой режим - это текстовой режим работы видеокарты, и TUI - это работа программы в этом видеорежиме. Поэтому Midnight Commander - это консольная программа и её можно запустить удалённо в PyTTY, а FAR или Norton Commander - не консольные. Хотя и MC, и FAR, и  Norton Commander классические TUI.
Ответить | Правка | Наверх | Cообщить модератору

72. "Релиз консольной библиотеки ncurses 6.5"  +1 +/
Сообщение от Аноним (32), 28-Апр-24, 21:21 
Far for Linux через SSH легко.
Ответить | Правка | Наверх | Cообщить модератору

76. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 28-Апр-24, 21:50 
> Norton Commander - не консольные

Разве NC использовал какие-то возможности графического видеорежима? Помню там графические хранители экрана были, но как отдельные программы и полноэкранные, полагаю, включали видеорежим при запуске. А так, классический черный экран с текстовым консольным выводом и командным промптом. Поверх первого, над промптом, по умолчанию, рисовались цветными ASCII-символами панельки, но их вывод можно было убрать. И если бы был какой-нибудь SecureCOMMAND.COM, то NC, полагаю, можно было бы также по сети передавать в текстовом виде.

Ответить | Правка | К родителю #69 | Наверх | Cообщить модератору

78. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Геймер (?), 28-Апр-24, 22:12 
Консоль - это программный интерфейс уровня ядра, а не режим UI. Этих консолей ядро Linux имеет несколько штук и между ними можно переключать клавиатуру/монитор. Именно работа с этим интерфейсом ядра Unix и называется консольным режимом.

Для примера FAR. Изначально форк far2linux работал только в графическом режиме, через wxWidgets.И только потом прикрутили поддержку консоли.
https://github.com/elfmz/far2l/issues/276

Ответить | Правка | Наверх | Cообщить модератору

80. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 28-Апр-24, 22:18 
Мы про Norton Commander говорим, который под управлением DOS работал.
Ответить | Правка | Наверх | Cообщить модератору

84. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (48), 28-Апр-24, 23:10 
Norton Commander вообще напрямую в видеопамять писал, оставьте его уже в покое.
Ответить | Правка | Наверх | Cообщить модератору

86. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 28-Апр-24, 23:22 
А я вот уверен, что он в текстовом режиме (монитора) работал. Ибо текстовый (ASCII) вывод в фиксированное количество строк и столбцов. Там даже курсор мыши был символьным.

Ответить | Правка | Наверх | Cообщить модератору

87. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (87), 28-Апр-24, 23:47 
> А я вот уверен, что он в текстовом режиме (монитора) работал. Ибо
> текстовый (ASCII) вывод в фиксированное количество строк и столбцов. Там даже
> курсор мыши был символьным.

Э-эм, "и чо?"(c)
У видеокарт были и текстовые режимы.


;*******************************
;set video out=80x25, 16 colors, page 0
;*******************************

mov ax,3
int 10h

mov ax, 500h ;0 page
int 10h
;remove cursor
mov ax,0103h
mov cx,001000000000000b ;bit 6,5=01=>invisible
int 10h


И пишем свой текст прямо в память видеокарты, можно с применением page в качестве буфера.
Ответить | Правка | Наверх | Cообщить модератору

88. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 28-Апр-24, 23:54 
> Э-эм, "и чо?"(c)

Вот именно. И чо? Я и говорю, что он в текстовом режиме работал. На ввод-вывод. То есть типичное консольное приложение.

Ответить | Правка | Наверх | Cообщить модератору

91. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (87), 29-Апр-24, 00:06 
>> Э-эм, "и чо?"(c)
> Вот именно. И чо? Я и говорю, что он в текстовом режиме работал. На ввод-вывод. То есть типичное консольное приложение.

Вот именно, что писать напрямую в видеопамять != "консольное приложение" (если считать что консоля == классический terminal). Хотя бы потому что текстовых режимов было гораздо больше одного, да и использовать принтер для вывода не выйдет. Не говоря уже о том, что ввод придется тоже "писать самомоу", под конкретный режим карты).


Ответить | Правка | К родителю #88 | Наверх | Cообщить модератору

93. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 29-Апр-24, 00:15 
Так ведь не пишет NC ничего *напрямую* в *видеопамять*. Он ASCII-символы выводит в текстовом режиме. А как и кем они транслируются в точки на экране он не знает.
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

123. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (48), 29-Апр-24, 21:27 
Молодо-зелено. Забыли уже — mov es,b800h…
Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

97. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 29-Апр-24, 00:36 
Понятно, что NC (как любая DOS-программа) с прерываниями BIOS работает, но если его перенести на современную ОС (например, Линукс), то подменить ввод-вывод (например, через ncurses) не составит труда, так как он читает символы и пишет символы. Логика программы останется той же.

Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

89. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (87), 28-Апр-24, 23:57 
ЗЫ: но Нортон я не ковырял, так что хз - прав ли отписавшийся выше или нет.

Ответить | Правка | Наверх | Cообщить модератору

90. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 29-Апр-24, 00:01 
> И пишем свой текст прямо в память видеокарты, можно с применением page в качестве буфера.

Только текст в видеопамять не пишется. Глифы консольного шрифта нужно сначала преобразовать в пиксели.


Ответить | Правка | Наверх | Cообщить модератору

92. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (87), 29-Апр-24, 00:13 
> Только текст в видеопамять не пишется. Глифы консольного шрифта нужно сначала преобразовать в пиксели.

В том то и дело, что в том режие - пишется (емнип, первый байт атрибуты, второй - буковка).
Окончательным преобразованием (там делов-то, "замапить" кусочек по "координатам 0-255" из картинки с глифами ака "шрифта") занимается сама видеокарта.
См.
https://stanislavs.org/helppc/bios_data_area.html
> ROM graphics character table

Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

95. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 29-Апр-24, 00:24 
Вот тут (https://en.wikipedia.org/wiki/INT_10H) видно, что есть API текстового режима (Write character and attribute at cursor position), где отправляется буква, а преобразование в пиксели происходит за кадром (https://en.wikipedia.org/wiki/VGA_text_mode). А есть графический API (Write graphics pixel), где рисуется пиксель в видеорежиме (https://en.wikipedia.org/wiki/Video_Graphics_Array).
Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

104. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (87), 29-Апр-24, 09:31 
> Вот тут (https://en.wikipedia.org/wiki/INT_10H) видно, что есть API текстового режима
> (Write character and attribute at cursor position), где отправляется буква, а
> преобразование в пиксели происходит за кадром (https://en.wikipedia.org/wiki/VGA_text_mode).

Только там не видны тормоза рисованного таким макаром TUI 80x25 (напрямую в видеопамять писали не от желания повыпендриваться).

Ответить | Правка | К родителю #95 | Наверх | Cообщить модератору

125. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (125), 30-Апр-24, 09:06 
Там не пишут напрямую в видеопамять. Видеопамять - это буфер пикселей. А программа работает со строковым буфером. Она отправляет строки в неизвестность. Их подхватывает видеоадаптер (или, гипотетический принтер работающий по тому же hw-интерфейсу) и преобразует в пиксели на экране. Это гипотетический конструкт, для принтера было отдельное прерывание. Смысл в том, что консольное приложение работает со строками в текстовом режиме (или его графической эмуляции).
Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

96. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (32), 29-Апр-24, 00:36 
Я когда-то в начале своего Линукс-знакомства, при необходимости сделать текстовый вывод на экран в стиле MC, писал в /dev/vcN. Ещё не знал про управляющие ESC и прочие ioctl, прямо из DOS в linux :) Координаты символов расчитывал для режима 80x25.
Ответить | Правка | Наверх | Cообщить модератору

79. "Релиз консольной библиотеки ncurses 6.5"  +/
Сообщение от Аноним (71), 28-Апр-24, 22:17 
> И зачем там консоль, которая подразумевает наличие человека?

Можно перенаправить вывод одной программы на ввод другой программы:
echo cat | cat | cat
Первый кот сначала войдет во второго, из того в третьего, а потом вывалится на консоль. Второму коту не нужна ни клавиатура, ни монитор. (Хотя, возможно, от мышки он бы не отказался.) Это называется "piping".

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

38. "Релиз консольной библиотеки ncurses 6.5"  +1 +/
Сообщение от Аноним (38), 28-Апр-24, 13:34 
Совершенно не обязательно. Вы можете сделать exec &>/dev/lpt1 , и вместо монитора у вас будет принтер, если, конечно, он умеет построчную печать.
Ответить | Правка | К родителю #22 | Наверх | Cообщить модератору

40. "Релиз консольной библиотеки ncurses 6.5"  +1 +/
Сообщение от fi (ok), 28-Апр-24, 14:10 
что только тут написали ))))) А все проще -

Всё пошло от символьных терминалов vt*** компании DEC, где вывод идет построчно на фиксированый размер rows/columns, но возможны элементы псевдографики через Esc-пы

в этом ключе - ncurses псевдографическая библеотека для терминала

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру