encyklopedia.space

Open source

Definicja

Open source (otwarte oprogramowanie) – termin określający oprogramowanie, którego kod źródłowy jest publicznie dostępny, a licencja zezwala na jego przeglądanie, modyfikowanie oraz rozpowszechnianie. Zgodnie z definicją Open Source opracowaną przez Open Source Initiative (OSI), licencja musi spełniać dziesięć kryteriów, wśród których najważniejsze to swoboda wykorzystania programu w dowolnym celu, możliwość modyfikacji oraz brak dyskryminacji podmiotów i dziedzin zastosowań.

Historia

Idea udostępniania kodu źródłowego sięga czasów wczesnych komputerów, gdy oprogramowanie rozpowszechniano razem z maszyną. Po II wojnie światowej powstały pierwsze oprogramowania wolne w ramach projektów akademickich. Przełomowy moment nastąpił w latach 1990 – GNU został zapoczątkowany przez Richarda Stallmana jako kompleksowy, wolny system operacyjny.

W 1998 roku powstała organizacja Open Source Initiative, a termin „open source” został wprowadzony w celu promowania komercyjnego i biznesowego wykorzystania otwartego kodu. W tym samym roku projekt Linux Lynusa Torvalda stał się najważniejszym przykładem komercyjnie uzasadnionego otwartego systemu operacyjnego.

Licencje open source

Licencje otwartego oprogramowania można podzielić na dwie szerokie grupy:

Model rozwoju

Projekty open source rozwijane są zazwyczaj w modelu bazującym na społeczności. Uczestnicy (deweloperzy, testerzy, dokumentaliści) współpracują poprzez platformy takie jak Git i serwisy GitHub (wewnętrzny link do artykułu o GitHub) czy GitLab. Głównym mechanizmem zarządzania zmianami jest system kontroli wersji, a decyzje techniczne podejmowane są przez tzw. maintainerów lub komitety projektowe.

Znaczenie i wpływ

Oprogramowanie open source odgrywa kluczową rolę w nowoczesnym ekosystemie technologicznym:

  • Podstawę infrastruktury internetowej stanowią serwery Apache i NGINX.
  • Systemy operacyjne mobilne i stacjonarne opierają się na jądrze Linux.
  • Języki programowania i ich środowiska (np. Python, Node.js) zawierają liczne biblioteki o otwartym kodzie.
  • Wiele firm, od start-upów po korporacje, wykorzystuje otwarte komponenty w swoich produktach, co pozwala na szybszy rozwój i obniżenie kosztów licencyjnych.

Przykłady popularnych projektów

Projekt Typ Licencja Rok rozpoczęcia
Linux System operacyjny GPLv2 1991
Apache HTTP Server Serwer WWW Apache 2.0 1995
MySQL System zarządzania bazą danych GPLv2 1995
Firefox Przeglądarka internetowa MPL 2.0 2002
TensorFlow Biblioteka uczenia maszynowego Apache 2.0 2015

Społeczność i organizacje

Najważniejsze organizacje wspierające otwarte oprogramowanie to:

Aspekty prawne

Licencje open source stanowią kontrakty prawne między autorami a użytkownikami. Ich właściwe stosowanie wymaga znajomości:

  • warunków udzielania licencji (np. obowiązek udostępniania kodu przy licencjach copyleft),
  • zasady łączenia kodu o różnych licencjach (kompatybilność licencyjna),
  • praw własności intelektualnej, w szczególności prawa autorskiego.

Spory prawne w tej dziedzinie dotyczą najczęściej naruszeń warunków licencji (np. nieujawnianie źródeł przy GPL) lub nieautoryzowanego użycia znaku towarowego.

Wyzwania i krytyka

Pomimo wielu zalet, otwarte oprogramowanie napotyka na szereg trudności:

  • Zrównoważony model finansowania – wiele projektów opiera się na wolontariacie, co może wpływać na ich stabilność.
  • Bezpieczeństwo – otwarty kod jest publicznie dostępny, co ułatwia zarówno znajdowanie luk, jak i ich szybką naprawę; wymaga jednak aktywnej społeczności.
  • Kompleksowość zarządzania – duże projekty mogą cierpieć na problemy z koordynacją i podejmowaniem decyzji.

Powiązane pojęcia

Wolne oprogramowanie, copyleft, oprogramowanie własnościowe, tworzenie oprogramowania, Agile, DevOps.

Przyszłość open source

Trendy takie jak sztuczna inteligencja, Internet rzeczy czy edge computing coraz częściej bazują na otwartym kodzie. Przewiduje się dalszy wzrost udziału open source w edukacji, sektorze publicznym oraz w rozwiązaniach chmurowych, gdzie modele open source‑first stają się standardem.