LINUX.ORG.RU
ФорумTalks

Терминал здорового человека, который не курит

 


0

2

А вот хотелось бы поговорить об вещах для линукса фундаментальных.

Вот у нас есть терминал. Есть всякие окраски, автозавершения и т.д.. Но говно ваш терминал. Потому что терминал занимается тем, что эмулирует vt101 или подобное говно. Ну правда, а почему графику в терминале надо выводить через libsixel которая эмулирует ещё какой то очередной кусок гавна из 80х?

Проблема линупсового терминала в его убожестве, которое возведено в ранг религии. Вот вам пример: я в терминале здорового человека для всех файлов типа png сделать cat .... | tranform_somehow | transform_ololo | write ...

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

Я помню как alan cox с линусом поругались. Кокс говорил что терминальному говну не место в ведре и я с ним согласен. Терминал следует свести к пайпу с доп.функциями. в сам пайп надо внести обратную связь и кстати пайпу вообще можно заменить на shm

☆☆☆

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

ptarh ★★★★★
()

нельзя сказать следующему процессу в пайпе что я ему буду выдавать

Но ведь ты как минимум знаешь, что этот самый следующий процесс ожидает? Да и к тому же есть powershell, который оперирует объектами

af5 ★★★★★
()
for png in $(find /location -name "*.png); do cat $png | gm convert -some_transform params - - | gm convert -other_transform params - - > "new_${png}"
chupasaurus
()

Обосрать эмулятор терминала и привести в пример работу баша - это сильный ход.

andreyu ★★★★★
()
Ответ на: комментарий от IPR

Ты пытаешься всех убедить, что Unix говно или что?

Просто подтверждает, что он ckotinko.

andreyu ★★★★★
()

Ну неее. Если в линуксе сломают и последнее, что я в нем осилил, то нафик уйду на мак. Хотя подожди, я уже ушел. Ладно, продолжай.

Deleted
()

Бред уже стал настолько забористым, что переживаю за собственные мозги. Заигнорил.

goingUp ★★★★★
()

Нужно чтобы (как в LINQ) парсер выражения не разбирал его тупо слева направо, а превращал в AST. Тогда каждый из элементов пайпа сможет получить метаинфомрацию по другим элементам, и реагировать соответственно. Это настолько очевидно, что прям диву даешься, как все эти высоколобые гении из MIT не подумали над этим

stevejobs ★★★★☆
()
Ответ на: комментарий от af5

нет, не знаю. может быть, он собран без поддержки какого-то формата.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от torvn77

во-первых, зачем?

во-вторых, ды же не представляешь, сколько надо.

ckotinko ☆☆☆
() автор топика

Проблема линупсового терминала в его убожестве, которое возведено в ранг религии.

Смотря что называть «терминалом».

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

Это 1) не имеет ровно никакого отношения к терминалу 2) просто неверно.

tailgunner ★★★★★
()
Ответ на: комментарий от stevejobs

гении из MIT жили в 80х. в то время компы были вообще 8-битными

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

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от torvn77

А ведь я когдато хотел тебе дать денег на твой процессор...

Хорошо что не дал, он бы тебе какой-нибудь подгоревший пень второй подсунул.

Siado ★★★★★
()
Ответ на: комментарий от tailgunner

имеет и самое прямое.

потому что создаётся однонаправленный пайп. а что если процессы могут попытаться договориться? например о формате передаваемых данных. а тут никак. пайп однонаправленный, всё, приехали.

нужно запилить возможность работы «двунаправленно». чтоб можно было поговорить на тему поддерживаемых форматов. чтоб был стандартный протокол.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от stevejobs

Это настолько очевидно, что прям диву даешься, как все эти высоколобые гении из MIT не подумали над этим

А ты хоть на минуту представь, что они об этом подумали. Почему, по-твоему, они решили так не делать?

tailgunner ★★★★★
()
Ответ на: комментарий от crutch_master

чтоб приложения могли ширше, ширее взаимодействовать друг с другом через «пайпы». в частности, они должны уметь договориться о форматах обмена хотя бы.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от tailgunner

потому что они жили в 80х.

ты реально что ли не вдупляешь, что мы жрём в линупсе говно из 80х? причем не потому что нас враг заставляет, а потому что это наше святое говно.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от ckotinko

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

Это 1) не имеет ровно никакого отношения к терминалу 2) просто неверно.

имеет и самое прямое.

Нет. Тебе уже несколько человек сказали, что ты путаешь шелл и терминал. Конвейер из процессов создается без всякого терминала.

а что если процессы могут попытаться договориться?

Договориться они не могут, а сказать «что я ему буду выдавать» - вполне могут.

нужно запилить возможность работы «двунаправленно»

И какие от этого буду профиты?

tailgunner ★★★★★
()
Ответ на: комментарий от ckotinko

в частности, они должны уметь договориться

смотри допросишься, утилиты rm и find в результате непродолжительного совещания решат, что файлов у тебя многовато

af5 ★★★★★
()
Ответ на: комментарий от ckotinko

потому что они жили в 80х.

Вообще-то те, кто проектировал Unix, жили в 70-х (они и к MIT отношение имели опосредованное, но что взять со стиви).

ты реально что ли не вдупляешь, что мы жрём в линупсе говно из 80х?

Не понимаю, о чем ты. Я вообще не жру говно. И да, теория ОС не особо продвинулась с 80-х.

tailgunner ★★★★★
()
Ответ на: комментарий от ckotinko

Можно и двусторонний делать. И ветвление. Где-то были инструменты, но не помню, как они назывались.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от tailgunner

ничего я не путаю.

шелл использует pty которые эмулят терминалы. объясни, пожалуйста, почему pty нельза заменить на pipe с возможностью совать туда сигналы + авто SIGKILL при закрытии?

между прочим, я не случайно припомнил тот срач по поводу терминалов в ведре. они там нахер не нужны. нахер. просто кто-то из финляндии застрял в прошлом вообразил себя богом линукса.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от tiinn

терминал предназначен для работы.

для работы, карл

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от ckotinko

ничего я не путаю.

Ты путаешь терминал как программу (xterm, eterm), терминал как устройство (tty, pty) и пайп. И пока ты их путаешь, разумный разговор с тобой невозможен.

tailgunner ★★★★★
()
Ответ на: комментарий от stevejobs

на самом деле даже этого не нужно, а если быть точным - это бесполезно.

в реальности в сконструированном на баше конвейре работают незнакомые друг с другом программы.

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

ckotinko ☆☆☆
() автор топика

Поставь себе Terminology (На FreeBSD ставится из порта: cd /usr/ports/x11/terminology/ && make install clean или из архива бинарным пакетом: pkg install terminology) и будь счастлив.

iZEN ★★★★★
()
Ответ на: комментарий от tailgunner

я не путаю. я говорю, что терминал как явление есть лютое legacy.

просто сатанинское легаси из 80х.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от iZEN

это хак. один хер у тебя будут 100500 программ которые ничего не знают про терминологию и будут создавать страдание.

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

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от iZEN

Чую, что автор говорит о другом. Ему хочется что-бы программы объектами обменивались с кучей метаданных(как в powershell(?)), а не текстовыми строками. Вроде Поттеринг или кто-то подобный писал подобное под lin, но не взлетело.

UPD: Бинаризация всея Линукса Вот откопал

Deleted
()
Последнее исправление: log4tmp (всего исправлений: 1)

для всех файлов типа png сделать cat .... | tranform_somehow | transform_ololo | write ...

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

Ты изобрёл gst-launch что-ли? :) Так там такой «договаривающийся» пайп восклицательным знаком обозначается, а не вертикальной палкой. И, кстати, вполне возможно что кучу твоих png обработать gstreamer вполне сумеет.

И совершенно непонятно, при чём тут терминал. Это всё и в скрипте прекрасно работает, вообще без какого-либо терминала.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)

Ну ок. Вы уже приступили к реализации?
Или это опять только рассуждение и ни грамма действий в нужную сторону?

expelled ★★
()
Ответ на: комментарий от iZEN

Почитал на wiki - это больше dbus какой-то напоминает. У автора пока попроще хотелки...вроде...

Deleted
()

Но говно ваш терминал. Потому что терминал занимается тем, что эмулирует vt101 или подобное говно.

Потому, что оно работает и работает хорошо. Если тебя что-то не устраивает — сделай лучше.

Ну правда, а почему графику в терминале надо выводить через libsixel

Не надо выводить графику в терминале.

Вот вам пример: я в терминале здорового человека для всех файлов типа png сделать cat .... | tranform_somehow | transform_ololo | write Вот вам пример: я в терминале здорового человека для всех файлов типа png сделать cat .... | tranform_somehow | transform_ololo | write

Terminal != Shell

PowerShell, который делает то, что ты хочешь работает поверх этого самого терминала.

Singularity ★★★★★
()
Последнее исправление: Singularity (всего исправлений: 1)
Ответ на: комментарий от ckotinko

ты реально что ли не вдупляешь, что мы жрём в линупсе говно из 80х?

Всегда знал, что с вами что-то не так.

IPR ★★★★★
()

Ты про termkit или мощношелл?

x3al ★★★★★
()

Весенние обострение, не иначе.

RazrFalcon ★★★★★
()

эмулирует vt101 ... cat .... | tranform_somehow |

Где связь? =)

int13h ★★★★★
()

Потому что терминал занимается тем, что эмулирует vt101 или подобное говно.

# echo $TERM
linux
cvs-255 ★★★★★
()

терминал нужен в основном для работы с удалёнными серверами. какая графика? нах она нужна вообще? терминал должен быть а) текстовым (чтобы не жрал трафик и не тормозил) б) простейшим (чтобы работать на любой машине, даже самой слабой, на любом разрешении экрана, начиная от 480). всё прочее - это от лукавого.

Iron_Bug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.