Дежа вю
АрхивКомментарий дняРазработчики Linux столкнулись с неожиданной проблемой: придуманные ими механизмы работы с оперативной памятью, оказывается, уже давно запатентованы.
Немногим больше десяти лет тому назад, автор этой колонки, для которого весь компьютерный мир тогда замыкался в древней, самопаянной 8-разрядной машинке, "заболев" идеей компрессии данных, придумал собственный алгоритм сжатия. И пару месяцев ходил предельно гордый собой, пока не прочитал в попавшемся под руку журнале, что "изобретение" - лишь примитивный вариант широко используемого механизма, известного как кодирование Хаффмана. Открытие не состоялось и мировая известность откладывалась на неопределённый срок... Подобные разочарования, наверняка, в том или ином виде были в жизни каждого, но когда они затрагивают только одного человека - это не страшно. Хуже, если случаются с коллективами в тысячи участников. Нынче такой момент истины - для самого сердца Linux-сообщества, разработчиков ядра этой операционной системы, столкнувшихся на своём пути первооткрывателей с другими исследователями, уже успевшими обозначить свой приоритет.
Конечно, рано или поздно, это должно было случиться: мир тесен, законы в нём правят общие, а идеи, кем-то высказываемые, почти наверняка были высказаны ранее. ОС Linux сегодня делает большой для себя шаг: создателями ядра реализуется поддержка т.н. больших страниц памяти и ведётся разработка механизмов, позволяющих осуществлять эффективное управление памятью при работе с такими страницами. Суть нововведения станет понятней, если взглянуть на то, как Linux работала с оперативной памятью до сих пор: происходило это путём выделения страничек по 4 - 8 килобайт размером. Такой, несколько странный по нынешним многосотмегабайтным временам подход, обусловлен предоставляемыми им определёнными преимуществами. Работая с маленькими страницами, легче гарантировать, что нужная страница находится именно в оперативной памяти, а не в виртуальной, на жёстком диске, кроме того, маленькие страницы проще выделять и разгружать. Однако, увеличив их размеры можно также получить немалые выгоды - уменьшив количество обращений к ОС, требуемых для выделения памяти нужного размера, ускорив работу файловой системы и мн.др. Всё это позволит приложениям работать быстрее, обещая до 30% прироста производительности.
Технических трудностей на пути к поддержке больших страниц немало, но сообща все их можно решить. К сожалению, представители Linux-сообщества - не первые, кто над этим решением задумался. Активная работа над алгоритмами менеджмента оперативной памяти при работе с большими страницами в Linux сейчас фактически остановлена, из-за того, что обнаружены патенты, покрывающие ведущиеся разработки. Первые два патента отыскал Алан Кокс (Alan Kox, бывший до 2002-го года одним из руководителей разработки Linux), а вслед за ними были обнаружены и ещё несколько аналогичных, но описывающих уже имплантированные в Linux механизмы. Патенты американские, были выданы в середине 90-х годов и принадлежат компании SGI.
Немедленно после того, как было сделано это неприятное открытие и поставлен вопрос о том, как вести себя дальше, поступило предложение просто игнорировать патенты SGI. Автор его - сам Линус Торвальдс, аргументирующий свою позицию тем, что в случае последующего предъявления претензий обладателями патентов, можно будет честно заявить, что нарушение совершено неумышленно, после чего просто переработать конфликтный алгоритм. Впрочем, сработает ли это на самом деле - неизвестно, здесь нужен комментарий юриста (а Торвальдс, умерив свой юношеский задор, позже сам предупредил, что таковым не является). Есть, конечно, и иной выход: SGI проявит добрую волю и оставит всё как есть, позволив линуксоидам построить свой вариант запатентованных механизмов. Но - смотрите шире: Open Source-сообщество вторгается на территорию, где правят гиганты, нажившие свои состояния на продажах проприетарных продуктов, и глупо было бы полагать, что SGI - единственная компания, с чьими патентами придётся столкнуться...