Как стать автором
Обновить
16
0
Andrew Kornilov @hiddenman

Пользователь

Отправить сообщение

Да Электрон я давно проклял. Это понятно, что из-за него. Но, к примеру, VSCode у них нормально летает, а Skype это просто нечто.

Ну надо было ему объяснить на примере SMS. Хоть она и хранится на промежуточном сервере, но не будет доставлена, пока человек не появится в онлайне :)

Ну это особенности работы p2p, это и фича и баг одновременно.

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

Вспоминаю со слезами на глазах оригинальный Скайп - быстрый, удобный, работающий на медленных каналах с кучей firewall/nat по дороге. Это была фантастика в своё время и на том железе.

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

Каждый раз, когда эта тупая поделка полчаса грузит жалкую историю переписки размером в 500 байт - я вспоминаю "добрым" словом всех этих "программистов". Чтобы таким медленным и убогим, ничего не умеющим сделать новый Скайп - это прямо надо было стараться, планировать. Просто так это не сделать, больше похоже на диверсию, как было с той же Nokia.

А я бы еще в подборку добавил последнее издание Робачевского, сам с трудом его нашел, очень маленький тираж был. Чтобы понять внутренности UNIX-а и как там вообще всё работает, что и почему и как появилось, как работает VFS, сокеты, pipes и прочие штуки. А не заучивать команды одной из сборок Linux-а. Бестселлер был в своё время и вроде бы до сих пор ничего лучше не появилось.

Издание 2014 года надо искать, там уже и про Linux и про современные (на то время) вещи так же написано.

Оглавление

