LINUX.ORG.RU
ФорумTalks

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


0

4

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



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

Годы какие-то… Вот будет круглая дата 2000000000 секунд — тогда и будет повод отмечать (если доживём — это в середине мая 2033). А так…

CrX ★★★★★
()

В 0 началось всё первое - первая секунда, первый день, первый год. В 1 первая секунда закончилась. В 86400 закончился первый день и начался второй.

firkax ★★★★★
()

Цитата с вики:

Первая версия Unix отсчитывала время с 1 января 1971 года (так как измерение проводилось в шестидесятых долях секунды, переполнение происходило каждые 2 года, из-за чего отсчёт в первых версиях обнулялся каждый год); в четвёртой версии Unix в ноябре 1973 года был введён используемый поныне формат хранения времени, и с тех пор все реализации Unix отсчитывают системное время с 1 января 1970 года.

1 января это точка отсчета. А не дата начала использования, как ни крути – с годовщиной промах.

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

А первый формат был гораздо более правильным, только конечно он 64х битным должен быть.

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

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

Прямо жирного – не думаю. Это всё была череда постепенных улучшений. А так, внезапно VMS и последовавшая за ней Windows NT. Из микроядер, L4 – пример достаточно быстрого и работоспособного микроядра, с которым можно жить.

Если бы NT была открытой, я бы лялекс выкинул на помойку очень давно уже. Мне очень понравилось вот это сравнение NT с Unix: https://blogsystem5.substack.com/p/windows-nt-vs-unix-design

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

Аха-ха, охо-хо. Тем более, что NT младше UNIX на пару десятилетий.

Да, в этом и суть. В NT был вложен в том числе опыт от эксплуатации UNIX. Напомню, что ещё до первых версий Windows эта ваша Microsoft была одним из самых жирных юниксовых вендоров со своим Xenix.

https://en.wikipedia.org/wiki/Xenix

The first version was released in 1980, and Xenix would eventually become the most common Unix variant, measured according to the number of machines on which it was installed, in the mid-to-late 1980s.

Тащемта, те штуки, которые в NT были из коробки с самого начала, в открытых юниксах (BSD, Linux) появились хорошо только если к концу 90х-началу 2000х. А то и не появились совсем (стабильный API драйверов, например).

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

Все так. Но даже если NT и была архитектурно лучше UNIX, то это лишь один аспект ОС. Есть же и другой (другие) — пользовательский интерфейс (не только GUI), например. Как по мне, то в Винде он убогий чуть более чем полностью: отдельные буквы дисков, убогий shell, сложный API. То что в UNIX обычный обыватель может сделать двумя строчками на shell в Виндах нужно писать целую программу.

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

Если бы NT была открытой, я бы лялекс выкинул на помойку очень давно уже.

Не было бы чего выкидывать.

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

В NT был вложен в том числе опыт от эксплуатации UNIX. Напомню, что ещё до первых версий Windows эта ваша Microsoft была одним из самых жирных юниксовых вендоров со своим Xenix.

Вот только Xenix продали, разработчиков непонятно куда пристроили, а для разработки Windows NT 3 сманили коллектив, работавший над VMS.

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

Но даже если NT и была архитектурно лучше UNIX, то это лишь один аспект ОС.

Это очень важный аспект, который влияет на всё остальное.

Есть же и другой (другие) — пользовательский интерфейс (не только GUI)

Официальный GUI UNIX – Motif и CDE, от которых хочется вырвать себе глаза. Что-то более-менее адекватное появилось только к середине 2000х в виде KDE и GNOME, которые к «тому самому UNIX» отношения никакого не имели никогда и были скорее копией венды.

Если мы про консоль, то ksh не то чтобы лучше вендового cmd.exe. Что одно говно, что другое.

отдельные буквы дисков

Это иллюзия. На самом деле там общее пространство и тебе никто не мешает монтировать диски в любую директорию в принципе.

сложный API

API в NT куда проще люниксового. Хуже того, асинхронный IO в NT был из коробки. А в лялексе его добавили только в 2002, но только он вышел настолько всратым, что никто к этому близко не подходит. Вместо него изобрели аж три разных вида поллинга (select, poll, kqueue/epoll) чтобы только асинхронное IO не трогать. Сейчас добавили io_uring, но лучше бы не добавляли. Тоже дичь вышла.

Вендовый API куда проще юниксового и, что важно, унифицированнее. Особенно когда в юниксовом требуется совмещать вызовы по dbus, дёрганье ядра через sysfs/netlink и прочий рак.

То что в UNIX обычный обыватель может сделать двумя строчками на shell в Виндах нужно писать целую программу.

В UNIX обычный пользователь в шелл не может сделать почти ничего сложного, потому что юниксовая концепция «всё – файл» потекла и сдохла ещё лет 40 назад. Покажи мне, пожалуйста, как в unix послать данные на какой-нибудь порт по TCP и принять ответ. Ага, вот именно, нужно программу писать (netcat).

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

Зато гуй в винде единый и нет зоопарка фреймворков.

Согласен. Но не полностью. Там еще тот зоопарк интерфейсов был: Винамп, Неро Горящий Рим, и, что самое смешное, МС Офис от самих же Майков.

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

Может в днях круглое число? Для человека вроде как более естественная единица измерения чем секунды. Хотя вроде в сутках круглую дату в позапрошлом году отмечали…

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

Unix – трагедия и жирный шаг назад в развитии ОС.

Винды - еще больший шаг назад в сравнении с Юниксом.

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

Это очень важный аспект, который влияет на всё остальное.

Все на все влияет. Разве ReactOS тогда не мечта — открытая Винда? :)

Если мы про консоль, то ksh не то чтобы лучше вендового cmd.exe. Что одно говно, что другое.

Категорически не согласен. Каналы есть? Возможность сделать что-то типа `ps | grep zsh | wc -l` (просто пример с потолка)?
В сравнении с UNIX, виндовая консоль это просто отдельная программа, с ограниченным сценарием действий. В UNIX же это и есть одна из важнейших часть ОС, ее интерфейса. То, что в Винде он не стал популярным ярчайшее подтверждение данного тезиса.

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

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

В UNIX обычный пользователь в шелл не может сделать почти ничего сложного, потому что юниксовая концепция «всё – файл» потекла и сдохла ещё лет 40 назад. Покажи мне, пожалуйста, как в unix послать данные на какой-нибудь порт по TCP и принять ответ. Ага, вот именно, нужно программу писать (netcat).

Тут я согласен. Очень жаль, что на эту концепцию подзабили. В отличии от того же Plan9/Inferno. Тем не менее, netcat доступен в базе и интегрируется настолько хорошо, что с его помощью веб-сервер делают в 5 строк.

Я понимаю о чем ты говоришь. В пару к упомянутой тобой статье можно вспомнить доклад «What UNIX Cost Us» от Benno Rice. Там он приводит сравнение USB API из Windows и Linux. В чем-то Винда, может, и лучше UNIX. Много где в UNIX сделано криво. Но я категорически не согласен, что Windows лучше в целом, как ОС.
Я воспринимаю UNIX как лучшую из возможных ОС. Это как при разработке любого ПО: садишся писать идеальный проект, но в силу ограничений окружающего мира получается результат отличным от задуманного идеала.

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

Все на все влияет. Разве ReactOS тогда не мечта — открытая Винда? :)

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

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

Линуксоеды тащат просто самые ублюдочные примеры. В этих каналах приходится парсить текст на каждом этапе, и очень часто в этом возникают косяки. Когда речь идёт о примерах сложнее твоего ps | grep ..., приходится писать портянки на баше. Только баш – лютое говно а не язык, поэтому портянки эти постоянно текут и ломаются, поэтому такие примеры годятся только чтобы строчки посчитать.

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

Даже павершелл, при всей своей ублюдочности, куда лучше вот этого вот.

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

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
);

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

В пару к упомянутой тобой статье можно вспомнить доклад «What UNIX Cost Us» от Benno Rice. Там он приводит сравнение USB API из Windows и Linux. В чем-то Винда, может, и лучше UNIX. Много где в UNIX сделано криво.

Практически всё, что в UNIX было добавлено начиная с 80х (сокеты, оконная система и так далее), было добавлено просто через огромнейшую задницу.

Я воспринимаю UNIX как лучшую из возможных ОС.

UNIX был лучшей из возможных ОС на PDP-11 50 лет назад. То, что мы имеем сегодня, это даже близко не UNIX.

Но я категорически не согласен, что Windows лучше в целом, как ОС.

Конечно не лучше. Маркетологи и эффективные менеджеры из MS сделали всё, чтобы ей было невозможно пользоваться.

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

Покажи мне, пожалуйста, как в unix послать данные на какой-нибудь порт по TCP и принять ответ.

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

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

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

Так сделали давно /dev/$(Prot)/$(Adres)/$(Port), например:

