URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 133541
[ Назад ]

Исходное сообщение
"Релиз консольной библиотеки ncurses 6.5"

Отправлено opennews , 28-Апр-24 08:25 
После полутора лет разработки представлен релиз библиотеки ncurses 6.5, предназначенной для создания многоплатформенных интерактивных консольных пользовательских интерфейсов и поддерживающей эмуляцию программного интерфейса curses из System V Release 4.0 (SVr4). Выпуск ncurses 6.5 совместим на уровне исходных текстов с ветками ncurses 5.x и 6.0, но расширяет ABI. Из популярных приложений, построенных с использованием ncurses, можно отметить aptitude, lynx,  mutt, ncftp, vim, vifm, minicom, mosh, screen, tmux, emacs,  less...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=61080


Содержание

Сообщения в этом обсуждении
"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 08:25 
Ужасный апи с каким-то диким глобальным стейтом. termbox2 гораздо приятнее.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 12:28 
Самый крутой TUI был у Борланда - TurboVision. На Linux портировали уже как поверх ncurses.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 15:03 
ncurses -- это не TUI. Это API, который позволяет не знать esc-последовательностей в системе, и который буферизует вывод, считая минимальную последовательность esc-последовательностей ведущую к нужному результату. Зачем то там есть ещё примитивы для декорации прямоугольников, но она там случайно, я думаю, совершенно не к месту там.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 15:33 
В линуксе мне нравится, что живых терминалов и в природе-то не осталось, но нет, мы разведём зоопарк виртуальных, да такой, что железные позавидуют. Ну а потом будем обёртку лепить (которая, конечно, работать будет криво). А потом ещё если сравнить с функциями консоли в Windows…

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 17:53 
У меня два живых терминала. Правда, солярочных.
Где твой бог теперь?

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 20:21 
Да я не сомневаюсь, что у кого-нибудь на чердаке и телетайп завалялся.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 15:56 
У Мелкомягких в их мессенджере есть TTY mode - Turn on TTY to use text to communicate over the phone line. To get this working, be sure to connect a TTY device.

Электрон, вебня, 21-й век, то TTY device в ходу, вместе с терминалами.

Хорошие изобретения были, выходит.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 18:49 
Ну если сравнивать с виндой, то там в принципе консоль без окна не вызвать, долгое время было 2 несовместимых шелла, путаницы с собственным юникодом несовместимым ни с чем другим...в общем консоли в винде де факто нет, она скорее прикостылена где-то сбоку и на отвались.
Так что добро пожаловать на вершину человеческой мысли, сделайте лучше.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Qetzlcoatl , 28-Апр-24 20:03 
По количеству несовместимых шеллов Linux уделывает любую ОС, без вопросов.
Про "консоль в Винде", чем Windows Terminal хуже любого штатного терминала любой Linux-овой DE?

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:11 
Только bash по факту самый используемый. Остальные маргинальны.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:16 
> По количеству несовместимых шеллов Linux уделывает любую ОС

По количеству написанных для него программ. С каких пор это плохо?
По умолчанию (логин, скриптинг) практически везде используют POSIX-совместимые шеллы. А для повседневных нужд пользователь волен выбирать. Хоть сразу несколько разных.

> чем Windows Terminal хуже любого штатного терминала любой Linux-овой DE?

До появления PowerShell? Не умел в автодополнение команд. Несравнимо куцый набор встроенных команд. Не имел такого (или аналогичного) набора родных консольных утилит, как GNU coreutils, findutils, grep, sed и т.п. Если специально не установить отдельное портированное окружение (MSYS2).


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 09:45 
>> чем Windows Terminal хуже любого штатного терминала любой Linux-овой DE?
> До появления PowerShell? Не умел в автодополнение команд. Несравнимо куцый набор встроенных
> команд. Не имел такого (или аналогичного) набора родных консольных утилит, как
> GNU coreutils, findutils, grep, sed и т.п. Если специально не установить
> отдельное портированное окружение (MSYS2).

