Atvirojo kodo užduotys. Teisių naudoti atvirojo kodo programinę įrangą licencijų tipai

Peteris Van Valkenburgas, Monetų centro tyrimų vadovas ir „Zcash Foundation“ direktorių tarybos narys, paaiškina, kodėl Atvirojo kodo programinės įrangos kūrimas yra svarbus siekiant sukurti pasitikėjimą ir užtikrinti saugumą blockchain tinkluose.

Visų pagrindinių kriptovaliutų ir atvirų blokų grandinės projektų kompiuterinis kodas yra sukurtas kaip atvirojo kodo programinė įranga. Reguliavimo institucijos ir politikos formuotojai, bandantys suprasti kriptovaliutas, bet nesusipažinę su tokia programine įranga, gali būti suklaidinti manydami, kad šias sistemas kuria (ir turėtų kurti) viena ar daugiau komercinių įmonių. Nors daugelis gerai žinomos programinės įrangos iš tiesų yra kuriamos tokiu būdu (pvz., Microsoft Windows ar Oracle RDBMS), atvirojo kodo projektų atveju taip nėra, o šis skirtumas gali ir turėtų formuoti visuomenės nuomonę. Atvirojo kodo programinė įranga kuriama bendradarbiaujant, platinama laisvai, skelbiama atvirai ir kuriama kaip bendruomenės produktas, o ne vienos įmonės ar asmens nuosavybė. Šiuo atveju nėra monopolio, nėra vienos įmonės ar asmens, kuris sukurtų ir parduotų programinę įrangą ar ją valdytų. Kaip nėra vienos bendrovės, kuriai priklausytų Bitcoin tinklas, taip pat nėra vienos įmonės, kuri gamintų programinę įrangą, kuri veikia prie interneto prijungtuose kompiuteriuose, kad sudarytų tinklą. Šis decentralizavimas turi tam tikrų esminių privalumų, kuriuos gali būti sunku suprasti žmonėms, kurie nėra susipažinę su programinės įrangos kūrimu. Norint geriau suprasti atvirojo kodo galią ir pobūdį, gali būti naudinga įgyti įžvalgos apie vieną ypač sėkmingą atvirojo kodo programinės įrangos dalį. Mes kalbame apie Linux operacinę sistemą.

Atviras šaltinis visur

Sunku apskaičiuoti, kiek kartų per dieną naudojate „Linux“, nes būtent šia operacine sistema veikia dauguma serverių internete. Kai lankotės „Facebook“, „Google“, „Pinterest“, „Wikipedia“ ir tūkstančiuose kitų pagrindinių svetainių, paslaugų, kurias jums teikia šios (tokios skirtingos) svetainės, susiduriate su kompiuteriais, kuriuose greičiausiai veikia „Linux“ operacinė sistema. Linux galima rasti daug arčiau; Tikėtina, kad turite jį po ranka. Tarkime, „Android“ išmaniųjų telefonų operacinė sistema yra pagrįsta „Linux“. Jei turite „Chromebook“, vadinasi, naudojate „Linux“ pagrindu veikiantį nešiojamąjį kompiuterį. Ši operacinė sistema vis dažniau naudojama televizoriuose, termostatuose, multimedijos sistemose lėktuvuose, automobiliuose ir kt.

Kodėl tai įdomu? Nes Linux nėra vieno programuotojo ar net programuotojų grupės produktas; skirtingai nei „MacOS“ ar „Windows“, ją sukūrė ne viena ar net keliolika korporacijų. „Linux“ turi tūkstančius bendradarbių. Kaip pranešė ne pelno siekianti organizacija „Linux Foundation“, skatinanti atvirą operacinės sistemos kūrimą, 2015 m. maždaug 14 000 kūrėjų iš daugiau nei 1 300 skirtingų įmonių pateikė kodo fragmentus. Vien 2015 m. 2 355 kūrėjai pirmą kartą dalyvavo tobulinant kodą. Taigi ekstrapoliuojant galima skaičiuoti, kad iki 2017 metų prisidėjo apie 18 tūkst. žmonių ir šis skaičius augs.

Kas būtų pagalvojęs net prieš penkerius metus (1991 m.), kad pasaulinio lygio operacinė sistema tarsi burtų keliu gali būti sujungta į vieną visumą iš kelių tūkstančių laisvai samdomų kūrėjų darbo fragmentų, išsibarsčiusių visame pasaulyje ir sujungtų tik vaiduokliškomis interneto gijomis?

Atvirojo kodo privalumai

Savo knygoje Raymondas kalba apie tai, kaip atvirasis šaltinis yra revoliucinis būdas kurti technologijas. „Linux“, kurioje tūkstančiai nepriklausomų kūrėjų dirba viešo bendradarbiavimo režimu, yra atvirojo kodo modelio pavyzdys. Kriptovaliutos laikosi to paties modelio, tačiau apie tai kalbėsime toliau.

Raymondas pabrėžė keletą atvirojo kodo modelio pranašumų. Svarbiausi mūsų diskusijos kontekste yra šie:

  • Kiekviena gera programinė įranga prasideda tenkinant asmeninį kūrėjo norą. Daugumą atvirojo kodo projektų kūrėjų motyvuoja noras asmeniškai naudoti savo kuriamus produktus. Jų nesaisto sutartis, įpareigojanti ką nors sukurti kitam; jie turi asmeninį poreikį, kurį patenkina. Taigi atsiranda kokybiškai skirtinga motyvacija, generuojanti išsamias problemos žinias.
  • Geri programuotojai žino, ką rašyti. Didieji žino, ką perrašyti (ir panaudoti dar kartą). Kai plėtra vykdoma atvirai, galima išvengti pertekliaus, galima nustatyti ir supaprastinti probleminį, sudėtingą ar perteklinį kodą.
  • Kai prarandate susidomėjimą programa, paskutinė jūsų pareiga yra perduoti ją į kompetentingo įpėdinio rankas. Žmonės prisijungia prie atvirojo kodo projekto ir palieka jį pagal savo interesus ir kompetencijas. Niekas neužstringa dirbdamas prie nebeįdomių projektų. Atsiranda naujos galvos, siūlančios skirtingus požiūrius į ilgalaikes problemas ar naujas plėtros perspektyvas.
  • Matyti vartotojus kaip kitus kūrėjus yra lengviausias būdas tobulinti kodą ir efektyviai derinti programinę įrangą. Daugelis atvirojo kodo vartotojų padeda nustatyti problemas ir netgi pateikia sprendimus. Riba tarp atvirojo kodo programinės įrangos vartotojo ir gamintojo yra neryški: darbas su programine įranga yra skaidrus, vykdomas viešai, o kūrimo procese dalyvauti gali visi.
  • Jei bus pakankamai didelė beta versijos bandytojų ir kūrėjų bazė, beveik bet kokia problema bus greitai nustatyta, o jos sprendimas tikriausiai kažkam bus akivaizdus. Šis postulatas vadinamas Linuso įstatymu, pagerbiant Linusą Torvaldsą, Linux branduolio kūrėją, kuris ilgą laiką išliko pagrindiniu šios operacinės sistemos kūrėju. Kai kodo kūrimo procesas yra uždarytas, kūrėjai rizikuoja praleisti silpnąją vietą arba nepastebėti tam tikros klaidos. Kuriant patyrusiems vartotojams, turintiems unikalią perspektyvą, padidėja klaidų identifikavimo ir ištaisymo tikimybė, todėl atvirojo kodo programinė įranga tampa saugesnė ir atsparesnė.

Šios plėtros rezultatas yra labai patikimas programinės įrangos kodas, kurį vartotojai sukuria vartotojams. Tikslas yra ne sukurti kažką, kas praturtintų produktus gaminančią ir parduodančią įmonę, o greičiau išspręsti problemą, kuri yra pakankamai dažna, kad su malonumu prisidėtų didelė talentingų programuotojų bendruomenė. Žmonėms, neturintiems programavimo įgūdžių, šis modelis labai naudingas. Atrodo, kad nemokama programinė įranga atsiranda iš oro, laisvai prieinama visiems ir nuolat atnaujinama tol, kol ekspertų lygio vartotojai taip pat domisi ja.

Teisė ir nemokama programinė įranga

Dabartiniai teisės aktai palaiko ir kai kuriais atvejais skatina atvirojo kodo programinės įrangos kūrimą. Ji, kaip ir visa programinė įranga, yra saugoma autorių teisių, tačiau jos autoriai išleidžia kodą pagal licenciją, leidžiančią bet kam jį naudoti ir modifikuoti be specialaus leidimo ar nemokant jokio nemokėjimo autoriams (tai yra Masačusetso technologijos instituto sukurta licencija). – MIT).

Kai kurios licencijos apima reikalavimus, kad programinės įrangos išvestiniai produktai turi būti išleisti tomis pačiomis sąlygomis. Šios schemos dėka atvirojo kodo bazė auga ir plinta. Šis reiškinys žinomas kaip nemokama programinės įrangos licencija arba LGPL-3 – mažoji bendroji viešoji licencija.

Atviras šaltinis kriptovaliutose ir žetonų projektuose

„Linux“ gali būti didžiausias ir svarbiausias atvirojo kodo modelio pavyzdys, tačiau yra ir kitų. Tai apima visus pagrindinius kriptovaliutų ir „blockchain“ projektus. Visi jie kuria kompiuterių tinklus, leidžiančius dalyviams susitarti dėl bendrų duomenų (kriptovaliutų blokų grandinė).

Programinė įranga, suteikianti bet kuriam dalyviui galimybę prisijungti prie tinklo, vadinama klientu, ir tai yra atvirojo kodo programinė įranga. Dažnai kliento programinę įrangą kuria keli nesusiję dalyviai kaip paprasčiausią tinklo programinės įrangos versiją (tai yra vadinamasis etaloninis klientas), kurios pagrindu galima gauti programinę įrangą, piniginę, mainus ar kitą su tinklu suderinamą programinę įrangą. pastatytas.

„Bitcoin Core“ klientas yra daugiau nei 450 nepriklausomų kūrėjų, kurie į kodą įnešė daugiau nei 15 000 indėlių, darbo rezultatas. Programinę įrangą galima nemokamai naudoti ir modifikuoti pagal MIT nemokamos programinės įrangos licenciją, o visą kūrimo istoriją galima peržiūrėti viešoje „Github“ saugykloje – debesies paslauga, leidžianti bet kam susikurti paskyrą, įkelti naują kodą ir stebėti pakeitimus. Jei jūsų sukurta saugykla yra atvira viešai peržiūrai, komentarams ir pakeitimų pasiūlymams, jums net nereikia mokėti už „Github“ paskyrą.

Viešoji saugykla taip pat seka vadinamąsias pradinio kliento šakes. Šakutė sukuria originalios programinės įrangos kloną, kurį vėliau galima modifikuoti vienu ar kitu tikslu nekeičiant pradinės saugyklos. Kūrėjai gali laisvai naudoti „Bitcoin Core“ saugyklą „Github“, kad sukurtų konkrečias programas, suderinamas su „Bitcoin“ (pavyzdžiui, piniginę išmaniesiems telefonams), arba naują kriptovaliutą, kuri nebesuderinama su „Bitcoin“ tinklu ir reikalaujanti sukurti naujas kriptovaliutų tinklas (pavyzdžiui, tai buvo su Litecoin ar Zcash). Iki šiol pradinis Bitcoin Core klientas buvo pašalintas daugiau nei 10 000 kartų, o atsiradusios naujos saugyklos rodo, kad išvestinių produktų kūrimas tęsiasi.

Šiuo metu „Ethereum“ turi mažiausiai 121 saugyklą, kurių kiekviena skirta tam tikram projekto aspektui (pavyzdžiui, programavimo kalbos išmaniosioms sutartims rašyti, grafinės naršyklės, skirtos galutiniam vartotojui sąveikauti su Ethereum tinklu, suderinami klientai, skirti dalyvauti projekte. tinklas ir pan.). Yra ne mažiau kaip aštuoni projektai, skirti kurti su Ethereum suderinamus klientus, o populiariausiuose klientuose (go-ethereum ir Parity) dirba šimtai nepriklausomų kūrėjų. „Ethereum“ kodą ir visą jo istoriją, kaip ir „Bitcoin“ kodą ir istoriją, galima viešai peržiūrėti „Github“ ir kitose internetinėse saugyklose, o visas kodas išleidžiamas pagal LGPL-3 licenciją, todėl visi būsimi išvestiniai darbai turi būti išleisti pagal ta pati licencija.

Netgi neseniai komercinių startuolių skatinami projektai rodo įsipareigojimą laikytis atvirojo kodo tikėjimo. „Zcash Company“ kuria „Zcash“ protokolą per viešąją saugyklą. Keletas pagrindinių kūrėjų nedirba įmonėje, o specialiai sukurta ne pelno organizacija siekia užtikrinti, kad būtų laipsniškas perėjimas nuo įmonės vadovaujamos plėtros prie bendruomenės skatinamos plėtros. „Zcash“ šaltinio kodo bazė išleista pagal MIT licenciją. „Filecoin“ kūrėja „Protocol labs“ ketina sukurti panašų atvirą modelį ir jau išbandė jį savo IPFS projekte, dirbdama su kodu atvirose saugyklose ir išleisdama jį pagal MIT licenciją.

Kodėl atvirasis šaltinis yra svarbus

Kriptovaliutos ir viešosios blokų grandinės gali suteikti funkcionalumą, kuris būtų reguliuojamas, jei jis būtų iš vienos korporacijos. Centralizuotos skaitmeninės valiutos emitentai, tokie kaip Liberty Reserve arba E-gold, buvo finansinės tarnybos ir turėjo užsiregistruoti JAV iždo finansinių nusikaltimų vykdymo administracijoje ir gauti pinigų siuntėjo licenciją kiekvienoje valstijoje. Jei tokie žetonai parduodami siekiant pritraukti investuotojus, jie gali būti vertybiniai popieriai, tokiu atveju reikės registruotis JAV vertybinių popierių ir biržų komisijoje. Šie apribojimai yra prasmingi, nes centralizuotos paslaugos kelia pavojų, kad schemos centre esanti šalis neįvykdys savo pažadų tinkamai išbandyti produktą ir užtikrinti jo saugumą.

Tačiau tokios technologijos kaip Bitcoin gali pasiūlyti panašias funkcijas, nes yra atviri ir patentuoti tinklai. Čia nėra jokios korporacijos. Vartotojai prisijungia prie šių tinklų, o atvirojo kodo programinė įranga skatina juos bendradarbiauti. Galiausiai visi dalyviai susitaria dėl visų duomenų, reikalingų valiutai sukurti. Decentralizacija remiasi dviem ramsčiais: atviro konsensuso mechanizmais ir atvirojo kodo programine įranga. Jei kodas nebūtų atvirojo kodo, kaip dalyviai (žmonės, kurie vienas kito nepažįsta internete) galėtų suprasti sistemą, prie kurios prisijungia, ir ja pasitikėti?

Tiesą sakant, žetonų projektai, pagrįsti patentuotu kodu, gali būti tiesiog centralizuotos paslaugos, kurios slepiasi po profesionaliu žargonu ir „blockchain gobbledygook“. Tačiau „tikrieji“ projektai turi kodą, kuris sukuria decentralizuotą tinklą, leidžiantį dalyviams pasitikėti vieni kitais, turėti bendrą motyvaciją ir bausti sukčius, o pats yra decentralizuotas. Jis sukurtas prieš šimtus entuziastų, yra prieinamas naudoti ir modifikuoti visiems pasaulyje ir yra visiškai nepriklausomas nuo įmonių interesų.

Kompiuterinės įrangos gamintojų pastangos skatinti sprendimus, remiamas galinga rinkodaros pagalba, tapo plačiai žinomos atvirojo kodo programinė įranga(atvirojo kodo programinė įranga). Šiuolaikinėje oficialioje rusų kalboje šis reiškinys paprastai vadinamas nemokama programinė įranga(SPO).

Koncepcijos esmė susideda iš kelių atvirojo kodo programinės įrangos kūrimo ir platinimo principų:

  • šaltinio kodų prieinamumas visiems;
  • platinimo licencijavimo politika, pagrįsta viena iš bendruomenės patvirtintų licencijų (žr. opensource.org);
  • galimybę tiesiogiai dalyvauti kuriant ir patiems taisant programinės įrangos klaidas;
  • galimybė keisti kai kurias programinės įrangos funkcijas ir prisitaikyti prie naujų sąlygų (priklausomai nuo pakeitimų prieinamumo visai bendruomenei);
  • maksimalus suderinamumas su atvirais standartais;
  • gebėjimas dirbti įvairiose operacinėse sistemose ir keliose platformose (cross-platform).

Šie principai naudojami kuriant daugumą

SPO. Verta paminėti, kad yra pastebimas skirtumas tarp Laisvas Ir Laisvas BY. Nepaisant to, kad dauguma atvirojo kodo programinės įrangos licencijų numato nemokamą platinimą, vien šios savybės nepakanka, kad programinė įranga būtų laikoma nemokama.

Atvirasis kodas jau laimėjo keletą svarbių pergalių prieš stipriausius patentuotos programinės įrangos gamintojus. Tiksliau, žiniatinklio serveris Apache gerokai lenkia panašius kitų įmonių produktus (įskaitant Microsoft) rinkos dalis dėl mažų sąnaudų, nepriklausomumo nuo tiekėjų, daugybės vartotojų, turinčių administravimo patirties, ir kūrėjų paramos. Linux pagal tiekimo apimtis pralenkė visas kitas rūšis Unix platformai Intel,įskaitant ilgametę vadovybę SCO. Atvirojo kodo DBVS užima tvirtą poziciją atvirojo kodo operacinių sistemų ir populiarių žemos klasės interneto sprendimų rinkose. Grėsmė patentuotai programinei įrangai kyla iš atvirojo kodo programinės įrangos privalumų, kurie yra panašūs į interneto, t.y. atvirumas, prisitaikymo laisvė ir kt.

Nemokama programinė įranga jau yra plačiai naudojama serverių operacinėse sistemose, interneto infrastruktūroje, žiniatinklio programų serveriuose, duomenų bazių valdymo sistemose mažoms įmonėms ir skyriams, pagrįstose žiniatinklio duomenų bazėmis su dinamine tinklalapių generavimu, techninėse ir įterptosiose skaičiavimo sistemose bei serverių įrenginių programinėje įrangoje. Kalbant apie interneto infrastruktūrą, reikia pastebėti, kad daugumoje įrenginių veikia operacinės sistemos ir kita atvirojo kodo programinė įranga. Šie įrenginiai apima domenų vardų serverius, maršrutizatorius, jungiklius, ugniasienes, šliuzus, apkrovos balansavimo priemones, taikomųjų programų ir duomenų bazių serverius ir kt.

Atsižvelgiant į šiuos pasiekimus, atvirojo kodo programinė įranga kelia grėsmę įmonėms, kurių pagrindinis pajamų šaltinis yra klientų prieigos mokesčiai ir patentuotos programinės įrangos licencijavimo mokesčiai. Atvirasis šaltinis suteikia programinei įrangai aparatinės įrangos rinkos pasenimo ir komercinės įrangos verslo modelį – modelį, prie kurio tradiciniam programinės įrangos pardavėjui, ypač lyderiui, sunku prisitaikyti.

Daugelis pardavėjų, naudojančių atvirojo kodo verslo modelius, iš pradžių nebuvo tradiciniai programinės įrangos tiekėjai. Augant atvirojo kodo rinkos daliai ir augant jos pozicijai strateginėse internetinėse rinkose, senos programinės įrangos tiekėjai atpažįsta atvirojo kodo keliamas grėsmes ir naujų verslo modelių teikiamas galimybes. Žinoma, tradiciniai programinės įrangos tiekėjai turi galimybę visiškai arba iš dalies pritaikyti šiuos verslo modelius, priklausomai nuo jų produktų asortimento. Tačiau net ir tokiu atveju atvirasis šaltinis kelia apčiuopiamą ir labai realią grėsmę programinės įrangos įmonių verslui.

Yra keturios pagrindinės atvirojo kodo grėsmės uždaroms įmonėms.

  • Kainų spaudimas. Kadangi atvirojo kodo licencijoms iš esmės reikalingas nemokamas programinės įrangos ir jos modifikacijų platinimas, panašių tradicinių produktų kainas reikia sumažinti, kad neatsiliktų nuo atvirojo kodo programinės įrangos ir kovotų su rinkos dalies praradimu. Pavyzdžiui, SCO negali imti 2000 USD Unix platformai Intel, kol Linux galima nemokamai, a Microsoft monopolizuoja stalinių kompiuterių sektorių. Tačiau tradiciniai pardavėjai gali iš dalies susigrąžinti savo nuostolius, gamindami savo programinės įrangos produktus geresnius nei SP O ir imdami už tai papildomą mokestį.
  • Visai geras funkcionalumas.„Pakankamai gera“ programinė įranga (bet ne pati geriausia) gali iš dalies išstumti produktus iš tradicinių programinės įrangos pardavėjų, kurie pernelyg dažnai yra skirti masinei rinkai. Sudėtingesnės (ir brangesnės) funkcijos ankstyvosiose kūrimo stadijose visada yra skirtos palyginti nedidelei specialistų vartotojų grupei. Tačiau net ir šioje rinkoje veikiantys gamintojai vis tiek turi aiškiai suprasti, kad labai išvystytos programinės įrangos rinka plėsis ir gilės. Jei išplėstinės funkcijos nesugeba pritraukti didesnio vartotojų rato, klientai natūraliai įsigys atvirojo kodo alternatyvas, nors ir mažiau išvystytas. Labai didelėse masinėse rinkose dominuojantys atvirojo kodo programinės įrangos tiekėjai, be savo tiekimo apimties didinimo, turi daug galimybių augti diegdami papildomas produktų ir paslaugų strategijas. Pats masinės rinkos dydis užtikrina mažesnes kainas dėl didelių tiekimo apimčių, o tai leidžia galutiniams vartotojams gauti nemažą pelną net ir šiek tiek pabrangus jų produkcijai.

Kai kuriais atvejais atvirojo kodo programinė įranga savo funkcionalumu netgi gali pranokti tradicinius produktus. Pavyzdžiui, Apache tapo pirmuoju iš žiniatinklio serverių, įdiegusių tarp tiekėjų populiarią interneto funkciją IP slapyvardis leidžia vienoje sistemoje talpinti kelis interneto domenų vardus.

  • "Tinklo efektai" sąlygotas masinio naudojimo programinės įrangos ir įrankių žinių ir studijų. Naujos technologijos naudotojų mokymo išlaidos sudaro didelę visų nuosavybės išlaidų dalį, viršijančią paties programinės įrangos produkto kainą. Įmonė, turinti didelę vartotojų bazę, susipažinusią su produktu ir su juo susijusiais įrankiais, gali panaudoti šį žinojimą išleisdama naujas versijas arba įeidamas į gretimas rinkas. Šio tipo tinklo efektas gali skirtis priklausomai nuo vartotojo tipo – programinės įrangos kūrėjų naudojamų API, sistemos administratoriai tvarko specifinius administravimo įrankius, vartotojai naudoja grafines vartotojo sąsajas, o vadovai užmezga ryšius su pardavėjais. Susikūręs šis atvirojo kodo sprendimų partnerių ir vartotojų tinklas nebėra sunaikintas ir leidžia išspręsti smulkesnes rinkodaros problemas, tokias kaip pritraukti adherenus ir klientų lojalumą.
  • Standartizacijos slėgis. Paskutinė atvirojo kodo judėjimo grėsmė yra jo įrankiai ir kultūra, kuri savo priešu laiko visas tradicinių programinės įrangos gamintojų sukurtas technologines kliūtis.

Pastaruoju metu sparčiausiai besivystanti sritis programinėje įrangoje yra vadinamoji "komercinisatviro kodo", tie. JV O remia paprastos komercinės įmonės. Korporacija turėtų būti laikoma viena iš šios krypties lyderių saulė, kuri vysto keletą didelių projektų šiame sektoriuje: „OpenSolaris“ OS DBVS MySQL biuro komplektas OpenOffice.org ir virtualizacijos aplinka Virtuali dėžutė. Paprastai yra keletas tokios programinės įrangos versijų, įskaitant komercinę. Mokėdamas už licenciją vartotojas gauna techninę pagalbą, o kai kuriais atvejais – specialius patogiam darbui reikalingus įrankius, kurių pagal atvirąją licenciją nėra. Tai yra, smulkiems poreikiams įmonės gali naudoti nemokamas arba nemokamas programinės įrangos versijas, o kai užklausos padaugėja, pirkti komercinius plėtinius nieko nekeisdamos savo infrastruktūroje ir programose. Taigi komercinė atvirojo kodo programinės įrangos versija tiesiogiai konkuruoja su, pavyzdžiui, tradicinių įmonių plėtra Microsoft, kuri aktyviai kuria specialias licencijavimo schemas, skirtas naudoti interneto aplinkoje (kalbame apie serverio programinę įrangą).

Dėl to atvirojo kodo programinė įranga internete atlieka sistemos formavimo vaidmenį, palaiko ir plėtoja pagrindinius tinklo kūrimo principus. Be to, atvirojo kodo programinės įrangos naudojimas yra aktualus ir orientuojantis į paslaugų teikimą, o ne į prekių pardavimą. Todėl kuriant interneto sistemas verta orientuotis į atvirus standartus ir juos diegiančią programinę įrangą, nes tik taip atsiras galimybė plėtoti verslą ir įgyti naujų galimybių elektroninėse rinkose.

Atvirojo kodo programinės įrangos naudojimas interneto technologijoms palaikyti yra natūralus ir būtinas mastelio, globalumo ir suderinamumo savybių požiūriu. Pavyzdžiui, serverių ar kitų infrastruktūros įrenginių skaičiaus didinimas nereikalauja papildomų investicijų į programinę įrangą, o tai suteikia didesnį lankstumą nei naudojant patentuotą programinę įrangą. Tai ypač aktualu, kai programinės įrangos kaina viršija projekto techninės įrangos komponentą. Globalumo ir suderinamumo reikalavimai įgyvendinami dėl gero kelių platformų atvirojo kodo programinės įrangos palaikymo ir atvirų standartų naudojimo, leidžiančio išlaikyti aukštą suderinamumo lygį net su daugeliu rinkoje konkuruojančių produktų ir platformų.

Atsižvelgiant į šiuolaikinius paslaugų programų, pagrįstų interneto technologijomis, plėtrą, atvirojo kodo programinė įranga kartu su nebrangiais kompiuteriais (nettopais ir nešiojamaisiais kompiuteriais) gali žymiai išstumti tradicines stalinių ir mobiliųjų sistemų, kurių pagrindas yra operacinė sistema. Windows ir tradiciniai biuro komplektai. Naudojant lengvą, tinkintą OS su branduolio pagrindu veikiančia GUI Linux o šiuolaikinės interneto naršyklės leidžia atlikti daugumą kasdienių užduočių tinklo platformose naudojant tik atvirojo kodo programinę įrangą.

Atvirojo kodo programinės įrangos sėkmė yra nepaprastai didelė. Ji nepagailėjo net didelių komercinės programinės įrangos gamintojų. IBM, Hewlett-Packard, Oracle ir Microsoft pripažino jo įtaką ir kai kuriais atvejais perėmė jo metodus. Panašu, kad dauguma įmonių, turinčių IT funkciją, jau yra pakankamai susipažinusios su atvirojo kodo produktais ir dažnai jais aktyviai naudojasi.

Tačiau atvirojo kodo programinės įrangos paplitimas vis dar kelia daugiau klausimų nei atsakymų. Taigi pabandykime atsakyti į populiariausius.

Kas yra atvirojo kodo programinė įranga?

Grįžkime į 1997 m. Talentingas Linux operacinės sistemos kūrėjas Bruce'as Perensas rengia dokumentą, susijusį su Debian Linux platinimo versijos paruošimu ir platinimu. Vėliau jis pašalino visas nuorodas į Debianą ir pristatė koncepciją, šiandien žinomą kaip atvirojo kodo apibrėžimas. Be kita ko, Apibrėžimo dokumente buvo nurodyta, kad atvirojo kodo programinė įranga kūrėjams turi būti platinama be autorinio atlyginimo, platintojai privalo visiems suteikti nemokamą prieigą prie programų šaltinio kodo, o visi tolesni programų patobulinimai ir atnaujinimai taip pat turėtų būti teikiamos tomis pačiomis sąlygomis.

Iš esmės atvirojo kodo programinės įrangos judėjimas yra artimas Laisvosios programinės įrangos judėjimo, kurį 1983 m. pasiūlė Richardas Stallmanas, giminaitis. Pagrindinis jos tikslas buvo nemokamas programinės įrangos platinimas, išlaisvinant ją nuo standartinių komercinių programų apribojimų. Nemokamos programinės įrangos platinimo taisykles reglamentuoja Bendroji viešoji licencija (GPL), kurios trečiasis leidimas buvo patvirtintas 2006 m. spalį.

Šiandien visame pasaulyje naudojama daugybė skirtingų Atvirojo kodo iniciatyvos licencijų, kurių kiekviena turi savo specifines taisykles, kurias įmonės, svarstančios naudoti atvirojo kodo programinę įrangą, turi ištirti. Paprastai šios taisyklės nenustato griežtų apribojimų tiems, kurie nori pasiekti atvirojo kodo programas. Kalbant apie platinimo reikalavimus, jiems reikia skirti daugiau dėmesio, kad būtų išvengta galimų problemų, susijusių su licencijavimo taisyklių pažeidimu.

