Libreng Software Ideology at ang GNU Project: Kasalukuyang Katayuan at Mga Agarang Hamon.

Bayarin Kita

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Mga donasyon

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Bilang ng mga boluntaryo

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Bilang ng mga empleyado

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Bilang ng mga miyembro

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Mga subsidiary

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Pag-aari

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Tagline

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Website

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Petsa ng pagpuksa

Lua error sa Module:Wikidata sa linya 170: subukang i-index ang field na "wikibase" (walang halaga).

Ang kasalukuyang gawain ng GNU Project ay kinabibilangan ng software development, awareness raising, political campaigning, at distribution ng mga bagong materyales.

Mga pinagmulan ng proyekto

Noong unang nagsimula ang proyekto, sila...

  • Ang isang asteroid ay pinangalanan pagkatapos ng proyekto ng GNU - (9965) GNU.

Tingnan din

Sumulat ng pagsusuri sa "The GNU Project"

Mga Tala

Mga link

  • (Ingles) - opisyal na site ng proyekto ng GNU

Isang sipi na nagpapakilala sa GNU Project

- Kasinungalingan, pagpatay, pagtataksil ... Wala ka bang ganoong mga salita? ..
- Matagal na ang nakalipas ... wala nang nakakaalala. Ako lang. Ngunit alam namin kung ano iyon. Ito ay naka-embed sa ating "sinaunang alaala" na hinding-hindi makakalimutan. Nanggaling ka ba kung saan nabubuhay ang kasamaan?
Malungkot akong tumango. Ako ay labis na nagsisisi sa aking katutubong Lupa, at sa katotohanan na ang buhay dito ay napakadi-perpekto kaya nagtanong ito sa akin ng mga ganoong katanungan ... Ngunit, sa parehong oras, gusto ko talagang umalis si Evil sa aming Bahay nang tuluyan, dahil iyon Minahal ko ang bahay na ito nang buong puso, at madalas kong pinangarap na balang araw ay darating ang isang napakagandang araw kapag:
ang isang tao ay ngingiti ng may kagalakan, alam na ang mga tao ay makapagbibigay lamang sa kanya ng mabuti ...
kapag ang isang malungkot na babae ay hindi matatakot na maglakad sa pinakamadilim na kalye sa gabi, hindi natatakot na may makasakit sa kanya...
kapag nabuksan mo ang iyong puso ng may kagalakan, nang walang takot na ipagkanulo ka ng iyong matalik na kaibigan...
kapag posible na mag-iwan ng isang bagay na napakamahal sa mismong kalye, hindi natatakot na kung tumalikod ka - at ito ay agad na ninakaw...
At taos-puso akong, nang buong puso, ay naniniwala na sa isang lugar ay talagang umiiral ang gayong kahanga-hangang mundo, kung saan walang kasamaan at takot, ngunit mayroong isang simpleng kagalakan ng buhay at kagandahan ... Kaya naman, kasunod ng aking walang muwang na panaginip, ako ginamit ang pinakamaliit na pagkakataon upang matuto ng kahit na isang bagay tungkol sa kung paano posible na sirain ang parehong ito, napakatibay at hindi masisira, ang ating makalupang Kasamaan... At isa pa - upang hindi kailanman ikahiya na sabihin sa isang tao sa isang lugar na ako ako ay Tao...
Siyempre, ito ay walang muwang na mga pangarap sa pagkabata ... Ngunit noon ay bata pa lang ako.
– Ang pangalan ko ay Atis, Svetlana Man. Dito ako nakatira sa simula pa lang, nakakita na ako ng Evil... Maraming kasamaan...
– At paano mo siya inalis, matalinong Hatis?! May tumulong ba sayo?.. - tanong ko na sana. - Maaari mo ba kaming tulungan? .. Magbigay ng hindi bababa sa payo?
– Natagpuan namin ang dahilan... At pinatay ito. Ngunit ang iyong kasamaan ay lampas sa aming kontrol. Iba ito... Katulad ng iba at ikaw. At hindi palaging ang kabutihan ng ibang tao ay maaaring maging mabuti para sa iyo. Dapat mong mahanap ang iyong sariling dahilan. At sirain ito, - malumanay niyang inilagay ang kanyang kamay sa aking ulo at isang napakagandang kapayapaan ang dumaloy sa akin ... - Paalam, Human Svetlana ... Malalaman mo ang sagot sa iyong tanong. Pahinga sa iyo...
Ako ay nakatayo sa malalim na pag-iisip, at hindi pinansin ang katotohanan na ang katotohanan na nakapaligid sa akin ay nagbago ng matagal na ang nakalipas, at sa halip na isang kakaiba, transparent na lungsod, kami ngayon ay "lumulutang" sa siksik na lilang "tubig" sa ilang hindi pangkaraniwang, flat at transparent na aparato, na walang mga hawakan, walang mga sagwan - wala sa lahat, na parang nakatayo kami sa isang malaki, manipis, gumagalaw na transparent na salamin. Bagama't wala man lang naramdamang paggalaw o pagtatayo. Ito ay dumausdos sa ibabaw ng nakakagulat na maayos at mahinahon, na nakakalimutan mo na ito ay gumagalaw sa lahat ...
– Ano ito?.. Saan tayo naglalayag? nagtatakang tanong ko.
“Kunin mo ang maliit mong kaibigan,” mahinahong sagot ni Veya.
- Pero paano?!. Hindi niya kaya...
- Maaari. Siya ay may parehong kristal gaya ng sa iyo, ang sagot. - Makikilala natin siya sa "tulay", - at nang hindi nagpapaliwanag ng anupaman, hindi nagtagal ay pinahinto niya ang aming kakaibang "bangka".
Ngayon ay nasa paanan na kami ng ilang makinang na "pinakintab" na itim na parang night wall, na ibang-iba sa lahat ng maliwanag at kumikinang sa paligid, at tila artipisyal na nilikha at dayuhan. Biglang, ang dingding ay "nahati", na parang sa lugar na iyon ay binubuo ito ng siksik na fog, at sa isang gintong "cocoon" ay lumitaw ... Stella. Sariwa at malusog, na parang kagagaling lang sa paglalakad... At, siyempre, tuwang-tuwa siya sa mga nangyayari... Nang makita niya ako, ang kanyang magandang mukha ay masayang nagniningning at, dahil sa ugali, siya. agad na nagdaldal:
– Nandito ka rin ba?!... O, ang galing!!! And I was so worried! .. So worried! .. Akala ko may nangyari na sayo. Pero paano ka napunta dito? .. - tulalang nakatingin sa akin si baby.

PANGUNAHING PAMANTAYAN

Ang UNIX ay ibinibigay ng mga tagagawa ng computer

Ang kotse Operating system "Orihinal"
Linggo 1,2,10, ... SunOS 4.1.2 BSD 4.3
Linggo 10,20,1000 SunOS 5.5 SVR4.0
IBM RS/6000 AIX SV 3.2
HP Apollo 900 HP/UX 10 BSD 4.2 at SV 3.2
Sunod-sunod Dynix SW 4.0
Motorola 922 SVR4/88 SVR4.0
Besta-88 bestix SV 3.1
DEC Ultrix BSD 4.2
DEC Alpha AXP OSF/1 BSD 4.3
SGCS Silicon Graphic IRIX 6.0

Sa pamamagitan ng pagpili ng platform, awtomatiko kaming nakakakuha ng "sariling" UNIX kasama nito. Marahil, mula sa punto ng view ng kaginhawahan at integridad ng user at administrator na kapaligiran, ang pinaka-kaaya-aya sa kanila ay AIX. At ang pinakakaraniwan ay ang Solaris 2.5 (siyempre).

Ito ay ang pagdating ng komersyal na pagpapatupad ng Unix na humantong sa tinatawag na Unix wars. Ang bawat isa sa mga kumpanya, sa pagsisikap na makamit ang higit na kahusayan sa merkado, kasama sa sistema nito ang ilang mga tampok, sarili nitong mga pagpapabuti at pagpapabuti, kung minsan kahit na may direktang layunin na ihiwalay ang sistema nito mula sa iba sa merkado. Ang mga kumpanya-developer sa kanilang mga pagsisikap na makakuha ng isang kalamangan sa mga kakumpitensya ay gumawa ng mga pagbabago kahit na sa interface ng application programming(API- Applications Programmer "s Interface), - isang detalye ng isang hanay ng mga function na dapat sundin ng mga developer ng software upang maging tugma ang kanilang mga program sa operating system. Lalo nitong pinataas ang hindi pagkakatugma ng iba't ibang bersyon ng Unix at humantong sa hindi pagkakatugma ng software na binuo ni iba't ibang (kabilang ang mga independyente) na mga supplier.

Ngunit ang isang mas masahol na resulta ng mga digmaan sa pagitan ng iba't ibang mga bersyon ng Unix ay ang libreng pagpapalitan ng source code na nakatulong sa mabilis na pagpapabuti ng Unix sa mga unang yugto ng pag-unlad nito ay tumigil. Dahil walang alam na ibang modelo para kumita mula sa software maliban sa paglihim nito at pagkakaroon ng kumpletong kontrol sa pagbuo ng isang komersyal na produkto, mahigpit na ipinagbawal ng AT&T ang pamamahagi ng mga source code. Ilang tao ang naakit sa banta ng legal na aksyon para sa iligal na pamamahagi ng mga Unix tape. Ang daloy ng mga bagong ideya mula sa mga unibersidad ay natuyo.

Upang malampasan ang problemang ito, ilang mga pagtatangka ang ginawa upang i-standardize ang Unix.

Ang unang seryosong pagsisikap na gawing pamantayan ang mga bersyon ng API (programming interface) na binuo para sa System V at Berkeley ay ginawa noong 1983 ng isang inisyatiba na grupo na tinatawag na /usr/group. Gayunpaman, habang lumalaki ang bilang ng mga bersyon ng operating system, bumaba ang bisa ng pamantayan, at pagkaraan ng isang taon, noong 1985, nilikha ang pamantayang POSIX (Portable Operating System Interface para sa Computing Environment).



Noong 1988, binuo ang pamantayang POSIX 1003.1-1988, na tinukoy ang interface ng application programming. Ang pamantayang ito ay nakahanap ng malawak na aplikasyon sa maraming mga operating system, kabilang ang mga hindi-UNIX na arkitektura. Pagkalipas ng dalawang taon, ang pamantayan ay pinagtibay bilang pamantayan ng IEEE (Institute of Electrical and Electronic Engineers, umiiral pa rin) IEEE 1003.1-1990. Ang pamantayan ay tumutukoy lamang sa interface, at e tiyak na organisasyon, kaya hindi nito nakikilala ang pagitan ng mga tawag sa system at mga function ng library, na tinatawag na mga function lang ang lahat ng elemento ng API.

Kasama sa lahat ng susunod na pamantayan ng Unix ang POSIX, at lahat ng kasunod na bersyon ng Unix ay sumusunod sa pamantayang ito. Ang tanging malaking karagdagan na lumitaw sa paglaon sa Unix kernel ay mga socket, na nagmula sa BSD.

Ang isang non-profit na organisasyon - ang X / Open consortium (mamaya Open Group), na nilikha noong 1984 ng isang bilang ng mga European na kumpanya, ay nagsagawa ng pagbuo ng isang karaniwang hanay ng mga interface ng operating system, na napagkasunduan sa pagitan ng iba't ibang mga tagagawa, at ang paglikha ng tunay na bukas. sistema kung saan ang halaga ng application portability ay magiging minimal.

Noong 1992, lumitaw ang isang dokumento na kilala bilang X/OpenPortability Guide version 3 (XPG3), na kinabibilangan ng POSIX 1003.1-1988 at ang pamantayan para sa X Windows System graphics system na binuo sa Massachusetts Institute of Technology (USA). Noong 1994 - XPG4.2.

Noong 1996, ang unyon ng X / Open at OSF ay humantong sa paglikha ng The Open Group consortium, na nagpatuloy sa pag-unlad sa larangan ng mga open system, halimbawa, karagdagang pag-unlad ng Common Desktop Environment user interface, mga interface para sa Distributed Computing Environment. - DCE, atbp.

(American National Standards Institute)

Noong 1989, inaprubahan ng American National Standards Institute ang X3.159-1989 standard para sa C programming language. Tinutukoy ng pamantayan ang syntax, semantics, at nilalaman ng karaniwang library.

Ang GNU ay isang asosasyon ng mga developer na lumikha ng libreng software ng lahat ng uri.

Ang GNU ay isang proyekto na lumikha ng maraming libreng software bilang bahagi ng isang open source na diskarte.

Kasabay nito, magagawa ng mga program na ito ang lahat mula sa pagtatrabaho sa mga file hanggang sa pagpoproseso ng salita, at ang gcc compiler (GNU C) ay isa sa mga pinaka maaasahan at mahusay na UNIX compiler. Ginagawa nitong posible na magbigay ng halos anumang operating system na katulad ng UNIX na may libreng software.

Ano ang GNU/Linux?

Dahil ang Linux ay isang kernel lamang, ang ganitong uri ng kagamitan ay mahalaga. Ang kernel ay responsable para sa pagtatrabaho sa memorya, mga disk, mga panloob na aparato, ngunit, halimbawa, wala itong editor ng teksto. Ngunit maaari itong magpatakbo ng iba pang mga programa. Samakatuwid, ang pagdaragdag ng isang libreng kernel na may isang hanay ng mga libreng programa ay mukhang natural. Ang resulta ay ang GNU/Linux tandem.

"Ang abbreviation na GNU ay nangangahulugang "GNU is not UNIX" (GNU - Not UNIX). Ang pangunahing ideya sa likod ng pagbuo ng GNU system ay ang ganap na pagkakaiba mula sa UNIX. Ang UNIX ay palaging at nananatiling pagmamay-ari na software, ibig sabihin, inaalis nito ang mga gumagamit nito ng kalayaang makipagtulungan at kontrolin ang kanilang mga computer. Upang maging isang komunidad na malayang gumagamit ng sarili nitong mga computer, kailangan namin ng libreng operating system. Wala kaming sapat na pera para bilhin at gawing libre ang alinman sa mga kasalukuyang system, ngunit mayroon kaming sapat na kaalaman at kasanayan upang lumikha ng bago. Ang paglikha ng GNU ay isang napakalaking gawain. Ginawa namin ito sa ngalan ng aming kalayaan, at sa iyo rin."

Noong 1985, isinulat ni R. Stallman ang kanyang sikat na GNU Manifesto (nai-publish ito sa Marso 1985 na isyu ng Dr. Dobb's Journal) at itinatag ang Free Software Foundation (FSF) - isang charitable foundation para sa pagbuo ng libreng software. pamamahagi ng Emacs tapes , at sa paglaon sa pamamahagi ng iba pang libreng software (kapwa mula sa GNU Project at sa labas nito) at pagbebenta ng kanilang mga manwal, na nagbigay ng pondo para sa pagpapaunlad ng proyekto ng GNU. Ang FSF ay tumanggap ng mga donasyon, ngunit karamihan sa kita ay palaging nagmumula sa pagbebenta ng mga kopya ng libreng software at mga kaugnay na serbisyo.

Ang pagbuo ng libreng software ay isang napakahalagang hakbang, ngunit ang mas malaking merito ng R.Stallman ay dapat kilalanin bilang ang paglikha ng GNU General Public License (GPL). Isinalin ng iba't ibang may-akda ang pangalang ito sa Russian sa iba't ibang paraan - ang Universal Public License, Generalized Public License, atbp. Ngunit ito ay itinuturing na iyon Tanging ang Ingles na bersyon ng lisensyang ito ang may bisa. Ang pangunahing ideya ng GPL ay ang gumagamit ay dapat magkaroon ng sumusunod na apat na karapatan (o apat na kalayaan):

Ang karapatang patakbuhin ang programa para sa anumang layunin (kalayaan 0)

· Ang karapatang pag-aralan ang istruktura ng programa at iakma ito sa iyong mga pangangailangan (kalayaan 1), na kinabibilangan ng pag-access sa source code ng programa.

· Ang karapatang ipamahagi ang programa habang nakakatulong sa iba (kalayaan 2).

· Ang karapatang pagbutihin ang programa at mag-publish ng mga pagpapabuti para sa kapakinabangan ng buong komunidad (kalayaan 3), na kinabibilangan din ng pag-access sa source code ng programa.

Maaari mong gamitin, kopyahin, baguhin, baguhin, ilipat, o ibenta ang binago (o hindi binago) na mga bersyon sa iba sa anumang paraan na gusto mo, sa kondisyon na ang resulta ng naturang pagproseso ay ipinamamahagi din sa ilalim ng lisensya ng GPL. Ang huling kundisyon ay ang pinakamahalaga at tumutukoy sa lisensyang ito. Tinitiyak nito na ang mga resulta ng mga pagsisikap ng mga developer ng libreng software ay mananatiling open source at hindi magiging bahagi ng anumang kumbensyonal na lisensyadong produkto. Tinutukoy din nito ang libreng software mula sa libreng software. Isa sa mga kinakailangan ng lisensyang ito ay kapag nagbebenta ka ng software sa ilalim ng GPL, dapat mong gawing available ang source code ng software na iyon sa sinumang gustong magkaroon ng access dito. Sa mga salita ng mga tagalikha ng FSF, "ginagawa ng GPL na libre ang software at tinitiyak na mananatili itong libre."

Ang pangunahing layunin ng GPL ay protektahan ang libreng software mula sa "pribatisasyon". Ngunit dapat tandaan na ito ay idinisenyo sa paraang payagan ang lahat ng "patas" na paraan ng paggawa ng pera mula sa libreng software.Ito ay isang napakahalagang punto na nangangailangan ng espesyal na atensyon. Noong unang ipinakilala sa GPL, maaaring hindi maunawaan na karaniwang ipinagbabawal ng lisensyang ito ang anumang paraan upang kumita ng pera mula sa software o sa pagbuo nito. Sa katunayan, ang GPL sa partikular, at ang FSF sa pangkalahatan, ay direktang hinihikayat ang negosyong nauugnay sa pagbibigay ng mga kaugnay na serbisyo - pagsasanay, pagkonsulta, at komersyal na pagkopya ng software. Ginagawa nitong posible na maakit sa kooperasyon ang parehong mga korporasyon at mga tao kung saan ang materyal na interes ay mas mahalaga kaysa sa mga moral na insentibo.

Orihinal na nai-publish sa libro bukas na mapagkukunan. Si Richard Stallman ay , ngunit nag-ambag ng artikulong ito upang ang mga ideya ng libreng kilusan ng software ay hindi ganap na mawala sa aklat na iyon.

Ang unang komunidad ng pagbabahagi ng software

Noong nagsimula akong magtrabaho sa MIT Artificial Intelligence Lab noong 1971, naging bahagi ako ng isang komunidad ng pagbabahagi ng software na umiral nang maraming taon. Ang pagbabahagi ng software ay hindi limitado sa aming partikular na komunidad; ito ay kasingtanda ng mga computer, tulad ng pagbabahagi ng mga recipe ay kasing edad ng pagluluto. Ngunit ginawa namin ito nang higit sa karamihan.

Gumamit ang AI ​​Lab ng operating system ng timesharing na tinatawag na ITS (ang Incompatible Timesharing System) na idinisenyo at isinulat ng mga hacker ng staff ng lab (1) sa assembler language para sa Digital PDP -10, isa sa malalaking computer noong panahon. isang miyembro ng komunidad na ito, isang AI Lab staff system hacker, ang trabaho ko ay pahusayin ang system na ito.

Hindi namin tinawag ang aming software na "libreng software", dahil ang terminong iyon ay hindi pa umiiral; ngunit iyon ay kung ano iyon. Sa tuwing gusto ng mga tao mula sa ibang unibersidad o kumpanya na mag-port at gumamit ng isang programa, malugod naming hinahayaan sila. Kung nakakita ka ng isang tao na gumagamit ng hindi pamilyar at kawili-wiling programa, maaari mong palaging hilingin na makita ang source code, para mabasa mo ito, baguhin ito, o i-cannibalize ang mga bahagi nito upang makagawa ng bagong programa.

(1) Ang paggamit ng “hacker” para nangangahulugang “security breaker” ay isang kalituhan sa bahagi ng mass media. Kaming mga hacker ay tumatangging kilalanin ang kahulugang iyon, at patuloy na ginagamit ang salita upang mangahulugan ng isang taong mahilig mag-program, isang taong nasisiyahan sa mapaglarong katalinuhan, o ang kumbinasyon ng dalawa. Tingnan ang aking artikulo, Sa Pag-hack.

Ang pagbagsak ng komunidad

Ang sitwasyon ay nagbago nang husto noong unang bahagi ng 1980s nang ihinto ng Digital ang serye ng PDP-10. Ang arkitektura nito, matikas at makapangyarihan noong 60s, ay hindi natural na umabot sa mas malalaking address space na nagiging posible noong 80s. Nangangahulugan ito na halos lahat ng mga programang bumubuo ng ITS ay hindi na ginagamit.

Ang komunidad ng hacker ng AI Lab ay bumagsak na, hindi nagtagal. Noong 1981, kinuha ng spin-off na kumpanya na Symbolics ang halos lahat ng mga hacker mula sa AI ​​Lab, at ang depopulated na komunidad ay hindi nagawang mapanatili ang sarili nito. (Ang aklat na Hackers, ni Steve Levy, ay naglalarawan sa mga kaganapang ito, pati na rin ang pagbibigay ng malinaw na larawan ng komunidad na ito sa kasaganaan nito.) Nang bumili ang AI ​​Lab ng bagong PDP-10 noong 1982, nagpasya ang mga administrator nito na gamitin ang hindi libre ng Digital timesharing system sa halip na ITS.

Ang mga modernong computer sa panahon, tulad ng VAX o 68020, ay may sariling operating system, ngunit wala sa mga ito ang libreng software: kailangan mong pumirma ng isang nondisclosure na kasunduan kahit para makakuha ng executable na kopya.

Nangangahulugan ito na ang unang hakbang sa paggamit ng computer ay ang pangakong hindi tutulungan ang iyong kapwa. Ipinagbabawal ang pakikipagtulungang komunidad. Ang panuntunang ginawa ng mga may-ari ng proprietary software ay, “Kung ibinabahagi mo sa iyong kapitbahay, isa kang pirata. Kung gusto mo ng anumang mga pagbabago, magmakaawa sa amin na gawin ang mga ito."

Ang ideya na ang proprietary software social system—ang system na nagsasabing hindi ka pinapayagang magbahagi o magpalit ng software—ay antisocial, na ito ay hindi etikal, na ito ay mali lang, ay maaaring dumating bilang isang sorpresa sa ilang mga mambabasa. Ngunit ano pa ang masasabi natin tungkol sa isang sistemang batay sa paghahati sa publiko at pagpapanatiling walang magawa ang mga gumagamit? Ang mga mambabasa na nakakagulat sa ideya ay maaaring kinuha ang proprietary software social system bilang ibinigay, o hinuhusgahan ito sa mga tuntuning iminungkahi ng mga proprietary software na negosyo. Ang mga publisher ng software ay nagsumikap nang matagal at mahirap upang kumbinsihin ang mga tao na mayroon lamang isang paraan upang tingnan ang isyu.

Kapag pinag-uusapan ng mga publisher ng software ang tungkol sa "pagpapatupad" ng kanilang "mga karapatan" o "pagtigil sa pamimirata", kung ano talaga ang kanilang sabihin ay pangalawa. Ang tunay na mensahe ng mga pahayag na ito ay nasa hindi nasabi na mga pagpapalagay na kanilang pinababayaan, na hinihiling sa publiko na tanggapin nang walang pagsusuri. Kaya't suriin natin ang mga ito.

Ang isang palagay ay ang mga kumpanya ng software ay may hindi mapag-aalinlanganang likas na karapatan na magkaroon ng software at sa gayon ay may kapangyarihan sa lahat ng mga gumagamit nito. (Kung ito ay isang likas na karapatan, kung gayon gaano man kalaki ang pinsala nito sa publiko, hindi kami maaaring tumutol.) Kapansin-pansin, tinatanggihan ng Konstitusyon ng US at legal na tradisyon ang pananaw na ito; ang copyright ay hindi natural na karapatan, ngunit isang artipisyal na monopolyo na ipinataw ng pamahalaan na naglilimita sa natural na karapatang kopyahin ng mga user.

Ang isa pang hindi nakasaad na palagay ay ang tanging mahalagang bagay tungkol sa software ay kung anong mga trabaho ang pinapayagan nitong gawin mo—na tayong mga gumagamit ng computer ay hindi dapat pakialam kung anong uri ng lipunan ang pinapayagang magkaroon tayo.

Ang pangatlong palagay ay na wala kaming magagamit na software (o hindi magkakaroon ng program para gawin ito o ang partikular na trabaho) kung hindi kami nag-aalok ng kapangyarihan ng kumpanya sa mga gumagamit ng program. Ang pagpapalagay na ito ay maaaring tila kapani-paniwala, bago ipinakita ng libreng kilusan ng software na makakagawa tayo ng maraming kapaki-pakinabang na software nang hindi naglalagay ng mga kadena dito.

Kung tatanggihan naming tanggapin ang mga pagpapalagay na ito, at husgahan ang mga isyung ito batay sa ordinaryong moralidad habang inuuna ang mga gumagamit, makakarating kami sa ibang mga konklusyon. Ang mga gumagamit ng computer ay dapat malayang magbago ng mga programa upang umangkop sa kanilang mga pangangailangan, at malayang magbahagi ng software, dahil ang pagtulong sa ibang tao ang batayan ng lipunan.

Isang matibay na moral na pagpili

Sa pagkawala ng aking komunidad, ang magpatuloy tulad ng dati ay imposible. Sa halip, napaharap ako sa isang mahigpit na pagpili sa moral.

Ang madaling pagpipilian ay sumali sa mundo ng pagmamay-ari ng software, pumirma sa mga nondisclosure na kasunduan at nangakong hindi tutulungan ang aking kapwa hacker. Malamang na bubuo din ako ng software na inilabas sa ilalim ng mga nondisclosure na kasunduan, kaya nagdaragdag sa panggigipit sa ibang tao na ipagkanulo din ang kanilang mga kapwa.

Maaari akong kumita ng pera sa ganitong paraan, at marahil ay nilibang ang aking sarili sa pagsusulat ng code. Ngunit alam ko na sa pagtatapos ng aking karera, magbabalik-tanaw ako sa mga taon ng pagtatayo ng mga pader upang hatiin ang mga tao, at pakiramdam ko ay ginugol ko ang aking buhay sa paggawa ng mundo sa isang mas masamang lugar.

Naranasan ko nang tumanggap ng isang nondisclosure agreement, nang may tumanggi na ibigay sa akin at sa MIT AI Lab ang source code para sa control program para sa aming printer. (Ang kakulangan ng ilang partikular na feature sa program na ito ay ginamit ang printer na lubhang nakakabigo.) Kaya't hindi ko masabi sa aking sarili na ang mga nondisclosure na kasunduan ay walang kasalanan. Galit na galit ako nang tumanggi siyang ibahagi sa amin; Hindi ko magawang lumingon at gawin ang parehong bagay sa iba.

Ang isa pang pagpipilian, diretso ngunit hindi kasiya-siya, ay umalis sa larangan ng computer. Sa ganoong paraan hindi magagamit ang aking mga kakayahan, ngunit masasayang pa rin ang mga ito. Hindi ako magiging kasalanan para sa paghahati at paghihigpit sa mga gumagamit ng computer, ngunit ito ay mangyayari gayunpaman.

Kaya't naghanap ako ng paraan na ang isang programmer ay may magagawa para sa ikabubuti. Tinanong ko ang aking sarili, mayroon bang programa o mga programa na maaari kong isulat, upang gawing posible muli ang isang komunidad?

Ang sagot ay malinaw: ang kailangan muna ay isang operating system. Iyon ang mahalagang software para sa simulang gumamit ng computer. Sa isang operating system, marami kang magagawa; nang walang isa, hindi mo maaaring patakbuhin ang computer. Gamit ang isang libreng operating system, maaari tayong magkaroon muli ng isang komunidad ng mga nakikipagtulungang hacker—at mag-imbita ng sinuman na sumali. At sinuman ay makakagamit ng computer nang hindi nagsisimula sa pamamagitan ng pagsasabwatan upang bawian ang kanyang mga kaibigan.

Bilang isang developer ng operating system, mayroon akong mga tamang kasanayan para sa trabahong ito. Kaya kahit na hindi ko maaaring tanggapin ang tagumpay para sa ipinagkaloob, natanto ko na ako ay inihalal upang gawin ang trabaho. Pinili kong gawing compatible ang system sa Unix para maging portable ito, at para madaling lumipat dito ang mga user ng Unix. Ang pangalang GNU ay pinili, kasunod ng tradisyon ng hacker, bilang isang recursive acronym para sa “GNU's Not Unix.” Ito ay binibigkas bilang isang pantig na may matigas na g.

Ang isang operating system ay hindi nangangahulugang isang kernel lamang, halos hindi sapat upang magpatakbo ng iba pang mga programa. Noong 1970s, ang bawat operating system na karapat-dapat sa pangalan ay kasama ang mga command processor, assembler, compiler, interpreter, debugger, text editor, mailers, at marami pa. Ang ITS ay may mga ito, ang Multics ay may mga ito, ang VMS ay may mga ito, at ang Unix ay may mga ito. Isasama rin sila ng operating system ng GNU.

Nang maglaon ay narinig ko ang mga salitang ito, na iniuugnay kay Hillel (1):

Kung hindi ako para sa sarili ko, sino ang para sa akin?
Kung para lang ako sa sarili ko, ano ako?
Kung hindi ngayon, kailan?

Ang desisyon na simulan ang GNU Project ay batay sa katulad na diwa.

(1) Bilang isang Atheist, hindi ako sumusunod sa sinumang lider ng relihiyon, ngunit kung minsan ay nakikita kong hinahangaan ko ang sinabi ng isa sa kanila.

Malaya gaya ng kalayaan

Ang terminong "libreng software" ay minsan ay hindi maintindihan—wala itong kinalaman sa presyo. Ito ay tungkol sa kalayaan. Narito, samakatuwid, ang kahulugan ng libreng software.

Ang isang programa ay libreng software, para sa iyo, isang partikular na user, kung:

  • May kalayaan kang patakbuhin ang programa ayon sa gusto mo, para sa anumang layunin.
  • May kalayaan kang baguhin ang programa upang umangkop sa iyong mga pangangailangan. (Upang gawing epektibo ang kalayaang ito sa pagsasanay, ikaw dapat meron access sa source code, dahil ang paggawa ng mga pagbabago sa isang program nang walang source code ay napakahirap.)
  • May kalayaan kang muling ipamahagi ang mga kopya, libre man o may bayad.
  • May kalayaan kang ipamahagi ang mga binagong bersyon ng programa, upang makinabang ang komunidad sa iyong mga pagpapabuti.

Dahil ang "libre" ay tumutukoy sa kalayaan, hindi sa presyo, walang kontradiksyon sa pagitan ng pagbebenta ng mga kopya at libreng software. Sa katunayan, ang kalayaan na magbenta ng mga kopya ay mahalaga: ang mga koleksyon ng libreng software na ibinebenta sa mga CD-ROM ay mahalaga para sa komunidad, at ang pagbebenta ng mga ito ay isang mahalagang paraan upang makalikom ng mga pondo para sa libreng software development. Samakatuwid, ang isang programa na hindi malayang isama ng mga tao sa mga koleksyong ito ay hindi libreng software.

Dahil sa kalabuan ng "libre", matagal nang naghahanap ang mga tao ng mga alternatibo, ngunit walang nakahanap ng mas magandang termino. Ang wikang Ingles ay may higit na mga salita at nuances kaysa sa iba pa, ngunit ito ay kulang ng isang simple, hindi malabo, na salita na nangangahulugang "malaya", tulad ng sa kalayaan—"unfettered" ang salitang pinakamalapit sa kahulugan. Ang mga alternatibo tulad ng "pinalaya", "kalayaan", at "bukas" ay may alinman sa maling kahulugan o iba pang kawalan.

GNU software at ang GNU system

Ang pagbuo ng isang buong sistema ay isang napakalaking proyekto. Upang maabot ito, nagpasya akong iangkop at gamitin ang mga kasalukuyang piraso ng libreng software saanman ito posible. Halimbawa, nagpasya ako sa pinakadulo simula na gamitin ang TeX bilang pangunahing formatter ng teksto; makalipas ang ilang taon, nagpasya akong gamitin ang X Window System sa halip na magsulat ng isa pang window system para sa GNU.

Dahil sa mga desisyong ito, at sa iba pang katulad nila, ang sistema ng GNU ay hindi katulad ng koleksyon ng lahat ng software ng GNU. Kasama sa sistema ng GNU ang mga program na hindi GNU software, mga program na binuo ng ibang tao at mga proyekto para sa kanilang sariling mga layunin, ngunit magagamit natin dahil ang mga ito ay libreng software.

Pagsisimula ng proyekto

Noong Enero 1984 huminto ako sa aking trabaho sa MIT at nagsimulang magsulat ng GNU software. Ang pag-alis sa MIT ay kinakailangan upang ang MIT ay hindi makagambala sa pamamahagi ng GNU bilang libreng software. Kung nanatili ako sa staff, maaaring i-claim ng MIT na pagmamay-ari ang trabaho, at maaaring magpataw ng sarili nilang mga tuntunin sa pamamahagi, o kahit na ginawang proprietary software package ang trabaho. Wala akong intensyon na gumawa ng malaking dami ng trabaho para lang makitang wala na itong silbi para sa nilalayon nitong layunin: paglikha ng bagong komunidad ng pagbabahagi ng software.

Gayunpaman, inanyayahan ako ni Propesor Winston, ang pinuno noon ng MIT AI Lab, na patuloy na gamitin ang mga pasilidad ng lab.

Ang mga unang hakbang

Ilang sandali bago simulan ang GNU Project, narinig ko ang tungkol sa Free University Compiler Kit, na kilala rin bilang VUCK. (Ang salitang Dutch para sa "libre" ay isinulat ng a v.) Ito ay isang compiler na idinisenyo upang pangasiwaan ang maraming wika, kabilang ang C at Pascal, at upang suportahan ang maraming target na makina. Sumulat ako sa may-akda nito na nagtatanong kung magagamit ito ng GNU.

Siya ay tumugon nang panunuya, na nagsasabi na ang unibersidad ay libre ngunit ang compiler ay hindi. Kaya't nagpasya ako na ang aking unang programa para sa GNU Project ay isang multilanguage, multiplatform compiler.

Umaasa na maiwasan ang pangangailangan na isulat ang buong compiler sa aking sarili, nakuha ko ang source code para sa Pastel compiler, na isang multiplatform compiler na binuo sa Lawrence Livermore Lab. Sinuportahan nito, at isinulat sa, isang pinahabang bersyon ng Pascal, na idinisenyo upang maging isang wika ng system-programming. Nagdagdag ako ng C front end, at nagsimulang i-port ito sa Motorola 68000 computer. Ngunit kinailangan kong isuko iyon nang matuklasan ko na ang compiler ay nangangailangan ng maraming megabytes ng stack space, at ang magagamit na 68000 Unix system ay papayagan lamang ang 64k.

Pagkatapos ay napagtanto ko na ang Pastel compiler ay gumana sa pamamagitan ng pag-parse ng buong input file sa isang syntax tree, pag-convert ng buong syntax tree sa isang chain ng "mga tagubilin", at pagkatapos ay pagbuo ng buong output file, nang hindi kailanman naglalabas ng anumang storage. Sa puntong ito, napagpasyahan kong kailangan kong magsulat ng isang bagong compiler mula sa simula. Ang bagong compiler na iyon ay kilala na ngayon bilang GCC ; wala sa Pastel compiler ang ginagamit dito, ngunit nagawa kong iakma at gamitin ang C front end na isinulat ko. Ngunit iyan ay pagkaraan ng ilang taon; una, nagtrabaho ako sa GNU Emacs.

GNU Emacs

Nagsimula akong magtrabaho sa GNU Emacs noong Setyembre 1984, at noong unang bahagi ng 1985 nagsimula itong magamit. Ito ay nagbigay-daan sa akin upang simulan ang paggamit ng mga Unix system upang mag-edit; Walang interes sa pag-aaral na gumamit ng vi o ed, ginawa ko ang aking pag-edit sa iba pang mga uri ng makina hanggang noon.

Sa puntong ito, nagsimulang gustong gamitin ng mga tao ang GNU Emacs, na nagtaas ng tanong kung paano ito ipamahagi. Siyempre, inilagay ko ito sa anonymous na ftp server sa MIT computer na ginamit ko. (Ang computer na ito, prep.ai.mit.edu, ay naging pangunahing lugar ng pamamahagi ng ftp ng GNU; nang i-decommission ito makalipas ang ilang taon, inilipat namin ang pangalan sa aming bagong ftp server.) Ngunit noong panahong iyon, marami sa mga interesado ang mga tao ay wala sa Internet at hindi makakuha ng kopya sa pamamagitan ng ftp. Kaya ang tanong, ano ang sasabihin ko sa kanila?

Maaari ko sanang sabihin, "Maghanap ng kaibigan na nasa net at gagawa ng kopya para sa iyo." O kaya'y nagawa ko sana ang ginawa ko sa orihinal na PDP-10 Emacs: sabihin sa kanila, "Ipadala sa akin ang isang tape at isang SASE , at ipapadala ko ito pabalik na may kasamang Emacs." Ngunit wala akong trabaho, at naghahanap ako ng mga paraan upang kumita ng pera mula sa libreng software. Kaya inanunsyo ko na magpapadala ako ng tape sa sinumang gusto nito, sa bayad na $150. Sa ganitong paraan, nagsimula ako ng libreng negosyo sa pamamahagi ng software, ang pasimula ng mga kumpanyang namamahagi ngayon ng buong distribusyon ng GNU/Linux system.

Libre ba ang isang programa para sa bawat gumagamit?

Kung ang isang programa ay libreng software kapag umalis ito sa mga kamay ng may-akda nito, hindi ito nangangahulugan na ito ay magiging libreng software para sa lahat ng may kopya nito. Halimbawa, ang software ng pampublikong domain (software na hindi naka-copyright) ay libreng software; ngunit kahit sino ay maaaring gumawa ng pagmamay-ari na binagong bersyon nito. Gayundin, maraming libreng programa ang naka-copyright ngunit ipinamahagi sa ilalim ng mga simpleng permissive na lisensya na nagbibigay-daan sa pagmamay-ari na binagong bersyon.

Ang paradigmatic na halimbawa ng problemang ito ay ang X Window System. Binuo sa MIT, at inilabas bilang libreng software na may permissive na lisensya, hindi nagtagal ay pinagtibay ito ng iba't ibang kumpanya ng kompyuter. Idinagdag nila ang X sa kanilang pagmamay-ari na Unix system, sa binary form lamang, at sakop ng parehong kasunduan sa hindi paglalahad. Ang mga kopyang ito ng X ay hindi mas libreng software kaysa sa Unix.

Hindi ito itinuring ng mga developer ng X Window System na isang problema—inaasahan at nilayon nilang mangyari ito. Ang kanilang layunin ay hindi kalayaan, "tagumpay" lamang, na tinukoy bilang "pagkakaroon ng maraming gumagamit." Wala silang pakialam kung may kalayaan ang mga user na ito, dapat lang na marami sila.

Ito ay humantong sa isang kabalintunaan na sitwasyon kung saan ang dalawang magkaibang paraan ng pagbibilang ng halaga ng kalayaan ay nagbigay ng magkakaibang mga sagot sa tanong na, "Libre ba ang programang ito?" Kung husgahan mo batay sa kalayaang ibinigay ng mga tuntunin sa pamamahagi ng MIT release, masasabi mong ang X ay libreng software. Ngunit kung sinukat mo ang kalayaan ng karaniwang gumagamit ng X, kailangan mong sabihin na ito ay pagmamay-ari na software. Karamihan sa mga gumagamit ng X ay nagpapatakbo ng mga proprietary na bersyon na kasama ng mga Unix system, hindi ang libreng bersyon.

Copyleft at ang GNU GPL

Ang layunin ng GNU ay bigyan ang mga gumagamit ng kalayaan, hindi lamang upang maging tanyag. Kaya kailangan naming gumamit ng mga termino sa pamamahagi na pumipigil sa GNU software na maging proprietary software. Ang paraan na ginagamit namin ay tinatawag na "copyleft".(1)

Gumagamit ang Copyleft ng batas sa copyright, ngunit binabaligtad ito upang maihatid ang kabaligtaran ng karaniwang layunin nito: sa halip na isang paraan para sa paghihigpit sa isang programa, nagiging paraan ito para mapanatiling libre ang programa.

Ang pangunahing ideya ng copyleft ay binibigyan namin ang lahat ng pahintulot na patakbuhin ang programa, kopyahin ang program, baguhin ang programa, at ipamahagi ang mga binagong bersyon—ngunit hindi pahintulot na magdagdag ng kanilang sariling mga paghihigpit. Kaya, ang mga mahahalagang kalayaan na tumutukoy sa "libreng software" ay ginagarantiyahan sa lahat ng may kopya; sila ay nagiging hindi maiaalis na mga karapatan.

Para sa isang epektibong copyleft, dapat ding libre ang mga binagong bersyon. Tinitiyak nito na ang gawaing batay sa atin ay magiging available sa ating komunidad kung ito ay nai-publish. Kapag ang mga programmer na may mga trabaho bilang programmer ay nagboluntaryong pahusayin ang GNU software, ito ay copyleft na pumipigil sa kanilang mga employer na sabihing, “Hindi mo maibabahagi ang mga pagbabagong iyon, dahil gagamitin namin ang mga ito para gawin ang aming pagmamay-ari na bersyon ng programa.”

Ang pangangailangan na ang mga pagbabago ay dapat na libre ay mahalaga kung gusto nating tiyakin ang kalayaan para sa bawat gumagamit ng programa. Ang mga kumpanyang nagsapribado sa X Window System ay karaniwang gumagawa ng ilang mga pagbabago upang mai-port ito sa kanilang mga system at hardware. Ang mga pagbabagong ito ay maliit kumpara sa malaking lawak ng X, ngunit hindi sila maliit. Kung ang paggawa ng mga pagbabago ay isang dahilan upang tanggihan ang kalayaan ng mga gumagamit, magiging madali para sa sinuman na samantalahin ang dahilan.

Ang isang nauugnay na isyu ay tungkol sa pagsasama-sama ng isang libreng programa sa hindi libreng code. Ang ganitong kumbinasyon ay hindi maaaring hindi maging libre; alinmang mga kalayaan ang kulang para sa hindi malayang bahagi ay magiging kulang din para sa kabuuan. Upang payagan ang gayong mga kumbinasyon ay magbubukas ng isang butas na sapat na malaki upang lumubog ang isang barko. Samakatuwid, ang isang mahalagang kinakailangan para sa copyleft ay ang pagsaksak sa butas na ito: anumang idinagdag o pinagsama sa isang copylefted na programa ay dapat na ang mas malaking pinagsamang bersyon ay libre at copylefted din.

Ang partikular na pagpapatupad ng copyleft na ginagamit namin para sa karamihan ng GNU software ay ang GNU General Public License, o GNU GPL sa madaling salita. Mayroon kaming iba pang mga uri ng copyleft na ginagamit sa mga partikular na pangyayari. Ang mga manual ng GNU ay copyleft din, ngunit gumamit ng mas simpleng uri ng copyleft, dahil ang pagiging kumplikado ng GNU GPL ay hindi kinakailangan para sa mga manual.(2)

(1) Noong 1984 o 1985, si Don Hopkins (isang napaka-mapanlikhang tao) ay nagpadala sa akin ng isang liham. Sa sobre ay isinulat niya ang ilang nakakatuwang kasabihan, kabilang ang isang ito: “Copyleft—all rights reversed.” Ginamit ko ang salitang "copyleft" upang pangalanan ang konsepto ng pamamahagi na aking binuo noong panahong iyon.

Ang mga empleyado ng Free Software Foundation ay nagsulat at nagpanatili ng ilang mga pakete ng software ng GNU. Dalawang kapansin-pansin ang C library at ang shell. Ang GNU C library ay ang ginagamit ng bawat program na tumatakbo sa isang GNU/Linux system para makipag-ugnayan sa Linux. Ito ay binuo ng isang miyembro ng kawani ng Free Software Foundation, si Roland McGrath. Ang shell na ginagamit sa karamihan ng mga sistema ng GNU/Linux ay BASH , ang Bourne Again Shell(1), na binuo ng empleyado ng FSF na si Brian Fox.

Pinondohan namin ang pagpapaunlad ng mga programang ito dahil ang GNU Project ay hindi lamang tungkol sa mga kasangkapan o isang kapaligiran sa pag-unlad. Ang aming layunin ay isang kumpletong operating system, at ang mga program na ito ay kailangan para sa layuning iyon.

(1) Ang "Bourne Again Shell" ay isang dula sa pangalang "Bourne Shell", na siyang karaniwang shell sa Unix.

Libreng suporta sa software

Ang pilosopiya ng libreng software ay tinatanggihan ang isang partikular na malawakang kasanayan sa negosyo, ngunit hindi ito laban sa negosyo. Kapag iginagalang ng mga negosyo ang kalayaan ng mga gumagamit, nais naming magtagumpay sila.

Ang pagbebenta ng mga kopya ng Emacs ay nagpapakita ng isang uri ng libreng negosyo ng software. Noong kinuha ng FSF ang negosyong iyon, kailangan ko ng isa pang paraan para kumita. Natagpuan ko ito sa pagbebenta ng mga serbisyong nauugnay sa libreng software na aking binuo. Kasama dito ang pagtuturo, para sa mga paksa tulad ng kung paano i-program ang GNU Emacs at kung paano i-customize ang GCC, at pag-develop ng software, karamihan sa pag-port ng GCC sa mga bagong platform.

Ngayon, ang bawat isa sa mga ganitong uri ng libreng software na negosyo ay ginagawa ng ilang mga korporasyon. Ang ilan ay namamahagi ng mga libreng koleksyon ng software sa CD-ROM; ang iba ay nagbebenta ng suporta sa mga antas mula sa pagsagot sa mga tanong ng user, sa pag-aayos ng mga bug, sa pagdaragdag ng mga pangunahing bagong feature. Nagsisimula na rin kaming makakita ng mga kumpanya ng libreng software batay sa paglulunsad ng mga bagong produkto ng libreng software.

Mag-ingat, gayunpaman—isang bilang ng mga kumpanya na nag-uugnay sa kanilang sarili sa terminong "open source" ay talagang nakabatay sa kanilang negosyo sa hindi libreng software na gumagana sa libreng software. Ang mga ito ay hindi mga libreng kumpanya ng software, sila ay mga kumpanya ng pagmamay-ari ng software na ang mga produkto ay tinutukso ang mga gumagamit na malayo sa kalayaan. Tinatawag nila ang mga programang ito na “value-added packages”, na nagpapakita ng mga halaga na gusto nilang gamitin natin: kaginhawaan kaysa sa kalayaan. Kung higit nating pinahahalagahan ang kalayaan, dapat nating tawagan ang mga ito na "freedom-subtracted" na mga pakete.

teknikal na layunin

Ang pangunahing layunin ng GNU ay maging libreng software. Kahit na ang GNU ay walang teknikal na kalamangan sa Unix, ito ay magkakaroon ng panlipunang kalamangan, na nagpapahintulot sa mga gumagamit na makipagtulungan, at isang etikal na kalamangan, na iginagalang ang kalayaan ng gumagamit.

Ngunit natural na ilapat ang mga kilalang pamantayan ng mahusay na kasanayan sa trabaho—halimbawa, pabago-bagong paglalaan ng mga istruktura ng data upang maiwasan ang di-makatwirang mga nakapirming limitasyon sa laki, at pangangasiwa sa lahat ng posibleng 8-bit na code saanman ito makatuwiran.

Bilang karagdagan, tinanggihan namin ang pagtuon ng Unix sa maliit na laki ng memorya, sa pamamagitan ng pagpapasya na huwag suportahan ang 16-bit na mga makina (malinaw na ang 32-bit na mga makina ay magiging pamantayan sa oras na matapos ang sistema ng GNU), at upang walang pagsisikap upang bawasan ang paggamit ng memory maliban kung ito ay lumampas sa isang megabyte. Sa mga program kung saan hindi mahalaga ang pangangasiwa ng napakalaking file, hinikayat namin ang mga programmer na basahin ang isang buong input file sa core, pagkatapos ay i-scan ang mga nilalaman nito nang hindi na kailangang mag-alala tungkol sa I/O.

Ang mga pagpapasyang ito ay nagbigay-daan sa maraming programa ng GNU na malampasan ang kanilang mga katapat sa Unix sa pagiging maaasahan at bilis.

nag-donate ng mga computer

Habang lumalago ang reputasyon ng GNU Project, nagsimulang mag-alok ang mga tao na mag-abuloy ng mga makinang nagpapatakbo ng Unix sa proyekto. Napaka-kapaki-pakinabang ang mga ito, dahil ang pinakamadaling paraan upang bumuo ng mga bahagi ng GNU ay gawin ito sa isang Unix system, at palitan ang mga bahagi ng system na iyon ng isa ng isa. Ngunit nagbangon sila ng isang etikal na isyu: kung tama ba na magkaroon tayo ng kopya ng Unix.

Ang Unix ay (at ay) pagmamay-ari na software, at ang pilosopiya ng GNU Project ay nagsabi na hindi tayo dapat gumamit ng pagmamay-ari na software. Ngunit, ang paglalapat ng parehong pangangatwiran na humahantong sa konklusyon na ang karahasan sa pagtatanggol sa sarili ay makatwiran, napagpasyahan ko na ito ay lehitimong gamitin isang pagmamay-ari na pakete noong iyon ay mahalaga para sa pagbuo ng isang libreng kapalit na makakatulong sa iba na huminto sa paggamit ng pagmamay-ari na pakete.

Ngunit, kahit na ito ay isang makatwirang kasamaan, ito ay isang kasamaan pa rin. Ngayon wala na kaming anumang mga kopya ng Unix, dahil pinalitan namin ang mga ito ng mga libreng operating system. Kung hindi namin mapapalitan ng libre ang operating system ng makina, pinalitan namin ang makina.

Ang Listahan ng Gawain ng GNU

Habang nagpapatuloy ang Proyekto ng GNU, at ang pagtaas ng bilang ng mga bahagi ng system ay natagpuan o binuo, kalaunan ay naging kapaki-pakinabang na gumawa ng listahan ng mga natitirang gaps. Ginamit namin ito para mag-recruit ng mga developer para isulat ang mga nawawalang piraso. Ang listahang ito ay naging kilala bilang GNU Task List. Bilang karagdagan sa mga nawawalang bahagi ng Unix, naglista kami ng iba't ibang kapaki-pakinabang na software at mga proyekto sa dokumentasyon na, naisip namin, na dapat magkaroon ng isang tunay na kumpletong sistema.

Ngayon (1), halos wala nang mga bahagi ng Unix ang natitira sa Listahan ng Gawain ng GNU—natapos na ang mga trabahong iyon, bukod sa ilang mga hindi mahalaga. Ngunit ang listahan ay puno ng mga proyekto na maaaring tawagin ng ilan na "mga aplikasyon". Ang anumang program na nakakaakit ng higit sa isang makitid na klase ng mga user ay magiging isang kapaki-pakinabang na bagay upang idagdag sa isang operating system.

Kahit na ang mga laro ay kasama sa listahan ng gawain—at mula pa noong simula. Kasama sa Unix ang mga laro, kaya natural na dapat din ang GNU. Ngunit ang pagiging tugma ay hindi isang isyu para sa mga laro, kaya hindi namin sinunod ang listahan ng mga laro na mayroon ang Unix. Sa halip, naglista kami ng spectrum ng iba't ibang uri ng laro na maaaring magustuhan ng mga user.

(1) Iyan ay isinulat noong 1998. Noong 2009 ay hindi na kami nagpapanatili ng mahabang listahan ng gawain. Ang komunidad ay bumuo ng libreng software nang napakabilis na hindi namin masubaybayan ang lahat ng ito. Sa halip, mayroon kaming isang listahan ng Mga High Priority na Proyekto, isang mas maikling listahan ng mga proyekto na talagang gusto naming hikayatin ang mga tao na magsulat.

Ang GNU Library GPL

Ang GNU C library ay gumagamit ng isang espesyal na uri ng copyleft na tinatawag na GNU Library General Public License(1), na nagbibigay ng pahintulot na i-link ang pagmamay-ari na software sa library. Bakit gagawin ang pagbubukod na ito?

Ito ay hindi isang bagay ng prinsipyo; walang prinsipyo na nagsasabing may karapatan ang mga produktong software na isama ang aming code. (Bakit nag-aambag sa isang proyekto na nakabatay sa pagtanggi na ibahagi sa amin?) Ang paggamit ng LGPL para sa C library, o para sa anumang aklatan, ay isang bagay ng diskarte.

Ang C library ay gumagawa ng isang generic na trabaho; bawat proprietary system o compiler ay may kasamang C library. Samakatuwid, ang gawing available lamang ang aming C library sa libreng software ay hindi magbibigay ng anumang kalamangan sa libreng software—masisira lamang nito ang paggamit ng aming library.

Ang isang sistema ay eksepsiyon dito: sa GNU system (at kabilang dito ang GNU/Linux), ang GNU C library ay ang tanging C library. Kaya ang mga tuntunin sa pamamahagi ng GNU C library ay tumutukoy kung posible na mag-compile ng isang proprietary program para sa GNU system. Walang etikal na dahilan upang payagan ang mga pagmamay-ari na aplikasyon sa sistema ng GNU, ngunit sa estratehikong paraan, tila ang hindi pagpayag sa mga ito ay higit na magagawa upang pigilan ang paggamit ng sistema ng GNU kaysa sa paghikayat sa pagbuo ng mga libreng aplikasyon. Kaya naman ang paggamit ng Library GPL ay isang magandang diskarte para sa C library.

Para sa iba pang mga aklatan, ang estratehikong desisyon ay kailangang isaalang-alang sa bawat kaso. Kapag ang isang library ay gumawa ng isang espesyal na trabaho na makakatulong sa pagsulat ng ilang mga uri ng mga programa, pagkatapos ay i-release ito sa ilalim ng GPL, na nililimitahan ito sa mga libreng program lamang, ay isang paraan ng pagtulong sa iba pang mga libreng software developer, na nagbibigay sa kanila ng isang kalamangan laban sa pagmamay-ari na software.

Isaalang-alang ang GNU Readline, isang library na binuo para magbigay ng command-line editing para sa BASH. Ang Readline ay inilabas sa ilalim ng ordinaryong GNU GPL, hindi ang Library GPL. Malamang na binabawasan nito ang dami ng Readline na ginagamit, ngunit hindi iyon kawalan para sa amin. Samantala, hindi bababa sa isang kapaki-pakinabang na application ang ginawang libreng software na partikular para magamit nito ang Readline, at iyon ay isang tunay na pakinabang para sa komunidad.

Ang mga proprietary software developer ay may mga pakinabang na ibinibigay ng pera; ang mga libreng software developer ay kailangang gumawa ng mga pakinabang para sa bawat isa. Umaasa ako na balang araw magkakaroon tayo ng malaking koleksyon ng mga library na sakop ng GPL na walang parallel na magagamit sa pagmamay-ari na software, na nagbibigay ng mga kapaki-pakinabang na module upang magsilbing mga bloke ng gusali sa bagong libreng software, at pagdaragdag ng hanggang sa isang malaking bentahe para sa karagdagang libreng software development.

(1) Ang lisensyang ito ay tinatawag na ngayong GNU Lesser General Public License, upang maiwasan ang pagbibigay ng ideya na dapat itong gamitin ng lahat ng mga aklatan. Tingnan ang Bakit hindi mo dapat gamitin ang Lesser GPL para sa iyong susunod na library para sa higit pang impormasyon.

Nagkamot ng kati?

Sinabi ni Eric Raymond na "Ang bawat magandang gawa ng software ay nagsisimula sa pamamagitan ng pagkamot ng personal na kati ng developer." Maaaring mangyari iyon kung minsan, ngunit maraming mahahalagang piraso ng GNU software ang binuo upang magkaroon ng kumpletong libreng operating system.

Halimbawa, binuo namin ang GNU C library dahil ang isang Unix-like system ay nangangailangan ng isang C library, BASH dahil ang isang Unix-like system ay nangangailangan ng shell, at GNU tar dahil ang isang Unix-like system ay nangangailangan ng isang tar program. Totoo rin ito para sa sarili kong mga programa—ang GNU C compiler, GNU Emacs, GDB at GNU Make.

Ang ilang mga programa ng GNU ay binuo upang makayanan ang mga partikular na banta sa ating kalayaan. Kaya, bumuo kami ng gzip upang palitan ang Compress program, na nawala sa komunidad dahil sa mga patent ng LZW. Natagpuan namin ang mga tao upang bumuo ng LessTif, at mas kamakailan ay nagsimula ng GNOME at Harmony, upang matugunan ang mga problemang dulot ng ilang mga proprietary library (tingnan sa ibaba). Binubuo namin ang GNU Privacy Guard upang palitan ang sikat na nonfree encryption software, dahil ang mga user ay hindi dapat pumili sa pagitan ng privacy at kalayaan.

Siyempre, ang mga taong sumulat ng mga programang ito ay naging interesado sa gawain, at maraming mga tampok ang idinagdag sa kanila ng iba't ibang mga tao para sa kapakanan ng kanilang sariling mga pangangailangan at interes. Ngunit hindi iyon ang dahilan kung bakit umiiral ang mga programa.

mga hindi inaasahang pag-unlad

Sa simula ng GNU Project, naisip ko na bubuo tayo ng buong sistema ng GNU, pagkatapos ay ilalabas ito sa kabuuan. Hindi ganyan ang nangyari.

Dahil ang bawat bahagi ng GNU system ay ipinatupad sa isang Unix system, ang bawat bahagi ay maaaring tumakbo sa Unix system bago pa umiral ang isang kumpletong GNU system. Naging tanyag ang ilan sa mga program na ito, at sinimulan ng mga user na i-extend ang mga ito at i-port ang mga ito—sa iba't ibang hindi tugmang bersyon ng Unix, at minsan sa iba pang mga system.

Ang proseso ay naging mas makapangyarihan sa mga programang ito, at umakit ng mga pondo at mga nag-aambag sa GNU Project. Ngunit malamang na naantala din nito ang pagkumpleto ng isang minimal na gumaganang sistema ng ilang taon, habang ang mga developer ng GNU" ay naglaan ng oras sa pagpapanatili ng mga port na ito at pagdaragdag ng mga tampok sa mga umiiral na bahagi, sa halip na magpatuloy upang magsulat ng isang nawawalang bahagi pagkatapos ng isa pa.

Ang GNU Hurd

Noong 1990, halos kumpleto na ang sistema ng GNU; ang tanging pangunahing nawawalang sangkap ay ang kernel. Napagpasyahan naming ipatupad ang aming kernel bilang isang koleksyon ng mga proseso ng server na tumatakbo sa ibabaw ng Mach. Ang Mach ay isang microkernel na binuo sa Carnegie Mellon University at pagkatapos ay sa University of Utah; ang GNU Hurd ay isang koleksyon ng mga server (i.e., isang kawan ng mga GNU) na tumatakbo sa ibabaw ng Mach, at gumagawa ng iba't ibang mga trabaho ng Unix kernel. Ang pagsisimula ng pag-unlad ay naantala habang hinihintay namin na mailabas ang Mach bilang libreng software, gaya ng ipinangako.

Isang dahilan sa pagpili ng disenyong ito ay upang maiwasan ang tila pinakamahirap na bahagi ng trabaho: pag-debug ng kernel program nang walang source-level na debugger para gawin ito. Ang bahaging ito ng trabaho ay tapos na, sa Mach, at inaasahan naming i-debug ang mga server ng Hurd bilang mga program ng user, kasama ang GDB. Ngunit tumagal ito ng mahabang panahon gawin mo yan posible, at ang mga multithreaded server na nagpapadala ng mga mensahe sa isa't isa ay naging napakahirap i-debug. Making the Hurd work solidly stretched on for many years.

Alix

Ang GNU kernel ay hindi orihinal na dapat na tinatawag na Hurd. Ang orihinal na pangalan nito ay Alix—na ipinangalan sa babaeng syota ko noon. Siya, isang Unix system administrator, ay itinuro kung paano magkasya ang kanyang pangalan sa isang karaniwang pattern ng pagbibigay ng pangalan para sa mga bersyon ng Unix system; bilang isang biro, sinabi niya sa kanyang mga kaibigan, "Dapat may magpangalan ng kernel sa pangalan ko." Wala akong sinabi, ngunit nagpasya akong sorpresahin siya ng isang kernel na pinangalanang Alix.

Hindi ito nanatili sa ganoong paraan. Si Michael (Thomas ngayon) Bushnell, ang pangunahing developer ng kernel, ay mas pinili ang pangalang Hurd, at muling tinukoy ang Alix upang sumangguni sa isang partikular na bahagi ng kernel—ang bahaging bitag sa mga tawag sa system at pangasiwaan ang mga ito sa pamamagitan ng pagpapadala ng mga mensahe sa mga server ng Hurd.

Nang maglaon, naghiwalay kami ni Alix, at pinalitan niya ang kanyang pangalan; nang nakapag-iisa, binago ang disenyo ng Hurd upang ang C library ay direktang magpadala ng mga mensahe sa mga server, at dahil dito nawala ang bahagi ng Alix sa disenyo.

Ngunit bago nangyari ang mga bagay na ito, isang kaibigan niya ang nakatagpo ng pangalang Alix sa Hurd source code, at binanggit ito sa kanya. Kaya nagkaroon siya ng pagkakataong makahanap ng kernel na ipinangalan sa kanya.

Linux at GNU/Linux

Ang GNU Hurd ay hindi angkop para sa paggamit ng produksyon, at hindi namin alam kung ito ay magiging. Ang disenyong nakabatay sa kakayahan ay may mga problema na direktang nagreresulta mula sa flexibility ng disenyo, at hindi malinaw kung may mga solusyon.

Sa kabutihang palad, ang isa pang kernel ay magagamit. Noong 1991, si Linus Torvalds ay bumuo ng isang Unix-compatible kernel at tinawag itong Linux. Ito ay pagmamay-ari noong una, ngunit noong 1992, ginawa niya itong libreng software; ang pagsasama-sama ng Linux sa hindi-ganap na GNU system ay nagresulta sa isang kumpletong libreng operating system. (Siyempre, ang pagsasama-sama ng mga ito ay isang malaking trabaho.) Ito ay dahil sa Linux na maaari tayong aktwal na magpatakbo ng isang bersyon ng GNU system ngayon.

Mga hamon sa ating kinabukasan

Mayroon kaming napatunayang kakayahan na bumuo ng malawak na spectrum ng libreng software. Hindi ito nangangahulugan na tayo ay walang talo at hindi mapipigilan. Maraming mga hamon ang gumagawa ng hinaharap ng libreng software na hindi tiyak; ang pagtugon sa kanila ay mangangailangan ng matatag na pagsisikap at pagtitiis, kung minsan ay tumatagal ng maraming taon. Mangangailangan ito ng uri ng pagpapasiya na ipinapakita ng mga tao kapag pinahahalagahan nila ang kanilang kalayaan at hindi hahayaang kunin ito ng sinuman.

Tinatalakay ng sumusunod na apat na seksyon ang mga hamong ito.

lihim na hardware

Ang mga tagagawa ng hardware ay lalong madalas na panatilihing lihim ang mga detalye ng hardware. Ginagawa nitong mahirap na magsulat ng mga libreng driver upang masuportahan ng Linux at XFree86 ang bagong hardware. Mayroon kaming kumpletong mga libreng system ngayon, ngunit wala kaming mga ito bukas kung hindi namin masuportahan ang mga computer bukas.

Mayroong dalawang paraan upang makayanan ang problemang ito. Maaaring gumawa ng reverse engineering ang mga programmer upang malaman kung paano suportahan ang hardware. Ang iba sa atin ay maaaring pumili ng hardware na sinusuportahan ng libreng software; habang dumarami ang ating mga bilang, ang pagiging lihim ng mga pagtutukoy ay magiging isang patakarang magpapatalo sa sarili.

Ang reverse engineering ay isang malaking trabaho; magkakaroon ba tayo ng mga programmer na may sapat na determinasyon upang isagawa ito? Oo—kung nakabuo kami ng isang malakas na pakiramdam na ang libreng software ay isang usapin ng prinsipyo, at hindi matitiis ang mga hindi libreng driver. At ang malaking bilang ba sa atin ay gumagastos ng dagdag na pera, o kahit kaunting dagdag na oras, para magamit natin ang mga libreng driver? Oo, kung laganap ang determinasyon na magkaroon ng kalayaan.

(Tala ng 2008: ang isyu na ito ay umaabot din sa BIOS. Mayroong libreng BIOS, LibreBoot (isang pamamahagi ng coreboot); ang problema ay pagkuha ng mga spec para sa mga makina upang masuportahan ng LibreBoot ang mga ito nang walang walang libreng "blobs".)

mga hindi libreng aklatan

Ang isang hindi libreng library na tumatakbo sa mga libreng operating system ay nagsisilbing bitag para sa mga libreng developer ng software. "Ang mga kaakit-akit na tampok ng library ay ang pain; kung gagamitin mo ang library, mahuhulog ka sa bitag, dahil ang iyong program ay hindi maaaring maging bahagi ng isang libreng operating system. (Mahigpit na nagsasalita, maaari naming isama ang iyong programa, ngunit ito ay mananalo" t tumakbo na nawawala ang library.) Ang mas masahol pa, kung ang isang program na gumagamit ng proprietary library ay nagiging tanyag, maaari nitong maakit ang iba pang hindi mapag-aalinlanganang programmer sa bitag.

Ang unang pagkakataon ng problemang ito ay ang Motif toolkit, noong dekada 80. Bagama't wala pang mga libreng operating system, malinaw kung anong problema ang idudulot ng Motif sa kanila mamaya. Ang GNU Project ay tumugon sa dalawang paraan: sa pamamagitan ng pagtatanong sa mga indibidwal na libreng software projects na suportahan ang libreng X Toolkit widgets pati na rin ang Motif, at sa pamamagitan ng paghingi ng isang tao na magsulat ng libreng kapalit para sa Motif. Ang trabaho ay tumagal ng maraming taon; Ang LessTif, na binuo ng Hungry Programmer, ay naging sapat na malakas upang suportahan ang karamihan sa mga application ng Motif noong 1997 lamang.

Sa pagitan ng 1996 at 1998, isa pang hindi libreng GUI toolkit library, na tinatawag na Qt, ay ginamit sa isang malaking koleksyon ng libreng software, ang desktop KDE .

Hindi nagamit ng mga libreng sistema ng GNU/Linux ang KDE, dahil hindi namin magagamit ang library. Gayunpaman, ang ilang mga komersyal na distributor ng mga sistema ng GNU/Linux na hindi mahigpit sa paggamit ng libreng software ay nagdagdag ng KDE sa kanilang mga system—na gumagawa ng system na may mas maraming kakayahan, ngunit mas kaunting kalayaan. Ang pangkat ng KDE ay aktibong hinihikayat ang higit pang mga programmer na gumamit ng Qt, at milyun-milyong bagong "mga user ng Linux" ang hindi kailanman nalantad sa ideya na may problema dito. Lumilitaw na malungkot ang sitwasyon.

Ang komunidad ng libreng software ay tumugon sa problema sa dalawang paraan: GNOME at Harmony.

Ang GNOME, ang GNU Network Object Model Environment, ay desktop project ng GNU. Sinimulan noong 1997 ni Miguel de Icaza, at binuo sa suporta ng Red Hat Software, itinakda ng GNOME na magbigay ng katulad na mga pasilidad sa desktop, ngunit gumagamit ng libreng software nang eksklusibo. Mayroon itong teknikal pati na rin ang mga pakinabang, tulad ng pagsuporta sa iba't ibang wika, hindi lamang C++.

Ang Harmony ay isang katugmang kapalit na library, na idinisenyo upang gawing posible na patakbuhin ang KDE software nang hindi gumagamit ng Qt.

Noong Nobyembre 1998, ang mga developer ng Qt ay nag-anunsyo ng pagbabago ng lisensya na, kapag natupad, ay dapat gumawa ng Qt na libreng software. Walang paraan para makasigurado, ngunit sa palagay ko ito ay bahagyang dahil sa matatag na pagtugon ng komunidad sa problemang idinulot ng Qt noong hindi ito libre. (Ang bagong lisensya ay hindi maginhawa at hindi patas, kaya nananatiling kanais-nais na iwasan ang paggamit Qt.)

Paano tayo tutugon sa susunod na mapang-akit na hindi libreng library? Mauunawaan ba ng buong komunidad ang pangangailangang lumayo sa bitag? O ibibigay ba ng marami sa atin ang kalayaan para sa kaginhawahan, at magbubunga ng isang malaking problema? Ang ating kinabukasan ay nakasalalay sa ating pilosopiya.

Mga patent ng software

Ang pinakamasamang banta na kinakaharap namin ay nagmumula sa mga patent ng software, na maaaring maglagay ng mga algorithm at feature na hindi limitado sa libreng software nang hanggang dalawampung taon. Ang mga patent ng algorithm ng compression ng LZW ay inilapat noong 1983, at hindi pa rin kami makapaglalabas ng libreng software upang makagawa ng wastong mga naka-compress na GIF. Noong 1998, isang libreng programa upang makagawa ng MP3 compressed audio ay inalis mula sa pamamahagi sa ilalim ng pagbabanta ng isang patent suit.

May mga paraan upang makayanan ang mga patent: maaari tayong maghanap ng katibayan na ang isang patent ay hindi wasto, at maaari tayong maghanap ng mga alternatibong paraan upang gawin ang isang trabaho. Ngunit ang bawat isa sa mga pamamaraang ito ay gumagana lamang minsan; kapag pareho silang nabigo, maaaring pilitin ng isang patent ang lahat ng libreng software na kulang sa ilang feature na gusto ng mga user. Pagkatapos ng mahabang paghihintay, ang mga patent ay mawawalan ng bisa (ang mga patent ng MP3 ay inaasahang mag-expire na sa 2018), ngunit ano ang gagawin natin hanggang doon?

Yaong sa atin na nagpapahalaga sa libreng software para sa kalayaan ay mananatili pa rin sa libreng software. Aayusin natin ang trabaho nang wala ang mga patented na feature. Ngunit ang mga taong nagpapahalaga sa libreng software dahil inaasahan nilang ito ay technically superior ay malamang na tawagan ito isang pagkabigo kapag pinipigilan ito ng isang patent. Kaya, bagama't kapaki-pakinabang na pag-usapan ang tungkol sa praktikal na bisa ng modelo ng pag-unlad ng "bazaar", at ang pagiging maaasahan at kapangyarihan ng ilang libreng software, hindi tayo dapat tumigil doon. kalayaan at mga prinsipyo.

Libreng dokumentasyon

Ang pinakamalaking kakulangan sa aming mga libreng operating system ay wala sa software—ito ay ang kakulangan ng magagandang libreng manual na maaari naming isama sa aming mga system. Ang dokumentasyon ay isang mahalagang bahagi ng anumang software package; kapag ang isang mahalagang libreng software package ay walang magandang libreng manual, iyon ay isang malaking agwat. Marami tayong gaps ngayon.

Ang libreng dokumentasyon, tulad ng libreng software, ay isang usapin ng kalayaan, hindi presyo. Ang pamantayan para sa isang libreng manual ay halos kapareho ng para sa libreng software: ito ay isang bagay ng pagbibigay sa lahat ng mga gumagamit ng ilang mga kalayaan. Ang muling pamamahagi (kabilang ang komersyal na pagbebenta) ay dapat pahintulutan, online at sa papel, upang ang manwal ay maaaring samahan ng bawat kopya ng programa.

Ang pahintulot para sa pagbabago ay mahalaga din. Bilang isang pangkalahatang tuntunin, hindi ako naniniwala na mahalaga para sa mga tao na magkaroon ng pahintulot na baguhin ang lahat ng uri ng mga artikulo at mga libro. Halimbawa, sa palagay ko hindi mo o ako ay kinakailangang magbigay ng pahintulot na baguhin ang mga artikulong tulad nito, na naglalarawan sa aming mga aksyon at aming mga pananaw.

Ngunit mayroong isang partikular na dahilan kung bakit ang kalayaan sa pagbabago ay mahalaga para sa dokumentasyon para sa libreng software. Kapag ginamit ng mga tao ang kanilang karapatan na baguhin ang software, at idagdag o baguhin ang mga feature nito, kung sila ay tapat, babaguhin din nila ang manual—upang makapagbigay sila ng tumpak at magagamit na dokumentasyon kasama ang binagong programa. Ang isang hindi libreng manwal, na hindi nagpapahintulot sa mga programmer na maging tapat at tapusin ang trabaho, ay hindi tumutugon sa mga pangangailangan ng ating komunidad.

Ang ilang uri ng mga limitasyon sa kung paano ginagawa ang mga pagbabago ay walang problema. Halimbawa, ang mga kinakailangan upang mapanatili ang abiso sa copyright ng orihinal na may-akda, ang mga tuntunin sa pamamahagi, o ang listahan ng mga may-akda, ay OK. Hindi rin problema ang humiling ng mga binagong bersyon na isama ang abiso na ang mga ito ay binago, kahit na magkaroon ng mga buong seksyon na maaaring hindi tatanggalin o baguhin, hangga't ang mga seksyong ito ay tumatalakay sa mga hindi teknikal na paksa. Sa madaling salita, hindi nila hinaharangan ang libreng software na komunidad mula sa paggamit ng buong manwal.

Gayunpaman, dapat na posible na baguhin ang lahat ng teknikal nilalaman ng manwal, at pagkatapos ay ipamahagi ang resulta sa lahat ng karaniwang media, sa lahat ng karaniwang mga channel; kung hindi, ang mga paghihigpit ay humahadlang sa komunidad, ang manwal ay hindi libre, at kailangan namin ng isa pang manwal.

Magkakaroon ba ng kamalayan at determinasyon ang mga libreng software developer na gumawa ng buong spectrum ng mga libreng manual? Muli, ang ating kinabukasan ay nakasalalay sa pilosopiya.

Dapat nating pag-usapan ang tungkol sa kalayaan

Ang mga pagtatantya ngayon ay mayroong sampung milyong gumagamit ng GNU/Linux system tulad ng Debian GNU/Linux at Red Hat "Linux". Ang libreng software ay nakabuo ng mga praktikal na kalamangan na dinarayo ng mga user dito para sa mga praktikal na dahilan.

Ang magandang kahihinatnan nito ay maliwanag: higit na interes sa pagbuo ng libreng software, mas maraming customer para sa libreng software na negosyo, at higit na kakayahang hikayatin ang mga kumpanya na bumuo ng komersyal na libreng software sa halip na pagmamay-ari na mga produkto ng software.

Ngunit ang interes sa software ay lumalaki nang mas mabilis kaysa sa kamalayan ng pilosopiya na pinagbatayan nito, at humahantong ito sa problema. Ang kakayahan nating harapin ang mga hamon at banta sa itaas ay nakasalalay sa kagustuhang manindigan nang matatag para sa kalayaan. Upang matiyak na ang aming komunidad ay may ganitong kalooban, kailangan naming ipalaganap ang ideya sa mga bagong user pagdating nila sa komunidad.

Ngunit nabigo kaming gawin ito: ang mga pagsisikap na maakit ang mga bagong user sa aming komunidad ay higit pa sa mga pagsisikap na ituro sa kanila ang sibika ng aming komunidad. Kailangan nating gawin ang dalawa, at kailangan nating panatilihing balanse ang dalawang pagsisikap.

"open source"

Naging mas mahirap ang pagtuturo sa mga bagong user tungkol sa kalayaan noong 1998, nang magpasya ang isang bahagi ng komunidad na ihinto ang paggamit ng terminong "libreng software" at sabihing "open source software" sa halip.

Ang ilan na pumabor sa terminong ito ay naglalayong maiwasan ang pagkalito ng “libre” sa “gratis”—isang wastong layunin. Ang iba, gayunpaman, ay naglalayong isantabi ang diwa ng prinsipyo na nag-udyok sa paggalaw ng libreng software at ang GNU Project, at sa halip ay umapela sa mga executive at mga gumagamit ng negosyo, na marami sa kanila ay may hawak na ideolohiya na naglalagay ng tubo kaysa sa kalayaan, kaysa sa komunidad, sa itaas. mga prinsipyo. Kaya, ang retorika ng "open source" ay nakatuon sa potensyal na gumawa ng mataas na kalidad, makapangyarihang software, ngunit iniiwasan ang mga ideya ng kalayaan, komunidad, at prinsipyo.

Ang mga magazine na "Linux" ay isang malinaw na halimbawa nito—puno ang mga ito ng mga advertisement para sa pagmamay-ari na software na gumagana sa GNU/Linux. Kapag lumitaw ang susunod na Motif o Qt, babalaan ba ng mga magazine na ito ang mga programmer na layuan ito, o magpapagana ba sila ng mga ad para dito?

ang suporta ng negosyo ay maaaring mag-ambag sa komunidad sa maraming paraan; lahat ng iba ay pantay, ito ay kapaki-pakinabang. ngunit ang pagkamit ng kanilang suporta sa pamamagitan ng hindi gaanong pagsasalita tungkol sa kalayaan at prinsipyo ay maaaring nakapipinsala; pinalala pa nito ang dating imbalance sa pagitan ng outreach at civics education.

Ang "libreng software" at "open source" ay naglalarawan ng parehong kategorya ng software, higit pa o mas kaunti, ngunit nagsasabi ng magkaibang mga bagay tungkol sa software, at tungkol sa mga halaga. Ang GNU Project ay patuloy na gumagamit ng terminong "libreng software", upang ipahayag ang ideya na ang kalayaan, hindi lamang ang teknolohiya, ay mahalaga.

Subukan!

Ang aphorism ni Yoda ("Walang 'try'") ay mukhang maayos, ngunit hindi ito gumagana para sa akin. Nagawa ko na ang karamihan sa aking trabaho habang nag-aalala tungkol sa kung magagawa ko ba ang trabaho, at hindi sigurado na ito ay sapat upang makamit ang layunin kung gagawin ko. Ngunit sinubukan ko pa rin, dahil walang ibang tao maliban sa akin sa pagitan ng kaaway at ng aking lungsod. Nakakagulat sa sarili ko, minsan nagtagumpay ako.

Minsan nabigo ako; ang ilan sa aking mga lungsod ay bumagsak. Pagkatapos ay natagpuan ko ang isa pang lungsod na nanganganib, at naghanda para sa isa pang labanan. Sa paglipas ng panahon, natutunan kong maghanap ng mga banta at ilagay ang aking sarili sa pagitan nila at ng aking lungsod, na nananawagan sa iba pang mga hacker na pumunta at sumama sa akin.

Sa panahon ngayon, madalas "hindi lang ako. Nakakagaan at natutuwa kapag nakikita ko ang isang regiment ng mga hacker na naghuhukay para hawakan ang linya, at napagtanto ko, maaaring mabuhay ang lungsod na ito—sa ngayon. Ngunit mas malaki ang panganib sa bawat isa. taon, at ngayon ay tahasang tina-target ng Microsoft ang aming komunidad. Hindi namin maaaring balewalain ang hinaharap ng kalayaan. Huwag mong balewalain! Kung gusto mong panatilihin ang iyong kalayaan, dapat handa kang ipagtanggol ito.

TH.arial ( font-family: Arial, Serif;) P.topic ( font-family: sans-serif;) A.plain ( text-decoration: none;) A.topic01 ( color: #006890; font-family: sans-serif; text-decoration: none;) A.topic02 ( color: #099771; font-family: sans-serif; text-decoration: none;) serif; text-decoration: none;) A.topic04 ( color: #98650A; font-family: sans-serif; text-decoration: none;) text-decoration: none;) A.topic06 ( color: #099607; font-family: sans-serif; text-decoration: none;) A .topic07 ( color: #9E1215; font-family: sans-serif; decoration: none;) A.topic08 ( color: #970941; font-family: sans-serif; text-decoration: none;) A.topic09 ( color : #950995; font-family: sans-serif; text-decoration: none;) A.topic010 ( color: #390A98; font-family: sans-serif; text-decoration: none;) H1 ( font-family: sans -serif;) H2 ( font-family: sans-serif;) H3 ( font-family: sans-serif;) H4 ( font-family: sans-seri f;) H5 ( font-family: sans-serif;) H6 ( font-family: sans-serif;)

Libreng Software Ideology at ang GNU Project: Kasalukuyang Katayuan at Mga Agarang Hamon

S.D. Kuznetsov

Ang Free Software Foundation (FSF) ay isang napaka-interesante at sa maraming paraan ay kakaibang phenomenon sa mundo ng programming ngayon. Maraming mga domestic programmer ang kailangang harapin ang mga programa mula sa FSF (ang GCC programming system ay kilala lalo na), ngunit ang kakulangan ng mga publikasyon sa Russian ay nagpapahirap sa pag-unawa sa ideolohiya at mga layunin ng FSF, at ginagawang imposibleng masuri ang umiiral na. backlog. Ang layunin ng maikling artikulong ito ay bahagyang punan ang puwang na ito. Ang artikulo ay ganap na nakabatay sa mga materyales ng FSF at samakatuwid, alinsunod sa mga pangkalahatang prinsipyo ng organisasyong ito, ay maaaring malayang muling i-print, kopyahin o ipamahagi sa anumang iba pang paraan (na may pangangalaga sa tala na ito).

1. Ideolohiya ng FSF at ang Mga Pangkalahatang Layunin ng Proyekto ng GNU

Ang FSF ay isang programming organization na itinatag at pinamumunuan ni Richard Stallman. Sa pinaka-pangkalahatang setting, ang gawain ng FSF ay alisin ang mga paghihigpit sa pagkopya, pamamahagi, pag-aaral at pagbabago ng mga programa sa computer. Upang makamit ang karaniwang layuning ito, hinihikayat ng FSF ang pagbuo at paggamit ng libreng software na naka-target sa malawak na hanay ng mga application.

Sa kanyang "GNU Manifesto", na isinulat noong 1985, si R. Stallman, bilang pangunahing ideya na humantong sa paglitaw ng FSF at ang proyekto ng GNU, ay naglagay ng kanyang pagtanggi sa pagmamay-ari ng software. Ang mga kakaibang relasyon sa komunidad ng programming ay kadalasang nagpapapili sa mga tao na sundin ang natural na pakiramdam ng pagkakaibigan at pagtulong sa isa't isa, o pagsusumite na nakakasagabal sa batas ng ari-arian na ito. Sa libreng software, hindi na kailangan ang mabigat na pagpipiliang ito.

Ang paglikha ng isang pinagsama-samang libreng sistema ng software ay maiiwasan ang pagdoble ng trabaho ng mga programmer (na kadalasang kinakailangan lamang dahil sa isang taong nagmamay-ari ng software). Ang libreng pamamahagi ng mga source code ng mga programa ay nagpapadali sa kanilang pagpapanatili at pagbagay sa mga pangangailangan ng isang partikular na user (hindi kinakailangan na gumamit ng mga serbisyo ng mga kumpanya lamang na nagmamay-ari ng mga lisensya para sa mga source code). Mayroong karagdagang at napakahalagang pagkakataon na gumamit ng mahusay na software para sa mga layuning pang-edukasyon.

Ayon kay R. Stallman, kapag lumipat sa libreng software, ang mga programmer ay hindi mamamatay sa gutom (bagaman, tila, kikita sila ng mas kaunti). Ang paghihigpit sa pagkopya ng software ay hindi lamang ang paraan upang kumita ng pera. Ang pangunahing ideya ni Stallman ay hindi ka dapat magbenta ng mga programa, ngunit ang gawain ng isang programmer. Sa partikular, ang mapagkukunan ng kita ay maaaring pagpapanatili ng mga sistema ng software o ang kanilang pagsasaayos para magamit sa mga bagong computer at / o sa mga bagong kundisyon, pagtuturo, atbp.

Ang "Manifesto" ni Stallman ay isinulat nang napaka-emosyonal at sa mga lugar ay masyadong utopian. Gayunpaman, tila ang mga ideya ng libreng software ay dating malapit sa tradisyonal (maliban sa mga pinakahuling taon) na mga saloobin sa mga programmer ng Sobyet. Marahil ito ay ang linya ng FSF na ang pinaka-natural na paraan sa malalim na pagsasama-sama ng mga lokal at pandaigdigang komunidad ng mga programmer.

Higit na partikular, ang FSF ay gumagawa ng mga programa sa loob ng balangkas ng proyekto ng GNU (ang pagdadaglat na GNU ay pinalawak nang pabalik-balik - GNU "s Not Unix). Ang layunin ng proyekto ng GNU ay lumikha ng isang kumpletong pinagsama-samang sistema ng software na tugma sa mga kakayahan ng ang kapaligiran ng Unix OS (bilang panuntunan, ang mga kakayahan ng mga programa ng GNU ay mas malawak na kakayahan ng mga analogue ng kapaligiran ng Unix).

Ang software ng FSF ay "libre" sa dalawang kahulugan. Una, ang anumang programa ay maaaring malayang kopyahin at ilipat sa sinuman. Pangalawa, ang pagkakaroon ng mga source code ng mga programa ay nagbibigay ng pagkakataon para sa libreng pag-aaral ng mga programa, ang kanilang pagpapabuti at pamamahagi ng mga binagong bersyon.

Kung paanong ang mga karapatan ng mga ordinaryong kumpanya ng software ay protektado ng kanilang copyright mark (copyright), ang "kalayaan" ng FSF software system ay protektado ng "copyleft" - isang kumbinasyon ng copyright at isang dokumento na may pamagat na "GNU General Public License" na naroroon. sa lahat ng mga teksto ng FSF. Ang dokumentong ito ay nagsasaad ng mga karapatan na mayroon ang sinumang kasalukuyang may-ari ng tekstong ito, at ang imposibilidad ng pag-alis ng mga karapatang ito mula sa anumang iba pang paksa.

Ang pangunahing aktibidad ng FSF ay ang pagbuo ng mga bagong bahagi ng libreng software sa loob ng balangkas ng proyekto ng GNU. Para sa karamihan, ang proyekto ng GNU ay nabuo sa isang nakaplanong paraan (tingnan, sa partikular, ang seksyon 3 ng artikulong ito), ngunit ang FSF ay tumatanggap din ng mga libreng programa sa pamamahagi na binuo ng mga kumpanya at indibidwal sa kanilang sariling inisyatiba. Bilang karagdagan, ang FSF ay gumagawa at nagbebenta ng mga libreng software tape, naghahanda, naglathala, at namamahagi ng mga manual para sa iba't ibang bahagi ng GNU software, at nagpapanatili at namamahagi ng isang direktoryo ng serbisyo, isang listahan ng mga kumpanya at indibidwal na nagbibigay ng mga bayad na serbisyo sa mga gumagamit ng mga programa ng GNU at mga sistema..

Ang pinansiyal na batayan ng FSF ay ang pagbebenta ng mga tape at dokumentasyon, gayundin ang pag-sponsor ng mga komersyal na kumpanya at indibidwal.

2. Magagamit na GNU Software

Sa kasalukuyan, hindi lahat ng bahagi ng software ng GNU Project ay handa. Gayunpaman, ang FSF ay namamahagi ng maraming programa, ang ilan sa mga ito ay direktang isinulat ng mga programmer ng FSF, at ang ilan sa mga ito ay naibigay sa FSF para sa libreng pamamahagi ng ibang mga organisasyon at indibidwal. Ilista natin sa madaling sabi ang mga produktong software na ipinamahagi ng FSF ngayon.

Ang Emacs ay isang napapalawak, napapasadyang editor para sa iba't ibang uri ng mga terminal at pangangailangan ng user. Ang pagpapalawak ng editor ay batay sa paggamit ng Lisp language interpreter na binuo sa editor (isang dialect ng Common Lisp). Kasabay ng mga source text ng editor, ang mga manual para sa paggamit ng Emacs at isang reference manual para sa programming sa Lisp sa kapaligiran ng Emacs ay ipinamamahagi.

Ang Bison ay isang kapalit para sa karaniwang Yacc parser generator na may ilang mga extension. Ang gabay ay ipinamamahagi din.

Dalawang pagpapatupad ng isang pinasimple na dialect ng Lisp language - Scheme: isa mula sa MIT (nakasulat sa C), ang pangalawa mula sa University of Yale (nakasulat sa Scheme).

Ang texi2roff utility ay idinisenyo upang i-convert ang mga text file sa TeX na format sa mga text file ng roff standard na format para sa Unix OS (ang dokumentasyong ibinahagi ng FSF sa machine media ay naka-format sa TeX na format).

Mga utility para sa pag-iimpake/pag-unpack ng mga text file.

Ang GNU Chess Program.

Ang GNU CC ay isang portable optimizing C compiler. Ganap na sumusuporta sa pamantayan ng ANSI C. Naglalaman ng mga tool upang semi-awtomatikong bumuo ng mga generator ng code para sa mga bagong computer. Ibinahagi kasama ng manwal.

Isang single-pass portable GAS assembler na halos dalawang beses na mas mabilis kaysa sa karaniwang Unix assembler.

Mga libreng opsyon sa utility para sa pagtatrabaho sa mga object file: ar, ld, nm, size, gprof, strip, at ranlib. Ang isang bagong dynamic loading utility, dld, ay ipinamamahagi din.

Kasama sa GNU make ang halos lahat ng BSD, System V, at POSIX na gumagawa ng mga utility, pati na rin ang ilang extension. Ibinahagi kasama ng manwal.

Ang GDB debugger ay maaaring gamitin upang i-debug ang mga program na nakasulat sa C, C++ at Fortran. Ibinahagi kasama ng manwal.

BASH (Bourne Again SHell) - Ang GNU Shell ay katugma sa karaniwang utos ng Unix sh at may kasamang bilang ng mga extension na kinuha mula sa iba pang mga variant ng Shell.

Ang GAWK ay ang GNU na bersyon ng karaniwang Unix AWK utility.

Ang flex ay isang GNU na kapalit para sa karaniwang lexical analyzer generator na lex. Binibigyang-daan ka ng flex na makakuha ng mas mahusay na mga scanner kaysa sa lex.

Ang GNU tar ay isang extension ng karaniwang tar archive utility.

Bahagi ng mga file mula sa BSD 4.3-tahoe na hindi naglalaman ng AT&T source code at inilabas para sa libreng pamamahagi ng University of Berkeley. Ang mga file na ito ay naglalaman, sa partikular, ang buong pinagmulang mga teksto ng ilang mga utility, laro, mga gawain sa library, atbp.

Mga system na sumusuporta sa pagtatrabaho sa mga bersyon ng software sa malalaking proyekto ng software, RCS (Revision Control System) at CVS (Concurrent Version System).

Mas mabilis kaysa sa karaniwang mga libreng bersyon ng grep at diff utilities.

Isang halos ganap na Postscript na katugmang graphical na wika, Ghostscript.

Isang interactive na programa para sa pagguhit ng mga mathematical expression at data gnuplot.

Isang hanay ng mga tool para gawing C++ compiler ang GCC compiler, kabilang ang mga advanced na library ng klase.

Malaking halaga ng mga programang X11, pagpapatupad ng MIT X-Windows (bersyon 11, release 4). Ang dami ng artikulo ay hindi pinapayagan ang pagtalakay dito nang mas detalyado.

Karaniwan, ang lahat ng mga programa na ipinamahagi ng FSF ay idinisenyo upang gumana sa kapaligiran ng Unix at ginagamit na sa iba't ibang mga bersyon ng system na ito, ngunit may mga bersyon ng ilang mga programa para sa pagtatrabaho sa VMS at kahit na MS-DOS.

3. Mga Agarang Gawain ng GNU Project

Ang listahan ng mga gawain na pinaplanong gawin bilang bahagi ng proyekto ng GNU ay medyo malawak. Magbigay lamang tayo ng maikling pangkalahatang-ideya ng mga pangunahing direksyon.

3.1. Dokumentasyon

Kinakailangang maghanda ng ilang manwal para sa mga programang handa na o malapit nang matapos: isang sangguniang manwal para sa wikang C, isang paglalarawan ng GCC kasama ang isang manwal para sa pagtukoy ng mga target na makina, isang manwal para sa mga sistema ng aplikasyon ng programming sa X- kapaligiran sa Windows, atbp.

3.2. Mga proyektong nauugnay sa pagbuo ng libreng Unix kernel

Ang FSF ay nagtatrabaho sa pagbuo ng isang Unix kernel batay sa libreng Mach microkernel. Kasama sa mga agarang gawain ang pagpapatupad ng mga protocol ng TCP/IP network at isang bagong file system (inaasahang samantalahin ang ilang off-the-shelf na software na inaasahang idedeklarang libre). Mayroong iba pang mga gawain, kabilang ang pagbuo ng isang remote OS kernel debugger.

3.3. Pag-unlad ng libreng kapaligiran ng Unix

Ang ilang mga utility ay kailangang ipatupad (sdiff, mailx, sumali, atbp.). Nangangailangan ng pagbuo ng isang bilang ng mga aklatan. Kabilang sa mga gawain ay ang pagbuo ng isang user-friendly na terminal interface.

3.4. Mga extension sa umiiral na software ng GNU

Karaniwan, ang Emacs, GCC, at GDB ay nangangailangan ng trabaho.

Kaugnay ng mga Emac, dalawang bahagi ng pagpapabuti ang kailangan: pagpapalawak ng mga Emac upang payagan itong magamit bilang isang sistema ng pag-publish, at ganap na pag-internationalize ng mga Emac upang magamit ang anumang pambansang script.

Kailangang ma-finalize ang GCC para ayusin ang mga naipon na komento at ipatupad ang mga kasalukuyang suhestyon (ang listahan ng mga komento at suhestyon ay ipinamamahagi kasama ng GCC).

Kailangang pagbutihin ang GDB sa mga tuntunin ng pagpapakilala ng isang C interpreter sa debugger; ang ilang mga pag-aayos ay kailangan din upang magamit ang GDB kapag nagde-debug ng mga programang nakasulat sa mga wika maliban sa C.

3.5. Mga bagong compiler

Ang pagpapatupad ng mga compiler para sa isang bilang ng mga programming language (Algol, Algol-68, PL/1, Ada, atbp.) na may access sa GCC code generator ay kinakailangan. (Ang ganitong gawain ay isinasagawa na para sa Fortran, Pascal, at Modula-2.)

3.5. Tonelada ng iba pang mga proyekto

Kasama sa kasalukuyang listahan ng mga agarang gawain ng proyekto ng GNU ang iba't ibang uri ng iba pang mga gawa. Banggitin natin ang pagnanais na magkaroon ng mga libreng analogue ng Page Maker, Ventura Publisher, dbase2 o dbase3, atbp. system. Nangangailangan ng ilang mga programang X-Windows. atbp. atbp.

4. Paano makakuha ng karagdagang impormasyon at/o mga programa ng GNU

Upang makipag-ugnayan sa FSF sa kasalukuyang kapaligiran sa tahanan, pinakamahusay na gumamit ng e-mail. Ang contact person ng FSF para sa mga taong gustong sumali sa GNU Project ay si Walter Poxon. Ang kanyang e-mail address: Maaari ka ring makakuha ng impormasyon tungkol sa mga patakaran para sa pagkuha ng mga tape na may GNU software mula sa FSF. Sa kasamaang palad, ang likas na landas na ito ay hindi masyadong angkop para sa kasalukuyang katotohanan ng Sobyet (ang pagbabayad para sa mga teyp, bagaman simboliko, ay nasa mahirap na pera).

Sa ating bansa, sa katunayan, mayroong lahat ng mga teyp na ito. Ang sinumang may hawak ng mga ito, alinsunod sa mga patakaran ng laro ng FSF, ay obligadong pangasiwaan ang kanilang karagdagang pamamahagi. Sa kasamaang palad, ito ay medyo maraming teknikal na gawain. Ang Soviet Association of UNIX Users (SUUG) ay nagpaplano na sakupin, sa sandaling pinahihintulutan ng mga teknikal na kondisyon, ang libreng pamamahagi ng libreng software para sa mga miyembro nito at bayad na pagkopya ng mga tape para sa lahat (ito ay isang bagay sa mga darating na buwan). Ang lahat ng miyembro ng SUUG ay makakatanggap ng may-katuturang impormasyon, ang kasalukuyang impormasyon ay maaaring makuha sa address sa pamamagitan ng e-mail o sa karaniwang SUUG address: 125502, Moscow, st. Lavochkina, 19.

Panitikan.

  1. Richard M. Stallman. Ang GNU Manifesto.
  2. GNU General Public License // Free Software Foundation, 1989.
  3. GNU's Bulletin // Free Software Foundation, 1991.
  4. Listahan ng Gawain ng GNU (pana-panahong ina-update na file na makukuha sa pamamagitan ng e-mail; batay kami sa bersyon ng Hulyo 24, 1991)