Дэрик Вонг (Darrick Wong) объявил о снятии с себя полномочий сопровождающего файловую систему XFS в ядре Linux. По его словам он взял на себя непосильную ношу и выгорел, пытаясь совместить роль разработчика, рецензировщика, тестировщика, релиз-менеджера и контактного лица. Отмечается, что в подсистеме XFS хватает работы для 20 человек, но фактически ту же работу приходится выполнять вдвое меньшей командой.

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

После ухода с поста сопровождающего Дэрик намерен продолжить работу над рецензированием патчей и заняться развитием интересующих его возможностей XFS, таких как online fsck. Перед уходом Дэрик обобщил свой шестилетний опыт сопровождающего и подготовил рекомендации по оптимизации работы. Например, предлагается разделить полномочия сопровождающего, и передать отдельным людям ответственность за решение таких задач, как подготовка релизов, разбор ошибок, тестирование, взаимодействие с сообществом и сопровождение изменений для LTS-веток. В качестве замены для себя Дэрик рекомендовал утвердить отвечающим за подготовку релизов Кандана Баду (Chandan Babu) из компании Oracle.

  • Александр
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    Да, но там так-то всё давно уже написано, или в XFS были какие-то фундаментальные изменения?

    • cryptOP
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      были изменения, я слежу в новостях, плюс адаптация к ядрам - это немалая работа.

      • Александр
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        Не, я не спорю, немалая

        Почему венда тупо работает, а тут надо ФАЙЛОВУЮ СИСТЕМУ под ядро патичить?

        • cryptOP
          link
          fedilink
          arrow-up
          0
          ·
          3 years ago

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

          покупай редхат и пользуйся стоком. XFS тоже будет просто работать.

          у винды за счет юзербазы гораздо шире тестирование) с этим спорить нельзя)

          • Александр
            link
            fedilink
            arrow-up
            0
            ·
            3 years ago

            У венды стабильное API и даже ABI, и стрононние драйвера там работают по десятку лет, а прикладной софт по 3 десятка. Без шуток, у меня есть прога 95-го года, которой нет аналогов, и я её пускаю нативно на 11-ой венде.

            И никто там не патчит NTFS под дистрибутивы)

            • cryptOP
              link
              fedilink
              arrow-up
              0
              ·
              3 years ago

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

              • Александр
                link
                fedilink
                arrow-up
                0
                ·
                3 years ago

                Может, и даже есть, и в линуксе всё очень плохо всегда в этом плане.

                Я тож зевнул и уебался подушку давить. Спокойной

                • cryptOP
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  3 years ago

                  зевнул и уебался в подушку

                  как все просто у тебя…

            • torvn77
              link
              fedilink
              arrow-up
              0
              ·
              3 years ago

              И никто там не патчит NTFS под дистрибутивы)

              CoW в NTFS привезли?
              А настройки дупликации данных и метаданных?
              Включение сквозной компрессии к потере 50% производительности компьютера больше не приводит?

            • odalist
              link
              fedilink
              arrow-up
              0
              ·
              3 years ago

              и стрононние драйвера там работают по десятку лет

              Потому, что их пишут под Винду.

              • Александр
                link
                fedilink
                arrow-up
                0
                ·
                3 years ago

                Потому, что их пишут под Винду

                А драйвера под линукс пишут под линукс, это вроде логично. У товарища какой-то амуде типа атлон 2 и мать с чипсетом nvidia, этому говну 15 лет минимум, если не все 20. И последняя десятка, и вероятно, одиннадцатая (не проверял), на этой доисторической говновстройке в MCP работают корректно с полной поддержкой аппаратного ускорения, драйвера ставятся и работают.

                В линуксе, если драйвер прекратят поддерживать, он отвалится через несколько месяцевза счёт торвальдского stable ABI is nonsense

                • l-xoid
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  3 years ago

                  за счёт торвальдского stable ABI is nonsense

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

                  • Александр
                    link
                    fedilink
                    arrow-up
                    0
                    ·
                    3 years ago

                    Я не уверен что это как-то влияет, и ради их поддержки нет нужды каждые пару месяцев что-то ломать, тем более что ABI для каждой платформы своё, да и их осталось-то 3 штуки, x86, arm и mips

                    • l-xoid
                      link
                      fedilink
                      arrow-up
                      0
                      ·
                      3 years ago
                      Это написано, чтобы попытаться объяснить, почему Linux ** не имеет двоичного
                      интерфейс ядра, и при этом он не имеет стабильного интерфейса ядра**.
                      
                      .. примечание::
                      
                        Обратите внимание, что эта статья описывает интерфейсы **в ядре**, а не
                        ядро к интерфейсам пользовательского пространства.
                      
                        Интерфейс ядра к пользовательскому пространству — это тот, который используют прикладные программы,
                        интерфейс системного вызова. Этот интерфейс **очень** стабилен с течением времени, и
                        не сломается. У меня есть старые программы, которые были построены на чем-то до 0.9.
                        ядра, которые по-прежнему прекрасно работают с последней версией ядра 2.6.
                        Этот интерфейс — тот, на который могут рассчитывать пользователи и разработчики приложений.
                        на стабильность.
                      
                      
                      ...
                      
                      
                      Бинарный интерфейс ядра
                      -----------------------
                      Предполагая, что у нас есть стабильный исходный интерфейс ядра для ядра,
                      двоичный интерфейс, естественно, тоже произойдет, верно? Неправильный. Пожалуйста
                      рассмотрим следующие факты о ядре Linux:
                      
                        - В зависимости от версии используемого вами компилятора C, разные ядра
                          структуры данных будут содержать различное выравнивание структур, и
                          возможно включать разные функции по-разному (помещая
                          встроенные функции или нет.) Индивидуальная организация функций
                          не так важно, но другое заполнение структуры данных
                          очень важно.
                      
                        - В зависимости от того, какие варианты сборки ядра вы выберете,
                          ядро может принимать разные вещи:
                      
                            - разные структуры могут содержать разные поля
                            - Некоторые функции могут быть вообще не реализованы (т.е. некоторые блокировки
                      	компилируется в ничто для не-SMP-сборок.)
                            - Память внутри ядра можно выравнивать по-разному,
                      	в зависимости от вариантов сборки.
                      
                        - Linux работает на самых разных процессорных архитектурах.
                          Невозможно, чтобы бинарные драйверы из одной архитектуры работали
                          на другой архитектуре правильно.
                      
                      Теперь ряд этих проблем можно решить, просто скомпилировав
                      модуль для точной конкретной конфигурации ядра, используя точно такой же
                      Компилятор C, с помощью которого было собрано ядро. Этого достаточно, если вы
                      хотите предоставить модуль для конкретной версии выпуска определенного
                      дистрибутив линукс. Но умножьте эту единственную сборку на количество
                      различные дистрибутивы Linux и количество различных поддерживаемых
                      релизы дистрибутива Linux, и вам быстро снится кошмар
                      разные варианты сборки на разных релизах. Также осознайте, что каждый
                      Выпуск дистрибутива Linux содержит несколько различных ядер, все
                      настроены на разные типы оборудования (разные типы процессоров и
                      разные варианты), так что даже для одного релиза вам нужно будет создать
                      несколько версий вашего модуля.
                      
                      Поверьте, вы со временем сойдете с ума, если будете пытаться поддерживать такого рода
                      выпуска, я узнал это на собственном горьком опыте давным-давно...
                      
                      
                      Стабильные исходные интерфейсы ядра
                      -------------------------------
                      
                      Это гораздо более «изменчивая» тема, если вы разговариваете с людьми, которые пытаются
                      сохранить драйвер ядра Linux, которого нет в основном дереве ядра, до
                      дата со временем.
                      
                      Разработка ядра Linux ведется непрерывно и в быстром темпе, никогда
                      останавливаясь, чтобы замедлиться. Таким образом, разработчики ядра находят ошибки в
                      текущие интерфейсы или найти лучший способ сделать что-то. Если они это сделают
                      затем они исправляют текущие интерфейсы, чтобы они работали лучше. Когда они делают
                      поэтому имена функций могут меняться, структуры могут увеличиваться или уменьшаться, и
                      параметры функции могут быть переработаны. Если это произойдет, все
                      случаи использования этого интерфейса в ядре исправлены
                      в то же время, гарантируя, что все продолжает работать должным образом.
                      
                      В качестве конкретных примеров этого можно привести встроенные в ядро ​​USB-интерфейсы.
                      претерпел не менее трех различных переделок за время существования этого
                      подсистема. Эти переделки были сделаны для решения ряда различных
                      проблемы:
                      
                        - Переход от синхронной модели потоков данных к асинхронной
                          один. Это уменьшило сложность ряда драйверов и
                          увеличили пропускную способность всех USB-драйверов, так что теперь мы
                          почти все USB-устройства работают на максимально возможной скорости.
                        - Внесено изменение в способ распределения пакетов данных из
                          USB-ядро с помощью USB-драйверов, так что теперь все драйверы, необходимые для обеспечения
                          больше информации к ядру USB, чтобы исправить ряд задокументированных
                          тупики.
                      
                      Это резко контрастирует с рядом операционных систем с закрытым исходным кодом.
                      которым со временем пришлось поддерживать свои старые USB-интерфейсы. Этот
                      предоставляет возможность новым разработчикам случайно использовать старый
                      интерфейсы и делать что-то неправильным образом, что приводит к нестабильности
                      операционная система страдает.
                      
                      В обоих этих случаях все разработчики согласились, что это
                      важные изменения, которые необходимо было сделать, и они были сделаны, с
                      относительно небольшая боль. Если бы Linux нужно было гарантировать, что он сохранит
                      стабильный исходный интерфейс, новый интерфейс был бы создан, и
                      более старый, сломанный, пришлось бы обслуживать с течением времени, что привело
                      к дополнительной работе для разработчиков USB. Поскольку все разработчики Linux USB делают
                      свою работу в свободное время, прося программистов делать дополнительную работу бесплатно
                      получить, бесплатно, не представляется возможным.
                      
                      Вопросы безопасности также очень важны для Linux. Когда
                      проблема с безопасностью найдена, она устранена за очень короткое время. А
                      несколько раз это приводило к тому, что внутренние интерфейсы ядра
                      переработано, чтобы предотвратить возникновение проблемы безопасности. Когда это
                      случается так, что все драйверы, использующие интерфейсы, также были исправлены в
                      в то же время, гарантируя, что проблема безопасности была устранена и не могла
                      случайно вернуться в будущем. Если внутренние интерфейсы
                      не разрешалось изменять, исправляя такого рода проблемы с безопасностью и
                      гарантировать, что это не повторится, невозможно.
                      
                      Интерфейсы ядра очищаются с течением времени. Если никто не пользуется
                      текущий интерфейс, он удален. Это гарантирует, что ядро ​​останется
                      как можно меньше, и что все потенциальные интерфейсы тестируются как
                      насколько это возможно (неиспользуемые интерфейсы почти невозможно
                      тест на достоверность)
                      
                      • Александр
                        link
                        fedilink
                        arrow-up
                        0
                        ·
                        3 years ago

                        У меня есть старые программы, которые были построены на чем-то до 0.9.

                        Канпсольные если только, GUI с тех пор поломали раз 20, хотя это, конечно, не к ядру вопросы

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

                        Этого и не требуется. Они и на основной x86 не работают

                        Это резко контрастирует с рядом операционных систем с закрытым исходным кодом. которым со временем пришлось поддерживать свои старые USB-интерфейсы

                        Зато работает

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

                        • l-xoid
                          link
                          fedilink
                          arrow-up
                          0
                          ·
                          3 years ago

                          Для одной архитектуры, одного компилятора и одной конфигурации ядра - да. Но это не про Линукс.

                          • Александр
                            link
                            fedilink
                            arrow-up
                            0
                            ·
                            3 years ago

                            Для одной архитектуры

                            Ну да, давай для упрощения поговорим про х86, при чём там PowerPC

                            одного компилятора

                            Так это поделие ничем кроме gcc и не собирается, в отличие от той же @crypt’овской фрибзди

                            одной конфигурации ядра

                            На интерфейсы влиять не должно

                            Но так да, выходит Ein Arch, ein Kompiler, ein Konf)

                • odalist
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  3 years ago

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

                  Очень интересно. Но железо такой старости отлично и на Линуксе работает. И с открытыми дровами…

                  В линуксе, если драйвер прекратят поддерживать, он отвалится через несколько месяцевза

                  Не знаю, но у меня на одной из машин старое железо (да, я нищеброд), но все с открытыми дровами работает нормально. Посмотрим, что будет дальше…

                  и вероятно, одиннадцатая (не проверял

                  Я не верю, что взлетит.

          • odalist
            link
            fedilink
            arrow-up
            0
            ·
            3 years ago

            покупай редхат и пользуйся стоком. XFS тоже будет просто работать.

            А можно просто использовать No-cost RHEL for developers subscription.

        • torvn77
          link
          fedilink
          arrow-up
          0
          ·
          3 years ago

          Почему венда тупо работает, а тут надо ФАЙЛОВУЮ СИСТЕМУ под ядро патичить?

          Потому что в Винде один артефакт древности - NTFS и все деньги пробухиваются на создание формочек графического интерфейса.

          • Александр
            link
            fedilink
            arrow-up
            0
            ·
            3 years ago

            Зато тут 30 разных, автор одной сидит, вторая данные теряет, остальные 27 поддерживать некому, вот и остается ext4

            • torvn77
              link
              fedilink
              arrow-up
              0
              ·
              3 years ago

              Кащенко, не распространяй многократно опровергнутые мифы о ущербности линуксовых ФС.