Введение
Причины популярности UNIX
Общий взгляд на архитектуру UNIX
Ядро системы
Файловая подсистема
Подсистема управления процессами
Подсистема ввода-вывода
История создания
Исследовательские версии UNIX
Генеалогия UNIX
System V UNIX
System V Release 4 (SVR4)
UNIX компании Berkeley Software Distribution
OSF/1
Версии UNIX, использующие микроядро
Свободно распространяемая система UNIX
Основные стандарты
IEEE и POSIX
ANSI
SVID
Х/Open и SUS
Некоторые известные версии UNIX
Глава 1. Работа в операционной системе UNIX
Файлы и файловая система
Типы файлов
Обычный файл
Каталог
Специальный файл устройства
FIFO (First-In-First-Out) или именованный канал
Связь
Сокеты
Структура файловой системы UNIX
Владельцы файлов
Права доступа к файлу
Дополнительные атрибуты файла
Скрытые специфические атрибуты файлов
Процессы
Программы и процессы
Типы процессов
Системные процессы
Демоны
Прикладные процессы
Атрибуты процесса
Идентификатор процесса Process IDentifier (PID)
Идентификатор родительского процесса Parent Process ID (PPID) —
Приоритет процесса (Nice Number)
Терминальная линия (TTY)
Реальный (RID) и эффективный (EUID) идентификаторы пользователя
Реальный (RGID) и эффективный (EGID) идентификаторы группы
Жизненный путь процесса
Сигналы
Устройства
Файлы блочных устройств
Файлы символьных устройств
Мнемоника названий специальных файлов устройств в файловой системе UNIX
Пользователи системы
Атрибуты пользователя
Поле name
Поле passwd-encod
Поле UID
Поле GID
Поле comments
Поле home-dir
Поле shell
Пароли
Стандартные пользователи и группы
Пользовательская среда UNIX
Командный интерпретатор shell
Синтаксис языка Bourne shell
Общий синтаксис команд
Именованные переменные
Встроенные переменные
Перенаправление ввода-вывода
Встроенные функции
Подстановки, выполняемые командным интерпретатором
Система управления заданиями
Основные утилиты UNIX
Утилиты для работы с файлами
Утилиты для управления процессами
Заключение
Глава 2. Среда программирования UNIX
Программный интерфейс ОС UNIX
Системные вызовы и функции стандартных библиотек
Обработка ошибок
Создание программы
Исходный текст
Заголовки
Компиляция
Форматы исполняемых файлов
Формат a. out
Формат ELF
Формат COFF
Выполнение программы в операционной системе UNIX
Запуск С-программы
Завершение С-программы
Работа с файлами
Основные системные функции для работы с файлами
Функция ореп(2)
Функция creat(2)
Функция close(2)
Функции dup(2) и dup2(2)
Функция lseek(2)
Функция read(2) и readv(2)
Функции write(2) и writev(2)
Функция pipe(2)
Функция fcntl(2)
Стандартная библиотека ввода-вывода
Связи
Файлы, отображаемые в памяти
Владение файлами
Права доступа
Перемещение по файловой системе
Метаданные файла
Процессы
Идентификаторы процесса
Выделение памяти
Создание процессов и управление ими
Сигналы
Надежные сигналы
Группы и сеансы
Текущие и фоновые группы процессов
Ограничения
Примеры программ
Демон
Командный интерпретатор
Заключение
Глава 3. Подсистема управления процессами
Основы управления процессом
Структуры данных процесса
Состояния процесса
Принципы управления памятью
Виртуальная и физическая память
Сегменты
Страничный механизм
Адресное пространство процесса
Управление памятью процесса
Области
Замещение страниц
Управление памятью в ОС Linux
Планирование выполнения процессов
Обработка прерываний таймера
Отложенные вызовы
"Будильники" (алармы)
Контекст процесса
Принципы планирования процессов
Планирование выполнения процессов в ОС Linux
Создание процесса
Запуск новой программы
Выполнение в режиме ядра
Сон и пробуждение
Завершение выполнения процесса
Сигналы
Группы и сеансы
Управление сигналами
Отправление сигнала
Доставка и обработка сигнала
Взаимодействие между процессами
Каналы
FIFO
Идентификаторы и имена в IPC
Сообщения
Семафоры
Разделяемая память
Межпроцессное взаимодействие в BSD UNIX. Сокеты
Программный интерфейс сокетов
Пример использования сокетов
Сравнение различных систем межпроцессного взаимодействия
Заключение
Глава 4. Файловая подсистема
Базовая файловая система System V
Суперблок
Индексные дескрипторы
Имена файлов
Недостатки и ограничения
Файловая система BSD UNIX
Каталоги
Файловая система ext2fs
Журнальные файловые системы
Файловая система ext3fs
Файловая система ufs2
Архитектура виртуальной файловой системы
Виртуальные индексные дескрипторы
Монтирование файловой системы
Трансляция имен
Доступ к файловой системе
Файловые дескрипторы
Файловая таблица
Блокирование доступа к файлу
Буферный кэш
Внутренняя структура буферного кэша
Операции ввода-вывода
Кэширование в SVR4
Целостность файловой системы
Заключение
Глава 5. Подсистема ввода-вывода
Драйверы устройств
Типы драйверов
Базовая архитектура драйверов
Файловый интерфейс
Клоны
Встраивание драйверов в ядро
Блочные устройства
Символьные устройства
Интерфейс доступа низкого уровня
Буферизация
Архитектура терминального доступа
Псевдотерминалы
Подсистема STREAMS
Архитектура STREAMS
Модули
Сообщения
Типы сообщений
Передача данных
Управление передачей данных
Драйвер
Головной модуль
Доступ к потоку
Создание потока
Управление потоком
Мультиплексирование
STREAMS в ОС Linux
Заключение
Глава 6. Поддержка сети в операционной системе UNIX
Семейство протоколов TCP/IP
Краткая история TCP/IP
Архитектура TCP/IP
Общая модель сетевого взаимодействия OSI
Протокол IP
Адресация
Протокол IP версии 6
Формат заголовка IPv6
Адресация IPv6
Протоколы транспортного уровня
User Datagram Protocol (UDP)
Transmission Control Protocol (TCP)
Состояния TCP-сеанса
Передача данных
Стратегии реализации TCP
Синдром "глупого окна"
Медленный старт
Устранение затора
Повторная передача
Программные интерфейсы
Программный интерфейс сокетов
Программный интерфейс TLI/XTI
Программный интерфейс высокого уровня. Удаленный вызов процедур
Передача параметров
Связывание
Обработка особых ситуаций
Семантика вызова
Представление данных
Сеть
Как это работает?
Поддержка сети в BSD UNIX
Структуры данных
Маршрутизация
Реализация TCP/IP
Модуль IP
Модуль UDP
Модуль TCP
Поддержка сети в UNIX System V
Интерфейс TPI
Взаимодействие с прикладными процессами
Интерфейс DLPI
Доступ к среде передачи
Протокол LLC
Инкапсуляция IP
Внутренняя архитектура
Примитивы DLPI
Заключение
Приложения
Приложение А. Дополнительная информация об операционной системе UNIX
Книги
Информация в Интернете
Приложение Б. Глоссарий
Предметный указателm

И это я еще не вспоминал про "качество" работы с сетью современного ПО. Вроде и протоколы те же, только вот я на модеме 9600 baud (это примерно 9 килобайт в секунду) спокойно играл в сетевую игру с графикой, а сейчас, если у тебя не хотя бы 3G, то несчастный WhatsApp будет твое сообщение длиной 2 байта пытаться отправить 10 минут. Ну а Skype вообще никогда даже не подключится к своему серверу.