В случае powershit - километровые команды, километровые пути, полунерабочее автодополнение. Единственное что он может лучше - пару краплетов для активной директории. И то - только потому что линуксоиды до этого просто не добрались: это узконишевой корпоративный крап, нужный единицам.

Если вам надо не это - упс! Powershit крайне мучительная, тормозная и кривая хренота с километровыми командами, делающая мозг типизацией - так что далеко не любые команды и программы вообще реально состыковать, особенно без жести и хардкора. Занахрена он такой нужен - похоже не понял даже сам майкрософт, запиливший с горя WSL чтобы хоть немного приостановить драп велоперов.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 02-Май-24 20:26 
>чем Windows Terminal хуже любого штатного терминала любой Linux-овой DE?

1. Попробуй максимизировать его окно на всё пространство рабочего стола Винды.
2. Промасштабируй шрифт Ctrl-+ или Ctrl-<колесо мыши> как, например, в Konsole.
3. История команд после закрытия и повторного запуска куда делась?
4. Что за уродское автодополнение?


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 20:20 
Шеллы, терминалы, консоли… у вас всё смешалось. Я имел в виду: обычное текстовое окно. Которое в линуксе просто так не создашь, а необходимо создавать в одном из сотни терминалов, и везде оно будет работать немного по-разному.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:02 
В любом дистрибутиве нажимаешь CTRL+ALT+F2 и получаешь одинаковую, ядерную, текстовую, виртуальную консоль. Командной оболочкой там в 9/10 случаев будет GNU Bash.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено 44 , 29-Апр-24 13:56 
а у федоры графика на ф2 по дефолту ))

но в целом да, после линухи винда смотрится набором костылей, хотя казалось бы набором всегда была именно линуха, но набор этот вылизали


"Релиз консольной библиотеки ncurses 6.5"
Отправлено нейм , 01-Май-24 08:04 
да в синешапке вообще не все как у людей

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 01:21 
> В линуксе мне нравится, что живых терминалов и в природе-то не осталось,
> но нет, мы разведём зоопарк виртуальных, да такой, что железные позавидуют.

Ну так переписать софт написаный за десятилетия - уж простите! В винде вон апи по сей день косплеит WinAPI из маздайки 3-й версии, 16-битной еще аж. Да, конечно, что-то поменяли. Но в целом бестолковостей и легаси там - на десять линуксов хватит. И вот продвинутое ядро NT косплеит голимые досовские диски C:\ и какой там еще бред.

> Ну а потом будем обёртку лепить (которая, конечно, работать будет криво).
> А потом ещё если сравнить с функциями консоли в Windows…

...то как раз узнаем почему майкрософт WSL2 затеял. В их изначальном позореве вообще даже нормальной работы с клипбордом и табов не было. Зато окна "консольным программам" подшиваются в принудиловку. Офигенно придумано. Редирект ввода или вывода в файло? А пофиг! Медвежью услугу по созданию окна все равно огребете. Так что в винде вообще консольные программы допустим с ярлыка/кнопки запускать - ацтойная идея, дурацкое окно повисает как бельмо на глазу. Даже если это batch mode и - ввод и вывод сугубо в заданые файлы.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 02:16 
> Медвежью услугу по созданию окна все равно огребете

Философия UNIX: всё есть файл. Философия вантуза: всё есть окно.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 05:07 
>> Медвежью услугу по созданию окна все равно огребете
> Философия UNIX: всё есть файл. Философия вантуза: всё есть окно.

Все есть маздай скорее уж. И да, эта философия ничего хорошего винде не принесла, ни в эмбедовке, ни на серверах, да и на десктопе - вот - боком выходит в дофига случаев. А зафиг мне окно консоли какому-нибудь ffmpeg/ffplay/etc в принудиловку, если им допустим файло или урла на автомате открываются? От него надо при этом только окно с мувиком. В линухе так и работает - и для ряда кастомных вещей типа допустим авто-транскода на лету потока, с превьюхой, по нажатию шортката - удобно очень. А в винде дурацкое черное окно внагрузку почем зря.

