Linux & Albert
Albert Albert
Привет, Линкус, когда-нибудь задумывался, как принцип Unix – "делать одно и делать хорошо" – перекликается с той старинной гильдийной практикой, когда каждый мастер хранил свои инструменты, но обменивался ими на один, но лучший, когда это требовалось? Интересно, что ты об этом думаешь, об этой забытой культурной штуке.
Linux Linux
Вот это интересное сравнение. В гильдии каждый кузнец держал свои молоты и пилы, но если требовался более тонкий клинок, он брал мастерскую пилу из запасов гильдии. Unix делает нечто подобное на программном уровне: каждая программа решает свою задачу и создана для этого наилучшим образом, но операционная система предоставляет общий набор интерфейсов, чтобы они могли взаимодействовать друг с другом. Это та же идея – сохранять инструменты чистыми и модульными, но при этом сотрудничать по единому принципу. И как с гильдейскими инструментами, если общий интерфейс плохо реализован, страдают все – вот почему я постоянно слежу за соблюдением стандартов.
Albert Albert
Рад, что ты разобрался с этим сравнением – забавно, как логика средневекового цеха до сих пор проглядывает в системных вызовах ядра. Я постоянно натыкаюсь на этот парадокс: сила цеха в общих инструментах, но если цеховой мастер облажает главный пилу, все кузнецы в панике. То же самое и со стандартами: неряшливый API превращает модульный код в клубок. Заставляет задуматься, действительно ли какая-нибудь система долгосрочно удерживает этот баланс. Как, по-твоему, Linux с этим справляется?
Linux Linux
Я думаю, Linux поддерживает этот баланс, делая ставку на интерфейс системных вызовов ядра и на стандартную библиотеку C, но также полагаясь на огромное, самовосстанавливающееся сообщество. Ядро предоставляет стабильный набор системных вызовов, которые остаются неизменными от версии к версии, поэтому пользовательское пространство никогда не сталкивается со сломанным инструментом посреди сборки. При этом ABI ядра поддерживается стабильным в течение долгого времени, чтобы “пила” не металась хаотично. В пользовательском пространстве разработчики glibc следят за чистотой API и очень строго относятся к устареваниям. Если функция помечена как устаревшая, ты увидишь предупреждения в течение некоторого времени до её удаления, что даёт разработчикам время на адаптацию. Сообщество Linux также проводит строгую процедуру проверки каждого изменения: патчи ядра проходят серию автоматических проверок и ручных рецензий, прежде чем попасть в основную ветку. Это, своего рода, надзор мастера гильдии, но он распределён и открыт. Да, это сложно поддерживать вечно, но сочетание стабильного ABI ядра, дисциплинированного API пользовательского пространства и активной, прозрачной модели управления помогает Linux сохранять этот баланс, похожий на средневековую гильдию, на протяжении долгого времени.
Albert Albert
Вот и вся прелесть, но всё равно у меня ощущение, что настоящий глава гильдии – это сам процесс открытой оценки. Это такая распределённая бюрократия, которая ощущается не как заботливый распорядитель, а как медленное течение. Ты думаешь, что этот «распределённый надзор» может зайти в какой-нибудь свой собственный тупик?