А когда уже на телефоне с Android сам Android будет нормально работать, интересно?

Вот, например, серверная ОС с графическим интерфейсом Windows NT 4.0 требовала для работы 12 мегабайт (!) памяти и древний процессор, который медленнее любой кофеварки сейчас.

И работала. Файловым сервером, маршрутизатором, папочки там всякие, иконки, кнопочки. Все то же самое, что и сейчас, только менее красивое и разрешение поменьше. Прям полноценая серверная ОС, да еще и с GUI (про Linux/BSD тех времен я вообще молчу, на чем они могли работать). И если её (NT 4.0) чуть подкрасить сейчас, то какой-нибудь современный бухгалтер не отличит работу в ней с работой в какой-нибудь Windows 11, т.к. принципиально вот прямо вообще ничего не изменилось. Это не глючная Win95, а нормальная ОС, спроектированная авторами VMS.

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

Ну или можно вспомнить QNX demo-disk - real-time (!) OS с GUI, браузером, просмотрщиком картинок, файловым менеджером, текстовым редактором и еще кучей всего, и все это умещалось на обычный floppy размером 1.44 Мегабайта (https://youtu.be/K_VlI6IBEJ0)

А после чего покупаешь очередной "смартфон", который не способен даже загрузиться быстро, если у него нет хотя бы 4GB RAM. А умеет он при этом чуть менее, чем ничего - ущербный просмотрщик картинок, псевдо-многозадачность, файловый менеджер, в котором полторы функции еле работают, ну и подключаться к Wi-Fi. То, что раньше работало на 1 мегабайте памяти не хуже.

Сколько там в Android ни один смартфон не проходил простейший тест - плавный скролл иконок на рабочем столе, лет 5-7? Все тесты mobile-review сотоварищи содержали этот тест и никто не мог пройти. Простейший плавный скролл! Гигабайты росли, процессоры ускорялись, а свежепроинсталлированный Android не мог даже проскроллить сам себя так, чтобы это не раздражало.

Или запускаешь какое-нибудь bloatware типа современного Skype, господи, сколько же это чудовище загружается, как долго он подтягивает историю переписки или свежие сообщения, как это всё еле шевелится и при этом не умеет вообще ничего, кроме примитивных тупых смайликов на половину экрана. И вспоминаешь с тоской тот же Skype 20-ти летней давности, который работал везде и всегда и на всем, голос и видео работали на любом железе и канале. Или какую-нибудь ICQ 1996 года, фунционал которой до сих ни один мессенджер не догнал, даже без видео и аудио.

Информационные технологии пришли к тому, что в компании, продукт которой умеет простые текстовые сообщения длиной 140 байт (и больше ничего!), работают 5000 (! что, что они там делают?!) человек и в которой всем миром отмечают невероятные "достижения", major release, в котором длина сообщения увеличена до 280 символов, это просто wow, прогресс и невероятные возможности для всего человечества (https://blog.twitter.com/official/en_us/topics/product/2017/tweetingmadeeasier.html). Десятки тысяч человекочасов потрачены, тысячи стендапов выстояны, сотни презентаций проведены, big data, agile, devops, CI/CD и все такое прочее, нынче очень популярное.

И да, не забудьте купить новый Android-смартфон, потому что на том, которому всего 5 лет, уже всё это "великолепие" не работает, видимо, нужны GPU-вычисления последних поколений, чтобы отображать текст на экране; да, это я сейчас не про Twitter, а про Slack, но суть у них всех примерно одна).

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

Я, конечно, хоть и старый брюзга, но понимаю, что все это бизнес и всё такое, что нужно "выпекать" софт побыстрее, т.к. никто ждать не будет. Но всему есть предел. Согласен, что современные технологии стали сложными и требуют вычислений и ресурсов, все эти 3D и прочие дополненные реальности. Но каталог-то с файлами вывести можно как и раньше - быстро, ну почему для этого надо сейчас покупать что-то, о чем в 90-е мечтать даже не могли, но список файлов при этом выводили не хуже.

И еще всегда интересовал вопрос, почему клыки у человека всегда "желтее" остальных зубов. Помню, гуглил даже, но ничего не нашел.

Вопрос: а что происходит при отбеливании, если на зубах есть много композитных материалов? Вот у меня было много мелкой косметический стоматологии, и зубы частично свои, частично из этих композитов (или как они правильно называются, которые под ультрафиолетом "застывают"?). Цвет А2 у меня, как сейчас помню. Они синхронно осветлятся или наоборот, будет четко видна граница и более темный участок будет?

А вот есть такое простое расширение для Gnome: https://extensions.gnome.org/extension/825/password-calculator/ Делает, похоже, именно это?

Да-да, я именно про эти поля и написал, сам их жду. А так же еще всякие штуки, крайне полезные в учете.

Какую версию используете? В последних 3.x очень много сделано, а 3.2 еще более революционные изменения, уговорили Jeremy сделать множество улучшений, надо прямо на нее переходить, следующая версия уже релиз (через 1-2 недели). Для учета различных SFP-модулей, привязок их к портам и прочему - must have, плюс он наконец-то сделал any object to any object связи (можно что угодно к чему угодно привязывать), всякие шаблонизаторы для сложных железок с множеством модулей и т.п.

Я поверх Netbox написал плагин для автоматической инвентаризации всех Linux/macOs/Windows железок с замороченной логикой.

Чего еще не хватает - действительно хорошей и удобной карты сети. Есть 3 или 4 плагина, но все они не очень удобные, наглядные и функциональные.

А что, сейчас утечки и переполнения куда-то делись? Вы вообще про другое говорите.

Отладка прекрасно работала и тогда и сейчас (сейчас только тормозит, естественно). Сейчас просто все перешли на использование фреймворков/библиотек, которые в себе содержат ВСЁ. От поддержки LDAP auth до видео-звонков. А в итоге из этого всего собирают калькулятор.

Ну так это потому, что у Винды графика в ядре (GDI)

А сколько времени убивалось? Запускали компилятор и получали софт размером в 100 килобайт. Я не про написание на asm, это было что на C, что на Pascal каком, да даже на Delphi!

И дело тут не только в памяти. Сейчас всё дичайше тормозит на отображении таблички в 10 строк. Потому что под капотом там 10 тысяч модулей из npm и снизу еще десять прослоек всего на свете. А по функционалу НИЧЕГО не изменилось. Лучше бы уж на Delphi продолжали "накидывать кнопки на форму", сейчас тот софт, который ругали в те годы, кажется эталоном скорости.

Огромная работа - это когда примерно лет так 10 в каждом обзоре на mobile-review писали - ну пока скроллинг иконок на рабочем столе нового телефона еще не получилось сделать плавным? Этот Андроид мерторожденный изначально был и сейчас он, как и 12 лет назад (год появления у меня моего первого Android-а) тормозит нереально. Просто раньше он из коробки тормозил, а сейчас им надо полгодика попользоваться :)

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

