Fri programvara ( programvara med öppen källkod , engelsk fri programvara , även programvara libre eller libre ), fri programvara - programvara vars användare har rättigheterna ("friheter") till dess obegränsade installation, lansering, gratis användning, studier, distribution och modifiering (förbättring ), samt distribution av kopior och resultat av ändringen [1] . Om det finns exklusiva rättigheter till programvaran, förklaras friheter med hjälp av gratis licenser .
Precis som gratisprogram och fri programvara kan programvara med öppen källkod användas och vanligtvis erhållas gratis (men en viss distributör kan ta ut en avgift för att få kopior från honom, för leveranskanaler, media - CD- skivor eller tilläggstjänster). Freeware distribueras dock vanligtvis i en körbar form utan källkoder och är proprietär programvara , och för att programvara ska vara gratis (fri programvara) måste dess källkoder vara tillgängliga för mottagarna , varifrån det är möjligt att skapa körbara filer , tillsammans med lämpliga licenser. På grund av det faktum att ordet "försäljning" hänvisar till försäljning av originalet, och distribution av kopior för pengar, och betald licensiering (vanligtvis under icke-fria villkor) [2] , anser vissa fortfarande fri programvara som en delmängd av fri programvara.
Man skiljer ofta mellan fri ( gratis / libre ) och öppen källkod ( öppen källkod ) - även om tillgången på källkod för programvara med öppen källkod är obligatorisk, och många program med öppen källkod är också fri programvara, vilket gör fri programvara till en delmängd av programvara med öppen källkod. I praktiken är valet av namn ofta relaterat till språket som används och till målen om frihet eller öppenhet.[ förtydliga ] .
Den fria mjukvarurörelsen började 1983 när Richard Stallman skapade idén att användare skulle vara fria att använda programvara . 1985 grundade Stallman Free Software Foundation för att tillhandahålla en organisationsstruktur för att främja sin idé.
Affärsmodeller för fri programvara är vanligtvis baserade på principen om bemyndigande – till exempel nya applikationer, utbildning, integration, anpassning eller certifiering. Samtidigt är vissa affärsmodeller som fungerar med proprietär programvara inte kompatibla med fri programvara, särskilt de som tvingar användare att betala för en licens för att lagligt kunna använda mjukvaruprodukten.
I enlighet med modern lagstiftning i de flesta länder är en mjukvaruprodukt och dess källkod skyddad av upphovsrätt , vilket ger upphovsmännen och upphovsrättsinnehavaren (oftast är upphovsrättsinnehavaren den organisation som anställer upphovsmannen till tjänsteverken ) makten att ändra , distribuera, använda och uppföra programmet, inklusive fall när källkoden publiceras. Upphovsrättens makt i det moderna samhället är så stark att till och med studier eller försök att korrigera programvarufel genom att demontera kan åtalas av strafflagstiftning .
För att rädda användare av programvara från de problem som orsakas av partiskheten i lagstiftningen om skydd av immateriella rättigheter i riktning mot upphovsrättsinnehavaren, kan upphovsmän och upphovsrättsinnehavare överföra rättigheterna till de fyra handlingsfriheterna som anges ovan till användarna. Detta uppnås genom att släppa källkoden för programvaran under en av en speciell typ av licenser som kallas fria licenser . Trots att rättighetsinnehavaren enligt villkoren för fria licenser inte kan återkalla de tillstånd som beviljats användare, behåller upphovsmännen sina rättigheter garanterade enligt lag.
Fri programvara är lätt att kommersialisera – det finns många affärsmodeller som eliminerar behovet av att betala för kopior av programmet. Till exempel är en affärsmodell väldigt populär när en entreprenör kan tjäna pengar genom att tillhandahålla tekniska supporttjänster. Det finns ett annat kommersialiseringsalternativ för ägaren av den fria koden - implementering av mjukvaruprodukter under villkoren för en kommersiell licens, i fall klienten behöver integrera den fria koden i sin proprietära programvara och han inte vill avslöja sin utveckling.
Det speciella med programvara är att den produceras i en form - i form av källkod, och ofta distribueras och används i en annan - i form av körbara program, maskinkoder, från vilka det är omöjligt att unikt återställa källtexten . För att effektivt ändra ett program, fixa buggar eller till och med bara ta reda på exakt vad ett program gör och hur, är det nödvändigt att ha dess källkod, för när det kompileras till maskinkod förlorar programmet läsbarhet .
Till en början var att skapa programvara för datorer i första hand en akademisk sysselsättning. För datavetare var varje program resultatet av vetenskaplig forskning, på något sätt analogt med publiceringen av en artikel. Detta innebär att programmets källkod nödvändigtvis var tillgänglig för hela forskarsamhället, eftersom alla vetenskapliga resultat måste vara verifierbara , det vill säga bekräftas av andra forskare och vara öppna för kritik. Processen för mjukvaruutveckling liknade alltså i grunden den vetenskapliga processen: vetenskapsmannen tog befintliga program, korrigerade dem i enlighet med sina idéer och publicerade de korrigerade programmen - samtidigt som han fick ett nytt resultat.
Datortekniken har dock utvecklats inte mindre aktivt än mjukvara för dem. På 1970 -talet fanns det en enorm variation av olika datorarkitekturer, som också skilde sig åt i prestanda och pris. Naturligtvis måste en separat uppsättning mjukvara utvecklas för varje arkitektur. Sedan mitten av 1970-talet har de flesta amerikanska universitet använt PDP-10- arkitekturdatorer för akademisk utveckling , vilket tillåter anställda från olika universitet att använda varandras design på sina maskiner. I slutet av 1970-talet utvecklade anställda vid laboratoriet för artificiell intelligens vid Massachusetts Institute of Technology (MIT) sitt eget operativsystem Incompatible Timesharing System (ITS) för PDP-10 - (från engelska - "inkompatibelt tidsdelningssystem ”) och en mycket stor uppsättning program för henne. Källkoderna för programmen skrivna vid MIT var allmänt tillgängliga, anställda vid andra universitet använde sina källkoder och skickade korrigeringar till dem, all programvara i dessa laboratorier var helt akademisk.
Med tanke på det enorma utbudet av datorarkitekturer var programvara en integrerad del av själva maskinen, och långt ifrån den dyraste delen. Datortillverkarna försåg dem med huvudmjukvaran - åtminstone[ förtydliga ] med operativsystemet . Datortillverkning var ett vetenskapsintensivt, men i grunden kommersiellt företag.
I en situation där[ förtydliga ] mjukvara handlas i paritet med hushållsartiklar, den är inte längre bara föremål för lagarna för vetenskaplig utveckling, utan även egenskaperna hos materiella föremål som kan handlas, bytas ut, rätten att äga och använda som bör skyddas förordning.[ neutralitet? ] Så programvaran föll i kategorin immateriella rättigheter: det vill säga programmets källkod började betraktas som ett verk.
För att skydda[ okänd term ] deras intressen, dator- och mjukvarutillverkare använder licenser - en typ av avtal mellan upphovsrättsinnehavaren och användaren (köparen) av programvaran. Liknande avtal slöts med universitet: till exempel överfördes källkoden för programmen och rätten att ändra dem till universitetet, men det var förbjudet att distribuera dem utanför universitetet. Sådana begränsningar innebar att texterna i motsvarande program inte kunde diskuteras öppet i samhället, det vill säga att de inte fanns för vetenskaplig utveckling. Datorer och mjukvara hade också köpare utanför den akademiska världen, till exempel banker. Sådana användare det är inte så viktigt att få källkoderna till programmen, de är intresserade av programvaran som en färdig produkt och är villiga att betala pengar för pålitliga och bekväma program.
Datorer utvecklades dock mycket snabbt, och PDP-10 , som var ganska moderna på 1970 -talet, var redan föråldrade i början av 1980 -talet och släpade betydligt efter modernare maskiner i prestanda. Men för ingen av de nya arkitekturerna fanns det inte längre ett operativsystem och annan mjukvara utvecklad exklusivt i en akademisk miljö och enligt dess regler. Universiteten var nu tvungna att köpa nya datorer med ny programvara och följa licensvillkor som begränsade deras rättigheter att utveckla och distribuera programvara – med andra ord begränsa möjligheten till en vetenskaplig modell för att utveckla och distribuera programvara.
Vid den här tiden utvecklades de så kallade LISP-maskinerna vid MIT:s laboratorium för artificiell intelligens , som kunde tolka ett programmeringsspråk liknande LISP , ett utvecklat och lovande programmeringsspråk , på hårdvarunivå . Operativsystemet för sådana maskiner och all programvara för dem skrevs i LISP. I början av 1980-talet köpte några medlemmar av AI-labbet rättigheterna till LISP-maskiner och matematiksystemet Macsyma från MIT och grundade sina egna kommersiella företag för att vidareutveckla sig inom detta område. En hel del laboratoriepersonal gick till jobbet i dessa företag, varefter all deras vidareutveckling blev stängd för det vetenskapliga samfundet. De nya LISP-maskinerna distribuerades med licenser som förbjöd användare att ändra och omdistribuera källkoden. Program som brukade vara analoga med vetenskapliga publikationer för MIT-anställda har blivit en produkt som ägs av någon.
För en av personalen som är kvar på MIT AI Lab, Richard Stallman , verkade detta tillstånd som ett oacceptabelt brott mot den öppna vetenskapliga processen för mjukvaruutveckling. Han försökte på egen hand utveckla LISP-maskiner inom den gamla akademiska modellen och öppet implementera förändringar liknande de som gjordes under sluten kommersiell utveckling så att MIT:s LISP-maskiner kunde konkurrera med sina motsvarigheter. Naturligtvis detta försök att hänga med i den aktiva utvecklingen av hela företaget[ vad? ] var dömd att misslyckas.
Sedan, på jakt efter likasinnade, skapar Richard Stallman den ideella organisationen Free Software Foundation. Stiftelsens huvudmål var att bevara mjukvara, vars utvecklingsprocess alltid kommer att vara öppen och källtexterna alltid kommer att finnas tillgängliga. Det bredare målet för stiftelsen är att utveckla ett operativsystem som helt är öppen källkod. Genom att deklarera ett sådant mål ville Stallman i själva verket återgå till vad som tycktes honom vara ett idealiskt tillstånd när MIT arbetade på sitt eget operativsystem för PDP-10.
Operativsystemet som utvecklades under grunden skulle bli kompatibelt med UNIX -operativsystemet . I början av 1980-talet var UNIX i utbredd användning, inklusive i den akademiska världen. För det här operativsystemet fanns det många program fritt distribuerade i det vetenskapliga samfundet, så jag ville att dessa program skulle fungera på det nya - gratis - operativsystemet. Detta framtida operativsystem fick namnet GNU .
Free Software Foundation har tidigare delat in icke- fri programvara i halvfri programvara (en som skiljer sig från fri programvara endast genom att förbjuda kommersiell användning) och proprietär (proprietär, engelsk proprietär ) (som inte har alla fyra friheterna, även om kommersiell användning är tillåten); men denna uppdelning används inte längre [3] [4] .
Ibland inkluderar icke-fri programvara all " kommersiell programvara ", som betraktar fri programvara som en typ av fri programvara, men detta är inte sant: du kan dra nytta av programmet inte bara genom att sälja icke-fria licenser.
För att samverkan mellan utvecklare skulle ske enligt principen om vetenskapligt samarbete var det nödvändigt att säkerställa att källkoden för programmen förblev tillgänglig för läsning och kritik av hela forskarsamhället, samtidigt som författarskapet till verken bibehölls. För att göra detta formulerade Richard Stallman konceptet med fri programvara , som återspeglade principerna för öppen mjukvaruutveckling i det vetenskapliga samfundet som utvecklades vid amerikanska universitet på 1970-talet. Stallman angav uttryckligen dessa principer, som också är kriterierna för fri programvara . Dessa kriterier fastställer de rättigheter som fri programvara ger alla användare:
Möjligheten att fixa buggar och förbättra program är den viktigaste egenskapen hos fri och öppen programvara, vilket helt enkelt är omöjligt för användare av stängda proprietära program, även om buggar och defekter hittas i dem, vars antal vanligtvis är okänt för någon .
Endast ett program som uppfyller alla fyra av de listade principerna kan betraktas som fri programvara, det vill säga att det garanterat är öppet och tillgängligt för att uppgradera och åtgärda fel och defekter och inte har några begränsningar för användning och distribution. Det bör betonas att dessa principer endast stipulerar tillgängligheten av programkällkoder för allmänt bruk, kritik och förbättringar, och rättigheterna för den användare som fick programmets körbara eller källkod, men inte på något sätt de ekonomiska relationerna i samband med distributionen av program, inklusive antyder inte gratis . I engelska texter uppstår ofta förvirring här, eftersom ordet "gratis" på engelska betyder inte bara "gratis", utan också "gratis", och används ofta i samband med fri programvara , som distribueras utan att ta ut en avgift för användning, men är inte tillgänglig för ändringar av användare och communityn eftersom dess källkod inte publiceras. Sådan fri programvara är inte gratis alls. Tvärtom kan fri programvara distribueras (och distribueras) samtidigt som man tar ut en avgift, men samtidigt iaktta frihetskriterierna: varje användare ges rätt att få källkoden för programmen utan extra kostnad (förutom priset på mediet), modifiera dem och distribuera dem vidare. All programvara vars användare inte ges denna rättighet är icke-fri programvara, oavsett andra villkor.
Programvara med öppen källkod är en nyckelfunktion i fri programvara, så Eric Raymonds senare term " programvara med öppen källkod " verkar för vissa vara ännu bättre för detta fenomen än Stallmans ursprungliga "fria programvara". Stallman insisterar på skillnaden mellan dessa två begrepp, eftersom orden öppen källkod endast indikerar närvaron av en, inte den viktigaste (även om den är nödvändig för genomförandet av två av de fyra friheterna), enligt hans åsikt, av egenskaperna som är inneboende i gratis programvara - möjligheten att se källkoden. [5]
Efter att ha deklarerat kriterierna för fri programvara började medlemmar av Free Software Foundation distribuera sin programvara i enlighet med dessa principer utan någon dokumentation av detta: med andra ord, till en början distribuerades fri programvara utan licens alls. Prejudikatet som hände med Richard Stallman själv (se nedan) övertygade honom dock om att dokumentation var avgörande för fri programvara.
Richard Stallman utvecklade Emacs textredigerare baserat på källkoden från James Gosling . Sedan distribuerade Gosling fritt sin källkod till alla intresserade. Men vid något tillfälle sålde Gosling rättigheterna att distribuera Emacs till UniPress [6] , och företaget bad Stallman att sluta distribuera hans version av Emacs, eftersom de äger rättigheterna.[ stil ] Denna incident fick Stallman att skriva om de delar av Emacs-källan som nu ägdes av UniPress, varefter han utvecklade sin egen licens för sin programvara.
Stallmans licens var tänkt att fungera på samma sätt som icke-fria programvarulicenser: det är ett modellavtal mellan upphovsmannen till programmet ( upphovsrättsinnehavaren ) och användaren, där författaren bland annat anger rättigheterna för användare i förhållande till programmet. Till skillnad från den typiska proprietära licensen ger Stallman-licensen användaren de rättigheter som är kriterierna för ett gratis program: att få källkoden för program, modifiera dem och distribuera modifierade och omodifierade versioner. Därefter blev Stallman-licensen känd som GNU General Public License ("GNU General Public License"), förkortat GNU GPL eller helt enkelt GPL.
Denna licens stipulerar också en grundläggande för Stallmans skyddsvillkor för distribution av fri programvara: ingen användare som har gjort en modifierad version av ett gratisprogram har rätt att distribuera det utan att iaktta alla principer för fri programvara, det vill säga att göra en modifiering av ett gratis program, icke-gratis. För att understryka skillnaden mellan en sådan licens, som använder ZoAP (upphovsrätt) för att framkalla bevarandet av frihet, från typiska proprietära licenser, som använder ZoAP för att begränsa friheten, myntades termen copyleft - en ordlek byggd på betydelsen av Engelska ord höger och vänster . [7] Copyleft arbetar utifrån att härledda verk i de flesta fall ärver licenserna från sina beståndsdelar; om ett program använder en liten del av GPL-täckt tredjepartskod måste hela programmet och dess derivat distribueras under GPL så länge de är derivat av den koden. Samtidigt finns det ett avsnitt i GPL som låter dig kräva att upphovsmännens namn bevaras i koden, förbjuda användningen av dessa namn i reklam, varna för registrerade varumärken etc., vilket gör att du kan kombinera verk under GPL med verk under många gratis icke-copyleft-licenser (till exempel några från BSD-licenserna ), utan att skapa betydande restriktioner och utan att bryta mot licensen - men härledda resultat, som är derivat av arbete under GPL, kan inte längre (utan separat tillstånd från upphovsrättsinnehavarna) distribueras under villkoren i denna icke-copyleft-licens utan att följa villkoren i GPL - inklusive inklusive och som en integrerad del av icke-fri programvara. Av denna anledning kallas licenser som GNU GPL ibland också "virala licenser" : de verkar "infektera" programmet och blir en integrerad del av det.
Huvudvillkoret för existensen av fri programvara är trots allt inte en licens, utan människor som är redo att dela texterna i sina program gratis och förbättra andras texter. Fri programvara ärvde den öppna vetenskapliga utvecklingsmodellen, och med den den akademiska modellen för interaktion mellan forskare, vilket resulterade i en specifik organisation av samhället av utvecklare och användare.
Varje användare av programvara kommer oundvikligen att ha frågor när han försöker använda den för att lösa sina problem. Användaren av ett icke-fritt (proprietärt) program betalar tillverkaren för det, som ibland ger honom några garantier i utbyte, varav en är att svara på frågor om programmets funktion. Speciellt för detta organiserar tillverkaren en supporttjänst som svarar på användarfrågor via telefon, e-post och andra kommunikationsmedel.
Användaren av ett fritt distribuerat program får inga garantier med det: författaren gjorde sin källkod öppen för allmänheten, men åtog sig samtidigt inte att förklara för alla hur programmet fungerar. [8] Även om all icke-fri programvara i 99 % av fallen också tillhandahålls "i befintligt skick" och utan garanti. Eftersom gruppen av användare av de flesta program är distribuerad över hela världen, för att organisera interaktion i den, organiserar de mest aktiva användarna (och ofta författarna själva) (mer sällan, använd befintliga) e-postlistor , forum och andra sätt kommunikation på Internet . För att samla och klassificera information om programmet (särskilt listor med vanliga frågor - FAQ ; eller engelska FAQ - vanliga frågor), samt organisera mer komplexa former av interaktion (gemensam utveckling, felspårningssystem ) skapas webbplatser tillägnad program.
I vilket som helst tillräckligt komplext program finns det säkert fel och defekter, vars antal vanligtvis är okänt. Många stora mjukvarutillverkare skapar och betalar för arbetet på en kvalitetskontrollavdelning (QA - Quality assurance ), som kontrollerar att mjukvaruutvecklingsprocessen överensstämmer med vissa krav, vars implementering minskar sannolikheten för fel i programvaran (till exempel , kraven i DO-178B- standarden , som används vid mjukvaruutveckling för flygsystem). Men för närvarande finns det inga metoder för att helt garantera frånvaron av fel i ganska komplex programvara (det finns formaliserade kriterier för mjukvarans komplexitet).
En användare av ett stängt proprietärt program, som ställs inför ett fel, kan inte alltid identifiera dess orsak och korrigera fel (eftersom varken programmets källkod eller ens felsökningsinformation är tillgänglig för honom ), men troligen kan han beskriv felet och de förhållanden under vilka det uppstår.
Användaren kan rapportera en bugg till programtillverkaren (vanligtvis genom att kontakta samma supportteam ), och om de bestämmer sig för att felet verkligen finns i programmet och inte i användarens arbete kommer det att rapporteras till utvecklarna.
Som ett resultat kan användaren vänta länge på att felet ska åtgärdas i efterföljande versioner av programmet. Ofta likställs uppdatering av ett proprietärt program av tillverkaren med förvärv av en ny kopia, vilket medför motsvarande kostnader och brott mot konsumentskyddslagstiftningen .
Att diagnostisera ett fel som har uppstått på en användares dator är inte en lätt uppgift, eftersom supportpersonalen (och ännu mer företagets programmerare) kanske inte har tillgång till denna dator. Därför tränar supportavdelningar i stor utsträckning program som ger ut olika information om användarens dator, och i komplexa fall, den ökända felsökningsinformationen (en anställd ber användaren att köra programmet i "diagnostiskt läge" (vanligtvis med en odokumenterad inställning, eller användaren skickas en felsökningsversion av den önskade modulen) och skickar honom den resulterande rapportfilen).
Ett typiskt gratisprogram (det vill säga icke-kommersiellt och/eller utvecklat av ett litet företag eller individ) har vanligtvis ingen betald QA-avdelning. Detta innebär att användaren kan stöta på ännu fler fel än i ett typiskt kommersiellt proprietärt program. Ju mer relevant för honom är möjligheten att rapportera ett fel till utvecklarna av programmet. Tidigare var det brukligt i dokumentationen som medföljde programmet att ange vilken e-postadress utvecklarna fick felrapporter till. Vissa har infört en stereotyp form för sådana meddelanden för att underlätta och automatisera behandlingen av dem. Bara detta kräver en betydligt högre gemenskapsanslutning runt om i världen, betydligt mer än tillräckligt för sluten utveckling.
Utvecklare och testhandledare för en egen produkt kan gå till samma kontor och utbyta information där eller lägga en viss bråkdel av sin arbetstid på att sammanställa och analysera rigorösa rapporter som innehåller felmeddelanden och felsökningsrapporter. En sådan arbetsorganisation är effektiv om kretsen av utvecklare är liten och det är relativt enkelt att införa en gemensam rutin. För ett öppet projekt begränsas inte kretsen och den relativa positionen för potentiella utvecklare av någonting, så utvecklingens effektivitet beror i mycket större utsträckning på hur lätt det är för alla medlemmar i samhället att komma överens sinsemellan, liksom användarnas "medvetande".
Den enkla och ordnade mottagningen och omdirigeringen av felmeddelanden tillhandahålls av buggspårningssystem , varav de mest kända är utvecklade av deltagare i stora projekt för sig själva, och tack vare gratis licenser används de överallt. Sådana är GNUTS (utvecklat i GNU), Bugzilla ( Mozilla Foundation ), JitterBug ( Samba- projektet ) eller Debian BTS . Tidigare versioner är e-postorienterade, senare inkluderar ett webbgränssnitt. Till exempel, med hjälp av Bugzilla, organiseras en webbplats på Internet , där användaren kan fylla i ett formulär för att rapportera ett fel. Varje meddelande har sitt eget nummer, med vilket du kan komma till den "personliga" sidan för detta fel, som återspeglar alla händelser som inträffar om det, från det första meddelandet (öppning) till korrigeringen (stängning). Varje gång det sker en förändring i tillståndet för buggen skickar Bugzilla ut e-postmeddelanden till alla berörda (inklusive, naturligtvis, buggrapportören och utvecklarna som är involverade i programmet). Eftersom Bugzilla låter dig lämna kommentarer och bifoga filer är det ett komplett sätt för användaren att kommunicera med utvecklaren om en bugg i programmet.
Den huvudsakliga fördelen med en fri mjukvaruanvändare är att han, till skillnad från icke-fri mjukvaruanvändare, alltid har möjlighet att titta på källkoden. Naturligtvis är källkoden för många användare inte mer förståelig än maskinkod. Men med en tillräcklig kunskapsnivå i programmering kan användaren själv fastställa orsaken till felet i programmet, eller till och med eliminera det genom att korrigera källtexten därefter. Och om användaren är intresserad av utvecklingen av programmet, skulle det vara rimligt för honom att inte bara informera författaren om felet, utan också skicka honom sina korrigeringar till programmets källkod: författaren kommer bara att ha att tillämpa dessa rättelser på programtexten om han finner dem korrekta och lämpliga. Det är opraktiskt att skicka den korrigerade texten i programmet till författaren i sin helhet: den kan vara mycket stor (tiotusentals rader), och det kommer inte att vara lätt för författaren att ta reda på vad som har ändrats (tänk om ändringarna gjordes analfabeter?).
För att underlätta och automatisera processen att göra korrigeringar utvecklade Larry Wall 1984 lappverktyget , som i en formaliserad (men välförstådd för en person) form beskriver redigeringsoperationerna som måste utföras för att få en ny version av texten. Med tillkomsten av detta verktyg kunde användaren som upptäckte och korrigerade en bugg i programmet skicka författaren en liten patch, enligt vilken författaren kunde förstå vilka ändringar som föreslagits, och automatiskt "bifoga" dem till sin källkod. Med tillkomsten av patchverktyget började många fler användare engagera sig i utvecklingen av program med tillgänglig källkod, och Usenet spelade en betydande roll i detta . [9] Till slut blev denna patchningsmetod vardag och tillämpades inte bara på programmets källkod, utan också direkt på den kompilerade körbara koden i fallet med stängd programvara, och ordet "patch" blev ett hushållsord . Patchar (patchar med fixar) är ett obligatoriskt attribut för dagens utveckling av alla program av vilken komplexitet som helst. [tio]
Om användaren av programmet saknar någon funktion i det, kan han med rätt kvalifikation mycket väl programmera det själv och inkludera det i programmets källkod, eller betala någon annan för det. Naturligtvis är det fördelaktigt för honom att hans tillägg kommer in i "huvud", författarens version av programmet (det kallas uppströms) och visas i alla efterföljande versioner: du kan bara ordna det i form av en patch och skicka det till författaren. Denna förmåga nekas användaren av ett icke-fritt program, även om han är tillräckligt kvalificerad. Det enda sättet att inkludera den funktion han behöver i programmet är att kontakta tillverkaren (om programmet är proprietärt) med en motsvarande begäran och hoppas att tillverkaren anser att den föreslagna funktionen verkligen är nödvändig.
Ju fler aktiva användare ett gratisprogram har som är redo att bidra och dela korrigeringar, tillägg, desto mer tillförlitligt fungerar programmet och desto snabbare utvecklas det. Dessutom kan en sådan gratis modell för att spåra och fixa fel för ett program med tusentals aktiva användare vara mycket effektivare än något eget program: inget företag har råd med en så enorm personal på kvalitetskontrollavdelningen. Därför kan ett riktigt populärt gratisprogram vara mycket mer tillförlitligt än sina proprietära motsvarigheter.
Att skriva ett stort program ensam är ganska svårt och inte ens alltid möjligt, särskilt om författaren gör det på sin fritid. De flesta moderna gratisprogram är skriven av en grupp utvecklare. Även om en person började skriva ett program och det visade sig vara intressant, kan aktiva användare gå med i utvecklingen. För att de inte bara ska kunna göra individuella korrigeringar, utan generellt genomföra hela utvecklingen tillsammans, behövs specialverktyg. Förutom patchar används versionskontrollsystem för att organisera gemensam mjukvaruutveckling . Funktionerna i versionskontrollsystemet är att organisera åtkomst till programmets källkod för flera utvecklare och lagra en historik över alla ändringar i källkoden, så att du kan slå samman och ångra ändringar etc. [11] Den tidigaste gratisversionen kontrollsystem - RCS - användes redan i början av fri programvara av Usenet-prenumeranter, sedan ersattes det av ett mer utvecklat CVS , men idag anses det i stort sett föråldrat och ersätts allt mer av Subversion , Git och andra.
Det bör noteras att fördelarna med gratis utveckling för användaren inte bör överdrivas. All fri programvara är inte lika tillgänglig för modifiering av användare, och detta har ingenting att göra med licensen att distribuera den. En viktig faktor här är storleken på programmet: om det innehåller tiotusentals rader (som till exempel i OpenOffice.org ), så kommer även en kvalificerad användare att ta för lång tid på sig att ta reda på vad som är vad. Det är också omöjligt att räkna med att utvecklarna kommer att svara på alla kommentarer och förslag från användaren genom att omedelbart korrigera programmet, eftersom de inte har några skyldigheter gentemot användaren när det gäller programmets kvalitet. I detta avseende kan användaren av ett proprietärt kommersiellt program ha en bättre position (även om skyldigheterna för dess utvecklare vanligtvis bara beror på lagar och inte på hans vilja).
Så många av funktionerna i den fria mjukvarugemenskapen av utvecklare och användare härrör från det faktum att alla dess medlemmar vanligtvis engagerar sig i programmet av intresse eller för att programmet är ett nödvändigt verktyg för dem (till exempel för att tjäna pengar eller för att någon annan anledning). Den tid de lägger ner på programmet är inte betald, så det finns inget hopp om att omständigheterna inte kommer att förändras och utvecklingen inte kommer att stoppa helt. Det är inte ovanligt att utvecklingen av ett program startar tack vare en entusiastisk författare som lockar många människor att delta i utvecklingen, och sedan bleknar ledarens entusiasm, och utvecklingen bleknar med den. Det finns tusentals program idag som aldrig kommit till version 1.0, även om ledarutbrändhet inte är den enda anledningen. Dessutom kan programmet vara nödvändigt, men "ointressant", och därför kommer det inte att finnas några gratis utvecklare. [12]
Den fri programvaras plats på dagens mjukvarumarknad är mycket betydande, och många kommersiella och statliga företag använder fri programvara direkt eller indirekt. Egentligen, indirekt, använder alla internetanvändare till exempel gratisprogrammet BIND , som tillhandahåller en DNS- tjänst . Många organisationer, särskilt de som tillhandahåller tjänster över Internet, använder den kostnadsfria webbservern Apache , på vars arbete deras vinst direkt beror på, för att inte tala om servrar på Linux- plattformen . Den största nackdelen ur en kommersiell användares synvinkel är att fri mjukvaruutvecklare inte har några andra skyldigheter än en moralisk skyldighet om kvaliteten på ett program. Därför finner stora företag, som Intel eller IBM , idag att det är nödvändigt att stödja gratis programvaruutvecklingsprojekt genom att betala anställda som arbetar inom dessa projekt.
I den europeiska kulturen har reglerna för ägande i förhållande till materiella värden utvecklats under lång tid . Och det är ganska logiskt att dessa regler utvidgades till icke-materiella värden - inklusive mjukvaruprodukter, när de började representera ett oberoende värde.[ neutralitet? ] Mjukvaruprodukter har dock en grundläggande skillnad från materiella objekt – de kan enkelt kopieras. Att skapa en kopia av en materiell produkt är ofta nästan lika med kostnaden för att skapa originalet.
På grund av denna skillnad gäller principen "bara en person kan använda en sak åt gången" inte för programvara (och att använda den av någon annan orsakar automatiskt skada på den första personen på grund av att den inte får fördelar av det), vilket är anledningen till begreppet "ägare" existerar. Därför uppfattas ett försök här att agera enligt denna princip - att tilldela rätten att använda programmet till en person - intuitivt [13] som strider mot sakens natur. Det är inte förvånande att många problem uppstår, som var och en måste lösas med konstgjorda och ofta onaturliga metoder.
Den klassiska metoden är att tillverkaren de jure behåller rättigheterna till programvaran, som så att säga ger programvaran till sina användare för tillfällig användning. I det här fallet är användningen av olicensierad programvara i huvudsak likställt med begreppet lag i engelsktalande länder, känt som stöld av tjänster. Men detta koncept har inga analoger i andra nationella kulturer, till exempel ryska, och just av skälen som anges 2 stycken ovan (ägaren är inte berövad möjligheten att använda saken, vilket är den största negativa konsekvensen av stöld). I rysk lag är stöld av tjänster av alla slag inget annat än ett administrativt brott, medan straffrättsligt ansvar föreskrivs för olicensierad programvara, vilket låter dissonant i den ryska kulturen.
Men ibland är det till exempel nödvändigt att simulera "skada på grund av utebliven mottagande av varan", som "tillfogas" programmets "ägare" när det kopieras utan skada eller när pengar returneras vid fel och defekter finns i programmen. Vanligtvis är detta "bortförd vinst", det vill säga den vinst som ägaren kunde ha fått, men inte fått på grund av att produkten kopierades. Vi måste uppfinna genialisk utrustning som stör kopieringen eller orsakar skada. Det är nödvändigt att införa i lagstiftningen en särskild kategori av rättigheter – låt oss villkorligt kalla det ett "patent" [14] – som begränsar missbruken – och friheten – av hela mänskligheten till förmån för patentinnehavaren. Dessutom är ägaren till patentet och upphovsmannen till uppfinningen inte alltid samma person (i sådana fall förvärras den onaturliga naturen hos dessa åtgärder bara).
Det finns också en synpunkt från motståndarna till ovanstående. Så till exempel innebär den konsekventa legaliseringen av stöld av tjänster att alla tjänster är kostnadsfria, vilket med största sannolikhet innebär att hela detta område underhålls av statsbudgeten, och i det här fallet betalar för det första alla skattebetalare för tjänster från sina skatter, och utan en marknadsmekanism för konsumentinflytande på producenten ("ät vad de ger"), för det andra avleder det statliga medel från uppgifter av nationell betydelse, för det tredje kommer bristen på marknadskonkurrens leda till att kvaliteten på alla tjänster utjämnas till ett visst billigt och inte särskilt högkvalitativt minimum (det är till och med möjligt att en del av tillhandahållandet av tjänster tilldelas konsumenten på ett gör-det-själv-sätt). Detsamma gäller idén om total frihet för all programvara.
Icke-fria program kallas " proprietary " (från engelska proprietary ) eller "proprietary". De kallas ibland felaktigt helt enkelt för " kommersiellt ", vilket är felaktigt: det finns många sätt att dra nytta av ett program, och många framgångsrika gratisprojekt bevisar detta.
Övergången till specifik fri programvara, liksom den allmänna trenden med en gradvis ökning av förekomsten av programvara med öppen källkod bland användare, kallas ofta för migreringen till fri programvara.
Medier som inte är specialiserade på datorämnen likställer som regel öppen och fri programvara, använder dem som synonymer. Därför ges vanligtvis uppgifter om förekomsten av öppen källkod och fri programvara tillsammans.
Programvara med öppen källkod används aktivt på Internet. Till exempel är den vanligaste Apache -webbservern gratis, Wikipedia drivs av MediaWiki , som också är ett gratis projekt.
Fri programvara används av det belgiska justitieministeriet, som redan har hälften av sina datorer som kör Linux , och av den franska polisen, som helt har bytt till GendBuntu , en Ubuntu-baserad distribution. Det är planerat att överföra alla datorer på denna institution till fri programvara före slutet av 2009 .
Programmet med öppen källkod har framgångsrikt implementerats i München . Ett liknande program ägde rum i Berlin , men beslutet togs därefter att använda en hybridinfrastruktur av kommersiell och fri programvara. [femton]
Från och med 2009 äger öppna system redan majoriteten (över 60%) av mobilappsmarknaden. Enligt Juniper Research kommer antalet smartphones med öppna operativsystem att öka med två gånger 2014 (från 106 till 223 miljoner). [16]
Fri programvara kan i alla fall installeras fritt och användas på vilken dator som helst. Användningen av sådan programvara är gratis överallt: i skolor, kontor, universitet, på persondatorer och i alla organisationer och institutioner, inklusive kommersiella och statliga, i Ryssland och OSS-länderna .
Ryska federationens regering godkände genom dekret nr 2299-r av den 17 december 2010 [17] en plan för övergången av federala verkställande organ och federala budgetinstitutioner till användning av fri programvara för 2011-2015 [18] .
Det ryska försvarsministeriets institutioner, såväl som ryska ambassader i andra länder, använder operativsystemet WSWS . Detta operativsystem, baserat på Red Hat Linux med mindre ändringar, är inte fri programvara, dess källkoder är stängda.
Från den 1 juni 2011 är GOST R ISO/IEC 26300-2010 giltig för OpenDocument-formatet .
Från 1 januari 2012 GOST R 54593-2011 "Informationsteknik. Gratis mjukvara. Allmänna bestämmelser” [19] .
I början av 2012 var cirka 22 000 arbetsplatser i Moskvas polikliniker planerade [ uppdatering ] för att utrustas med datorer som kör Alt Linux . [tjugo]
Den 15 april 2013 började insamlingen av underskrifter för statlig finansiering av gratis programvaruutbildning för befolkningen i Ryssland [21] .
Den 12 mars 2014 undertecknades federal lag nr 35-FZ med ändringar av den fjärde delen av den ryska federationens civillag, som reglerar användningen av öppna licenser på Ryska federationens territorium [22] .
Den 3 april 2014 tillkännagav Information Technology Department of the Federal Bailiff Service användningen av sin egen specialiserade Linux -distribution GosLinux ( baserad på CentOS ) som en del av den pågående "policyn för att introducera fri programvara och importersättning av informationsteknik" [23 ] [24] .
Fri programvara i skolorI tre regioner i Ryssland lanserades 2008 experiment med introduktion och användning i gymnasieskolor av grundläggande programvarupaket för klassrum inom datavetenskap och datateknik, och utbildning av lärare och lärare i datavetenskap för att arbeta med fri programvara i Windows och Linux-miljöer började [25] .
Användare som annars skulle föredra fri programvara framför icke-fri programvara fortsätter att använda icke-fri programvara av följande skäl:
I bibliografiska kataloger |
---|
Free Software Movement | Nyckelpersoner i|
---|---|
|
Gratis och öppen källkod | |
---|---|
Huvudsaken |
|
gemenskap |
|
Organisationer | |
Licenser | |
Problem | |
Övrig |
|
|
_ | Mjukvarudistribution|
---|---|
Licenser | |
Inkomstmodeller | |
Leveransmetoder |
|
Bedrägligt/olagligt | |
Övrig |
|
Oberoende produkter | |
---|---|
Läsning |
|
Hörsel |
|
Film |
|
Datorer |
|
Begrepp | |
se även |
|