Kodėl atvirojo kodo programinė įranga?

Pirmoji priežastis, kodėl įmonės žiūri į atvirojo kodo programinę įrangą, yra labai paprasta – kaina. Ir atvirojo kodo modelio IG tai aiškiai parodo. Atvirojo kodo programinę įrangą galima atsisiųsti, įdiegti ir naudoti visiškai nemokamai. Iš pradžių mažos sąnaudos pritraukė kūrėjus, kurie norėjo išbandyti naujus įrankius ar kurti naujas programas neinvestuodami pinigų. Naujoji laisvė paskatino daugelį jų palaikyti atvirojo kodo programinės įrangos judėjimą. Todėl visame pasaulyje kartu su tūkstančiais kitų projektų pradėjo atsirasti pramoninio lygio atvirojo kodo programinė įranga, tokia kaip Linux operacinė sistema, Apache žiniatinklio serveris, Java programų serveris JBoss ir Eclipse kūrimo aplinka.

Dešimtojo dešimtmečio pabaigoje įmonės vadovybė pagaliau pradėjo kreipti dėmesį į atvirojo kodo programinę įrangą. Nuolat mažėjant IT biudžetams, kūrėjai gyrėsi naudojant atvirojo kodo programinę įrangą pasiekta kokybe ir taupymu, o daugelis įmonių pradėjo rimtai svarstyti apie atvirojo kodo programinės įrangos komponentų naudojimą įmonių projektuose. Pirmosios didelės įmonės, įdiegusios atvirojo kodo programinę įrangą, buvo „The Weather Channel“, „Cendant Travel“, „Employease“ ir „Sabre“.

Pasaulinio interneto augimo metu atvirojo kodo programinė įranga leidžia įmonėms greitai išplėsti elektronines operacijas, nuolat neperkant naujų komercinės programinės įrangos licencijų. Privalumai taip pat apima kūrimą ir bandymus. Tokiu būdu įmonės gali išbandyti naujus dalykus be papildomų išlaidų, susijusių su komercine programine įranga ir biudžeto laužymo procesu, kurio tokiais atvejais reikia.

Tikriausiai ne paslaptis, kad tik nedaugelis naudojasi šaltinio kodo prieinamumu atvirojo kodo produktuose. Atrodytų, teisė laisvai keisti ir taisyti programinės įrangos kodą turėtų būti laikoma rimtu pliusu, tačiau iš tikrųjų įmonėms, užuot prižiūrėjus programinę įrangą pačioms, daug lengviau pasikliauti kūrėjų bendruomene, kuri operatyviai atnaujina ir derina programinę įrangą. visų populiarių produktų programos kodas.

Atvirojo kodo programinės įrangos atmetimo priežastys

Argumentus prieš atvirojo kodo programinę įrangą paprastai lengva suskaičiuoti ant vienos pusės.

    Nemokamos programinės įrangos gavimas yra tarsi „nemokamų šuniukų dovanojimas“. Ją galite atsisiųsti ir įdiegti visiškai nemokamai, tačiau mokymai ir pagalba naudotojams kainuoja daugiau nei bendra komercinės programinės įrangos kaina arba panaši suma. Šis argumentas, kurį Microsoft ypač mėgsta pateikti, veikia pasąmonės lygmenyje. Ar tai teisinga, ar ne, priklauso nuo konkrečios situacijos ir nuo to, kokią analitinę ataskaitą šiuo metu skaitote.

    Sunku organizuoti techninę pagalbą. Pirmosiomis atvirojo kodo judėjimo dienomis, kai kūrimą ir paramą daugiausia vykdė savanorių grupės arba „bendruomenės“, tai iš tikrųjų buvo neatidėliotina problema. Tačiau nors daugelis organizacijų mano, kad bendruomenės paramos pakanka jų poreikiams patenkinti, šiandien joms yra daug kitų galimybių, įskaitant paramą dideliems atvirojo kodo projektams, kuriuos teikia Hewlett-Packard ir IBM. Dėl to teiginys, kad „uždusti, užtenka užkimšti vieną gerklę“, netenka savo aktualumo.

    Naujų funkcijų kūrimas užtrunka ilgiau, palyginti su komercine programine įranga. Tai tikrai labai priklauso nuo konkretaus jūsų naudojamos programinės įrangos tipo. „Firefox“ žiniatinklio naršyklė yra geriausias pavyzdys, kaip greitai atvirojo kodo programinė įranga gali būti pritaikyta vartotojų poreikiams. Taip pat galite prisiminti, kaip greitai „Linux“ kūrėjai organizavo naujų technologijų, ypač USB prievadų, palaikymą. Šiuo atžvilgiu „Linux“ praktiškai neatsiliko nuo „Windows“. Tačiau kalbant apie įmonės programinę įrangą, mechanizmų, palaikančių naujausią vaizdo plokštę ar garso lustą, sukūrimas čia vaidina daug mažiau svarbų vaidmenį, palyginti su aukšto stabilumo ir našumo užtikrinimu.

    Tolimesnio vystymosi ir šakojimosi neapibrėžtumas. Didelė atvirojo kodo programinės įrangos licencijų įvairovė, taip pat galimybė aktyviam galutiniam vartotojui įsikišti į programos kodą, atgraso verslo klientus nuo tokių programų diegimo. Tačiau teisininkai atidžiai išnagrinėję atvirojo kodo taikomųjų programų licencijas sumažina daugumą šių baimių. Kai kurie atvirojo kodo programinės įrangos tiekėjai ir trečiųjų šalių įmonės netgi siūlo atlyginti žalą, todėl dėl jūsų naudojamų atvirojo kodo programų gali būti iškelta byla.

Kur pradėti?

Šiandien beveik visų tipų verslo programinė įranga yra prieinama kaip atvirojo kodo produktai, pradedant el. pašto serveriais ir baigiant VoIP sistemomis. Daugelis kompanijų pirmiausia atkreipia dėmesį į žiniatinklio programas, kuriose yra produktų, kurie egzistuoja gana ilgą laiką ir jau spėjo įrodyti savo vertę. Įprasta nuoroda yra į LAMP steką (Linux, Apache, MySQL ir PHP, Perl arba Python, priklausomai nuo konkrečios situacijos). „Unix“ tipo „Linux“ operacinė sistema tapo plačiai paplitusi. Vienas iš populiariausių interneto serverių šiandien yra „Apache“. MySQL duomenų bazių valdymo sistema sėkmingai konkuruoja su brangiais komerciniais produktais. Programavimo ir skriptų kalbos PHP, Perl ir Python yra plačiai naudojamos kaip įrankiai kuriant atvirojo kodo žiniatinklio programas. Atvirojo kodo Java pagrįstos svetainės dažnai remiasi JBoss taikomųjų programų serveriu. Kai susipažinsite su atvirojo kodo įrankiais ir atrasite panašumus bei skirtumus tarp jų ir komercinių produktų, atrasite ir kitų galimybių. Taip pat gali būti stebina sužinojus, kad jūsų kūrėjai kartais kreipiasi į tam tikrus atvirojo kodo produktus, prisiimdami atsakomybę.

Žinoma, taikomųjų programų serveriai yra puikūs, bet kaip su atvirojo kodo darbalaukio programine įranga?

Gana įprasta, kad galutiniai vartotojai naudoja įvairius atvirojo kodo darbalaukio įrankius. Ryškus tokio sprendimo pavyzdys yra „Mozilla Firefox“ žiniatinklio naršyklė. Kai kurios vyriausybinės ir komercinės organizacijos teikia pirmenybę „Sun OpenOffice“ biuro rinkiniui, o ne „Microsoft Office“. Tačiau nors kai kurie žaidėjai veržiasi į nežinomybę, savo staliniuose kompiuteriuose įdiegę „Linux“ operacinę sistemą, „Windows“ išlieka dominuojančia žaidėja. Galutiniam vartotojui patogios „Linux“ versijos (pvz., „LinSpire“) negali sulaužyti status quo, nes vartotojų mokymas reikalauja laiko ir pinigų. Be to, dauguma komercinių programinės įrangos paketų, nuo kurių priklauso daugelis kompanijų, yra sukurti pirmiausia „Windows“, o antra – „Linux“ (jei „Linux“ versija apskritai išleidžiama).

Ar galima parduoti atvirojo kodo produktus?

Taip, žinoma, bet atvirojo kodo iniciatyvos taisyklės draudžia trukdyti parduoti savo kodą kitiems. Tačiau daugelis įmonių randa būdų užsidirbti pinigų iš atvirojo kodo produktų. Daugelis, be tikrojo kodo, siūlo įmonių palaikymo paslaugas, kurias įmonės labai lengvai perka. Kiti pateikia dvi programinės įrangos kodo versijas: vieną atvirą ir laisvą, o kitą, kurioje yra papildomų naudingų funkcijų, yra patentuotų komponentų ir už jas turi sumokėti klientai. Šis mišrus modelis tampa vis populiaresnis. Jį aktyviai naudoja tokios kompanijos kaip „SourceFire“, „SugarCRM“, „Alfresco“ ir daugelis kitų.

Kiti atvirojo kodo ištekliai

Daug atvirojo kodo programų galima rasti internete:

    Šviežia mėsa. Didžiulė atsisiunčiamos programinės įrangos duomenų bazė, didžioji jos dalis yra atvirojo kodo forma.

    SourceForge. Milžiniška atvirojo kodo programinės įrangos kūrėjų svetainė, jungianti tūkstančius atvirojo kodo projektų. Kai kurie iš jų toliau vystosi, o kiti jau nustojo egzistuoti.

Atvirojo kodo ištekliai – oficialūs ir neoficialūs

    Atvirojo kodo iniciatyva. Ne pelno siekianti organizacija, kuri savo pagrindiniu uždaviniu laiko tolesnį atvirojo kodo programinės įrangos kūrimą ir finansuojama iš daugelio šioje srityje jau seniai veikiančių žaidėjų.

    Atvirojo kodo technologijų grupė. Neabejotinai pirmaujanti atvirojo kodo technologijų propaguotoja pasaulyje. Būtent šiai asociacijai priklauso naujienų svetainė „Slashdot“, taip pat ištekliai „SourceForge“ ir „FreshMeat“.

    Atvirojo kodo rizikos valdymas. Siūlo mechanizmus, užtikrinančius norminių reikalavimų laikymąsi.

    Atvirojo kodo kūrimo laboratorijos. Organizacija, kurios pagrindinis tikslas yra populiarinti Linux operacinę sistemą tarp verslo klientų.

Markas Robertsas
Produktų valdymo direktorius
QNX programinės įrangos sistemos
el. paštas: [apsaugotas el. paštas]

anotacija

Šiame straipsnyje daugiausia dėmesio skiriama naudai, strateginiams sumetimams, kliūtims ir galimybėms, susijusioms su atvirojo kodo programinės įrangos naudojimu komerciniuose produktuose. Naudodami Eclipse pagrįstą integruotą kūrimo aplinką (IDE) kaip pavyzdį, aptarsime apsauginių ir neapsauginių programinės įrangos šaltinio kodo licencijų skirtumus. Integruojant arba susiejant atvirojo kodo kodą su „patentuotu“ uždarojo kodo kodu, dažnai reikia būti atsargiems ir atsargiems. Taip pat reikia žinoti įvairius teisinius klausimus, pavyzdžiui, galimą patento pažeidimą. Taip pat pabandysime paaiškinti, kodėl pagrindiniai atvirojo kodo programinės įrangos principai informacinių technologijų (IT) aplinkoje netaikomi komerciniams įterptiesiems produktams.

QNX Momentics kūrimo aplinka kaip atvirojo kodo programinės įrangos naudojimo pavyzdys

Grįžtant į 2001 m., kai daugelis programinės įrangos firmų sunkiai išgyveno dėl bendro IT akcijų rinkos žlugimo, ypač susijusių su internetiniu el. verslu, QNX Software Systems priėmė strateginį sprendimą pradėti kurti naują integruotą kūrimo aplinką (IDE). rinkai. Bendrovė jau turėjo solidžios patirties kuriant daugybę įrankių, naudojamų kuriant įterptuosius įrenginius, tačiau įmonės vadovybė suprato, kad IDE sukūrimas padės išlikti prieš aršią konkurenciją. Sprendimą sukurti IDE taip pat lėmė pasikeitę klientų reikalavimai. Verslo veiklos nuosmukio metu pinigų stokojantys klientai labiau domėjosi sprendimais, galinčiais padidinti našumą ir padaryti juos mobilesnius (lankstesnius) atliekant darbus, o tai pagerintų bendrą ekonominį efektyvumą.

QNX IDE kūrimas buvo „statymas į ateitį“, nes projekto kūrimo sąnaudos ir pastangos tuo metu buvo nepasiekiamos daugeliui įterptinių sistemų įrankių pardavėjų. Laimei, QNX glaudžiai bendradarbiavo su IBM įvairiuose įterptosios rinkos segmentuose. Glaudžiai bendradarbiaudama, IBM pasidalijo su QNX savo planais išleisti atvirojo kodo integruotą kūrimo aplinką, kuri vėliau tapo Eclipse platformos pagrindu.

IBM pasiūlė panaudoti QNX patirtį, kad pritaikytų IDE technologiją kūrėjų, kuriančių įterptąsias programas C/C++ kalbos pagrindu, poreikiams. QNX ekspertai beveik iš karto atkreipė dėmesį į įtikinamus atvirojo kodo IDE naudojimo pranašumus. Pavyzdžiui, tokioje aplinkoje būtų galima:

  • pašalinti priklausomybę nuo vieno pardavėjo, kuri paprastai siejama su būtinybe licencijuoti langų platformą;
  • pasiūlyti pirminio programos kodą pritaikyti pagal klientų poreikius;
  • pritraukti rimtus pramonės veikėjus teikti paramą ir sukurti papildomų technologijų ir papildinių ekosistemą;
  • suteikti klientams stabilią architektūrą, kuri gali palaikyti produktų diferenciaciją;
  • leisti įterptųjų įrenginių kūrėjams naudoti standartines darbo vietas kaip kūrimo platformą, tinkančią darbui su informacinių technologijų programomis (įvairiose programose).

Galiausiai buvo atskira galimybė, kad IDE platforma gali išpopuliarėti ir tapti de facto standartu, leidžiančiu QNX per tokią platformą užimti rinką didelėms kūrėjų ir trečiųjų šalių įrankių ekosistemoms.

Atvirojo kodo projekto Eclipse.org įkūrimas

2001 m. lapkritį Borland, IBM, Merant, QNX Software Systems, Red Hat ir SUSE įkūrė konsorciumą Eclipse. 2004 m. pradžioje Stewardų valdyba reorganizavo Eclipse konsorciumą į ne pelno korporaciją, pavadintą Eclipse Foundation.

Nuo pat pradžių Eclipse buvo tikrai atviro kodo projektas. Projektas pasiūlė ir nemokamas atvirojo kodo technologijas, ir prieigą prie labiausiai išsilavinusių ir pažangiausių savo srities kūrėjų bendruomenės. Taigi ši technologija pasirodė esanti universali platforma, skirta integruoti visų tipų kūrimo priemones. Jis pagrįstas atvira, išplečiama architektūra ir yra aiškiai licencijuotas kaip nemokamas, nemokamas produktas. Bendruomenės indėlis į „Eclipse“ projektą yra pagrįstas standartiniu atvirojo kodo programinės įrangos (OSS) kūrimo modeliu, tačiau dauguma narių taip pat prisideda prie komercinių plėtočių, pagrįstų „Eclipse“ platforma.

Įrankių saugyklos projektas

2001 m. gruodžio mėn. QNX pradėjo kurti savo QNX® Neutrino® RTOS, pagrįstą Eclipse platformos IDE. Įmonės vizijoje IDE turėjo turėti didesnį funkcionalumą, daugiausia dėmesio skirti darbui su C/C++ kalbomis ir turėti giliai integruotus derinimo, profiliavimo, analizės ir įterptųjų programų kūrimo įrankius. Nuo pat pradžių QNX komanda įsivaizdavo, kad tai yra daugiafunkcis, daugiakalbis IDE, palaikantis kelias įrankių platformas. Tai apėmė:

  • kelios įrankių platformos: Windows, Solaris, QNX Neutrino RTOS (self-hosted development);
  • kelios tikslinės architektūros: ARM, MIPS, PowerPC, SH-4, x86;
  • programavimo kalbos C, C++, Java.

Nuo tada IDE toliau plėtėsi, įtraukdama Linux platformos palaikymą ir papildomų procesorių architektūrų palaikymą, įskaitant XScale procesorius.

Projektas buvo pradėtas „ekstremalaus programavimo“ stiliumi. Iš įmonės buvo atrinkta 12 geriausių inžinierių komanda. Jiems buvo suteiktas specialus kambarys, jie buvo izoliuoti nuo visų trukdžių, projektas jiems buvo suteiktas visiškai.

Komandai buvo suteikti būtini sprendimų priėmimo įgaliojimai ir griežtas, rizikingas darbo grafikas, kad per 16 savaičių būtų išleista produkto beta versija, o iki 2002 m. liepos 4 d. – komercinė versija. Grupė laikėsi visų numatytų terminų. ir pagal grafiką išleido naują produktą, pavadintą QNX Momentics® IDE, parodantį atvirojo kodo programinės įrangos potencialą sutrumpinti pateikimo į rinką laiką.

Nuo idėjos iki prekės pristatymo – mažiau nei 7 mėn

Remdamasi „Eclipse“ platforma, QNX komanda per šešis mėnesius sukūrė labai galingą ir visapusišką įterptosios programinės įrangos kūrimo IDE. IDE palaikė kelių platformų kūrimą kelioms įrankių platformoms ir kelioms programavimo kalboms, taip pat palaikė populiariausias įterptųjų tikslinių įrenginių procesorių plokštes. Naudodamas Eclipse platformą, QNX sugebėjo:

  • naudoti GNU kompiliatorius ir komandinės eilutės įrankius kryžminiam kūrimui;
  • teikti palaikymą trečiųjų šalių papildiniams, pvz., IBM WebSphere įterptoms Java programoms ir Rational ClearCase modeliu pagrįstam kūrimui;
  • sukurti papildomus įrankius sistemoms kurti, tiksliniams įrenginiams valdyti, atminčiai analizuoti, profiliuoti sistemas ir programas ir kt.

Fig. 1 paveiksle pateikiamas pavyzdys, kaip naudojant Eclipse platformą sumažinamos IDE sukūrimo sąnaudos, o tai leidžia įmonėms sutelkti dėmesį į aukštesnius plėtros lygius, kur sukuriamos tikros naujovės. Pavyzdžiui, naudojant „Eclipse“ platformą, QNX galėjo lengvai sukurti keletą novatoriškų vizualizacijos įrankių, kurie gali gilintis į įterptąją sistemą ir parodyti jos elgesį.

Grąžinkite bendruomenei

Sėkmingo atvirojo kodo projekto stiprybė – kūrėjų bendruomenės bendradarbiavimas ir nuolatinis kodų bazės tobulinimas. Jei įmonė priima ir tinkamai naudoja atvirojo kodo kodą, ji tiesiog privalo prisidėti prie bendruomenės. Šiuo tikslu QNX perėmė vadovavimą Eclipse CDT projektui 2002 m. birželio mėn.

Eclipse CDT (C/C++ Development Tools) projekto tikslas – sukurti bendrą sąveikių C/C++ kalbos įrankių rinkinį Eclipse platformai. „Eclipse CDT“ buvo laikomas atviro kodo projektu, kurio valdymo teises suteikė „Eclipse Corporation“. Norėdami pradėti CDT projektą, QNX paaukojo savo kūrimo išteklius ir šaltinio kodą QNX Momentics IDE projektui. Rational ir Red Hat, kaip bendruomenės nariai, taip pat suteikė didelę paramą projektui.