В копилку:

  • Windows NT 4.0 работала на 12 мегабайтах (!) оперативки. Это была полноценная серверная OS, не игрушечная Win95

  • Демо-диск полноценного Real-time UNIX (QNX) с GUI, браузером, играми и прочим занимал 1.44 мегабайта (!). Вот видео: https://www.youtube.com/watch?v=K_VlI6IBEJ0

  • Linux тоже не идеален: на ядрах 2.2 и 2.4 он был гораздо более отзывчив. Сейчас я на топовом железе с новейшими NVME и i9 CPU запускаю в фоне обновление системы через apt и всё вокруг лагает и еле шевелится, просто как анекдоте про Билла Гейтса "Сейчас дискетку доформатирую и покажу". Я четко помню, что это появилось в момент перехода с 2.4 на 2.6 и с тех пор так никуда и не делось.

ware к слову free добавили вы, а не я :)

Соседнюю статью про свободное почитайте.

А я говорил, естественно, про другое. Именно free software и его производные позволили так стремительно развиться всему на свете и подключить к разработке сотни миллионов людей по всему свету. Именно благодаря ему мы имеем миллиарды устройств с Linux + разное ПО на борту у всяких встроенных железок, у Андроидов, в дорогих железках богатых корпораций (всякие Juniper/Cisco/Fortinet и т.д.) и еще в миллионе вещей. И даже именно благодаря free software у нас сейчас делают т.н. импортозамещение.

А IE вместе с WPM кроме геморроя ничего не дали. Их забыли, как бесславных ублюдков и никогда не вспомнят :)

Нет, не путаю. Это вы путаете программу, которую можно скачать без оплаты, с free software.

Есть только одна корявая лицензия (про которую никто не слышал), которая признавалась FSF как free и подразумевавшая отсутствие исходников в каких-то там случаях.

Ну я правильно понимаю, что когда некий софт вам подходит в данный конкретный момент, то он готов. А если нет, то становится не готов. Так?

По такому критерию и винда до сих пор не готова к десктопу.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность