LINUX.ORG.RU
ФорумTalks

а чего про годовщину эпохи Unix никто не вспомнил?


0

4

дохренадцать лет назад, в полночь 1 января 1970 от рождества Христова по старому стилю началась эпоха Unix. от этого момента все прогрессивное чел-овечество таперича и ведет отсчет времени. и никому дела нет!
а то как быдляцкий новогод - так аж на глагне в полэкрана, а про такое событие даже никто слова не сказал((
надо исправляться! возрадуемся же, други! и да спасет нас Столлман от проблемы 2000 2038 года! (а была ли проблема?) алюминь!
кстати, кто тут самый умный? в 0 по unix time какой год эпохи начался? нулевой же, правда ведь?



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

пользовательский интерфейс (не только GUI), например.

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

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

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

В плане администрирования можно например говорить про WMI, удобный унифицированный интерфейс, причем расширяемый. Который из того же повершелла дергается легко удобно и непринужденно. После этого, баш-блевотину, которая парсит текстовые файлы, вообще очень сложно переносить

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

а, ну и я еще не говорю про обратную совместимость, про которую в линуксе вон в частности вообще не слышали

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

В сравнении с UNIX, виндовая консоль это просто отдельная программа

Что за бред вообще? Во-первых, инструменты доступные скажем через PowerShell, гораздо шире инструментов баша какого-нибудь. И опять же все есть объект, все унифицированно и так далее.

Во-вторых «консоль» винды это не cmd.exe, консоль - это в винде такой встроенный эмулятор терминала на самом деле, и запускаться в нем может вообще что угодно, любая программа. В том числе например шеллы, типа павершелла или хоть даже и лиспа какого-нибудь.

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

Сомнительное утверждение. Достаточно глянуть на сигнатуру CreateFileA.

То что у него параметров больше 1 штуки, сложным его не делает. Гораздо больший майндфак для программистов представляет например EINTR и прочие worse-is-better идиотизмы

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

встроенный эмулятор терминала

conhost.exe, за последние годы подтянулся к юниксовым (но не догнал), во всяком случае понимает почти все ansi, включая osc.

Плохо у него с самим интерфейсом, ни отступов ни вкладок, но вот почему-то использовал именно его, а не модный Windows Terminal.

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

консоль это просто эмулятор терминала. Просто та штука которая обеспечивает «консольность», ввод текста, вывод текста, вот это всё.

За вкладки и прочее отвечают обертки над ним, например тот же Windows Terminal, который я лично постоянно использую, довольно удобная штука.

Да вобщем и до WT были и другие вещи для этого.

Сама «консоль» это просто подсистема обеспечения текстового режима работы программы.

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

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

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

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

вообще как говорится, шел я тут недавно по форумам и увидел пацана в майке UNIX, ну я как херанул ему в щщи с вертушки, и пояснил криком, ненавижу WORSE IS BETTER, потому что я угорел по хардкору, пацаны, по микроядерной архитектуре, по Реймонду Чену и The Old New Thing, пацаны угорайте на драйверах, любите свой CSRSS, и говорите открыто и смело прямо в лицо - New Technology!

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

Да он всегда был. Ему относительно недавно добавили скрытый режим, для выполнения скриптов без всплытия окна. Например:

conhost --headless pwsh -c { "Привет!!" | Set-Content $HOME\Desktop\Прочитай.txt }
dmitry237 ★★★★
()
Ответ на: комментарий от lovesan

То что у него параметров больше 1 штуки, сложным его не делает. Гораздо больший майндфак для программистов представляет например EINTR и прочие worse-is-better идиотизмы

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

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

Что за бред вообще? Во-первых, инструменты доступные скажем через PowerShell, гораздо шире инструментов баша какого-нибудь. И опять же все есть объект, все унифицированно и так далее.

Про PowerShell сказать ничего не могу. В глаза его не видел. Когда я пользовался Вендой его еще не придумали.

Во-вторых «консоль» винды это не cmd.exe, консоль - это в винде такой встроенный эмулятор терминала на самом деле, и запускаться в нем может вообще что угодно, любая программа. В том числе например шеллы, типа павершелла или хоть даже и лиспа какого-нибудь.

Суть в том, что в нем мало что полезного можно (было до Power Shell?) сделать. Тот же find принимает простую строку. Сравни с регулярками в UNIX.

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

ага, но это уже не однострочник будет с пайпами. Плюс, ядро про гуй ничо не знает, тем более про рабочие столы.

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

Да нет, просто другие ОС поставлялись только с железом. А юникс можно было в исходниках получить.

Так UNIX же запускали не на тостерах, а вместо поставляемых ОС на том железе.

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

Ну баш же реально говно, тут он прав.

Суть же не в этом. Смотри, есть два подхода. В UNIX тебе не нравится баш — ты делаешь (достаточно просто) новый шел и имеешь такой, какой тебе нравится. Хоть на лиспе там пиши. Суть не изменится от этого.
И подход из другого мира: у тебя есть бинарный реестр, который не так просто заскриптовать и интегрировать с остальными командами/программами.

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

ага, но это уже не однострочник будет с пайпами. Плюс, ядро про гуй ничо не знает, тем более про рабочие столы.

Ну так это еще вопрос, хорошо это или плохо, что ядро про рабочие столы не знает. Я считаю, что это хорошо. Очень хорошо. Но да, у каждого дизайнерского решения есть свои минусы. Ну а пайпы… это же суть UNIX. Странно было бы, если бы задача без них решалась.

Вопрос в том, а нахрена пользовательствому софту напрямую общаться с ведром для всей этой инфы? Опять же, прелесть NT в том, что там юзерспейс напрямую к ядру не обращается.

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

Тебе стоит рассказать об этом разработчикам GNOME.

Насколько я понимаю - в случае GNOME два возможных варианта. Или тоже на втюхивание чайникам ориентируются или возможно там у них дизайнеры самовыражаются,«арт-объект» создают. Вообще без оглядки на пользователей,по принципу «я художник,я так вижу». Учитывая бесплатность Гнома - мне кажется что второй вариант более вероятен. Пользоваться этим конечно не хочется,но есть некоторая вероятность что в процессе творческих поисков найдут какие-нибудь удачные решения которые потом можно будет куда-то позаимствовать.

Впрочем, ты всё равно неправ. Проблема венды сегодня в том, что профессиональную редакцию фактически выкинули.

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

watchcat382
()
Ответ на: комментарий от yars068

А как же IBM с их PC и открытостью архитектуры?

Вспомните сколько стоили те PC от IBM. Если бы не усилия Микрософта по созданию софта для чайников и увеличению продаж этим чайникам - производство компов не стало бы массовым и компы не стали бы дешевыми и доступными. Использовать для этого Xenix было невозможно так как для просто запуска самой системы (без прикладного софта) тербовался комп с 80286 процессором и двумя мегами памяти.

watchcat382
()
Ответ на: комментарий от urxvt

бинарный реестр, который не так просто заскриптовать и интегрировать с остальными командами/программами

Очень просто: Get-ItemProperty, Set-ItemProperty.

Как раз месяц назад поимел характерный опыт. Был виндовый скрипт, который парсил вывод системной команды. Через время оказалось, что на некоторых машинах парсинг фейлится, ибо команда выводит не то что ожидали. Переписал на чтение реестра, заработало как штык.

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

Очень просто: Get-ItemProperty, Set-ItemProperty.

Это в PowerShell, я так понимаю. А вот, например, если я из Python/Lua захочу прочитать, получится?

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

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

Пример для винды покажи чтоль.

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

хипари выбирали то, чем было приятней пользоваться

Хиппари сделали себе ITS

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

Тот же find принимает простую строку. Сравни с регулярками

To find all occurrences of lines that begin with FOR and are preceded by zero or more spaces (as in a computer program loop), and to display the line number where each occurrence is found, type:

findstr /b /n /r /c:^ *FOR *.bas
Meta-character 	Value
. 	Wildcard - Any character
* 	Repeat - Zero or more occurrences of the previous character or class.
^ 	Beginning line position - Beginning of the line.
$ 	Ending line position - End of the line.
[class] 	Character class - Any one character in a set.
[^class] 	Inverse class - Any one character not in a set.
[x-y] 	Range - Any characters within the specified range.
\x 	Escape - Literal use of a meta-character.
\<string 	Beginning word position - Beginning of the word.
string\> 	Ending word position - End of the word.

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/findstr#syntax

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

Почему не сделали какой-нибудь псевдофайл /port/80

exec 3<>/dev/tcp/xmodulo.com/80

Поддерево с хостами и портами было в одной из первых юниксовых неуклюжих реализаций TCP/IP ( или это был ещё NCP? точно не помню )

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

есть пример жирного шага вперёд в развитии ОС?

1970-е – это уже серебрянный век ОС

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

Использовать для этого Xenix было невозможно так как для просто запуска самой системы (без прикладного софта) тербовался комп с 80286

В 1980 до выпуска 80286 надо было ещё ждать пару лет а чего про годовщину эпохи Unix никто не вспомнил? (комментарий)

vM ★★
()
Ответ на: комментарий от hateyoufeel
HANDLE CreateFileA(
  [in]           LPCSTR                lpFileName,
  [in]           DWORD                 dwDesiredAccess,
  [in]           DWORD                 dwShareMode,
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  [in]           DWORD                 dwCreationDisposition,
  [in]           DWORD                 dwFlagsAndAttributes,
  [in, optional] HANDLE                hTemplateFile
);

CreateFile() иногда может блокировать выполнение. А как в Win32 выполнить неблокирующий CreateFile()?

Выглядит куда лучше люниксового open/creat -> chmod с повсеместным состоянием гонки и надеждой, что только что созданному файлу ни один говноскрипт не поменяет права

Если права и разграничение доступа не очень важны, то курьёзного creat() достаточно. В 1969 Кену можно было наплевать на разграничение доступа. Для этого в те времена были полноценные operating system для настоящих больших ЭВМ.

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

Пример для винды покажи чтоль

У меня винды нет, но пример, как можно суммировать память процессов показал выше. В самой винде это тоже должно работать, во всяком случае в PowerShell 7.

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

Возможность сделать что-то типа ps | grep zsh | wc -l (просто пример с потолка)?

tasklist /FI "IMAGENAME eq firefox.exe" /FI  "MEMUSAGE lt 30000"
Имя образа                     PID Имя сессии          № сеанса       Память
========================= ======== ================ =========== ============
firefox.exe                  18676 Console                    7    17 308 КБ
firefox.exe                  21408 Console                    7    15 980 КБ
firefox.exe                   6688 Console                    7    27 680 КБ
firefox.exe                  15728 Console                    7    27 656 КБ
firefox.exe                   2468 Console                    7    17 024 КБ
firefox.exe                  19700 Console                    7    27 616 КБ
firefox.exe                  24372 Console                    7    16 128 КБ
tasklist /FI  "MEMUSAGE lt 30000" | find "firefox"
firefox.exe                  18676 Console                    7    17 308 КБ
firefox.exe                  21408 Console                    7    15 980 КБ
firefox.exe                   6688 Console                    7    27 656 КБ
firefox.exe                  15728 Console                    7    27 632 КБ
firefox.exe                   2468 Console                    7    17 024 КБ
firefox.exe                  19700 Console                    7    27 616 КБ
firefox.exe                  24372 Console                    7    16 128 КБ
vM ★★
()
Ответ на: комментарий от dmitry237

У меня винды нет, но пример, как можно суммировать память процессов показал выше. В самой винде это тоже должно работать, во всяком случае в PowerShell 7.

Оно чисто GUI-приложения суммирует?

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

Любое win32-приложение может показывать GUI

Что-то я в этом сомневаюсь. Какой интерфейс у cmd.exe? Оно запускается или в штатном виндовом терминале conhost.exe, что GUI, или в любом другом, в alacritty например, но это не значит, что сам cmd.exe имеет графический интерфейс, это CLI и TUI.

Например Midnight Commander:

$ (gps mc).Parent.ProcessName
tilix

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

Вы считаете, что Windows в целом это полноценная ОС, настоящая ОС или как ОС?

Смотря как смотреть. В классическом понимании ОС как ОС.
В пользовательском — неполноценная. Так поставил Debian и у тебя весь готовый софт готов к работе. В Виндовс из коробки даже офиса нет.

Про твои примеры с findstr. Я понял, теперь Виндовс намного лучше стала, после внедрения PowerShell. Понадобилось ей 30 лет, чтобы добавить то, что у UNIX было практически изначально.

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

примеры с findstr

Это издевательство, если честно. Настолько убогие базовые регэкспы, что их толком нигде не применишь. Для обработки текста используют либо сторонние grep/sed/etc, либо PowerShell, у которого полноценная поддержка прямо из коробки.

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

Примерно такое CUI-приложение может показать MessageBox с текстом из stdin.

link /dump /headers tui.exe | findstr subsystem
            6.00 subsystem version
               3 subsystem (Windows CUI)
#include <windows.h>
#include <iostream>

int
main(){
	std::string message;
	std::cin >> message;

	return
	MessageBoxA( 0, message.c_str(), message.c_str(), 0 );
	
}

#pragma comment(lib,"user32")

/* Текст, скопированный с MessageBox'а показанного командой
echo LOR | tui

---------------------------
LOR
---------------------------
LOR
---------------------------
ОК   
---------------------------
*/
vM ★★
()
Ответ на: комментарий от hateyoufeel

...куда проще юниксового ...

Эта простота называется структурированностью.

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

И что это доказывает? Запихать вывод команды в окно сообщения? Так можно и в файл перенаправить и сразу его открыть в блокноте.

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

Показывает, что CUI-приложение win32 может «само» показывать GUI, не запуская отдельное GUI-приложение.

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

Что значит само? Вы свою утилиту как запустили, из шелла. А уж как она выводит полученное сообщение, в GUI или иначе, это не имеет значения. В powershell тоже можно подключить System.Windows.Forms и создавать окошки, но как эти окошки относятся к CLI не понятно.

Вам еще пример, можно управлять некоторыми GUI приложениями из CLI, но это не значит, что эти приложения относятся к категории CLI, просто в них предусмотрена такая возможность:

playerctl play-pause firefox # firefox поддерживает mpris
dmitry237 ★★★★
()
Ответ на: комментарий от lovesan

Покажите мне какой-нибудь WaitForMultipleObjects в юниксах например.

Вообще, epoll. Просто потому что линукс в итоге пришёл к тем же объектам, что были в NT изначально, но через дремучую жопу в виде fd. Поэтому теперь есть signalfd, memfd, pidfd и скоро наверняка будет filefd :DDD

А в UNIX этого нет и не было, конечно же, потому что нет строгой иерархии объектов с общим API.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от dmitry237

conhost cmd|pwsh|powershell|mc|far|etc.

Far’овский плагин EMenu может показывать тектстовое контекстное меню файла, используя Far’овский API для консоли, а может и обычное GUI popup-меню, используя те же DLL, что и обычный Проводник

 ╔═══ Far.map ═══╗
 ║  1. GUI menu 
 ║  2. Text menu
 ╚═══════════════╝
vM ★★
()
Ответ на: комментарий от vM

И что из этого следует? Я просто не понимаю вашу логику, ну вот плагин умеет вызывать графическое меню, far от этого перестает быть текстовым приложением? Вы сами скопировали текстовую менюшку.

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

Убунточка при установке уже ненавязчиво предлагает досунуть в систему powershell, так что скоро заживем.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)