Ядро Linux достигло отметки в 40 млн строк

Размер ядра Linux достиг рубежа в 40 млн строк исходного кода. Из 40 млн строк 24 млн относятся к коду драйверов (например, код драйверов для GPU AMD занимает около 5 млн строк), а 4.4 миллиона специфичны для различных аппаратных архитектур (для поддержки архитектуры x86 используется примерно 500 тысяч строк).

С июля 2024 года размер ядра увеличился на 5 млн строк. Отметка в 30 млн строк была пройдена летом 2022 года, 20 млн строк – осенью 2015 года, а 10 млн – в декабре 2008 года. Выпуск ядра 0.0.1 включал всего 10 тыс. строк кода, а 1.0.0 – 176 тысяч строк.

Динамика роста кодовой базы (количество строк исходного кода) ядра:

  • 0.0.1 – сентябрь 1991, 10 тыс. строк кода;
  • 1.0.0 – март 1994, 176 тыс. строк кода;
  • 1.2.0 – март 1995, 311 тыс. строк кода;
  • 2.0.0 – июнь 1996, 778 тыс. строк кода;
  • 2.2.0 – январь 1999, 1.8 млн. строк кода;
  • 2.4.0 – январь 2001, 3.4 млн. строк кода;
  • 2.6.0 – декабрь 2003, 5.9 млн. строк кода;
  • 2.6.28 – декабрь 2008, 10.2 млн. строк кода;
  • 2.6.35 – август 2010, 13.4 млн. строк кода;
  • 3.0 – август 2011, 14.6 млн. строк кода;
  • 3.5 – июль 2012, 15.5 млн. строк кода;
  • 3.10 – июль 2013, 15.8 млн. строк кода;
  • 3.16 – август 2014, 17.5 млн. строк кода;
  • 4.1 – июнь 2015, 19.5 млн. строк кода;
  • 4.7 – июль 2016, 21.7 млн. строк кода;
  • 4.12 – июль 2017, 24.1 млн. строк кода;
  • 4.18 – август 2018, 25.3 млн. строк кода;
  • 5.2 – июль 2019, 26.55 млн. строк кода;
  • 5.8 – август 2020, 28.4 млн. строк кода;
  • 5.13 – июнь 2021, 29.2 млн. строк кода;
  • 5.19 – август 2022, 30.5 млн. строк кода;
  • 6.4 – июнь 2023, 32.9 млн. строк кода.
  • 6.10 – июль 2024, 35.1 млн. строк кода.
  • 6.13 – январь 2025, 39.8 млн. строк кода.

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

Release. Ссылка here.