#!/bin/bash
exec 3<>/dev/tcp/xmodulo.com/80
echo -e "GET / HTTP/1.1\r\nhost: xmodulo.com\r\nConnection: close\r\n\r\n" >&3
cat <&3
sigurd ★★★★★
()

- Мы стоим на сиыке эпох!

- Чо он сказал?

- Мы стоим на стыке, и пох!

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

NT младше UNIX на пару десятилетий

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

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

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

Я этим хотел сказать, что UNIX не был шагом назад по определению. Так как он был одной из первых ОС в принципе.
Шагом назад по сравнению с чем? С Multics? :)

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

Шагом назад по сравнению с чем? С Multics?

С OS/360, например.

Основная причина, почему Unix взлетел, а остальные нет, лежит совсем не в технической плоскости. Unix попал к хиппарям и они его растащили сначала по универам, где преподавали и работали, а зачем по конторам, куда устроились работать их выпускники, прихватив за собой убогонький недожабаскрипт тех времён – сишечку. Что лишний раз доказывает необходимость считаться с мощью чистого незамутнённого аутизма.

Типа, кам он, даже DEC, которые породили этот самый PDP, на котором UNIX работал, никогда не считали UNIX сколь-нибудь годной системой, и вместо этого запилили VMS.

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

Линуксоеды тащат просто самые ублюдочные примеры. В этих каналах приходится парсить текст на каждом этапе, и очень часто в этом возникают косяки. Когда речь идёт о примерах сложнее твоего ps | grep ..., приходится писать портянки на баше. Только баш – лютое говно а не язык, поэтому портянки эти постоянно текут и ломаются, поэтому такие примеры годятся только чтобы строчки посчитать.

Я 100500 раз видел на работе, когда при необходимости посчитать статистику в пачке файлов коллеги пишут целую программу на Жабе. Вместо того, чтобы сделать это пятеркой команд в нормальной ОС.

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

Ну есть же куча экспортируемой через sysctl, vmstat, /proc статистики.

Даже павершелл, при всей своей ублюдочности, куда лучше вот этого вот.

Ну и как это в Винде посчитать?

Конечно не лучше. Маркетологи и эффективные менеджеры из MS сделали всё, чтобы ей было невозможно пользоваться.

Я запутался. Ты же начал с того, что Виндовс это был шаг вперед.

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

Честно говоря, ни с OS/360 ни с VMS не знаком.

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

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

Попробуй на баше написать такое: сумма используемой памяти у запущенных программ с графическим интерфейсом

А в Линуксах вообще возможно в общем случае узнать, что такой-то процесс запущен с гуём?

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

Я 100500 раз видел на работе, когда при необходимости посчитать статистику в пачке файлов коллеги пишут целую программу на Жабе. Вместо того, чтобы сделать это пятеркой команд в нормальной ОС.

Я видел 10005000 раз как люнексоеды пишут чудовищные портянки на баше, а потом, когда кто-то пишет нормальную программу, люнексоедам отрывает днище. Один только systemd чего стоил!

Ну есть же куча экспортируемой через sysctl, vmstat, /proc статистики.

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

Я запутался. Ты же начал с того, что Виндовс это был шаг вперед.

Всё так. На момент начала-середины 90х ядро NT было огромным шагом вперёд. Люнекс с тех пор подтянули, конечно же, иначе бы он сдох от ненужности. Но общая убогость осталась.

Сегодня на NT натянуты реклама в меню Пуск, кучи странных говен и малварь, и пользоваться этим очень сложно.

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

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

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

Через иксы возможно. Через вялянд – хз. Но однострочником на баш это всё равно не сделать, очень уж жирный однострочник выйдет.

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

В вяленде проще дёргать dbus, но содержимое будет так себе выглядеть.

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

Мне кажется, что проблема тут скорее в баше, а не в юниксе как таковом.

Эту задачу решить довольно просто, если писать на нормальном шелле, а не на говне мамонта типа bash и прочих POSIX-совместимых шеллах (я правда не нашёл, как получить список GUI-окон в общем случае, так что делал для своего WM). Получилось вполне читаемо, ИМХО:

#!/usr/bin/env nu

def niri-windows [] {
  niri msg --json windows | from json | get pid
}

# Displays total amount of memory used by GUI programs.
export def main [
  --mem-type (-t): string = "physical" # One of: phys, physical, virt, virtual
]: nothing -> filesize {
  let mem_col = match $mem_type {
      "phys" => "mem"
      "physical" => "mem"
      "virt" => "virtual"
      "virtual" => "virtual"

      _ => {
        error make {
          msg: "Invalid memory type"
            label: {
              text: "Must be one of: phys, physical, virt, virtual"
              span: (metadata $mem_type).span
          }
        }
      }
    }

  let windows = niri-windows

  ps
  | select pid $mem_col
  | where pid in $windows
  | get $mem_col
  | math sum
}

Из коробки плюшки типа автодокументации команд, парсинга и типизации аргументов, красивых ошибок (ЛОР правда немного похерил вывод), а самое главное — нет башевских особенностей, которые мы все так нежно любим:

$ /tmp/gui-mem-classic-ng-reloaded -h
Displays total amount of memory used by GUI programs.

Usage:
  > gui-mem-classic-ng-reloaded {flags}

Flags:
  -t, --mem-type <string>: One of: phys, physical, virt, virtual (default: 'physical')
  -h, --help: Display the help message for this command

Input/output types:
  ╭───┬─────────┬──────────╮
  │ # │  input  │  output  │
  ├───┼─────────┼──────────┤
  │ 0 │ nothing │ filesize │
  ╰───┴─────────┴──────────╯



$ /tmp/gui-mem-classic-ng-reloaded
1.9 GiB

$ /tmp/gui-mem-classic-ng-reloaded -t virt
21.3 GiB

$ /tmp/gui-mem-classic-ng-reloaded -t invalid
Error:
  × Invalid memory type
   ╭─[<commandline>:1:6]
 1 │ main -t invalid
   ·      ─────┬────
   ·           ╰── Must be one of: phys, physical, virt, virtual
   ╰────

Сделать разбивку по воркспейсам тоже не особо сложно будет, правда для этого опять придётся дёргать API моего WM.

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

Аа, т.е. блокировка на чтение bat файла во время его исполнения это фича такая. А я как-то не понял и у меня сгорела жопа.

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

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

tasklist /V | find "cmd.exe" | find /v /c ""

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

Маркетологи и эффективные менеджеры из MS сделали всё, чтобы ей было невозможно пользоваться.

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

Зато благодаря усилиям именно MS компы стали массовыми и дешевыми. Вспомните сколько стоило компы до того как домохозяйки принесли в IT-индустрию свои деньги.

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

убогий шелл

Powershell на голову выше всех инструментов автоматизации для никсов. Он интегрирован в ОС, структурирован, документирован и его можно расширять. Ни Ansible, ни Puppet, ни cloud init даже рядом не стояли.

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

Эту задачу решить довольно просто, если писать на нормальном шелле, а не на говне мамонта типа bash

Я вот не уверен что шелл надо превращать в язык программирования на котором что-то потом писать. Так ведь можно и Питон в качестве шелла использовать,а уж на нем что угодно написать можно при всей моей нелюбви к нему. Но вот в каком месте провести границу между тем что должно быть шеллом и где уже язык программирования нужен - я сходу сказать затрудняюсь. Монстрообразные портянки на баше которые были заменены на конфиги systemd - хороший пример того где шелл НЕ нужен,а нужна вот именно что специальная программа. Хотя кое-где там тоже перестарались(зачем бинарные логи?).

Всё это я к тому что никто не знает а как именно надо делать идеальную ОС. Даже я,имеющий дело с компами с 1989 года :-) Похоже что прийти к идеальной ОС можно только методом многократных последовательных приближений.

А вообще это было бы хорошей темой для этого форума - какой должна быть идеальная ОС. Именно идеальная,без учета груза всякого legacy,то есть такая к которой надо стремиться. Код писать умеют многие,а вот умеющих проектировать большой софт(коим ОС и является) - очень мало. В этом и проблема. Есть предложение тему про «идеальную ОС» создать и желающим поболтать на эту тему отправиться туда. Чур я второй в очереди:-)

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

Ну и как это в Винде посчитать?

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

$processes = 'firefox','fluxbox','tilix'
$memory = (gps $processes).WorkingSet
[linq.enumerable]::Sum([int64[]] $memory) / 1mb

# 767,0859375
dmitry237 ★★★★
()
Ответ на: комментарий от u5er

гуй в винде единый и нет зоопарка фреймворков

как нет? вон же qt, gtk, wxwidgets портировали :)

а ещё mfc помню был родной. Виджеты стандартные но с точки зрения погроммиста тоже зоопарк

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

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

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

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

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

Если б венда открытая была, там и зоопарк всего был бы :)

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

так и в иксах был Xtoolkit и канонический motif поверх него :)

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

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