Konfiguracja sprzętu i oprogramowania

Oprogramowanie open source. Oprogramowanie typu open source i darmowe oprogramowanie

Peter Van Valkenburgh, szef działu badań w Coin Center, członek zarządu Fundacji Zcash, wyjaśnia dlaczego rozwój oprogramowania open source kod źródłowy ważne dla budowania zaufania i bezpieczeństwa w sieciach blockchain.

Kod komputerowy stojący za wszystkimi głównymi kryptowalutami i projektami open blockchain jest opracowywany jako oprogramowanie open source. Organy regulacyjne i decydenci próbujący zrozumieć, czym są kryptowaluty, ale nie zaznajomieni z takim oprogramowaniem, mogą ulec złudzeniu, wierząc, że te systemy są (i powinny być) opracowywane przez jedną lub więcej firm komercyjnych. Chociaż wiele dobrze znanych programów jest rzeczywiście opracowywanych w ten sposób (na przykład Microsoft Windows lub Oracle RDBMS), w przypadku projektów open source sytuacja wygląda inaczej, a ta różnica może i powinna kształtować opinię publiczną. Oprogramowanie typu open source jest tworzone w ramach współpracy, rozpowszechniane bezpłatnie, publikowane w sposób otwarty i rozwijane jako produkt społeczności, a nie własność pojedynczej firmy lub osoby. W tym przypadku nie ma monopolu, nie ma jednej firmy ani osoby, która tworzyłaby i sprzedawała oprogramowanie, nie byłaby jego właścicielem. Tak jak nie ma jednej firmy będącej właścicielem sieci bitcoin, nie ma jednej firmy produkującej oprogramowanie, które, działające na komputerach podłączonych do Internetu, tworzy tę sieć. Ten rodzaj decentralizacji przynosi pewne fundamentalne korzyści, które mogą być trudne do zrozumienia dla osób, które nie są zaznajomione z tworzeniem oprogramowania. Aby lepiej zrozumieć moc i naturę open source, warto mieć wgląd w jeden szczególnie udany kawałek oprogramowania open source. Mówimy o systemie operacyjnym Linux.

Open source wszędzie

Trudno policzyć, ile razy dziennie korzystasz z Linuksa, ponieważ ten system operacyjny jest podstawą większości serwerów w Internecie. Za każdym razem, gdy odwiedzasz Facebooka, Google, Pinterest, Wikipedię i tysiące innych głównych witryn, usług oferowanych przez te (tak różne) witryny, masz do czynienia z komputerami, które najprawdopodobniej działają pod kontrolą systemu operacyjnego Linux. Linux można znaleźć znacznie bliżej; najprawdopodobniej masz go na wyciągnięcie ręki. Załóżmy, że system operacyjny smartfonów z Androidem jest oparty na Linuksie. Jeśli masz Chromebooka, używasz laptopa z systemem Linux. Ten system operacyjny jest coraz częściej stosowany w telewizorach, termostatach, systemach multimedialnych w samolotach, samochodach itp.

Dlaczego to jest interesujące? Ponieważ Linux nie jest produktem jednego programisty, ani nawet grupy programistów; w przeciwieństwie do MacOS czy Windows nie został opracowany przez jedną czy nawet kilkanaście korporacji. Linux ma tysiące współpracowników. Jak donosi w 2015 roku Linux Foundation (organizacja non-profit promująca otwarty rozwój) system operacyjny), około 14 000 programistów z ponad 1300 różnych firm dostarczyło fragmenty kodu. W samym 2015 roku 2355 programistów po raz pierwszy przyczyniło się do poprawy kodu. Na podstawie ekstrapolacji można więc obliczyć, że do 2017 r. wniosło swój wkład około 18 000 osób, a liczba ta będzie rosła.

Kto by pomyślał, nawet pięć lat temu (w 1991 roku), że światowej klasy system operacyjny może, jak za dotknięciem czarodziejskiej różdżki, zostać uformowany w spójną całość z fragmentów niezależnych prac kilku tysięcy programistów rozsianych po całym świecie i połączonych tylko przez upiorne wątki Internetu?

Korzyści z open source

W swojej książce Raymond opowiada o tym, jak open source jest rewolucyjnym sposobem tworzenia technologii. Linux, z tysiącami niezależnych programistów pracujących w ramach współpracy publicznej, jest przykładem modelu open source. Kryptowaluty podążają tym samym wzorem, ale omówimy to poniżej.

Raymond podkreślił kilka zalet modelu open source. Kluczowymi w kontekście naszej dyskusji są:

  • Każdy dobry kawałek oprogramowania zaczyna się od zaspokojenia osobistych pragnień programisty. Większość programistów open source kieruje się chęcią osobistego korzystania z produktów, które tworzą. Nie są związani umową zobowiązującą ich do stworzenia czegoś dla kogoś; mają osobistą potrzebę, którą zaspokajają. W ten sposób powstaje jakościowo odmienna motywacja, generująca szczegółową wiedzę o problemie.
  • Dobrzy programiści wiedzą, co pisać. Wielcy wiedzą, co przepisać (i ponownie wykorzystać). Gdy programowanie jest otwarte, można uniknąć nadmiarowości, a problematyczne, skomplikowane lub nadmiarowe kody można zidentyfikować i uprościć.
  • Kiedy tracisz zainteresowanie programem, twoim ostatnim obowiązkiem jest przekazanie go kompetentnemu następcy. Ludzie wchodzą i wychodzą z projektu open source na podstawie swoich zainteresowań i wiedzy. Nikt nie utknie przy projektach, które już nie są interesujące. Pojawiają się świeże umysły, oferujące różne punkty widzenia na stare problemy lub nowe perspektywy.
  • Postrzeganie użytkowników jako innych programistów to najprostszy sposób na efektywne ulepszanie kodu i debugowanie oprogramowania. Wielu użytkowników open source pomaga identyfikować problemy, a nawet sugeruje rozwiązania. Granica między konsumentem a producentem oprogramowania open source jest zatarta: praca nad oprogramowaniem jest przejrzysta, odbywa się na oczach publiczności, a udział w procesie tworzenia jest dostępny dla każdego.
  • Przy odpowiednio dużej bazie beta testerów i programistów prawie każdy problem zostanie szybko zakwalifikowany, a jego rozwiązanie z pewnością będzie dla kogoś oczywiste. Postulat ten nosi nazwę „Prawo Linusa” na cześć Linusa Torvaldsa, twórcy jądra Linuksa, który przez długi czas pozostawał głównym twórcą tego systemu operacyjnego. Gdy proces tworzenia kodu jest zamknięty, programiści ryzykują przeoczenie słabego punktu lub niezauważenie pewnego błędu. Rozwijanie w środowisku zaawansowanych użytkowników z unikalną wizją zwiększa prawdopodobieństwo zidentyfikowania i naprawy błędów, dzięki czemu oprogramowanie open source jest bezpieczniejsze i bardziej odporne.

Efektem tego rozwoju jest bardzo solidny kod stworzony przez użytkowników dla użytkowników. Celem nie jest stworzenie czegoś, co wzbogaci firmę produkującą i sprzedającą produkty, ale raczej rozwiązanie problemu, który jest na tyle powszechny, że duża społeczność utalentowanych programistów z radością wnosi swój wkład. Osoby bez umiejętności programistycznych bardzo skorzystają z takiego modelu. Wolne oprogramowanie wydaje się materializować znikąd, jest bezpłatne dla wszystkich i otrzymuje aktualizacje, o ile użytkownicy na poziomie eksperckim są również zainteresowani jego używaniem.

Prawo i wolne oprogramowanie

Obecne prawodawstwo wspiera, aw niektórych przypadkach zachęca do rozwoju oprogramowania open source. Jak każde oprogramowanie, jest chronione prawami autorskimi, ale jego autorzy udostępniają kod z licencją, która pozwala każdemu na używanie i modyfikowanie go bez wyraźnego pozwolenia lub jakiejkolwiek płatności na rzecz autorów (tj. z licencją opracowaną przez Massachusetts Institute of Technologia - MIT).

Niektóre licencje zawierają wymagania, aby pochodne oprogramowania były wydawane na tych samych warunkach. Dzięki temu schematowi baza open source rośnie i rozprzestrzenia się. Zjawisko to jest znane jako Licencja Wolnego Oprogramowania lub LGPL-3, mniejsza Powszechna Licencja Publiczna.

Open source w kryptowalutach i projektach tokenów

Linux jest prawdopodobnie największym i najważniejszym przykładem modelu open source, ale są też inne. Obejmują one wszystkie główne projekty kryptowalut i blockchain. Wszyscy tworzą sieć komputerowa, umożliwiając uczestnikom osiągnięcie porozumienia w sprawie współdzielonych danych (blockchain kryptowaluty).

Oprogramowanie, które umożliwia każdemu uczestnikowi łączenie się z siecią, nazywa się klientem i jest to oprogramowanie typu open source. Często oprogramowanie klienckie jest opracowywane przez kilka niepowiązanych podmiotów jako prosta wersja oprogramowania sieciowego (tzw. klient referencyjny), na podstawie której można zbudować oprogramowanie do kopania, portfela, wymiany lub inne oprogramowanie kompatybilne z siecią.

Klient Bitcoin Core jest wynikiem pracy ponad 450 niezależnych programistów, którzy wnieśli w sumie ponad 15 000 opracowań kodu. Oprogramowanie jest dostępne do bezpłatnego użytkowania i modyfikacji zgodnie z licencją MIT Free Software License, a cała historia rozwoju jest dostępna do przeglądania w publicznym repozytorium na Github - usługa chmury, umożliwiając każdemu tworzenie konta, przesyłanie nowego kodu i śledzenie zmian. Jeśli tworzone repozytorium jest otwarte dla publiczności do przeglądania, komentarzy i sugestii zmian, nie musisz nawet płacić za konto Github.

Repozytorium publiczne śledzi również tak zwane forki oryginalnego klienta. Fork tworzy klon oryginalnego oprogramowania, który można następnie modyfikować w tym czy innym celu bez zmiany oryginalnego repozytorium. Deweloperzy swobodnie rozwijają repozytorium Bitcoin Core Github, aby tworzyć określone aplikacje zgodne z bitcoinami (takie jak portfel na smartfony) lub nową kryptowalutę, która nie jest już kompatybilna z siecią bitcoin i wiąże się z utworzeniem nowej sieci kryptowalut (tak jak było to w przypadku Litecoin lub Zcash). Do tej pory oryginalny klient Bitcoin Core został rozwidlony ponad 10 000 razy, a pojawiające się nowe repozytoria pokazują, że prace nad instrumentami pochodnymi trwają nadal.

Obecnie na Ethereum istnieje co najmniej 121 repozytoriów, z których każde koncentruje się na konkretnym aspekcie projektu (na przykład języki programowania do pisania inteligentnych kontraktów, przeglądarki graficzne do interakcji użytkownika końcowego z siecią Ethereum, kompatybilni klienci do udziału w sieć itp.). Istnieje co najmniej osiem projektów skoncentrowanych na rozwijaniu klientów kompatybilnych z ethereum, z setkami niezależnych programistów pracujących na najpopularniejszych klientach (go-ethereum i Parity). Kod Ethereum i jego pełna historia, a także kod i historia Bitcoina są dostępne do publicznego wglądu na Github i innych miejscach. pamięć sieciowa, a cały kod jest wydany na licencji LGPL-3, która wymaga, aby wszystkie przyszłe prace pochodne były wydawane na tej samej licencji.

Nawet ostatnie projekty zainicjowane przez komercyjne start-upy wykazują przestrzeganie credo open source. Firma Zcash rozwija protokół Zcash poprzez publiczne repozytorium. Kilku wiodących programistów nie pracuje dla firmy i powołana jest specjalnie zbudowana organizacja non-profit, aby zapewnić stopniowe przejście od rozwoju opartego na firmie do rozwoju opartego na społeczności. Baza kodu źródłowego Zcash jest udostępniana na licencji Massachusetts Institute of Technology. Protocol labs, twórca Filecoin, zamierza stworzyć podobny otwarty model i przetestował go już w swoim projekcie IPFS, pracując z kodem w otwartych repozytoriach i udostępniając go na licencji MIT.

Dlaczego open source jest ważny

Kryptowaluty i otwarte łańcuchy bloków mogą zapewnić funkcjonalność, która byłaby regulowana, gdyby pochodziła z jednej korporacji. Scentralizowani emitenci walut cyfrowych, tacy jak Liberty Reserve lub E-gold, byli usługami finansowymi i musieli zarejestrować się w Urzędzie ds. Egzekwowania Przestępstw Finansowych Departamentu Skarbu USA i uzyskać licencję na przesyłanie pieniędzy w każdym stanie. Jeśli takie tokeny są promowane na rynku w celu przyciągnięcia inwestorów, mogą być zrównane z papierami wartościowymi, w takim przypadku wymagana będzie rejestracja w amerykańskiej Komisji Papierów Wartościowych i Giełd. Ograniczenia te mają sens, ponieważ scentralizowane usługi wiążą się z ryzykiem, że strona znajdująca się w centrum całego systemu nie będzie w stanie spełnić swoich obietnic poprzez odpowiednie przetestowanie produktu i zapewnienie mu bezpieczeństwa.

Jednak technologie takie jak bitcoin mogą oferować podobną funkcjonalność, będąc sieciami otwartymi i nieposiadającymi właściciela. Tu nie ma korporacji. Użytkownicy dołączają do tych sieci, a oprogramowanie open source pobudza ich chęć do współpracy. Ostatecznie wszyscy uczestnicy uzgadniają każdą część danych potrzebnych do stworzenia waluty. Decentralizacja opiera się na dwóch filarach: mechanizmach otwartego konsensusu i oprogramowaniu open source. Gdyby kod nie był open source, w jaki sposób uczestnicy (osoby, które nie znają się w Internecie) byliby w stanie zrozumieć i zaufać systemowi, do którego dołączają?

W rzeczywistości projekty tokenów oparte na autorskim kodzie mogą okazać się po prostu scentralizowanymi usługami, które chowają się za profesjonalnym slangiem i „bełkotem blockchain”. Jednak w przypadku „prawdziwych” projektów kod, który tworzy zdecentralizowaną sieć, pozwalając uczestnikom ufać sobie nawzajem, mieć wspólną motywację i karać oszustów, sam jest zdecentralizowany. Jest rozwijany na oczach wszystkich przez setki entuzjastów, jest dostępny dla każdego na świecie do użytku i modyfikacji i jest całkowicie niezależny od interesów korporacji.

Mark Roberts
Dyrektor ds. Zarządzania Produktami (Dyrektor, Zarządzanie Produktami)
Systemy oprogramowania QNX
e-mail: [e-mail chroniony]

adnotacja

Ten artykuł skupia się na korzyściach, rozważaniach strategicznych, barierach i możliwościach związanych z wykorzystaniem oprogramowania open source w produkcji komercyjnej. Na przykładzie zintegrowanego środowiska programistycznego (IDE) opartego na platformie Eclipse omówimy różnice między licencjami kodu źródłowego oprogramowania chroniącymi (ochronnymi) i niechroniącymi (niechroniącymi). Podczas integrowania lub łączenia kodu open source z „zastrzeżonym” kodem zamkniętego kodu źródłowego często wymagana jest należyta ostrożność i uwaga. Należy również pamiętać o różnych kwestiach prawnych, takich jak możliwość naruszenia patentu. Postaramy się również wyjaśnić, dlaczego główne zasady korzystania z oprogramowania open source w środowisku Technologie informacyjne(IT) nie dotyczy komercyjnych produktów przeznaczonych do urządzeń wbudowanych.

Środowisko programistyczne QNX Momentics jako przykład Open Source

Wracając do 2001 roku, kiedy wiele firm deweloperskich walczyło o przetrwanie w obliczu ogólnego załamania na giełdzie firm IT, zwłaszcza tych związanych z e-biznes w Internecie firma QNX Software Systems podjęła strategiczną decyzję o rozpoczęciu opracowywania nowego zintegrowanego środowiska programistycznego (IDE) dla rynku systemów wbudowanych. Firma miała już solidne doświadczenie w opracowywaniu szeregu narzędzi wykorzystywanych w rozwoju urządzeń wbudowanych, ale zarząd firmy zdał sobie sprawę, że stworzenie IDE pozwoli im pozostać na szczycie fali w wysoce konkurencyjnym środowisku. Decyzja o stworzeniu IDE była również podyktowana zmianą nacisku na wymagania klientów. W okresie spowolnienia biznesowego klienci z ograniczonymi środkami finansowymi zaczęli bardziej interesować się rozwiązaniami, które mogłyby zmaksymalizować produktywność i sprawić, że będą bardziej mobilni (elastyczni) w pracy, co poprawi ogólną efektywność ekonomiczną.

Dla QNX opracowanie IDE było „zakładem na przyszłość”, ponieważ w tamtym czasie koszt i wysiłek związany z opracowaniem projektu były poza zasięgiem większości dostawców narzędzi systemów wbudowanych. Na szczęście QNX ściśle współpracował z IBM w różnych segmentach rynku urządzeń wbudowanych. Poprzez ścisłą współpracę, Firma IBM podzielił się z QNX planami wydania zintegrowanego środowiska programistycznego typu open source — środowisko to później stało się podstawą platformy Eclipse.

IBM zaproponował wykorzystanie doświadczenia QNX w celu dostosowania technologii IDE do potrzeb programistów zajmujących się tworzeniem aplikacji wbudowanych opartych na języku C/C++. Eksperci QNX niemal natychmiast zwrócili uwagę na niepodważalne atrakcyjne aspekty używania kodów open source dla IDE. Na przykład dla takiego środowiska byłoby możliwe:

  • wyeliminować zależność od jednego dostawcy, co zwykle wiąże się z koniecznością licencjonowania platformy okienkowej;
  • zaoferować kod źródłowy do dostosowania do potrzeb klienta;
  • przyciągać poważnych graczy z branży, aby wspierać i tworzyć ekosystem komplementarnych technologii i wtyczek;
  • zapewnić klientom stabilną architekturę, która może wspierać zróżnicowanie produktów;
  • umożliwiają twórcom urządzeń wbudowanych korzystanie ze standardowych stacji roboczych odpowiednich do pracy z aplikacjami informatycznymi (w najszerszym zakresie zastosowań) jako platformy programistycznej.

Wreszcie istniała osobna możliwość, że platforma IDE mogłaby się przejąć i stać się de facto standardem, pozwalając QNX na eksploatację rynku dla dużych ekosystemów zewnętrznych programistów i narzędzi za pośrednictwem takiej platformy.

Założono projekt open source Eclipse.org

W listopadzie 2001 r. Borland, IBM, Merant, QNX Software Systems, Red Hat i SUSE założyły konsorcjum Eclipse. Na początku 2004 roku Zarząd Stewardów zreorganizował Konsorcjum Eclipse w korporację non-profit o nazwie Eclipse Foundation.

Od uruchom Eclipse był naprawdę projektem open source. Projekt oferował zarówno darmowe technologie open source, jak i dostęp do społeczności najbardziej wykształconych i zaawansowanych programistów w swojej dziedzinie. W ten sposób, ta technologia okazał się uniwersalną platformą integrującą wszelkiego rodzaju narzędzia programistyczne. Opiera się na otwartej, rozszerzalnej architekturze i jest wyraźnie licencjonowany jako produkt wolny od opłat licencyjnych, który można swobodnie redystrybuować. Wkład członków społeczności do projektu Eclipse opiera się na standardowym modelu rozwoju oprogramowania Open Source (OSS), ale większość członków wnosi również komercyjne opracowania oparte na platformie Eclipse.

Projekt przechowywania narzędzi

W grudniu 2001 r. firma QNX rozpoczęła budowę swojego RTOS QNX® Neutrino® w oparciu o środowisko Eclipse IDE. Wizją firmy było, aby IDE było wysoce funkcjonalne, zorientowane na C/C++, z głęboko zintegrowanymi narzędziami do debugowania, profilowania, analizowania i budowania aplikacji osadzonych. Od samego początku zespół QNX chciał, aby było to wielozadaniowe, wielojęzyczne IDE, które obsługuje wiele platform narzędziowych. Obejmowało to:

  • kilka platform instrumentalnych: Windows, Solaris, QNX Neutrino RTOS (programowanie z własnym hostem);
  • wiele architektur docelowych: ARM, MIPS, PowerPC, SH-4, x86;
  • języki programowania C, C++, Java.

Od tego czasu IDE stale się rozwija, obejmując obsługę platformy Linux i obsługę dodatkowych architektury procesorów, w tym procesory XScale.

Realizację projektu rozpoczęto w stylu „programowania ekstremalnego”. Firma wyselekcjonowała zespół 12 najlepszych inżynierów. Dostali specjalny pokój, zostali odizolowani od wszelkich rozproszeń, projekt został im oddany do pełnej dyspozycji.

Grupa otrzymała niezbędne uprawnienia decyzyjne i miała napięty harmonogram prac, który unikał ryzyka, z wydaniem produktu w wersji beta w ciągu 16 tygodni i wydaniem komercyjnym do 4 lipca 2002 r. Grupa spełniła wszystkie cele terminy i wypuścił nowy produkt — nazwany QNX Momentics® IDE — zgodnie z harmonogramem, demonstrując potencjał oprogramowania open source do skrócenia czasu wprowadzania na rynek.

Od pomysłu do dostawy produktu - mniej niż 7 miesięcy

Opierając się na platformie Eclipse, zespół QNX stworzył bardzo wydajne i wszechstronne IDE do tworzenia oprogramowania wbudowanego w sześć miesięcy. Obsługiwane IDE rozwój wieloplatformowy dla wielu platform instrumentalnych i wielu języków programowania, a także obsługuje najpopularniejsze wbudowane płyty procesorów docelowych. Dzięki platformie Eclipse firma QNX była w stanie:

  • używaj kompilatorów GNU i narzędzi do cross-developmentu do cross-development wiersz poleceń;
  • implementować obsługę wtyczek innych firm, takich jak IBM WebSphere do wbudowanych aplikacji Java i Rational ClearCase do programowania sterowanego modelami;
  • tworzyć dodatkowe narzędzia do budowania systemów, zarządzania urządzeniami docelowymi, analizowania pamięci, profilowania systemów i aplikacji itp.

Na ryc. Rysunek 1 przedstawia przykład, w jaki sposób platforma Eclipse może obniżyć koszty budowy IDE, pozwalając firmom skoncentrować się na wyższych poziomach rozwoju, na których powstają prawdziwe innowacje. Na przykład, korzystając z platformy Eclipse, firma QNX była w stanie z łatwością stworzyć kilka innowacyjnych narzędzi do wizualizacji, które pozwalają zagłębić się w system osadzony i wyświetlić jego zachowanie.

Zwrot wkładu w pracę społeczności

