Jądro Linux osiągnęło pułap 40 milionów linii kodu

Rozmiar jądra Linux osiągnął 40 mln linii kodu źródłowego. Z 40 mln linii 24 mln dotyczy kodu sterowników (na przykład kod sterowników dla GPU AMD zajmuje około 5 mln linii), a 4,4 mln jest specyficzne dla różnych architektur sprzętowych (dla wsparcia architektury x86 używa się około 500 tysięcy linii).

Od lipca 2024 roku rozmiar jądra zwiększył się o 5 mln linii. Granica 30 mln linii została przekroczona latem 2022 roku, 20 mln linii — jesienią 2015 roku, a 10 mln — jesienią 2008 roku. Dla porównania, wydanie jądra 0.0.1 zawierało zaledwie 10 tysięcy linii kodu, a 1.0.0 — 176 tysięcy linii.

Dynamika wzrostu bazy kodu (liczba linii kodu źródłowego) jądra:

  • 0.0.1 — wrzesień 1991, 10 tys. linii kodu;
  • 1.0.0 — marzec 1994, 176 tys. linii kodu;
  • 1.2.0 — marzec 1995, 311 tys. linii kodu;
  • 2.0.0 — czerwiec 1996, 778 tys. linii kodu;
  • 2.2.0 — styczeń 1999, 1,8 mln. linii kodu;
  • 2.4.0 — styczeń 2001, 3,4 mln. linii kodu;
  • 2.6.0 — grudzień 2003, 5,9 mln. linii kodu;
  • 2.6.28 — grudzień 2008, 10,2 mln. linii kodu;
  • 2.6.35 — sierpień 2010, 13,4 mln. linii kodu;
  • 3.0 — sierpień 2011, 14,6 mln. linii kodu;
  • 3.5 — lipiec 2012, 15,5 mln. linii kodu;
  • 3.10 — lipiec 2013, 15,8 mln. linii kodu;
  • 3.16 — sierpień 2014, 17,5 mln. linii kodu;
  • 4.1 — czerwiec 2015, 19.5 mln linii kodu;
  • 4.7 — lipiec 2016, 21.7 mln linii kodu;
  • 4.12 — lipiec 2017, 24.1 mln linii kodu;
  • 4.18 — sierpień 2018, 25.3 mln linii kodu;
  • 5.2 — lipiec 2019, 26.55 mln linii kodu;
  • 5.8 — sierpień 2020, 28.4 mln linii kodu;
  • 5.13 — czerwiec 2021, 29.2 mln linii kodu;
  • 5.19 — sierpień 2022, 30.5 mln linii kodu;
  • 6.4 — czerwiec 2023, 32.9 mln linii kodu.
  • 6.10 — lipiec 2024, 35.1 mln linii kodu.
  • 6.13 — styczeń 2025, 39,8 mln linii kodu.

Jako jeden z propozycji skrócenia bazy kodu jądra zaproponowano wydzielenie sterowników do oddzielnego repozytorium, jednak propozycja ta nie jest obecnie poważnie rozważana z powodu skomplikowania procesów testowania i weryfikacji jakości, a także w związku z pojawieniem się dodatkowych nakładów pracy na synchronizację interfejsów programistycznych. Przy opracowywaniu sterowników w głównym składzie jądra wiele regresji wpływających na sterowniki jest natychmiast wykrywanych w trakcie przeglądu przez towarzyszy. W przypadku podziału rozwoju istnieje niebezpieczeństwo, że kodom sterowników poświęci się mniej uwagi.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster