Комментарии 247
Windows Terminal использует GPU для отрисовки текста, что обеспечивает повышенную производительность при использовании командной строки.
Куда мы катимся, что для текстового терминала может понадобиться аппаратное ускорение графики…
Рендеринг шрифта, рендеринг окна, переключение вкладок, скролл. Всё это на видюхе делать быстрее. Пусть и для терминала это не настолько хорошо помогает, как для браузеров, например, но помогает.
Плюс на процессоре всегда куча прерываний, а видеокарта редко когда чем загружена.
Это у вас просто в памяти так отложилось.
Я по случаю пересел с ~8550U на 6600U, и всё лагает. Проблемы с отзывчивостью видны прям сразу — я вот в браузере печатаю и чувствую задержку. И это не «самовнушение» — оба ноута рядом стоят, сравниваю.
А уж если сейчас пересесть с моего K1 (не самого быстрого телефона) на какой-нибудь Highscreen Zeus — там разница будет ещё ощутимее. Хотя в моей памяти зевс отложился как вполне шустрый телефон и тормозов на нём я тогда не ощущал.
Это у вас просто в памяти так отложилось.
Да не суть важно, даже если оно там притормаживало, минуточку, это был одноядерный процессор на 66МГц без всякой там суперскалярности, предсказания ветвлений и кучи исполнительных блоков. И такая же задача.
Я по случаю пересел с ~8550U на 6600U, и всё лагает
Ну так это у вас просто софт такой. У меня нет никаких лагов при наборе текста где-нибудь в Visual Studio, будь-то древний Core Quad 6600 в мастерской, более современный ноут на i7 4810MQ или Ryzen 7 2700 на работе. Но у меня и на последнем есть здоровенные лаги при вводе текста комментариев на Хабре в длинных ветках. И знаете, это тоже очень-очень грустно.
Я про сравнение одного и того же софта всё же) И там, и там всё одной версии.
> И такая же задача.
Она на самом деле не такая же. Современный терминал состоит далеко не только из текста, иначе по функциональности он был бы как PTY, даже ctrl-f нельзя было бы сделать.
Или ребутаться нужно было бы, чтобы шрифт в терминале побольше сделать =)
> оно там притормаживало
Ох нет, оно там не притормаживало) Оно там буквы могло по полсекунды после ввода отрисовывать, если процессор хоть что-то делает — как сейчас по ssh в Китай сходить.
Она на самом деле не такая же. Современный терминал состоит далеко не только из текста
Так и я в качестве примера привожу отнюдь не текстовый зелёный терминал с символами из знакогенератора. Возьмите, например, Word четвертьвековой давности. Там задача рендеринга в разы сложнее, чем у этого терминала — не один моноширинный шрифт, а произвольное сочетание любых шрифтов, колонки, отступы, абзацы, кернинг, встроенные объекты. И всё это удобоваримо работало на 486-м процессоре, и молниеносно — на Пентиуме.
Ох нет, оно там не притормаживало) Оно там буквы могло по полсекунды после ввода отрисовывать, если процессор хоть что-то делает
Да не перегибайте. Это разве что если mp3 на 486 в фоне попробовать запустить :)
Там задача рендеринга решена «напрямую». Сейчас рендеринг всего продирается через кучу слоёв абстракций. Зато не нужно программировать рендеринг в каждой программе заново.
> И всё это удобоваримо работало на 486-м процессоре, и молниеносно — на Пентиуме.
Повторюсь — нет, не молниеносно)
Возьмите любое старое устройство и попробуйте поработать на нём на тех версиях софта — реальность окажется не такой радужной, как запомнилась. Да, возможно оно откровенно не тормозило, но скорость реакции была совсем ужасной по современным меркам. Были, конечно, оптимизированные программы, но в среднем по больнице всё там происходило очень медленно. Менюшки по 2 секунды открывались, буквы печатались по 150мс+, окна переключались по секунде, а программы запускались по 10-30 секунд (хотя стим у меня и сейчас полминуты на «игровом компутере» стартует, ага).
> Это разве что если mp3 на 486 в фоне попробовать запустить :)
Помнится, я на Celeron 667 ставил JetAudio, потому что это был единственный на тот момент проигрыватель, который не ставил колом всю систему )
Э нет, не печаль)
Вам правда не хочется писать вообще ВСЁ на С/С++ без сторонних библиотек =)
Для людей с десятилетними компьютерами — да, печаль, но все эти абстракции разгоняют скорость разработки в разы. Так что для остальных пользователей эти тормоза == новые фичи намного раньше.
Какой-то баланс, конечно, нужен, но в те века возвращаться точно никому не захочется)
Для людей с десятилетними компьютерами — да, печаль, но все эти абстракции разгоняют скорость разработки в разы
Понимаете, тут такой момент: это неправда и самообман. Не разгоняют. Есть какой-то предел сложности, навороченности абстракций, когда скорость разработки максимальная, и дальнейшее их усложнение не улучшает ситуацию, а может только ухудшить. Мы его давно прошли. Современные разработчики не реализуют фичи быстрее, чем, например, VB или Delphi-разработчики конца 1990-х. Может быть, даже медленнее :)
Сейчас «Hello, $name» бота для телеги можно написать за час на голом компьютере.
Поверьте, клиента для популярных 20 лет назад сетевых софтин точно так же можно было написать за час. Под ту же Delphi тогда было четыре десятка серверных и клиентских компонент под различные сетевые протоколы. Другое дело, что нам в нашей молодости на Delphi было писать западло, нам надо было чтоб обязательно ручками на С++ :) Но те, кто кому ехать было важнее, чем шашечки, брали и делали.
А уж чтобы написать новую фичу — это нужно было душу дьяволу продать.
В конце 90-х было уже всё то же, что и сейчас. Визуальная разработка, биндинги данных, ORMы и прочие приблуды. Единственное, что изменилось, это среда — раньше всё это делали на десктопе, сейчас перенесли в веб. И то, веб-разработка только относительно недавно доросла до того уровня продуктивности, который был на десктопе 20 лет назад.
Winamp тормозил (заикался) с играми, конечно же.
ISA-звуковая? Они были камнем на ногах еще у 486.
Если каджиту не изменяет склероз, то DMA это EISA/VLB/PCI, а звучки не всегда были даже ISA16, для удешевления часто исполнялись как ISA8. Да и дисковая подсистема тоже могла быть в PIO, и запуск офиса или копирование файлов могли сделать систему крайне неотзывчивой.
Если каджиту не изменяет склерозИзменяет. Вспомните строку инициализации Sound Blaster.
вучки не всегда были даже ISA16, для удешевления часто исполнялись как ISA8Это совсем седая древность. Впрочем, DMA был и там.
Pentium 166 mmx позволял играть mp3шки одновременно с игрой какой-нибудь.
Думаю это были не mp3шки. У меня был pentium mmx 2** (не помню), он не тащил mp3 с чем то еще. Да и просто так не особо тащил вроде. Зато midi шли, да.
Для просто воспроизведения вполне хватало Pentium-100 (486 уже не хватало).
Да и просто так не особо тащил вродеЭто странно, у меня на 486DX в винампе отлично проигрывались mp3-шки в моно-режиме. Да, не стерео (там тормозило), но ведь и пень куда мощнее 486-го.
Так что запросто всё работало.
У меня первый PC был на AMD 133 Мгц и это был единственный плеер, который позволял слушать музыку. Но на все остальное мощности ПК уже не оставалось. Даже во время работы в Word'97 уже звук прерывался. Про игры тем более речь уже не шла.
Pentium 166 mmx позволял играть mp3шки одновременно с игрой какой-нибудь.
У меня был AMD K5 PR133… при прослушивании mp3 больше ничего тяжелого делать было нельзя, иначе звук прерывался.
Только несжатый wav можно было слушать вместе с играми.
Там задача рендеринга решена «напрямую». Сейчас рендеринг всего продирается через кучу слоёв абстракций.
Скажите, вы правда считаете, что эти абстракции в графических ОС появились недавно, а не тогда же, в середине 90-х, на тех же медленных компьютерах? Системная компонента для визуализации сложного текста с разными шрифтами, параметрами, объектами и так далее, в Windows пришла с версии Win95.
Помнится, я на Celeron 667 ставил JetAudio, потому что это был единственный на тот момент проигрыватель, который не ставил колом всю систему
Не верю :) WinAmp на моём Pentium 150 вообще никак не мешал работать, останавливал только когда игры запускал, ибо FPS. А когда разжился P-III 450, там уже в реальном времени работала та красивенькая модная визуализация на основе моделирования потоков жидкостей. Ну и MPEG4 видео уже отлично воспроизводилось в любом плейере. А когда у меня был P-233MMX (собственно, апгрейд упомянутого выше Р-150), так я даже там ухитрялся смотреть фильмы MPEG4, но в винде оно было рывками, я нашел плейер под DOS, в котором работало нормально. Но так это фильмы, а музыка вообще была ерундовой задачкой.
Возьмите любое старое устройство и попробуйте поработать на нём на тех версиях софта — реальность окажется не такой радужной, как запомнилась.
Меня совершенно не смущает тот факт, что компьютер из 1990-х работает не очень гладко с программой из 1990-х. Меня смущает тот факт, что компьютер из 2020-х работает не очень гладко с программой, которая делает то же самое, что делала программа из 1990-х, которой для плавной работы было предостаточно в тысячу раз меньше ресурсов, чем ей дали сейчас.
во-вторых, непонятно с чего вы решили, что терминал работает не очень гладко? Аппаратное ускорение получили просто потому, что используется D2D1 и DirectWrite, которые сейчас де факто стандартные апи для 2D графики в Windows. Я думаю даже в режиме программного рендеринга (не знаю есть ли опция в терминале, но D2D1 умеет) он будет прекрасно работать даже на очень слабых машинах.
Задача «рендерить текст» — очень малая часть в задаче «рендерить эмулятор терминала целиком». И даже в плане текста поменялось очень многое — шрифты на лету можно менять, масштабировать и так далее. iTerm2, например, на слабых макбуках не справляется с задачей масштабирования — если попытаться быстро сделать 500% ctrl-колесиком, он зависнет на полминуты.
> только когда игры запускал, ибо FPS.
Само собой, я говорил про ситуацию «winamp+игры», чему в то время ещё тормозить-то было) А вот jetaudio+игры — прекрасно уживались.
Повторюсь — нет, не молниеносноГоду так в 1996 был администратором небольшого парка компьютеров в типографии. Типовая конфигурация: 486-й, Windows 3.11, Write (тот что в составе Windows), PageMaker, ATM (Adobe Type Manager).
Машинистки набирали текст в Write — как строчили из пулемета. И ничего, всё отрисовывалось. А вот в PageMaker — да, набирать было некомфортно, могли быть даже пропуски букв.
Возьмите любое старое устройство и попробуйте поработать на нём на тех версиях софта — реальность окажется не такой радужной, как запомнилась. Да, возможно оно откровенно не тормозило, но скорость реакции была совсем ужасной по современным меркам.
У меня как раз противоположное впечатление — под Windows скорость реакции интерфейса была существенно выше, а скорость работы — ниже. На 166 MHz вызов контекстного меню срабатывал молниеносно, а заливка выделенного пункта меню или отрисовка теней могла запаздывать — однако это не мешало выбрать нужный пункт. При изменении размеров окна (в тех случаях, когда было включено отображение содержимого при изменении размеров) его граница не отставала от курсора мыши, интерфейс был отзывчивым, а перерисовка окна (точнее, части (!) окна) была долгой. То же самое с перемещением окон. Да, во многих приложениях длительные операции выполнялись в одном потоке с message loop, приложение могло начать «лагать» — в какой-то момент побелеть, перестать обрабатывать ввод, а затем разморозиться и пачкой обработать всё, что успели натыкать, но в хорошо сделанном софте не было такого, чтобы текст отставал от курсора при наборе. В тех местах, где работать быстро на среднестатистическом железе было нельзя в принципе, предусматривали разного рода ухищрения либо практического характера (например, вместо редактирования текста с кучей эффектов in-place был отдельно режим ввода текста, а затем его отрисовка после подтверждения ввода), либо направленные на уменьшение субъективного времени ожидания (вроде анимированной рамки при zoom in/out в фотошопе вместо песочных часов).
Про современный веб лучше и не вспоминать, это уже просто дичь какая-то (ноутбук с Core i5)
А вот с хабром это какая-то странная проблема самого хабра. Какие-то js-хуки начинают тормозить.
Я по случаю пересел с ~8550U на 6600U, и всё лагает.
Это или самовнушение или электрон заело. Между ними нет настолько принципиальной разницы как даже между Celeron 533 (Cumine) и Celeron 1200 (Tualatin), на которых GDI абсолютно одинаково отзывчив, потому что для него хватает и гораздо более слабых камней.
Ну как самовнушение.
DDR3 против DDR4, ядер в 2 раза больше, всех кешей в 2 раза больше, одно ядро в тестах с плавающей точкой до +100% попугаев выбивает.
А ещё я 8650 с 8550 перепутал, мда.
Винды под руками нет, конечно.
Но единственный случай, когда именно лагал ввод за последние лет 20 это 5 языков проверки синтаксиса в хропере.
Но там проблема не в отзывчивости, а в реализации спеллчека, который проверяет не одно вводимое слово, а весь текст по каждому нажатию кнопки.
Sublime 3 на thinkpad T440s c i5-4300U при редактировании файлов через sshfs не тормозит.
Более того, там даже загрузки не видно. То же и с tilda, пока в ней tail'ятся логи.
Отзывчивость браузеров очень страдает, особенно Хромиума.
В краснопанде сотни полторы вкладок, полет нормальный.
Но, конечно, может сильно зависеть еще и от открытых страниц, некоторые любят кушать проц…
Отзывчивость, особенно, если речь идет от браузере, в общем случае больше страдает от недостатка памяти. Пока штатная 4ГБ-планка не уступила место 8ГБ было очень некомфортно и на убунте.
рендеринг шрифтов на экране компьютера 1990-го года и на современном 4k — кажется, все-таки немного разные вещи. Особенно когда надо как можно быстрее прокрутить до конца кучу текста с хинтингами, эмодзи, лигатурами, кастомными цветовыми схемами, и т.п.
Кстати, использовать gpu в терминале — не изобретение майкрософта. В linux такие эмуляторы уже давно есть и пользуются популярностью.
Почему не встроили? Встроили. Шрифты там рендерятся через DirectWrite, так что особая обработка там нужна только для двойной ширины emoji.
повышенную производительность при использовании командной строки
Хотелось бы представить use case, где производительности терминала не хватает… Но не могу. В старинном mplayer'е, который умел рисовать видео ASCII-символами, как-то получалось даже без GPU.
Ничего нового в этом нет. Рогулайки, даже самые хардкорно-ASCII-шные, давно уже рендерят символы через какой-нибудь SDL. Так попросту легче, и шрифты можно гонять какие угодно и в каком угодно цвете, и кросплатформенно, опять же.
Есть варианты отладки высоко нагруженных приложений, которые выкидывают килотонны логов (если их включить) и соответственно задержки на вывод убивают всю производительность, для таких применений вполне =)
С чего вы взяли? Никто в реалтайме на эти килотонны при отладке не смотрит. Но вот когда дошли до точки останова, тогда уже и можно посмотреть, что оно туда выплюнуло (в том числе и больше 1000 строк назад иногда). И вот чтобы не ждать и так медленную отладочную версию часами, вывод и должен работать быстро. И сразу скажу, писать в файл, а потом его анализировать неудобно — потому как когда дошёл-таки до точки останова, удобнее видеть активность в консоли.
А как насчёт писать в файл, а потом тот файл читать через tail -f или аналог?
habr.com/ru/post/209776
утверждают что мозг обрабатывает картинку за 12 миллисекунд. Это примерно соответствует 80ти кадрам в секунду.
Однако, обрабатывать картинку и текст все-же задачи разной сложности.
Число 25 было взято относительно с потолка с отсылкой вот сюда:
ru.wikipedia.org/wiki/25-%D0%B9_%D0%BA%D0%B0%D0%B4%D1%80
Провёл небольшой тест: настроил тот же шрифт и размер терминала для Windows Terminal Preview и для PuttyTray, которым пользуюсь последние годы.
Сделал просто cat | grep
одного лога. На одной и той же машине. По очереди.
Putty сделал это в 8 раз быстрее.
Я бы не сказал, что это большая проблема в обычной жизни, но да, если бы у меня приложение выдавало в терминал больше текста, чем терминал может переварить, то это было бы в 8 раз медленнее. При этом видеокарту терминалы грузят одинаково, Geforce 1050 на 15-20%.
Второй пример: вывод лога на 22 000 строк. Слева новый терминал. Тут почему-то time у нового терминала показывает, как будто он всё мгновенно вывел, получается, команда уже выполнилась, а терминал всё ещё выводит.
Заметил ещё одно: если во время вывода лога нажать Ctrl+C, то новый терминал принимает команду примерно через 2 секунды, а старый мгновенно. Во втором случае вообще не принимает, т.к. команда-то уже выполнилась.
Сделал просто cat | grep одного лога. На одной и той же машине. По очереди
А кто был первым в этой очереди? Или вы после каждого прогона перезагружались, чтобы дисковый кэш не участвовал?
На сколько я понимаю — это проблема операционки. Если делать без gpu — надо пройти слишком много слоев абстракции операционки.
Это просто желание сделать покрасивше.
Имея такое нынче железо, как мы имеем в большистве своем, мы уже довольно многие вещи делаем не ради целесообразности, а ради приятности.
Куда мы катимся, что для текстового терминала может понадобиться аппаратное ускорение графики…
Да оно же с самого начала использовалось. Текстовые режимы графических карт — это аппаратное ускорение отрисовки текста: пишем в память ASCII коды, карта делает всё остальное. Так что это возврат к основам — кидаем в шейдер code points и карта делает остальное.
Если что, аппаратное ускорение графики в винде было почти всегда. Всякие s3trio — уже умели копировать прямоугольники сами. Уж не знаю насколько оно использовалось и насколько без этого бы тормозило бы.
Вообще, я тут подумал что почти все компы, с самого начала, имели ускорение графики в каком-то виде — спрайты, текстовые/блочные режимы, ускорение записи в память в VGA (x-mode). Даже самый первый комп с UI — xerox alto, имел блиттер. Разве что в первых маках рисовалось все процом, и это дико тормозило.
Т.е. с чего вообще предположение что UI — это просто, и можно CPU-шкой рисовать — совершенно не ясно. Да и вообще желание юзать 60-ти ватный пепелац со всеми его branch prediction, чтобы копировать байтики — оно странное.
Я точно знаю что ускоритель был, в датащитах по тем же s3 он есть, но вот как использовался
Windows GDI вполне себе умел в аппаратное ускорение 2D графики, если драйвер видеокарты оное поддерживал.
почти все компы, с самого начала, имели ускорение графики в каком-то виде — спрайты, текстовые/блочные режимы, ускорение записи в память в VGA (x-mode)
Ключевое слово здесь — «в каком-то виде». Ибо назвать аппаратным ускорением графики запись сразу в несколько битовых плоскостей по заданной в управляющем регистре маске можно только с огромной натяжкой.
А те же аппаратные спрайты поддерживались далеко не на всех аппаратных платформах. На тех же PC, поддержки аппаратных 2D спрайтов в том виде, как это было сделано на Atari / Amiga, не было как таковой.
Так что пусть будет раз уж адаптер есть из коробки, а то индусы так напишут что никаких ядер не хватит даже на текст.
да нафиг они не нужны были, слишком крупные, делали 42 либо 64 лимвола в строке.
Первое самое комфортное, второе мелковато, зато помещалось больше и писАть легче.
В Винде даже настройки нет выставить репит > 20Hz.
Да даже с этой задачей она не справляется.
Как же смешно смотреть на дёрганый скролл на high-end компе.
Сглаженные шрифты с лигатурами на процессоре рисовать таки затратное дело. Учитывая что некоторые терминалы еще и под веб компилируются, то вообще ничего удивительного.
Стильно, модно, молодёжно! ©
github.com/microsoft/terminal/issues/376
(порт под MacOS, запущенный в iTerm — эзотерической забавы ради поставил, а даже и вполне себе оказалось)
Ладно мышь, сочетания клавишь Ctrl+* не работает. Периодически появляется какое-то окошко, состоящее из 3 кнопок: свернуть, развернуть и закрыть.
К тому же настройка только через редактирования json. Это как вообще? Т.е. круто, что есть такая фича, но можно было бы и GUI сделать. А json для тонкой настройки. А так, открыл json и закрыл, потому что не знаешь что там можно писать.
А так, открыл json и закрыл, потому что не знаешь что там можно писать.В json есть ссылка на документацию, в том числе на русском: docs.microsoft.com/ru-ru/windows/terminal
Если писать в VS Code, то даже работает автодополнение названий параметров.
За ссылку спасибо. Согласитесь что документация к тому, как пользоваться настройками, это 5. Супер UX. Но, видимо, это модно-молодежно и придется привыкать.
1) Конфигами и их частями можно делиться, класть их в систему контроля версий, публиковать на гитхабе.
2) Стандартизированный и документированный формат конфига позволяет любому написать к терминалу конфигуратор. Хоть GUI-приложение, хоть автоматические, которые будут настраивать его под определенное приложение или workflow.
3) Можно иметь несколько уровней конфигов. В терминале этого пока нет, но возможно, что со временем будет как в VS Code — системный, пользовательский, конфиг проекта.
Уверен, что со временем будут и репозитории готовых конфигов, и конфигураторы на любой вкус.
К тому же настройка только через редактирования json. Это как вообще?
Терминал — инструмент профессиональных «компьютерщиков», админов да программистов, средство доступа к консольным утилитами. Настройка через текстовый файл пугать таких людей не должна.
А так, открыл json и закрыл, потому что не знаешь что там можно писать.
Так как я поставил эту программу уже очень давно и формат файла конфигурирования уже изменился, то я поступил так — всё удалил оттуда.
Открыл еще раз — и файл уже заполнен дефолтными настройками и с комментариями что означает данная настройка.
Если чего не понятно — в этом же файле есть сылки на документацию.
Настройка через текстовый файл пугать таких людей не должна.
json — формат сериализации, а не текст. Руками ковырять его немного удобнее, чем бинарник hex-редактором. Не пугает, но огорчает.
И есть редактор с подсветкой синтаксиса и автокомплитом.
Но, что самое забавное, это виндовый терминал.
В соседней теме некоторые от того, что им в не-винде галочек не сделали, кричали так, словно за ними сам Молаг Бал гонится, и тысяча Дочерей Хладной Гавани впридачу.
У VS Code тоже сначала было только через json, потом добавили GUI.
Я сегодня потыкал новый терминал, справка у него небольшая, я осилил, прочитал все настройки, ввёл нужные мне, да, чуть сложнее, но не намного.
А что не так с символом?
нет, более того, оно не работает даже на Windows 10 LTSC, ибо устаревшее уже. Работает только начиная с 1903.
Я смотрю худшие тенденции веб разработки просачиваются в остальные сферы.
А кто заставляет вас что-то переписывать?
"Дектопное ПО раз в год под их супер пупер виндовс" переписывает Майкрософт. И больше никого это делать не заставляет. Вы можете продолжать писать свое десктопное ПО под XP. И десятка его запустит. И 1903 и 2004.
И чет меня не радует что такое же начинается с программами которые написаны на C++. Вы скажете — «Так это ж только в майкрософт и только в терминале», а я вам отвечу — «начало положено и не абы кем».
Переписывать чтобы не работало криво, звучит как путь в некуда. Возможно в таких случаях стоит уделить больше внимание проблемам, которые не были рассмотрены изначально, включая проблему подхода к выбору инструментов. В целом соглашусь с тезисом про веб разработку. Однако в моем понимании, именно этой "индустрии" удается навязывать инструменты только благодаря востребованности в кадрах. Использование актуального и популярного инструмента означает, что заказчик сможет легко найти разработчика, который максимально быстро включится в полноценный рабочий процесс.
Upd. Для меня переписывание приложений немного личная тема. И в последнее время пришел к выводы, что не существует никаких проблем для написания "не кривого" кода на старых инструментах. А вот рынок определяет, что стоимость разработчиков, готовых работать с таким кодом, растет с падением популярности этих самых инструментов. В итоге это становится требованием бизнеса в гораздо большей степени, чем просто желание разработчиков, и это вообще никак не связано с качеством кода как таковым.
Попробуйте еще раз внимательно вдуматься в то, кто что поддерживает и переписывает. Ваши аналогии с вебом абсолютно некорректны.
Никто не дропает поддержку "программам на C++", написанных год назад. Терминал изначально, с самого своего появления, таргетировался на версию 1903. B более старые версии не поддерживал.
Еще раз: не windows перестал поддерживать терминал, написанный всего 2 года назад, а терминал с самого начала писался под windows 1903, а не более старые.
Продолжая вашу веб-аналогию, это не Chrome перестал поддерживать js код, написанный под IE6 и теперь всем нужно срочно обновлять свои сайты, "чтобы не остаться за бортом", а один единственный сайт решил использовать WebGL 2 и соответственно, таргетироваться на хром 65+. Заметьте, даже не мигрировать на WebGL 2 с более старой версии АПИ. Просто с самого начала писать с WebGL 2.
Ну типа как писать "программу на C++", но без поддержки Windows XP или Windows 3.1.
Вот target user group этого — это или продвинутые пользователи и разрабы. Последние сидят, часто (не всегда, ессно) в корпоративных сетках за всякими там домейн полисями. Как им поставить этот терминал, а? Собирать из сырцов?
Чего б дистриб не сделать?
Прошу опытных пользователей хабра объяснить — что эта статья делает в хабе "Настройка Linux"?
Специально ради этого почитал саму статью.
Даже на их гитхаб сходил.
И не понял.
Пытаются переманить линуксоидов обратно
Да, и пошлю пару лучей не-скажу-чего тем афтырям чятега, из-за которых я не могу гойлосовать. Оно работает, я проверял...)))
Верной дорогой майки идут, вот бы они с сетями поработали ещё. А то как надо будет маршруты с интерфейсами крутить скриптами, так сразу слёзы. Впн поднять из консоли вообще невозможно на голом ps (openvpn ad credentials + otp при обращении по сетевому адресу или ssh подключении)
Для того чтоб написать кроссплатформенный софт необязательно использовать электрон, достаточно писать на C# и не использовать winAPI чтобы получить mono совместимое приложение
Какой-то менеджер пакетов под Unity тоже вполне себе заводился на МакОС под Mono (.NET Core тогда был ещё только в проекте).
Есть система резервного копирования Duplicati, которая официально поддерживается на Windows/macOS/Linux и содержит платформо-специфичный код для этих целей.
Но тут конечно есть ложка дегтя в том что майкрософт официально не благословил использование WinForms в моно, хотя при этом владеет ксамарином, который пилит моно.
Вторая ложка дегтя в том что разработчики зачастую используют готовые компоненты/библиотеки, которые в свою очередь могут использовать WinAPI, что рушит кроссплатформенность на корню. А убивать сотни человеко-часов для какой-то там абстрактной кроссплатформенности (которая может закончиться по первому письму из майкрософт) на свои собственные флексгриды и репорт дизайнеры — экономически неэффективно.
Единственное, что можно использовать, это вкладки.
github.com/microsoft/terminal/issues/1379
2. В Hyper-V, через который все это летает нет до сих пор возможности пробросить внутрь USB устройство! 2020 год на дворе!
Приходится пробрасывать отдельный PCI девайс — USB контроллер. У меня слотов мало на материнской плате, чтобы ими разбрасываться подобным образом.
Проброс USB ломает live migration, кластеризацию и всячески привязывает виртуалку к конкретному гипервизору. Используйте USB-over-IP.
В целом соглашусь, что лучше бы оно было, но хотя бы есть логическая причинае, почему этого нет.
Проброс USB ломает live migration, кластеризацию и всячески привязывает виртуалку к конкретному гипервизору. Используйте USB-over-IP.
Это мой ноутбук, какой там еще live migration и кластеризация?
Причем у VMWare это есть и в ESXi (про workstation молчу).
USB 3.0 over IP не взлетит нормально, у меня там хитрый SDR с большим потоком данных.
Ради этого стоило городить рендер на GPU?
"""
насчет скорости отрисовки через gpu — нагло тормозит при перемещении окна, перерисовывает медленно
"""
Подозреваю, что даже на GPU надо уметь что-то делать. Вобщем, я так и не понял шумихи с этим терминалом. Правда, справедливости ради, красивый бекграунд на терминале я видел в 1999-м на kde2, а несколько позднее — юникод с иероглифами в консоли, так что у меня было время отойти от вау-эффекта.
Скачал терминал, по тыкал в нём командную строку. Из плюсов терминала только вкладки, в остальном тоже самое что и cmd.exe.
Выделить текст и удалить его в один клик по прежнему нельзя, поставить курсор в любое место тоже нельзя, всё как в cmd.
Это я не разобрался или таких элементарных функций редактирования текста уровня блокнота в этот терминал не завезли?
Пользуюсь GUI, который вызывает cmd, вот это намного удобнее, никакой красоты нет, но зато возможностей редактирования текста больше чем у блокнота.
Похоже что Вы немного не разобрались. Это не редактор текста, а эмулятор терминала. Не уверен существуют ли какие-то стандартные инструкции для передачи информации о выделении текста, но если даже нечто подобное существует, то реализация удаления выделенного текста должна присутствовать в программе где вы этот текст вводили (cmd, powershell, bash, etc).
Просто в диспетчере задач отображаются процессы именно cmd, поэтому предположил, что этот терминал просто вызывает cmd.
А раз он просто вызывает, то какие проблемы сделать текст редактируемым, в cmd он отправляется всё равно только после нажатия enter.
Нет, в cmd отправляется каждая нажатая клавиша. Иначе бы не работал автокомплит (который в cmd использует клавишу Tab).
В cmd запускаю только консольные проги, и часто там по 3-4 строки параметров, и никакой автокомплит не нужен, но часто нужно изменить пару параметров в первой стоке, а передвигать курсор через все строки долго.
Даже при нажатом Ctrl долго? Попробуйте тогда кнопку Home использовать :-)
Вот например кусок команды:
-v -s 5 -I 100 -i 1 -b 3000 -l 1000
И такого может быть 3-4 строки. А home это только в самое начало, а если в середину?
Всё же GUI удобнее в этом плане, тыкнул в любое место и изменяешь, выделить часть и удалить в 3 клика с зажатым shift.
А ещё решил проверить как он по производительности и что-то выходит медленее чем cmd. Так что похоже он просто не для меня.
По моему мнению 90% его пользователей будут там пускать bash/zsh — даже для них еще пока маловато функционала, про пользователей cmd думают уже во вторую очередь, они то с windows все равно никуда не денутся.
Коротко это будет сложно объяснить. Грубо говоря данный софт реализует абстракцию над железками и генерирует различные последовательности байт, какие бы генерировали железки при осуществлении ввода пользователем. Вводом в данном случае можно считать даже замену перфокарт. А cmd.exe это просто интерпретатор, по смыслу тоже самое что и bash. И на вход он принимает последовательность байт, а не символы, слова или текст. И по большей части данному интерпретатору все равно, от эмулятора ему приходит эта последовательность или с каких-то древних железок напрямую. Если Вы про то почему они не добавят возможность редактирования в cmd, то это уже совсем другая и довольно длинная история, которая имеет к Windows Terminal лишь самое косвенное отношение.
Так раз это эмулятор, то значит так же вызывает cmd.exe или не так?
Просто в диспетчере задач отображаются процессы именно cmd, поэтому предположил, что этот терминал просто вызывает cmd.
А раз он просто вызывает, то какие проблемы сделать текст редактируемым, в cmd он отправляется всё равно только после нажатия enter.
Вы путаете shell и terminal. Ликбез:
Hello, World! Глубокое погружение в Терминалы
Выделить текст и удалить его в один клик по прежнему нельзя, поставить курсор в любое место тоже нельзя, всё как в cmd.
Это я не разобрался или таких элементарных функций редактирования текста уровня блокнота в этот терминал не завезли?
Это вопрос не к терминалу, а к тому софту, что в нем запускается.
Даже в старом терминале, который вы называете cmd.exe, не было никакой проблемы редактировать где угодно и поставить курсор куда угодно (в пределах логики работы программы, разумеется), если только запустить в нем не голый cmd.exe, а FAR Manager, к примеру.
P.S.:
В новый Терминал мышь еще не завезли полноценную. Но, судя по тому, что в старой реализации управление мышью было возможно, то будет и в новом.
А я заметил изменение в редактировании текста: по Ctrl+стрелочки можно по словам курсор переставлять, мечтал об этом много лет )
Ещё заметил, что в vim и в mc не работает мышка как надо, но мне и не особо надо.
Вообще да, я бы в презентации терминала делал акцент на:
- профили
- встроенные цветовые схемы
- поиск по выводу
По-моему, этот новый терминал призван заменить ConEmu и у него получается.
Ctrl+стрелочки всегда работали
Круто, не знал ) Действительно, в cmd работает. Я всё с putty сравниваю, новый терминал первый, кто претендует на его замену
Вот честно скажите, в продакшите, в повседневной работе вы точно это будете использовать?
Не так, чтобы просто день-другой побаловаться, а так, чтобы постоянно.
А самой главной, рально удобной фичей, которая многим будет полезна — всплывающий терминал (ака quake style), несмотря на то, что уже год как баг заведен, кучу плюсов и лайков собрал, так и не завезли.
Куда уж там, анимированный бэкграунд куда полезнее. :(
Вот немного не понимаю подобных претензий. Практически на 99% уверен, что данные фичи реализуются на голом энтузиазме, и если угодно в свободное время. А попадают они в релиз и в подобные статьи только потому что это прикольно, а не ради какого-то высшего смысла. По крайней мере я легко могу себя представить на месте разработчика, который решил сделать нечто такое. И почему в этом случае я должен быть ограничен тем, что этим никто не станет пользоваться? Потому что Вы так сказали? А касательно фичи, возьмите и завезите, и если не для всех, то хотя бы для себя, тем более в треде, что Вы скинули, уже есть несколько решений.
Этот терминал нельзя использовать для серьёзной работы, потому что там даже transparent курсор не реализован. Т.е. когда курсор в виде закрашенного блока, то символы под ним не видно. Во всех нормальных терминалах символы под курсором видно, а в этом нет. Как так? Кто вообще его использует для работы?
Хм, а могу ли я не использую всякого рода извращения вроде Putty теперь «из коробки» подключиться к своему серверу на Linux или проще в Ubuntu это делать и дальше? ssh можно как то в cmd из коробки уже заюзать?:)
Зря вы так на Putty. По качеству реализации необходимых протоколов она впереди этого нового терминала.
Только это разные вещи. То о чем вы говорите — это отдельная от терминала программа клиента ssh.
Например, вот эту MS продвигает winitpro.ru/index.php/2020/01/22/vstroennyj-ssh-klient-windows
А вот для того, чтобы пользователь смог адекватно увидеть вывод программы клиента ssh — то вот именно для этого и нужен терминал.
Но, если вам интересно получить и терминал и ssh в одном флаконе, то есть Fluent-teminal и Terminus. Могу ошибаться, но вроде бы в обеих этих программах есть встроенный клиент ssh.
Putty всем хорош был бы если бы не какой то левый формат ключей из-а которого мне проще пароль для root от сервера сохранить и забыть. Поэтому совсем хорошо через Ubuntu, благо в 10 теперь виртуалка не нужна и запускается Ubuntu мгновенно. Знаю что будет WSLv2, но я буду v1 использовать до упора.
В общем то я только в этом году окончательно переполз с 7 на 10 и пока не рад, чувствую что надо на Ubuntu переползать ибо без пакетного менеджера какой то гемморой по работе сплошной получается вместо работы. Добивает ещё постоянно виснущий SearchUI.exe, у меня и телеметрия включена и отчёты отправляются, но больше года эта проблема как была так и есть, уныло постоянно этот биоразложимый код из процессов убивать. Ещё по какой то причине на моей основной машине система не может обновится уже многие месяцы: Обновление функций до Windows 10, версия 1909 — ошибка 0x800f081f. В общем перестал радовать Windows стабильностью и отсутствием глюков, теперь такая же возня как с Linux, а местами даже хуже. Зря MS распустили отдел тестирования и перешли на выкатывания новых ОС раз в полгода, нестабильное оно всё, к сожалению, работать мешает. Даже откладывание настройками обновлений функций не спасает от глюков.
левый формат ключей
Формат как формат. В openssh и обратно конвертируются же?
На Ubuntu я просто жму:
ssh IP -p PORT
ssh-copy-id root@IP -p PORT
и всё, один раз и больше ничего не надо :) Никаких страданий, никакого конвертирования, с Putty я использую только пароль потому что его тоже без страданий сохранил один раз и пользуешься.
P.S. команды у меня в текстовичке сохранены потому что это делается раз в «вечность».
Конвертируется, но лень.
Понимаю ;) Пирожок не на той полке… Не очень то и хотелось ;)
очередное бесполезное знание, нужное раз в год-два
Большинство знаний такие ;). Мне достаточно знания о том, что формат даннных Х можно конвертировать в Y. Подробности, когда будет нужно, гуглятся, например.
и для mayorovp тоже.
разницы между паролем и ключом в плане безопасности ноль
Неправда. Слабый пароль задать легко. Слабый ключ — сложнее. Пароли брутфорсят, ключи — нет.
В Ubuntu удобно сохранить ключ, а в Putty удобно сохранить пароль.
<zanuda>s/ubuntu/openssh/</zanuda>
Неправда. Слабый пароль задать легко. Слабый ключ — сложнее. Пароли брутфорсят, ключи — нет.
Ну я сторонник того что я не полный идиот и пароль длинной 63 рандомных символа ничем не хуже ключа. Это во первых, а во вторых у меня везде статические IP и про брутфорс сейчас вообще смешно было поскольку SSH пускает только с трёх IP на планете :) И да, на сервера я хожу под root-ом поскольку сервисы (демоны) либо снижают себе права до nobody после инициализации, либо работают под отдельными пользователями которым мало чего можно. Но я то захожу администрировать сервер ;)
P.S. на случай крайне маловероятной «внезапной смены статического IP» есть запасной вариант, называется админка хостера, там тоже есть доступ к консоли.
P.S. и вообще я ни админ ни разу, просто вынужден это делать из-за фриланса и необходимости как то поддерживать инфраструктуру ибо нанять админа на зарплату «домой» денег нет.
Ну так, получается, проблема-то не в формате, а в отсутствии аналога ssh-copy-id в составе Putty.
А как сделать автоматическое добавление выделенного в буффер обмена?
А то ведь как получается: если пользователь выделил текст — то с вернятностью 100% что он сделает?
— Скопирует?..
— Ну не знааааю… пусть тогда нажимает раскоряку Ctrl+C
Само собой можно поставить сторонние утилиты, которые с удовольствием вам в этом помогут и отправят буфер обмена третьим лицам.
В общем сделайте пожалуйста авто-копирование при селекте
Еще одним фаворитом пользователей является функция ретро-эффектов. Ironyman добавил поддержку эффектов, создающих ощущение работы за классической машиной с ЭЛТ-монитором. Никто в команде и подумать не мог, что эта функция появится на GitHub, но она была настолько хороша, что мы просто не могли не включить ее в Терминал
Не знаю, возможно, я слепой — но где эту тему брать?
Нигде не смог нагуглить.
И тут еще фигурирует она же: docs.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs=windows (самая верхняя)
Не знаю, что было оригиналом
Вышел Windows Terminal 1.0