...поэтому с эксплуатацией консольных программ в именно винде, именно в (полу)автоматическом режиме - "не очень". И костыли типа WSL наполовину и поэтому в том числе.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено n00by , 29-Апр-24 07:17 
>> Медвежью услугу по созданию окна все равно огребете
> Философия UNIX: всё есть файл. Философия вантуза: всё есть окно.

Реальное положение дел: mmap() в POSIX заимствован из WNT (VMS). И даже в glibc дошло, что буферизированный fread() делается через отображение.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 09:53 
> Реальное положение дел: mmap() в POSIX заимствован из WNT (VMS). И даже
> в glibc дошло, что буферизированный fread() делается через отображение.

А что, на страничную память есть монополия? С другой стороны, винда даже формат PE EXE сперла из древних *никсов, ибо в девичестве это COFF был. Как и положено EEE-монстру - расширили и обгадили, своими dos-stub'ами и чем там, дабы вот так сходу у конкурентов не работало нифига.

И вообще, в винде весь сетевой стек почему-то беркелейскими сокетами сильно пахнет. Ну так, о состоянии дел. А вот именно WinAPI это конечно самобытный кошмарик, но он виндой версии 3 воняет до невозможности. А ядро NT в результате занимается фигней, изображая этому куску крапа всякие диски C:. Внутрях оно ессно совсем другими путями оперирует и не имеет тупых ограничений MSDOS'ятины...


"Релиз консольной библиотеки ncurses 6.5"
Отправлено n00by , 29-Апр-24 10:26 
>>> Философия UNIX: всё есть файл. Философия вантуза: всё есть окно.
>> Реальное положение дел: mmap() в POSIX заимствован из WNT (VMS). И даже
>> в glibc дошло, что буферизированный fread() делается через отображение.
> А что, на страничную память есть монополия?

А что, без выдергивания из контекста "всё есть файл", этот вопрос имеет смысл?


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 18:10 
> А что, без выдергивания из контекста "всё есть файл", этот вопрос имеет смысл?

Этот вопрос содержал в себе половину ответа. Да, на базовые generic идее - монополии нет. Поэтому можно заметить что на базовом уровне все передирают идеи у всех. И вот уже какой-нибудь ARM - не так уж и сильно отличается по MMU и системе привилегий. Да, оно другое. Но на самом базовом концептуальном уровне идея той же страничной памяти - у всех в первом приближении одинаковая. Иначе авторы операционок опупели бы их на ту или иную архитектуру портировать - не, рефакторить весь paging и управление памяти под какого-то экзота никто в здравом уме не будет, такая архитектура просто пролетит как фанера над парижем. Какая бы она там концептуальная ни была.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено n00by , 30-Апр-24 07:00 
>> А что, без выдергивания из контекста "всё есть файл", этот вопрос имеет смысл?
> Этот вопрос содержал в себе половину ответа. Да, на базовые generic идее
> - монополии нет.

В смысле, "идея" тоже "есть файл", поскольку входит во множество "всё"? Или mmap это файл, поскольку обладает свойствами потока ввода-вывода? Или всё же "всё есть файл" оказалось несколько однобокой идеей, и теперь происходит попытка заболтать факт фиаско?


"Релиз консольной библиотеки ncurses 6.5"
Отправлено rvs2016 , 29-Апр-24 14:08 
> живых терминалов и в природе-то не осталось,
> но нет, мы разведём зоопарк виртуальных