Ryžiai. 1. Naudodami Eclipse platformą įrankių pardavėjai gali sutelkti savo dėmesį į aukščiausią darbo krūvos lygį, kur sukuriamos tikros naujovės.

QNX ir toliau palaiko CDT projektą, kuris nuo kuklių 80 000 kodo eilučių išaugo iki 700 000 kodo eilučių. 2006 m. pradžioje Eclipse CDT projekto pažangos žurnalas apskaičiavo, kad QNX indėlis yra 52%. Toliau atėjo IBM su 36% indėliu. CDT projektas yra antras pagal populiarumą korporacijos „Eclipse“ projektas po pačios „Eclipse“ platformos.

Ar galite sau leisti „paaukoti“ kodą?

Gali atrodyti, kad „padovanoti“ savo kodą reiškia elgtis priešingai sveikam protui. Tačiau, jei jūsų produkto funkcijos pasirodė naudingos, kodėl gi neprisidėjus prie atvirojo kodo bendruomenės. Atlikę šį žingsnį, galėsite pasinaudoti šiuo „standartinio“ diegimo pasiūlymu ir produkto palaikymo patirtimi. Galėsite pasinaudoti visos bendruomenės darbu, kuriuo siekiama tobulinti kodų bazę. Ši strategija gali atlaisvinti jūsų nuosavus išteklius, kad galėtumėte atlikti papildomus tyrimus, orientuotus į naujoviškus patobulinimus, kad jūsų gaminiams būtų suteikta papildomų funkcijų.

Be to, galite šiek tiek kontroliuoti „standartinės“ platformos kryptį – žinoma, uždirbate teikdami paslaugas bendruomenei! Jei vykdote projektą, elkitės kaip geras bendruomenės pilietis, gerbkite kitų nuomonę ir vertinkite kitų narių indėlį bei patarimus. Nemanykite, kad dėl kodo naudojimo kas nors bandys „pasirinkti jūsų kišenes“ ir perims jūsų vadovavimą platformos kūrimo krypčiai.

Pavyzdžiui, „QNX Software Systems“ strategija yra pasinaudoti savo dalyvavimu „Eclipse“, kuriant naujas funkcijas per standartizuotus išplėtimo taškus, jau esančius „Eclipse“ ir CDT platformose. Šiuo tikslu QNX ketina išlikti aktyviu Eclipse bendruomenės nariu, naudodamasis esama kodų baze ir trečiųjų šalių darbu (įskiepiais), kad padėtų patenkinti tikrus klientų poreikius kurdama savo patentuotus plėtinius. Aprašyta strategija parodyta fig. 2.

Ryžiai. 2. Savo darbu galite prisidėti prie bendruomenės darbo.

Privalumų santrauka

„Eclipse“ pagrindu sukurta įrankių platforma yra naudinga tiek programų kūrėjams, kaip QNX, tiek klientams, perkantiems platformos įrankius.

Nauda kūrėjams yra tai, kad sutrumpėja laikas, per kurį jų produktai patenka į rinką, ir galimybė gauti naudos iš kitų žmonių tyrimų (mažomis sąnaudomis). Į šiuos rezultatus gali būti įtrauktas aukštos kokybės kodas, klasifikuojamas kaip „švarus IP“, iš patikimų firmų, tokių kaip IBM ir QNX. Kitas kūrėjo pranašumas yra tai, kad jis gauna paprastą ir aiškią licencijavimo schemą, įskaitant komercines teises ir tam tikrą patentinę apsaugą. Be to, kūrėjas gauna galimybę dirbti su keliomis Eclipse palaikomomis OS platformomis, taip pat turi aiškiai apibrėžtus Eclipse projekto išplėtimo taškus.

Klientai, įsigiję „Eclipse“ pagrįstą IDE, naudojasi įrankių platforma, sukurta įterptųjų programų kūrimui, su stipriu kryžminio kompiliavimo palaikymu, lengvu derinimu ir plėtiniais, skirtais tikslinėms sistemoms valdyti. Kliento kūrimo komanda įvertins daugybę funkcijų, kurios palengvina darbą, trumpą mokymosi laiką, gerą produkto našumą ir tvirtą platformą, galinčią valdyti didelius projektus. Klientams taip pat gali būti naudinga naudoti Eclipse platformą savo programose (pvz., RCP, eRCP ir kt.).

„Eclipse Corporation“ ateitis

„Eclipse Corporation“ yra aktyvi ir gyvybinga bendruomenė. Ji nuolat pristato naujus projektus, suteikia naujoms architektūroms prieinamas jau įsitvirtinusioms, novatoriškoms įmonėms, o net mažos įmonės gali gauti komercinės naudos iš Eclipse platformos ekonomiškai kurdamos naujus papildinius, kurie praplečia esamas funkcijas (žr. 3 pav.).

Ryžiai. 3. „Eclipse Corporation“ yra gyvybinga ir sparčiai auganti papildinių kūrėjų bendruomenė.

Atvirojo kodo licencijų palyginimas

Ne visos atvirojo kodo programinės įrangos licencijos yra vienodos. QNX padarė protingą žingsnį naudodamas „Eclipse“ viešąją licenciją. Šį pasirinkimą iš dalies lėmė įterptųjų klientų poreikiai ir iš dalies noras kontroliuoti (ir gauti naudos) technologiją, kuri išskiria jos produktus.

Pelno nesiekianti Atvirojo kodo iniciatyva () pasiūlė naudingą 10 punktų atvirojo kodo apibrėžimą. Šiuo metu svetainėje yra daugiau nei 50 OSI patvirtintų licencijų, įskaitant Eclipse viešąją licenciją. Šiose licencijose gali būti reikšmingų skirtumų, kuriuos turėtumėte žinoti. Šie skirtumai gali turėti didelės įtakos kūrėjų intelektinei nuosavybei (IP) ir jų gebėjimui ją apsaugoti. Tai aktualiausia naudojant atvirojo kodo kodą (arba atvirojo kodo išvestinius produktus) įterptuosiuose įrenginiuose.

Gynybinė ir neapsaugota licencija

Pagal apsauginės licencijos sąlygas, pvz., GPL v2, išvestiniai kūriniai gali būti platinami tik kartu su atitinkamu šaltinio kodu. Saugumo licencija garantuoja, kad kai šaltinio kodas yra atviras, jis išliks atvirojo kodo visose vėlesnėse kartose ir išvestiniuose darbuose. Kaip paaiškinsime vėliau, šis reikalavimas įterptųjų sistemų atveju sukelia tam tikrų problemų.

Neapsauginių licencijų pavyzdžiai yra originalios MIT ir BSD licencijos. Neapsaugos licencijos išsaugo savininko autorių teises, tačiau suteikia plačias teises vartotojui, įskaitant teisę keisti ir neribotą nemokamą programinės įrangos platinimą (arba asmeninį naudojimą).

Ką reiškia "viruso licencija"

Kai kurie žmonės GPL vadina „viruso licencija“. Šis pavadinimas atsirado dėl „išvestinės plėtros“ sąvokos teisinio apibrėžimo neapibrėžtumo. Griežtas apibrėžimo aiškinimas reiškia, kad jei net nedidelė GPL licencijuoto kodo dalis yra įterpta į patentuotą programą, visa programa turi būti licencijuota kaip GPL. Iškart iškyla analogija su virusu.

Klausimai dėl kompensacijos gavimo

Pastaruoju metu IP žalos atlyginimas (IP Indemnification) tapo pagrindine kūrėjų diskusijų tema. Atsakydami į tai, kai kurie atvirojo kodo pardavėjai paskelbė, kad apsaugos klientus nuo ieškinių, susijusių su patentų ar autorių teisių pažeidimu. Ir naujausiose atvirojo kodo licencijose yra numatytos nuobaudos vartotojams, kurie bando apginti savo patento teises prieš kitus kodų bazės vartotojus.

Pagrindinės problemos, su kuriomis susiduriama komercializuojant atvirojo kodo programinę įrangą

Įterptųjų ir IT programų palyginimas

Atvirojo kodo pramonės sėkmę paskatino IT organizacijų įdiegimas Linux. „Linux“ naudojimo pranašumai atsirado veikiant santykinai vienalytėje ir stabilioje aparatinėje įrangoje (dažniausiai x86 šeimoje) ir naudojant lanksčią, daug išteklių turinčią kompiuterinę platformą.

Su integruota programine įranga viskas yra visiškai kitaip. Ši programinė įranga veikia daugybėje įrenginių, turinčių fiksuotą funkcijų rinkinį, kartu naudojant platų aparatinės įrangos spektrą su skirtingomis architektūromis. Įterptųjų įrenginių kūrėjai savo konkurencinį pranašumą dažnai grindžia konkrečiu funkcijų rinkiniu, dydžiu, našumu, kaina, baterijos veikimo trukme, patikimumu, sąveikumu ir išplečiamumu. Šios išskirtinės savybės paprastai įdiegiamos žemo lygio programinėje įrangoje, kurią Linux atveju reikia tiesiogiai susieti su OS branduoliu. Žemo lygio programinės įrangos pritaikymas kliento poreikiams yra norma, o ne išimtis, todėl kūrėjai dažnai pasiekia reikiamas funkcijas pakeisdami OS branduolį. Taip pat naudojamas tiesioginio susiejimo metodas įterpiant į kodo fragmentus, siekiant sumažinti bibliotekų kūrimo išlaidas. Dėl šios praktikos kartu labai sunku apsaugoti patentuotą kodą pagal tokias licencijas kaip GPL.

Paprastai šios licencijavimo problemos neturi įtakos IT programoms, nes patentuota, konkrečiai įmonei skirta programinė įranga neapsiriboja įmonės ribomis ir naudojama tik vidiniams poreikiams. Įterptųjų įrenginių atveju išvestinė programinė įranga visada platinama per juos, atsižvelgiant į atvirojo kodo licencijų „priverstinai atidaryti“ sąlygą, kuri gali kelti pavojų pagrindiniams vertingų atvirojo kodo pasiūlymų aspektams.

Be to, įterptieji gaminiai dažnai turi ilgą tarnavimo laiką tiek gamybos, tiek naudojimo metu. Įterptam produktui, kuriam taikomos atvirojo kodo sąlygos, kyla didesnė rizika, įskaitant ilgalaikio techninio palaikymo trūkumą, galimas saugumo problemas ir IP pažeidimus.

Licencijavimo problemos

Neaiškus teisinis statusas

Nepaisant raminančių kai kurių atvirojo kodo licencijų šalininkų žodžių, daugelis pagrindinių problemų, dėl kurių įterptųjų sistemų kūrėjai reiškia susirūpinimą, dar nebuvo plačiai išbandytos teismų praktikoje. Kaip minėta, „išvestinio darbo“ apibrėžimas yra labai svarbus siekiant užtikrinti, kad būtų laikomasi tam tikrų licencijos sąlygų, nors daugelis asmenų ir organizacijų, priimančių atvirojo kodo sąlygas, menkai supranta šią sąvoką arba sąmoningai ją ignoruoja.

Kai kurie sprendimai, leidžiantys komercinių produktų pardavėjams įdiegti „patentuotas“ tvarkykles „Linux“ (pvz., Įkeliamus branduolio modulius), labiau remiasi „jis pasakė, ji pasakė“ argumentais, o ne tiesiogine nuoroda į licencijos sutarties tekstą. Tiesą sakant, tokie vairuotojai, naudojantys LKM modulius, pavojingai apeina GPL licencijos reikalavimus. Kalbant apie kraštutinumą, galima būtų suprasti, kad Linux kodų bazė gali būti pateikta kaip nenaudinga daugeliui praktinių programų, nebent joje būtų kai kurios iš šių patentuotų tvarkyklių. Tokia situacija gali gana efektyviai nuvertinti GPL licencijos idėją.

Kompensacijos už intelektinės nuosavybės teisės pažeidimą nėra

Daugeliu atvirojo kodo naudojimo atvejų yra reali galimybė, kad netyčia pažeisite kieno nors kito patento teises. Kai kuriose atvirojo kodo licencijose yra aiški nuoroda į patentus, o numanomos licencijos negali būti vertinamos. Turite atskirai licencijuoti bet kokius patentus, apimančius, pavyzdžiui, atvirojo kodo kodekus, kurie įgyvendina MP3 algoritmus ar kitus patentuotus sprendimus. Tuo tarpu „blogieji berniukai“ (įskaitant „Microsoft“) yra užsiėmę patentų portfelio kūrimu, kuris, daugelio ekspertų nuomone, gali būti naudojamas „šaudyti“ į atvirojo kodo šalininkus.

Kai kuriose licencijose yra aiškių nuorodų į patentus. Pavyzdžiui, „Eclipse“ viešojoje licencijoje aiškiai minimos patentų teisės ir joje yra nuostata dėl nuobaudų, jei kas nors bando ginti patento teises kitu būdu. „Eclipse“ taip pat deda daug pastangų peržiūrėdamas kodą ir nustatydamas jo šaltinį iš licencijavimo, patento ar autorių teisių perspektyvos.

Papildomos pastangos išsaugoti IP

Norėdama naudoti atvirojo kodo kodą, įmonė turi įdėti daug pastangų šiose srityse:

  • Produktų platinimo valdymas;
  • licencijų valdymas;
  • teisinių konfliktų dėl kliento įsipareigojimų sprendimas;
  • Tinkamas dėmesys teisiniams klausimams: IP teisių grynumo palaikymas, atvirojo kodo IP teisių tikrinimas, kodo kilmės šaltinio identifikavimas, licencijų versijų pokyčių, pvz., GPL v3, stebėjimas ir kt.

Priimti klientų reikalavimus

Kai kurie stambūs klientai, susidūrę su atvirojo kodo programinės įrangos sudėtingumu ir netikrumu, atsisakė dirbti su produktais, kuriuose yra atvirojo kodo. Jei norite dirbti su tokiais klientais, turite gauti arba pasiūlyti jiems įtraukti komercines kodo licencijos sąlygas.

IP problemos

Ar jūsų atvirojo kodo licencijos sąlygos apima intelektinę nuosavybę, dėl kurios jūsų produktas skiriasi? Jei taip, jūsų IP gresia.

Jei jūsų įterptosiose sistemose naudojama jūsų programinės įrangos ir atvirojo kodo programinės įrangos mišinys, turite suprasti visų įterptosios programinės įrangos komponentų prigimtį, kilmę ir ryšius. Be tokio gilaus temos supratimo galite netyčia pažeisti kieno nors kito IP arba net prarasti teises į savo programinę įrangą.

Be patentų licencijavimo ir kompensacijos, įterptųjų sistemų ilgaamžė programinė įranga, palyginti aukšta pardavimo kaina ir fiksuotų funkcijų įterptųjų įrenginių pardavimo apimtis daro jas akivaizdžiu minėtų blogųjų berniukų ir pagrindinių konkurentų ieškinių dėl patento pažeidimo taikiniu.

Kaip rodo QNX Momentics IDE, atvirojo kodo programinė įranga turi daug tiesioginės naudos, įskaitant sutrumpėjusį pateikimo į rinką laiką, mažesnes kūrimo išlaidas ir didesnę laisvę pridėti papildomų funkcijų ir naujovių prie jūsų produkto. Jei siūlote savo programinę įrangą kaip paslaugą, kuri išsprendžia kokią nors kliento problemą, klientui nesvarbu, ar naudojote atvirojo kodo programinę įrangą, ar ne, jis tiesiog moka už jam reikalingą funkciją.

Tačiau turėtumėte suprasti skirtingų atvirojo kodo licencijų skirtumus ir pasirinkti tą, kuri atitinka jūsų taikomąją programą ir kliento poreikius. Be to, būkite pasirengę vykdyti pasirinktos programinės įrangos licencijavimo įsipareigojimus. Turėtumėte žinoti apie kitus IP reikalavimus (pvz., patentų teises), susijusius su programinės įrangos kodu. Būkite atsargūs dėl kodų bazės, kuri nerodo pranešimo apie IP pažeidimo pasekmes. Vietoj to ieškokite projektų, kuriuose siūloma kompensuoti galimą žalą ir kuriuose ekrane rodomas pranešimas apie pinigines aukas kodo kūrimui, siekiant kompensuoti išlaidas, susijusias su autorių teisių ar patentų pažeidimu ir pan. Taip pat įsitikinkite, kad jūsų naudojama atvirojo kodo programinė įranga atitinka jūsų intelektinės nuosavybės politiką, ir venkite apsauginių licencijų, kurios gali priversti jus atskleisti išskirtines kodo dalis. Jei jūsų produktas yra įterptas į sistemą, taip pat apsvarstykite galimybę pasiūlyti komercines licencijavimo sąlygas savo IP.

Atvirojo kodo naudojimas įterptiniuose įrenginiuose sukelia sudėtingesnių problemų nei naudojant tokią programinę įrangą IT programose, nes pirmoji parinktis yra pavojingesnė. Prieš nuspręsdami naudoti bet kokią atvirojo kodo programinę įrangą, apsvarstykite tikrąją jos nuosavybės kainą (TTCO) ir jos tinkamumą jūsų projektui.

Galiausiai prisijunkite prie atvirojo kodo vartotojų ir kūrėjų bendruomenės, kad išnaudotumėte visas jos galimybes!

Atvirojo kodo programinė įranga – tai programinės įrangos kūrimo būdas, kai kuriamų programų šaltinio kodas yra atviras, tai yra viešai prieinamas peržiūrėti ir keisti. Tai leidžia kiekvienam naudoti jau sukurtą kodą savo reikmėms ir, galbūt, padėti sukurti atvirojo kodo programą.

„Atvira“ licencija nereikalauja, kad programinė įranga visada būtų teikiama nemokamai. Tačiau daugelis sėkmingiausių atvirojo kodo programinės įrangos projektų vis dar yra nemokami.

Didžioji dauguma atviras programos yra vienu metu Laisvas(GNU GPL) ir atvirkščiai, nes atvirosios ir nemokamos programinės įrangos apibrėžimai yra panašūs, o dauguma licencijų atitinka abu.

Skirtumas tarp judesių atviro kodo Ir nemokama programinė įranga daugiausia priklauso nuo prioritetų. Atvirojo kodo programinės įrangos šalininkai pabrėžia atvirojo kodo efektyvumą programos kaip kūrimo metodas. Laisvos programinės įrangos šalininkai remiasi ideologiniais sumetimais ir mano, kad taip yra teises programų platinimas, modifikavimas ir studijavimas yra pagrindinis privalumas nemokama programinė įranga.

Microsoft Windows OS

Ryžiai. 39. OC Windows logotipas.

MS Windows (tariama Vindouz) yra Microsoft (Microsoft) operacinių sistemų šeima. „Microsoft Corporation“ vadovas – Bill Gates.

Nuo 1995 metų „Windows“ yra populiariausia operacinė sistema asmeninių kompiuterių rinkoje – de facto standartas. Iki 2005 m. „Microsoft Windows“ buvo įdiegta daugiau nei 89 % asmeninių kompiuterių.

Tačiau daugelis vartotojų pasirinko „Windows“ OS, nes nėra susipažinę su tokiomis alternatyvomis kaip „MacOS“, „Linux“, BSD. Rusijoje iki 2000-ųjų pradžios beveik visi asmeniniai kompiuteriai buvo parduodami su iš anksto įdiegta „Windows“ operacine sistema. Kova su piratinių programinės įrangos versijų plitimu paskatino susidomėjimą kitomis operacinėmis sistemomis. Pavyzdžiui, atsirado galimybė įsigyti asmeninį kompiuterį su iš anksto įdiegtu nemokama Linux OS.

„Windows“ versijos išleidimo chronologija


Windows 1.0 (1985)

1. Windows 2.0 (1987)

2. Windows/386 (1987)

3. Windows 3.0 (1990)

4. Windows 3.1 (1992)

5. Windows NT 3.1 (1993)

6. Windows NT 3.5 (1994)

7. Windows 95 (1995)

8. Windows NT 4.0 (1996)

9. Windows 98 (1998)

10. Windows 2000 (2000)

11. „Windows Me“ (2000)

12. „Windows XP“ (2001)

13. Windows 2003 (2003)

14. „Windows Vista“ (2007)

15. Windows darbinis pavadinimas Viena (2010)


Integruoti programinės įrangos produktai ir taikomoji programinė įranga

„Microsoft Windows“ operacinėje sistemoje yra standartinių programų, tokių kaip Internet Explorer naršyklė, „Outlook Express“ el. pašto programa, Windows Media Player.

Buvo daug ginčų ir diskusijų dėl tokių standartinių produktų įtraukimo į „Windows“ operacinę sistemą, nes tai yra rimta kliūtis priimti konkuruojančius produktus.

Ryžiai. 40. MS Office paketo logotipas.

MS Windows yra labai patogus ir įvaldytas daugelio vartotojų Microsoft Office programų paketas, įskaitant:

Tekstų rengyklė MS Word,

Stalo procesorius MS Excel,

Organizatorius MS Outlook,

Prezentacijų rengimo programa MS PowerPoint,

Duomenų bazių valdymo programa MS Access.

Nepamirškite, kad tiek Windows OS, tiek didžioji dauguma populiarių Windows taikomųjų programų turi autorių teisių licenciją, t.y. yra nuosavybės teise BY. Atitinkamai, kiekviena tokios programos kopija turi būti nupirkta už pinigus. Pavyzdžiui, 2006 m. pabaigoje „Windows XP Home Edition Russian BOX“ (SP2) kaina buvo 185 USD, „Office 2003“ rusiško kompaktinio disko kaina – 322 USD.

Naudodami nelicencijuotą (piratinę) programinę įrangą, apsaugotą autorių teisių licencija, pažeidžiate autorių teisių įstatymus.

OS GNU/Linux

Ryžiai. 41. GNU/Linux OS logotipas – Tux pingvinas.

GNU/Linux operacinė sistema (tariama „gnu Linux“) yra nemokama į UNIX panaši operacinė sistema. Paprastai dėl istorinių priežasčių ir dėl trumpumo ši sistema vadinama tiesiog „Linux“. Tai yra galingiausia MS Windows alternatyva, populiari kaip serveris ir pastaraisiais metais sparčiai populiarėjanti kaip stalinių kompiuterių operacinė sistema, nes Microsoft kontroliuoja, kaip XP ir Vista versijose laikomasi licencijuoto Windows OS naudojimo.

GNU/Linux operacinė sistema taip pat dažnai apima programas, kurios papildo šią operacinę sistemą, ir taikomąsias programas, kurios paverčia ją visaverte daugiafunkcine darbo aplinka.

Skirtingai nuo daugelio kitų operacinių sistemų, GNU/Linux neturi vieno „oficialaus“ paketo. Vietoj to, GNU/Linux yra daugybė vadinamųjų paskirstymus, kuriame GNU programos derinamos su Linux branduoliu ir kitomis programomis. Labiausiai paplitę platinimai pasaulyje:

Amerikos raudona KEPURĖ ir jo įpėdinis „Fedora Core“.;

vokiečių kalba SuSE;

Prancūzų kalba Mandriva(buvęs Mandrake);

Nenacionalinis tarptautinis platinimas Debian GNU/Linux;

Vienas iš seniausių platinimų Slackware;

Palyginti jaunas ir aktyviai besivystantis platinimas Gentoo;

Jaunas, bet perspektyvus platinimas Ubuntu Linux.

„Linux“ branduolio kūrėjas - Linas Torvaldsas. GNU/Linux neturi geografinio plėtros centro. Nėra organizacijos, kuriai priklausytų ši sistema; Nėra net vieno koordinavimo centro. GNU/Linux skirtos programos yra tūkstančių projektų darbo rezultatas. Dalis šių projektų yra centralizuoti, dalis sutelkti įmonėse, tačiau dauguma suburia programuotojus iš viso pasaulio, kurie vieni kitus pažįsta tik susirašinėdami. Kiekvienas gali susikurti savo projektą arba prisijungti prie esamo ir, jei pasiseks, darbo rezultatai taps žinomi milijonams vartotojų. Vartotojai dalyvauja testuojant nemokamą programinę įrangą ir tiesiogiai bendrauja su kūrėjais, o tai leidžia greitai rasti ir ištaisyti klaidas bei įdiegti naujas funkcijas.

Linux jau užėmė apie 30% Australijos serverių operacinių sistemų rinkos. Po australų atsiliko brazilai. Brazilijos vyriausybė nusprendė nebeleisti pinigų programinei įrangai ir pereiti nuo „Microsoft“ produktų prie atvirojo kodo sistemų, ypač „Linux“ OS. Pagrindinė pokyčių priežastis – ekonominė. Mūsų šalyje Linux rinka vis dar maža.

Failų sistema

Visa informacija kompiuteryje yra saugoma failuose, su kuriais veikia operacinė sistema.

Failas(failas) - tai pavadinta baitų seka, nuolatinio įvairių tipų informacijos saugojimo vieta.

Failai sutvarkyti katalogai, dar vadinami katalogais arba aplankais. Katalogas yra failas, kuriame saugoma informacija apie kitus failus: pavadinimas, dydis, sukūrimo data, failo adresas diske.

Bet kuriame kataloge gali būti bet koks skaičius pakatalogius, kurių kiekvienas gali saugoti failus ir kitus katalogus.

Kiekvienas diskas turi pagrindinį arba šakninis katalogas, kuriame yra visi kiti katalogai, vadinami pakatalogiais, ir kai kurie failai. Taigi jis yra sukurtas hierarchinė struktūra. Iškviečiamas katalogas, su kuriuo šiuo metu dirba vartotojas srovė.

Failai ir katalogai yra svarbiausi failų sistemos objektai. Failų sistema- nuostatai, nustatantys duomenų laikmenose organizavimo, saugojimo ir įvardijimo būdą. Jis apibrėžia fizinį failų saugojimo formatą. Konkreti failų sistema nustato failo pavadinimo dydį, didžiausią galimą failo dydį ir failo atributų rinkinį.

Duomenų suskirstymo į baitus būdas vadinamas Dokumento formatas. Norėdami skaityti failą, pvz., skaičiuoklę, turite žinoti, kaip baitai reiškia skaičius (formules, tekstą) kiekviename langelyje; Norėdami skaityti teksto rengyklės failą, turite žinoti, kurie baitai žymi simbolius, kokius šriftus ar laukus ir kitą informaciją.

Visi failai gali būti suskirstyti į dvi dalis - tekstą Ir dvejetainis.

Tekstiniai failai- labiausiai paplitęs duomenų tipas kompiuterių pasaulyje. Kiekvienam simboliui saugoti dažniausiai skiriamas vienas baitas, o tekstiniai failai užkoduojami naudojant specialias kodavimo lenteles.

Tačiau gryni tekstiniai failai tampa vis retesni. Žmonės nori, kad dokumentuose būtų paveikslėlių ir diagramų bei būtų naudojami įvairūs šriftai. Dėl to atsiranda formatai, kurie yra įvairūs teksto, grafikos ir kitų formų duomenų deriniai.

Dvejetainiai failai, skirtingai nuo tekstinių, juos ne taip lengva peržiūrėti ir, kaip taisyklė, juose nėra mums pažįstamų žodžių – tik daug nesuprantamų simbolių. Šie failai nėra skirti žmonėms tiesiogiai skaityti. Dvejetainių failų pavyzdžiai yra vykdomosios programos ir grafikos failai.

Kiekvienas diske esantis failas turi pavadinimą ( pilnas vardas), kurį sudaro 2 dalys: vardas Ir plėtiniai, atskirtas tašku.

Failo vardo plėtinys- pasirenkama simbolių seka, pridedama prie failo pavadinimo ir skirta failo tipui (formatui) nustatyti. Tai vienas iš įprastų būdų, kaip vartotojas arba kompiuterio programinė įranga gali nustatyti faile saugomų duomenų tipą.

Ankstyvosiose operacinėse sistemose plėtinio ilgis buvo apribotas iki trijų simbolių, šiuolaikinėse operacinėse sistemose šio apribojimo nėra.

Operacinė sistema arba failų tvarkyklė gali sukurti failų plėtinių ir programų susiejimą.

Kai vartotojas atidaro failą su registruotu plėtiniu, automatiškai paleidžiama tą plėtinį atitinkanti programa. Kai kurie plėtiniai nurodo, kad pats failas yra programa. Dažnai failo plėtinys vartotojui rodomas piktograma.

Vairuotojai

Su kompiuteriu galima susieti įvairius įrenginius: vaizdo plokštę, garso plokštę, spausdintuvą, skaitytuvą, žymeklio įrenginius, diskų įrenginius, skaitmeninius fotoaparatus, mobiliuosius telefonus... Kiekvienas iš jų turi savo komandų rinkinį – savo „kalbą“ . Tam, kad konkreti operacinė sistema galėtų valdyti konkretų įrenginį, jie pasitelkia „vertėjų“ programas, kurios, viena vertus, žino konkretaus įrenginio komandų kalbą, kita vertus, konkretaus veikimo kalbą. sistema, pagal kurią šis įrenginys turėtų veikti.

Ši programa vadinama vairuotojas(tvarkyklę) ir jį kartu su įrenginiu pateikia jo gamintojas. Aparatūros gamintojai, kaip taisyklė, savo svetainėse skelbia ir savo sukurtų įrenginių tvarkykles.