Forte udany projekt open source polega na współpracy społeczności programistów i na ciągłym ulepszaniu bazy kodu. Jeśli firma korzysta z oprogramowania open source i dobrze go wykorzystuje, ma po prostu obowiązek wnoszenia wkładu do społeczności. W tym celu QNX przejął kierownictwo projektu Eclipse CDT w czerwcu 2002 roku.

Celem projektu Eclipse CDT (C/C++ Development Tools) jest stworzenie wspólnego zestawu interoperacyjnych narzędzi języka C/C++ dla platformy Eclipse. Eclipse CDT został pozycjonowany jako projekt open source, z prawami zarządzania od Eclipse Corporation. Aby rozpocząć projekt CDT, QNX przekazało swoje zasoby programistyczne i kod źródłowy dla projektu QNX Momentics IDE. Rational i Red Hat, jako członkowie społeczności, również udzielili znaczącego wsparcia projektowi.

Ryż. 1. Dzięki platformie Eclipse dostawcy narzędzi mogą skoncentrować się na najwyższym poziomie stosu pracy, gdzie faktycznie powstaje prawdziwa innowacja.

QNX nadal utrzymuje projekt CDT, który rozrósł się z początkowo skromnych 80 000 linii kodu do ponad 700 000 linii kodu dzisiaj. Na początku 2006 roku dziennik postępów projektu Eclipse CDT oszacował wkład QNX na 52%. Następny był IBM z udziałem 36%. Projekt CDT jest drugim najpopularniejszym projektem Eclipse po samej platformie Eclipse.

Czy mogę sobie pozwolić na „podarowanie” kodu?

Może się wydawać, że „podaruj” swój kod – oznacza działanie wbrew zdrowemu rozsądkowi. Jeśli jednak funkcjonalność Twojego produktu okaże się przydatna w użyciu, to dlaczego nie przekazać jej do społeczności użytkowników open source. Podejmując ten krok, można skorzystać z takiej „standardowej” oferty wdrożeniowej, wraz z doświadczeniem w zakresie wsparcia produktu. Będziesz mógł skorzystać z pracy całej społeczności mającej na celu ulepszenie bazy kodu. Taka strategia może uwolnić własne zasoby na dodatkowe badania skoncentrowane na innowacyjnych rozwiązaniach, na robieniu dodatkowych funkcjonalność do swoich produktów.

Co więcej, możesz zyskać kontrolę nad kierunkiem „standardowej” platformy - zarobionej oczywiście poprzez swój wkład w społeczność! Jeśli wspierasz projekt, zachowuj się jak dobry obywatel społeczności, szanuj opinie innych, doceniaj wkład i rady innych członków. Nie myśl, że ktoś będzie próbował „oczyścić Twoje kieszenie” w wyniku użycia kodu i przejmie od Ciebie kontrolę nad kierunkiem rozwoju platformy.

Na przykład strategia QNX Software Systems polega na wykorzystaniu zaangażowania w platformę Eclipse podczas opracowywania nowej funkcjonalności, która łączy się z ustandaryzowanymi punktami rozszerzalności już zawartymi w platformach Eclipse i CDT. W tym celu QNX zamierza pozostać aktywnym członkiem społeczności Eclipse, wykorzystując istniejącą bazę kodu i prace osób trzecich (wtyczki), pomagając zaspokoić rzeczywiste potrzeby klientów poprzez tworzenie własnych rozszerzeń. Opisaną strategię ilustruje ryc. 2.

Ryż. 2. Swoją pracą możesz przyczynić się do pracy społeczności.

Podsumowanie korzyści

Platforma narzędziowa oparta na Eclipse jest obustronnie korzystna zarówno dla twórców aplikacji, takich jak QNX, jak i klientów, którzy kupują narzędzia platformy.

Deweloperzy czerpią korzyści ze skróconego czasu wprowadzania ich produktów na rynek i możliwości czerpania korzyści z badań innych osób (przy niskich kosztach). Wyniki te mogą obejmować wysokiej jakości kod „czystego adresu IP” dostarczony przez renomowane firmy, takie jak IBM i QNX. Kolejną zaletą dla dewelopera jest to, że otrzymuje prosty i przejrzysty schemat licencjonowania, w tym prawa handlowe i pewną ochronę patentową. Ponadto deweloper zyskuje możliwość pracy na wielu platformach operacyjnych obsługiwanych przez Eclipse, a także dostęp do dobrze zdefiniowanych punktów rozszerzeń w projekcie Eclipse.

Klienci, którzy zakupią środowisko IDE oparte na środowisku Eclipse, korzystają z platformy narzędziowej zaprojektowanej do tworzenia aplikacji osadzonych, oferującej silne wsparcie dla kompilacji krzyżowej, łatwe debugowanie i rozszerzenia do zarządzania systemami docelowymi. Zespół programistów klienta doceni wiele funkcji ułatwiających pracę, krótki czas potrzebny na dodatkowe szkolenia, dobry występ produkt i niezawodną platformę, która pozwala na współpracę duże projekty. Klient może również skorzystać z platformy Eclipse we własnych aplikacjach (np. RCP, eRCP itp.).

Przyszłość Eclipse Corporation

Eclipse Corporation to aktywna i energiczna społeczność. Stale pojawiają się nowe projekty, nowe architektury są udostępniane uznanym innowacyjnym firmom, a nawet małe firmy mogą komercjalizować platformę Eclipse, tworząc nowe wtyczki, które rozszerzają istniejącą funkcjonalność przy minimalnych kosztach (patrz Rysunek 3).

Ryż. 3. Eclipse Corporation to dynamiczna i szybko rozwijająca się społeczność twórców wtyczek.

Porównanie licencji open source

Nie wszystkie licencje na oprogramowanie typu open source są sobie równe. QNX wykonał przemyślane posunięcie z Licencją Publiczną Eclipse. Wybór ten był podyktowany częściowo potrzebami wbudowanych klientów, a częściowo chęcią przejęcia kontroli nad (i wykorzystania) technologii, która różnicuje produkty.

Korporacja non-profit Open Source Initiative () opracowała przydatną 10-punktową definicję open source. Obecnie na stronie znajduje się ponad 50 licencji zatwierdzonych przez OSI, w tym Eclipse Public License. Te licencje mogą zawierać znaczące różnice, które należy jasno zrozumieć. Różnice te mogą znacząco wpłynąć na własność intelektualną (IP) programistów i możliwość jej ochrony. Jest to najbardziej prawdziwe w przypadku używania open source (lub prac pochodnych opartych na open source) w urządzeniach wbudowanych.

Licencja ochronna i nieobronna

Zgodnie z warunkami licencji ochronnej, takiej jak GPL v2, dzieło pochodne może być rozpowszechniane tylko wraz z odpowiednim kodem źródłowym. Zgodnie z warunkami licencji ochronnej gwarantuje się, że gdy kod źródłowy zostanie przeniesiony do kategorii open source, pozostanie w tej kategorii we wszystkich kolejnych generacjach i produktach pochodnych. Jak wyjaśnimy później, ten wymóg prowadzi do pewnych problemów w przypadku systemów wbudowanych.

Przykładami licencji niechroniących są oryginalne licencje MIT i BSD. Licencje nie zapewniające ochrony zachowują prawa autorskie właściciela, ale przyznają szerokie prawa użytkownikowi, w tym prawo do modyfikowania i nieograniczonej bezpłatnej dystrybucji (lub użytku osobistego) oprogramowania.

Co oznacza „licencja wirusowa”

Niektórzy nazywają GPL „licencją wirusową”. Nazwa ta powstała z powodu niepewności prawnej definicji pojęcia „rozwoju pochodnego”. Przy ścisłej interpretacji definicji okazuje się, że jeśli nawet mały fragment kodu na licencji GPL jest osadzony w jakiejś zastrzeżonej aplikacji, to cała aplikacja musi być licencjonowana na licencji GPL. Natychmiast nasuwa się analogia z wirusem.