Плохо, конечно, что зоопарк. Иногда это приводит к неудобствам.
Но а в самой идее виртуальных терминалов что плохого?


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 09:10 
vim всё хорошеет

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 11:46 
Только человеческий Exit никак не сделают.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено 12yoexpert , 28-Апр-24 10:15 
cli - идеальный интерфейс

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 11:50 
TUI: компромисс между возможностями CLI и нетормознутостью при доступе через SSH, в отличие от GUI.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Прохожий , 28-Апр-24 11:50 
Нет. Если мы говорим об интерфейсе, который компьютер предоставляет человеку, идеальный интерфейс - это когда компьютер умеет читать мысли человека.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено iCat , 28-Апр-24 11:58 
>...когда компьютер умеет читать мысли человека.

...или навязывает?


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Прохожий , 28-Апр-24 12:01 
Навязывание тоже может быть частью интерфейса.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 12:14 
ChatGPT и Copilot читать мысли ещё не умеют, но навызывать уже.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Прохожий , 28-Апр-24 12:40 
Это не так, если подумать. Обе LLM только отвечают на вопросы человека, а не активно разговаривают с ним. Да, ответы могут быть неточными, но это ещё не навязывание всё-таки.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 13:18 
Они продвигают повесточку, кроме того, они всегда будут продвигать нужную владельцам повесточку.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним324 , 28-Апр-24 14:15 
Ну и какую повесточку они тебе продвинули, что твоя жизнь прям поменялась.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 15:31 
> Ну и какую повесточку они тебе продвинули, что твоя жизнь прям поменялась.

На данный момент они продвигают мандатируемые определёнными тоталитарными капиталистическими режимами идеи. Влияет ли это на мою жизнь? Ну, как сказать. Если посмотреть на происходящее, то ещё как влияет и жизнь от этого вполне меняется.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено rvs2016 , 29-Апр-24 15:02 
>>...когда компьютер умеет читать мысли человека.
>...или навязывает?

Ну это следующий этап взаимодействия людей с машинами, приближающей последних к восстанию против первых.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 14:12 
Даже когда сделают массовый интерфейс мозг-компьютер, считай матрица, то окошечки, менюшечки, курсорчики никуда не денутся. Останцтся все те же элементы интерфейса, только больше не надо будет клацать по клавиатуре.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 18:51 
Как раз они исчезнут.
Они были созданы для зрения и в той же матрице не нужны.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 22:56 
И что же ты предлагаешь вместо них?
Вот надо мне отобразить юзеру текст.
Твои идеи?
(только не говори "когда будут делать, тогда и придумают")

"Релиз консольной библиотеки ncurses 6.5"
Отправлено rvs2016 , 29-Апр-24 15:23 
> И что же ты предлагаешь вместо них?
> Вот надо мне отобразить юзеру текст.

Тебе надо будет просто подумать что-то типа того, что ты и захотел.
Например: хочу, чтобы кто-то отобразил юзеру текст.
Кто такой этот кто-то? Это может быть кто попало. Хоть джин, хоть щука, хоть какая-то другая разработка чего-то нового (что нередко бывает просто чем-то хорошо забытым старым). У нас это в сказочном пространстве делала, бывало, щука своей системой "по щучьему веленью").
Ну тут ещё есть и особенности:
На первых порах желания надо произносить.
А потом, конечно, доработают возможность заказывать исполнение желаний не речью, а мыслью.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 17:27 
А если у человека в голове бардак, и он сам не знает чего хочет, как компьютер должен на это реагировать?



"Релиз консольной библиотеки ncurses 6.5"
Отправлено rvs2016 , 29-Апр-24 15:30 
> А если у человека в голове бардак,
> и он сам не знает чего хочет,
> как компьютер должен на это реагировать?

Компьютер должен выполнять только ясно отданные команды, например:
Хочу (ну или желаю), чтобы запустился Файрфокс.
Или ещё более явно: Компьютер, запусти Файрфокс.
А предложения типа "А не запустить ли мне (ну или компьютеру) Файрфокс" компьютер должен в простейшем случае игнорировать, в более сложном попробовать помочь человеку понять - действительно ли он хочет запустить Файрфокс.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Ромарти , 28-Апр-24 10:17 
Что за название такое - "нпроклятья"? Насколько безопасно использовать библиотеку с таким названием?

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 11:10 
С таким названием - грешновато, конечно.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 11:56 
Не пишите на нём программ для РПЦ, всего делов-то.
Это сокращение от "not curses".

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 12:04 
> Не пишите на нём программ для РПЦ, всего делов-то.
> Это сокращение от "not curses".

А разве не "new curses"?
Оно намного больше подходит этой либе))


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 12:09 
Может быть. Но если мы будем трактовать так, то тогда точно библиотеку предадут анафеме :)

"Релиз консольной библиотеки ncurses 6.5"
Отправлено rvs2016 , 29-Апр-24 15:33 
> Не пишите на нём программ для РПЦ, всего делов-то.

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 14:39 
Возможно ошибка перевода, так как скорее "заклинание",
новая библиотека заклинателей терминала.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено n00by , 29-Апр-24 07:36 
curses от cursor

Из словаря LingvoComputer (En-Ru)
curses

обязательные или вынужденные действия


Из словаря RadioElectronics (En-Ru)
curses

набор подпрограмм для управления движением курсора (в UNIX)


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 10:19 
> Возможно ошибка перевода, так как скорее "заклинание",
> новая библиотека заклинателей терминала.

Проклятия - частный случай заклинений. Хотя чаще всего curse применяется именно в значении проклятие. As in "наложить проклятие".


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 10:40 
Что значит консольная библиотека, ктонить может сказать? А libcurl, libmad, libssh2, libgit это тоже консольные библиотеки? А если я их в графическом по использую?

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 10:57 
> Что значит консольная библиотека, ктонить может сказать?

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


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

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

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 12:17 
Сотрудники Xerox PARC - исследователи.

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

Пижоны? :-)


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 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 для нормальных людей.


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

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

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

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 11:13 
Консольная библиотека - это, очевидно, та, которая не связана (linked) ни с каким с графическим сервером.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Прохожий , 28-Апр-24 11:56 
Очевидно, это не исчерпывающее определение.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Геймер , 28-Апр-24 11:52 
Консольная программаи может работать на "безголовом" ПК через UART, RS-232, не требуя видеокарты, монитора.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Прохожий , 28-Апр-24 11:59 
Монитор - это обязательная часть любой консольной программы.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 12:06 
Обязательная часть консольной программы это текстовый терминал. И он может быть виртуальным.

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

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

"Релиз консольной библиотеки ncurses 6.5"
Отправлено rvs2016 , 29-Апр-24 15:41 
> в итоге весь вывод всё равно должен оказаться на мониторе

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Геймер , 28-Апр-24 12:14 
Не только монитора на "безголовом" компьютере нет, но и клавиатуры тоже

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Прохожий , 28-Апр-24 12:36 
И зачем там консоль, которая подразумевает наличие человека?

"Релиз консольной библиотеки 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.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:21 
Far for Linux через SSH легко.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:50 
> Norton Commander - не консольные

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


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

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 22:18 
Мы про Norton Commander говорим, который под управлением DOS работал.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 23:10 
Norton Commander вообще напрямую в видеопамять писал, оставьте его уже в покое.

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 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 в качестве буфера.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 23:54 
> Э-эм, "и чо?"(c)

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


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

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