Kwestie odszkodowań

W ostatnim czasie głównym tematem dyskusji deweloperów stały się kwestie odszkodowania za naruszenie praw własności intelektualnej (IP Indemnification). W odpowiedzi niektórzy dostawcy oprogramowania open source ogłosili, że będą bronić klientów przed procesami sądowymi dotyczącymi patentów lub praw autorskich. A najnowsze licencje open source określają kary dla użytkowników, którzy próbują dochodzić swoich praw patentowych przeciwko innym użytkownikom bazy kodu.

Główne problemy pojawiające się przy komercjalizacji oprogramowania open source

Porównanie aplikacji wbudowanych i informatycznych

Sukces przestrzeni open source jest napędzany przez przyjęcie Linuksa przez organizacje IT. Czerpać korzyść z Użycie Linuksa chodziło o działanie na stosunkowo jednorodnym i stabilnym sprzęcie (zwykle z rodziny x86) oraz korzystanie z elastycznej, bogatej w zasoby platformy komputerowej.

W przypadku oprogramowania wbudowanego sytuacja wygląda zupełnie inaczej. Oprogramowanie działa na ogromnej liczbie urządzeń ze stałym zestawem funkcji, korzystając z szerokiej gamy sprzętu o różnych architekturach. Projektanci urządzeń wbudowanych często opierają swoją przewagę konkurencyjną na określonym zestawie funkcji, rozmiarze, wydajności, koszcie, żywotności baterii, niezawodności, interoperacyjności i skalowalności. Te cechy wyróżniające są zwykle implementowane w oprogramowaniu niskopoziomowym, które w przypadku Linuksa wymaga bezpośredniego połączenia z jądrem systemu operacyjnego. Dostosowywanie oprogramowania niskiego poziomu do potrzeb klienta jest normą, a nie wyjątkiem, dlatego programiści często uzyskują żądaną funkcjonalność, zmieniając jądro systemu operacyjnego. Wykorzystywana jest również metoda bezpośredniego linkowania poprzez osadzanie w kodzie fragmentów w celu obniżenia kosztów tworzenia bibliotek. Podsumowując, praktyki te bardzo utrudniają ochronę zastrzeżonego kodu na podstawie licencji takich jak GPL (domena publiczna).

Zazwyczaj te problemy licencyjne nie dotyczą aplikacji informatycznych, ponieważ markowe oprogramowanie przeznaczone dla przedsiębiorstw nie jest rozpowszechniane poza przedsiębiorstwem i jest wykorzystywane wyłącznie na potrzeby wewnętrzne. Jednak w przypadku urządzeń wbudowanych zawsze rozpowszechniają oprogramowanie pochodne, które podlega klauzuli „force open” licencji open source, co może zagrażać kluczowym aspektom cennych ofert open source.

Ponadto produkty wbudowane często mają długą żywotność, zarówno w produkcji, jak i w eksploatacji. Produkt wbudowany, który podlega warunkom użytkowania typu open source, jest bardziej zagrożony, w tym brakiem długoterminowego wsparcia technicznego, potencjalnymi problemami z bezpieczeństwem i naruszeniem praw własności intelektualnej.

Problemy z licencjonowaniem

Niepewność statusu prawnego

Pomimo pocieszających słów niektórych zwolenników licencji open source, wiele kluczowych obaw zgłaszanych przez deweloperów systemów wbudowanych nie zostało jeszcze gruntownie przetestowanych przez sądownictwo. Jak wspomniano, definicja „dzieła pochodnego” jest kluczem do egzekwowania niektórych warunków licencji, chociaż wiele osób i organizacji, które akceptują warunki użytkowania open source, ma niewielkie lub żadne zrozumienie znaczenia tego terminu.

Niektóre obejścia, które umożliwiają komercyjnym dostawcom wstrzykiwanie własnościowych sterowników do Linuksa (takie jak Loadable Kernel Modules) opierają się na argumentach „on powiedział, ona powiedziała” zamiast na bezpośrednich odniesieniach tekstowych. umowa licencyjna. W rzeczywistości takie sterowniki korzystające z modułów LKM stanowią niebezpieczne obchodzenie wymagań licencji GPL. Posuwając się do skrajności, można zinterpretować sprawę w taki sposób, że baza kodu Linuksa może być prezentowana jako bezużyteczna dla większości praktycznych zastosowań, jeśli nie zawiera niektórych z tych bardzo „zastrzeżonych” sterowników. Taka sytuacja może skutecznie zdewaluować ideę licencji GPL.

Brak odszkodowania za naruszenie własności intelektualnej

W większości przypadków, w których używany jest kod open source, istnieje realna możliwość, że nieumyślnie naruszysz cudze prawa patentowe. Niewiele licencji open source zawiera wyraźne odniesienia do patentów, a licencje dorozumiane nie mogą być oceniane. Musisz oddzielnie licencjonować wszelkie patenty dotyczące, na przykład, kodeków typu open source, które implementują algorytmy MP3 lub inne zastrzeżone rozwiązania. W międzyczasie źli chłopcy (w tym Microsoft) są zajęci budowaniem portfela patentów, które zdaniem wielu ekspertów mogą zostać zrzucone na rzecz zwolenników otwartego oprogramowania.

Niektóre licencje zawierają wyraźne odniesienia do patentów. Na przykład licencja publiczna Eclipse zawiera wyraźną wzmiankę o prawach patentowych i zawiera klauzulę o karach na wypadek, gdyby ktoś próbował dochodzić praw patentowych w inny sposób. Eclipse Corporation dokłada również wszelkich starań, aby zweryfikować kod i określić jego źródło pochodzenia pod względem licencji, patentu lub praw autorskich.

Dodatkowe wysiłki w celu zachowania IP

Aby korzystać z open source, firma musi dołożyć znacznych starań w następujących obszarach:

  • zarządzanie dystrybucją produktów;
  • zarządzanie licencjami;
  • rozwiązywanie konfliktów prawnych w zakresie zobowiązań Klienta;
  • zwracanie należytej uwagi na kwestie prawne: utrzymanie czystości praw IP, sprawdzanie praw IP do open source, ustalanie źródła pochodzenia kodu, śledzenie zmian w wersjach licencji, np. GPL v3 itp.

Akceptacja wymagań klienta

Niektórzy duzi klienci, w obliczu złożoności i niepewności oprogramowania typu open source, odmówili zajmowania się produktami zawierającymi oprogramowanie open source. Jeśli nadal chcesz pracować z tymi klientami, musisz uzyskać lub zaprosić ich do dołączenia postanowień licencji komercyjnej dla Twojego kodu.

Problemy związane z IP

Czy warunki Twojej licencji open source wpływają na własność intelektualną, która wyróżnia Twój produkt? Jeśli tak, to Twoje IP jest zagrożone.

Jeśli systemy wbudowane wykorzystują połączenie Twojego własnego oprogramowania i oprogramowania typu open source, musisz zrozumieć istotę, pochodzenie i powiązania wszystkich składników oprogramowania wbudowanego. Bez tego głębokiego wglądu w przedmiot możesz nieumyślnie naruszyć czyjeś IP lub nawet stracić prawa do własnego oprogramowania.

Bez licencji patentowych i rekompensat, długowieczne oprogramowanie systemów wbudowanych, stosunkowo wysoka cena sprzedaży i wielkość sprzedaży urządzeń wbudowanych o stałej funkcji sprawiają, że takie systemy są oczywistym celem dla roszczeń o naruszenie patentów przez wspomnianych „złych chłopców” i głównych konkurentów.

Jak pokazuje przykład użycia QNX Momentics IDE, istnieje wiele bezpośrednich korzyści płynących z oprogramowania open source, w tym skrócenie czasu wprowadzania na rynek, niższe koszty rozwoju i większa swoboda w dostarczaniu produktu. dodatkowe funkcje i innowacyjność. Jeśli oferujesz swoje oprogramowanie jako usługę, która rozwiązuje problem klienta, klient nie dba o to, czy korzystasz z oprogramowania typu open source, czy nie, po prostu płaci za funkcję, której potrzebuje.

Należy jednak zrozumieć różnicę między różnymi licencjami open source i wybrać tę, która najlepiej odpowiada Twojej aplikacji i potrzebom klientów. Ponadto przygotuj się na odpowiedzialność za zobowiązania licencyjne oprogramowania, które wybierzesz. Powinieneś być świadomy innych wymagań dotyczących własności intelektualnej (takich jak prawa patentowe) związanych z kodem programu. Uważaj na bazę kodu, która nie wyświetla komunikatu o konsekwencjach naruszenia IP. Szukaj lepsze projekty, gdzie proponuje się wypłatę odszkodowania za ewentualne szkody i gdzie na ekranie wyświetlany jest komunikat o darowiznach pieniężnych na opracowanie kodu w celu zrekompensowania kosztów związanych z naruszeniem praw autorskich lub patentów, i tak dalej. Upewnij się również, że używane oprogramowanie typu open source jest zgodne z polityką dotyczącą własności intelektualnej i unikaj licencji obronnych, które mogą zmusić Cię do ujawnienia wyróżniających się fragmentów kodu. Jeśli Twój produkt jest wbudowany w system, rozważ również zaoferowanie komercyjnych warunków licencyjnych dla swojego adresu IP.

Korzystanie z oprogramowania open source w urządzeniach wbudowanych wiąże się z bardziej złożonymi problemami niż korzystanie z oprogramowania open source w aplikacjach IT, ponieważ to pierwsze jest bardziej ryzykowne. Przed podjęciem decyzji o użyciu dowolnego oprogramowania typu open source oceń jego rzeczywisty koszt posiadania (TTCO) i jego przydatność do projektu.

Wreszcie dołącz do społeczności użytkowników i programistów open source, aby uzyskać jak największą wartość i korzyści dla siebie!

Sukces oprogramowania open source jest dość zauważalny. Nie ominęła nawet największych producentów programów komercyjnych. IBM, Hewlett-Packard, Oracle i Microsoft dostrzegają jego wpływy iw niektórych przypadkach przyjmują jego metody. Wydaje się, że większość firm posiadających dział IT jest już dość dobrze zaznajomiona z produktami open source i często z nich aktywnie korzysta.

Jednak wszechobecność oprogramowania open source wciąż rodzi więcej pytań niż odpowiedzi. Spróbujmy więc odpowiedzieć na najpopularniejsze z nich.

Co to jest oprogramowanie open source?

Wróćmy do 1997 roku. Utalentowany programista systemu operacyjnego Linux, Bruce Perens, pisze dokument związany z przygotowaniem i dystrybucją wersji dystrybucyjnej Debian Linux. Później usunął wszelkie odniesienia do Debiana i wprowadził koncepcję znaną dziś jako The Open Source Definition. Między innymi w dokumencie Definicji stwierdzono, że oprogramowanie open source powinno być dystrybuowane bez żadnych opłat licencyjnych dla programistów, dystrybutorzy są zobowiązani do zapewnienia wszystkim Darmowy dostęp do kodu źródłowego programów, a wszystkie dalsze ulepszenia i zaktualizowane wersje programów muszą być również dostarczone na tych samych warunkach.

W rzeczywistości ruch oprogramowania open source jest bliskim krewnym Ruchu Wolnego Oprogramowania zainicjowanego w 1983 roku przez Richarda Stallmana. Jego głównym celem była bezpłatna dystrybucja oprogramowania, uwolnienie go od standardowych ograniczeń programów komercyjnych. Zasady dystrybucji wolnego oprogramowania są regulowane przez Powszechną Licencję Publiczną (GPL), która została zatwierdzona w trzecim wydaniu w październiku 2006 roku.

Obecnie na całym świecie stosuje się dziesiątki różnych licencji Open Source Initiative, z których każda ma własne specyficzne zasady, które wymagają kontroli przez firmy rozważające korzystanie z oprogramowania typu open source. Zazwyczaj zasady te nie nakładają ścisłych ograniczeń na tych, którzy chcą aplikować do programów typu open source. Jeśli chodzi o wymagania dotyczące dystrybucji, należy im poświęcić większą uwagę, aby uniknąć: potencjalne problemy związane z naruszeniem zasad licencjonowania.

Dlaczego oprogramowanie Open Source?

Pierwszy powód, dla którego firmy sięgają po oprogramowanie open source, jest bardzo prosty — jego cena. A ROI dla modelu open source wyraźnie to pokazują. Oprogramowanie typu open source można bezpłatnie pobrać, zainstalować i używać. Początkowo niskie koszty przyciągały programistów chcących wypróbować nowe narzędzia lub zaprojektować nowe aplikacje bez wydawania pieniędzy. Wynikająca z tego wolność zachęciła wielu z nich do wspierania ruchu open source. W rezultacie, wraz z tysiącami innych projektów, na świecie zaczęło pojawiać się oprogramowanie klasy przemysłowej typu open source, takie jak system operacyjny Linux, serwer WWW Apache, serwer aplikacji JBoss Java oraz środowisko programistyczne Eclipse.

Pod koniec lat 90. programy open source w końcu zwróciły uwagę kierownictwa przedsiębiorstw. Ponieważ budżety IT stale się kurczą, programiści chwalili się jakością i oszczędnością kosztów korzystania z oprogramowania open source, a wiele firm zaczęło poważnie rozważać użycie komponentów oprogramowania open source w projektach korporacyjnych. Pierwszymi dużymi firmami, które zaadoptowały oprogramowanie open source, były The Weather Channel, Cendant Travel, Employease i Sabre.

Podczas globalnego rozwoju Internetu oprogramowanie open source pozwala firmom na szybkie rozszerzenie działalności elektronicznej bez ciągłego kupowania nowych licencji na oprogramowanie komercyjne. Odpowiednie korzyści obejmują również rozwój i testowanie. W ten sposób firmy mogą wypróbowywać nowe rzeczy bez dodatkowych kosztów związanych z oprogramowaniem komercyjnym i obowiązkowym w takich przypadkach procesem budżetowania.

Dla nikogo chyba nie jest tajemnicą, że w praktyce niewiele osób korzysta z dostępności kodu źródłowego w produktach dystrybuowanych z open source. Wydawałoby się, że prawo do swobodnego modyfikowania i poprawiania kodu programu należy uznać za poważny plus, ale w rzeczywistości, zamiast samemu utrzymywać oprogramowanie, firmom znacznie łatwiej jest polegać na społeczności programistów, którzy aktualizują i debugują kod programu wszystkich popularnych produktów w odpowiednim czasie.

Powody odchodzenia od oprogramowania open source

Argumenty przeciwko oprogramowaniu open source są zazwyczaj łatwe do policzenia na jednej ręce.

    Uzyskanie wolnego oprogramowania jest jak „ darmowa dystrybucja szczenięta. Możesz go pobrać i zainstalować za darmo, ale szkolenie użytkowników i wsparcie kosztuje więcej niż łączne koszty oprogramowania komercyjnego lub całkiem porównywalne. Ten argument, który Microsoft szczególnie lubi wygłaszać, działa na poziomie podświadomości. To, czy jest to sprawiedliwe, czy nie, zależy od konkretnej sytuacji i od tego, jaki raport analityczny właśnie czytasz.

    Organizacja wsparcia technicznego jest trudna. We wczesnych dniach ruchu open source, kiedy rozwój i wsparcie były w dużej mierze wykonywane przez grupy wolontariuszy lub „społeczności”, był to rzeczywiście problem. Ale chociaż wiele organizacji odkryło, że wsparcie społeczności jest wystarczające, aby zaspokoić ich potrzeby, dziś otwiera się przed nimi wiele innych możliwości, w tym wsparcie dla dużych projektów open source przez Hewlett-Packard i IBM. W rezultacie twierdzenie, że „wystarczy zatkać jedno gardło, żeby się udusić” traci na aktualności.

    Opracowanie nowej funkcjonalności zajmuje więcej czasu w porównaniu z oprogramowaniem komercyjnym. To naprawdę zależy od rodzaju używanego oprogramowania. Przeglądarka internetowa Firefox jest najlepszy przykład jak szybko oprogramowanie open source można dostosować do potrzeb użytkowników. Można też przypomnieć, jak szybko twórcy Linuksa zorganizowali wsparcie dla nowych technologii, w szczególności portów USB. Pod tym względem Linux nie pozostaje w tyle za Windowsem. Ale jeśli chodzi o oprogramowanie dla przedsiębiorstw, wbudowanie mechanizmów obsługujących najnowszą kartę graficzną lub układ audio odgrywa tu znacznie mniej ważną rolę niż zapewnienie wysokiej stabilności i wydajności.

    Niepewność dalszego rozwoju i rozgałęzień. Szeroka gama licencji oprogramowania open source, a także możliwość aktywnej ingerencji użytkowników końcowych w kod programu, zniechęcają klientów korporacyjnych do przyjęcia podobne programy. Jednak uważna analiza licencji open source przez prawników rozwiewa większość tych obaw. Niektórzy dostawcy oprogramowania open source i strony trzecie oferują nawet odszkodowania, więc aplikacje open source, z których korzystasz, mogą być przedmiotem pozwu.

Gdzie zacząć?

Obecnie prawie wszystkie rodzaje oprogramowania biznesowego są dostępne jako produkty open source, zaczynając od serwerów E-mail a kończąc na systemach VoIP. Wiele firm zwraca uwagę przede wszystkim na aplikacje internetowe, gdzie są produkty, które istnieją już od dłuższego czasu i zdążyły już udowodnić swoją wartość. Zwykle wymieniany jest stos LAMP (Linux, Apache, MySQL i PHP, Perl lub Python w zależności od konkretnej sytuacji). Linux jest systemem operacyjnym podobnym do Uniksa. Jednym z najpopularniejszych obecnie serwerów WWW jest Apache. System zarządzania bazą danych MySQL z powodzeniem konkuruje z drogimi produkty komercyjne. A języki programowania i skryptów PHP, Perl i Python są szeroko stosowane jako narzędzia do tworzenia aplikacji internetowych typu open source. Oparte na języku Java strony internetowe typu open source często opierają się na serwerze aplikacji JBoss. Gdy zaznajomisz się z narzędziami open source i zidentyfikujesz podobieństwa i różnice między nimi a produktami komercyjnymi, odkryjesz inne możliwości. Być może zaskakujące jest to, że twoi programiści od czasu do czasu sięgają po określone produkty open source na własne ryzyko i ryzyko.

Serwery aplikacji są w porządku, ale co z oprogramowaniem komputerowym typu open source?

Użytkownicy końcowi często korzystają z różnych narzędzi komputerowych typu open source. Doskonałym przykładem takiego rozwiązania jest przeglądarka internetowa. Mozilla Firefox. Pakiet biurowy Sun OpenOffice jest preferowany przez niektóre organizacje rządowe i komercyjne ponad Biuro Microsoft. Jednak podczas gdy niektórzy gracze zapuszczają się w nieznane, instalując system operacyjny Linux na swoich komputerach stacjonarnych, Windows nadal bezsprzecznie dominuje. Przyjazne dla użytkownika wersje Linuksa (takie jak LinSpire) nie mogą zmienić status quo, ponieważ edukacja użytkowników wymaga czasu i pieniędzy. Ponadto większość komercyjnych pakietów oprogramowania – od których zależy wiele firm – jest opracowywanych najpierw dla systemu Windows, a dopiero później dla systemu Linux (jeśli oczywiście zostanie wydana wersja dla systemu Linux).

Czy można sprzedawać produkty open source?

Tak, oczywiście, ale zasady Inicjatywy Open Source zabraniają zapobiegania sprzedaży Twojego kodu i wszystkim innym. Jednak wiele firm znajduje sposoby na zarabianie pieniędzy na produktach typu open source. Wiele, oprócz samego kodu, oferuje usługi wsparcia korporacyjnego, które firmy bardzo chętnie kupują. Inni udostępniają dwie wersje kodu: jedną w formie otwartej i bezpłatnej, a drugą, która zawiera dodatkowe przydatne funkcje, zawiera zastrzeżone komponenty i musi być opłacana przez klientów. Ten mieszany model staje się coraz bardziej popularny. Jest aktywnie wykorzystywany przez takie firmy jak SourceFire, SugarCRM, Alfresco i wiele innych.

Inne zasoby Open Source

W Internecie można znaleźć wiele programów typu open source:

    świeże mięso. Ogromna baza danych oprogramowania do pobrania, z których większość jest w formie open source.

    Sourceforge. Gigantyczna witryna dla programistów open source, skupiająca tysiące projektów open source. Niektóre z nich nadal się rozwijają, inne już przestały istnieć.

Zasoby open source - oficjalne i nieoficjalne

    inicjatywa open source. Organizacja non-profit, której podstawową misją jest dalszy rozwój oprogramowania open source, finansowana przez wielu graczy, którzy od dawna działają w tej dziedzinie.

    Grupa Technologii Open Source. Prawdopodobnie wiodący na świecie eksplorator technologii open source. To właśnie to stowarzyszenie jest właścicielem serwisu informacyjnego Slashdot, a także zasobów SourceForge i FreshMeat.

    Zarządzanie ryzykiem otwartego oprogramowania. Oferuje mechanizmy zapewniające zgodność z przepisami.

    Laboratoria programistyczne Open Source. Organizacja, której głównym celem jest promocja systemu operacyjnego Linux wśród klientów korporacyjnych.

Rynek oprogramowania oferuje szeroką gamę oprogramowania (oprogramowania). Wraz z aplikacjami, które można kupić za opłatą, istnieje możliwość korzystania z bezpłatnych programów.

Darmowe oprogramowanie (darmowe)

Po raz pierwszy termin „freeware” pojawił się w 1982 roku i został zarejestrowany jako znak towarowy przez amerykańskiego programistę Andrew Fleglemana dla opracowanego przez niego programu komunikacyjnego.

Możesz bezpłatnie pobrać:

  • wersje beta programów
  • uproszczone analogi pełnowartościowych pakietów
  • kierowcy
  • programy, których wykorzystanie skłoni do pozyskania dodatkowych zasobów.

Zaletą freeware jest jedna - nie musisz płacić, jest jeszcze kilka wad:

Prawie każdy komercyjny program dla Windows ma swoje darmowe odpowiedniki:

  • Archiwizatory (7-zip)
  • Oprogramowanie FTP (FileZilla)
  • Antywirusy (CureIt, Avast!, AVZ)
  • Edytory tekstu(Notatnik++)
  • Przeglądarki (Mozilla, Firefox, Opera, Google Chrome)
  • Odtwarzacze audio (WinAmp)
  • Odtwarzacze wideo (VLC, Miro, Media Player Classic)
  • Transkodery (MediaCoder)
  • Edytory graficzne (GIMPshop)
  • Oprogramowanie biurowe (Apache OpenOffice, LibreOffice)

Darmowe aplikacje pod Windows są dostępne w Internecie na stronach dewelopera. Po pobraniu archiwum i zainstalowaniu oprogramowania na komputerze automatycznie generowane są wszystkie katalogi i pliki niezbędne do normalnego działania aplikacji. Darmowe aplikacje na Androida i iOS można pobrać za pośrednictwem marketplace’ów PlayStore i AppStore.

Podczas pobierania bezpłatnych programów istnieje ryzyko napotkania efektu „konia trojańskiego”: programista dołącza do bezpłatnego pakietu inne programy, które są automatycznie umieszczane na komputerze podczas instalacji pakietu. To oprogramowanie nie zawsze jest bezpieczne!

Szczególne miejsce w kategorii darmowych programów zajmują projekty open source. Niektóre z powyższych programów (Mozilla Firefox, 7-Zip, FileZilla, Notepad++, Miro, VLC, Apache OpenOffice, LibreOffice, Media Player Classic, GIMPshop, Google Chrome) należy do tej kategorii.

oprogramowanie open source

Oprogramowanie może być rozpowszechniane w wersji zamkniętej (Microsoft Windows, MS Office - oprogramowanie zastrzeżone) oraz otwartej (open source). Wprowadzony w 1984 r. termin „wolne oprogramowanie” (wolne oprogramowanie) odnosi się do oprogramowania, które można uzyskać bezpłatnie, modyfikować przy użyciu dostępnych kodów źródłowych programów i dalej rozpowszechniać.

Programy są rozpowszechniane na licencji GNU GPL i muszą spełniać następujące wymagania:

  1. Nie ma ograniczeń w korzystaniu z oprogramowania w niektórych obszarach działalności.
  2. Kod źródłowy jest rozpowszechniany wraz z plikiem wykonywalnym lub można go uzyskać ze źródła publicznego za darmo/po rozsądnej cenie. Kod musi być czytelny.
  3. Zmodyfikowana wersja jest rozpowszechniana na ogólnych warunkach. Możesz zmienić nazwę lub numer wersji.
  4. Program jest dostępny dla każdego.

W 1998 roku wprowadzono pojęcie „oprogramowania open source” – oprogramowania open source. Formalnie całe wolne oprogramowanie można uznać za oprogramowanie typu open source. Zwyczajowo klasyfikuje się programy open source jako bezpłatne, chociaż nie jest zabronione używanie ich do celów komercyjnych. Zwykle jest rozpowszechniany na licencji Apache 2.0. Ale są też inne opcje (zobacz więcej o licencjach w świecie open source).

Korzyści z pracy z projektami open source:

  • to dobry materiał do nauki
  • funkcje opisane w projekcie nie są zabronione do osadzania w Twoich aplikacjach
  • znalezione błędy można poprawić, a poprawny kod umieścić w odpowiednim repozytorium
  • podczas kompilacji programu dozwolone jest dokonywanie zmian w tekście i modernizowanie go pod kątem specyficznych warunków użytkowania.

Niedogodności:

  • kompilacja może wymagać dodatkowych bibliotek, które trzeba będzie przeszukać w Internecie
  • jeśli masz jakieś pytania podczas korzystania z tego oprogramowania, będziesz musiał poszukać odpowiedzi na forach w Internecie.

Koncepcja Open Source opiera się na poprawie niezawodności i jakości oprogramowania poprzez wykrywanie i korygowanie błędów przez wielu użytkowników. Położony w otwarty dostęp Projekt open source jest stale testowany przez ogromną liczbę programistów.

Google od dłuższego czasu szeroko wdraża technologię open source. Wszystkie jej projekty tego typu, jest ich około 200 (początkowo Kubernetes został tu opracowany, a następnie przekazany w zarząd Fundacji Cloud Native Computing), są dostępne na firmowym portalu GOOGLE OPEN SOURCE. Zasób zawiera nie tylko kody programów, ale także dokumentację dotyczącą ich użycia i obsługi. To, jak szeroko można wykorzystać kod open source, określa licencja, zwykle umieszczana bezpośrednio w tekście programu.

Apple stara się zwiększyć liczbę aplikacji dostępnych dla Apple poprzez open source w języku Swift. Obecna wersja języka ma obecnie ograniczenia: aby przesłać swój program do AppStore, musisz kupić licencjonowanego Swifta. Wszystkie niezbędne informacje o języku są dostępne na stronie swift.org oraz w języku magazyn w chmurze GitHub. Wydano Swift dla Linuksa.

Shareware

Niektóre programy rozpowszechniane bezpłatnie mają ograniczenia:

  • według czasu pracy
  • według liczby uruchomień
  • według funkcjonalności

Aby ograniczyć czas działania i liczbę uruchomień, stosuje się ochronę próbną - specjalne liczniki. Jako oprogramowanie o ograniczonej funkcjonalności udostępniana jest wersja demonstracyjna lub wersja z ograniczoną obsługą. Czasami programista wstawia do kodu programu reklamę, która utrudnia pracę z pakietem. Aby się pozbyć baner reklamowy, będzie musiał zapłacić.

Przykłady programów z licencją shareware:

  • Archiwizator WinRAR (30 dni)
  • Antywirus Nod32 (30 dni)

AcrobatReader to przykład programu o ograniczonej funkcjonalności. Ten program, dolny segment pakietu AdobeAcrobat, umożliwia tylko przeglądanie plików PDF. Aby w pełni pracować z tego typu plikami, musisz kupić więcej pełna wersja Akrobata.

Duzi programiści udostępniają swoje produkty za darmo do użytku osobistego w celach edukacyjnych. Jeśli planujesz używać ich oprogramowania do celów komercyjnych, musisz kupić licencję.

Na przykład Oracle umożliwia bezpłatne pobranie pakietu dystrybucyjnego DBMS i narzędzi do pracy z nim. Jednocześnie nakładane są ograniczenia na wielkość tablicy przetwarzanych danych. Ale do studiowania zasad pracy z bazą danych i rozwijania umiejętności pisania procedur ta wersja pracy z oprogramowaniem jest odpowiednia.

Właściwie pobierając „źródła” oprogramowania open source – open source – musisz być przygotowany na poniesienie pewnych kosztów, aby z niego korzystać. Nie musisz kupować licencji, ale będziesz musiał zapłacić za pracę programistów, którzy będą tworzyć na jej podstawie produkty oprogramowania do konkretnego zadania.

wnioski

Kupując licencjonowane płatne oprogramowanie, automatycznie otrzymujesz możliwość złożenia wniosku pomoc techniczna do programisty i regularnie, w razie potrzeby, aktualizuj swój produkt. Aby zainstalować go na komputerze, nie trzeba mieć głębokiej wiedzy z zakresu IT.

Podczas instalowania bezpłatnego oprogramowania zwróć uwagę na datę jego utworzenia/aktualizacji i sprawdź, czy nie ma wirusów. Takie programy są używane zarówno przez informatyków, jak i użytkowników komputerów PC na różnych poziomach.

Projekty open source są interesujące dla osób lubiących programowanie i profesjonalistów. Zazwyczaj teksty tych programów można pobrać za darmo. Skompilowanie modułu wykonywalnego i stworzenie dla niego odpowiedniego środowiska pracy wymaga pewnych umiejętności informatyka.

Niewątpliwą zaletą projektów open source jest ich niezależność od dostawcy, duże firmy wolą na ich podstawie tworzyć oprogramowanie korporacyjne. Jest to szczególnie istotne dla korporacji państwowych ze względu na możliwe trudności w pozyskiwaniu własnych produktów ze względu na sankcje gospodarcze. Elementem zniechęcającym do przyjęcia oprogramowania open source jest pewna niepewność związana z: bezpieczeństwo informacji: mogą wystąpić problemy podczas przechodzenia certyfikacji w FSTEC.

Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
TAk
Nie
Dziękuję za opinię!
Coś poszło nie tak i Twój głos nie został policzony.
Dzięki. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!