"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 00:15 
Так ведь не пишет NC ничего *напрямую* в *видеопамять*. Он ASCII-символы выводит в текстовом режиме. А как и кем они транслируются в точки на экране он не знает.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 21:27 
Молодо-зелено. Забыли уже — mov es,b800h…

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


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


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

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



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

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 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).

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 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 (напрямую в видеопамять писали не от желания повыпендриваться).


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

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

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 22:17 
> И зачем там консоль, которая подразумевает наличие человека?

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 13:34 
Совершенно не обязательно. Вы можете сделать exec &>/dev/lpt1 , и вместо монитора у вас будет принтер, если, конечно, он умеет построчную печать.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено fi , 28-Апр-24 14:10 
что только тут написали ))))) А все проще -

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

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


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 14:16 
Давно уже пора построить полноценнну среду рабочего стола на ncurses и вводить её как стандарт.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 15:44 
Она называется emacs )
Screen тоже считай как среда рабочего стола

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 16:35 
Emacs близко даже не подходтт, даже в качестве шутки.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:58 
Да, Emacs уже на целую операционную систему тянет. Там и калькулятор, и пасьянс. И даже свой пакетный менеджер есть!
(Шутка)

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 00:20 
Кульминация: systemd-emacsd

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:26 
И screen тоже ещё неполноценная среда. В нём отдельне окошки внутри его экрана, такие, чтоб их перемещать можно было, не создать. Ну, разве что, любители тайлинга его могут считать полноценной средой.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено rvs2016 , 29-Апр-24 16:15 
> И screen тоже ещё неполноценная среда.
> В нём отдельне окошки внутри его экрана,
> такие, чтоб их перемещать можно было, не создать.
> Ну, разве что, любители тайлинга его
> могут считать полноценной средой.

Во-во. Полностью согласен, коллега!
Написал выше тут примерно то же самое:
https://www.opennet.ru/openforum/vsluhforumID3/133541.html#120
А потом смотрю - и ты пишешь про то же! :-)


"Релиз консольной библиотеки ncurses 6.5"
Отправлено rvs2016 , 29-Апр-24 16:12 
> Screen тоже считай как среда рабочего стола

Окна там немного странные. Друг на друга не накладываются. Можно только рядом расположить. Размеры менять, конечно, можно. Как это называется в графических виндоу манагерах? Тайловые? Работа мышью в screen не предусмотрена. То, что окна не передвинешь - это понятно, они же располагаются только рядом друг с другом. Но даже их размеры не изменишь мышью, например, перетягиванием междуоконных границ. В общем работать ещё есть над чем. До Turbo Vision всем этим современным текстовым средам ещё очень далеко.


"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 14:47 
Нормальный терминал пока не написали? Все возятся с этим зоопарком terminfo и прочего?

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 15:34 
Так на это вся консоль завязана. Это легаси уже не выкорчевать.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 15:43 
Поздравляю гентушников с пересборкой половины мира
(там суть в том что половина системы тянет эту либу себе в зависимости, а ее обновление ломает abi)

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 16:45 
Вся не X11-овая пседвографика Линукса держится на ncurces.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 17:51 
И весь мир собран статически в генте? Во дела!

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:37 
В этой же версии ABI изменился.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 21:35 
~ $ equery depends ncurses | wc -l
37
Не так уж и много.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 12:14 
А должно быть много! Непорядок ncurces это хребет не-Исковой графики.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 16:44 
Утилиты Слаки написаны на ncurces, почему об этом все молчат?

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 17:53 
Потому что неуловимый Джо?

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 03-Май-24 21:53 
Утилиты слаки это в основном скрипты, которые используют Dialog, который написан на ncurses.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено penetrator , 28-Апр-24 18:28 
ncdu забыли, вот что реально полезно с нкарсес

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 18:42 
Вот тут текстовые утилиты и рядом не стояли с графическими.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено penetrator , 28-Апр-24 23:01 
графические нафиг под SSH не нужны, и даже невозможны

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 28-Апр-24 23:13 
Зелен этот виноград, да и не добраться до него.
…Где невозможны — там обходимся без них.

"Релиз консольной библиотеки ncurses 6.5"
Отправлено Аноним , 29-Апр-24 09:10 
X11 forwarding

"Релиз консольной библиотеки ncurses 6.5"
Отправлено penetrator , 30-Апр-24 17:39 
> X11 forwarding

ну вот когда пробросишься в SDDM, или прикрутишь к Wayland вот тогда заходи

никто этими костылями не пользуется, даже админы локалхоста