თავისუფალი პროგრამული უზრუნველყოფის იდეოლოგია და GNU პროექტი: ამჟამინდელი მდგომარეობა და დაუყოვნებელი გამოწვევები.

მოსაკრებლები შემოსავალი

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

შემოწირულობები

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

მოხალისეთა რაოდენობა

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

Თანამშრომლების რაოდენობა

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

წევრთა რაოდენობა

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

შვილობილი კომპანიები

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

საკუთარი

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

სლოგანი

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

ვებ საიტი

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

ლიკვიდაციის თარიღი

Lua შეცდომა მოდულში:Wikidata სტრიქონზე 170: ველის "wikibase" ინდექსირების მცდელობა (ნულის მნიშვნელობა).

GNU პროექტის მიმდინარე მუშაობა მოიცავს პროგრამული უზრუნველყოფის შემუშავებას, ცნობიერების ამაღლებას, პოლიტიკურ კამპანიას და ახალი მასალების გავრცელებას.

პროექტის წარმოშობა

როდესაც პროექტი პირველად დაიწყო, მათ...

  • ასტეროიდს სახელი ეწოდა GNU პროექტის მიხედვით - (9965) GNU.

იხილეთ ასევე

დაწერეთ მიმოხილვა "GNU Project"-ზე

შენიშვნები

ბმულები

  • (ინგლისური) - GNU პროექტის ოფიციალური საიტი

ნაწყვეტი, რომელიც ახასიათებს GNU პროექტს

- ტყუილი, მკვლელობა, ღალატი... ასეთი სიტყვები არ გაქვს?..
- დიდი ხნის წინ იყო... აღარავის ახსოვს. Მხოლოდ მე. მაგრამ ჩვენ ვიცით რაც იყო. ეს არის ჩადებული ჩვენს „უძველეს მეხსიერებაში“, რათა არასოდეს დავივიწყოთ. მოდიხარ საიდანაც ბოროტება ცხოვრობს?
თავი სევდიანად დავუქნიე. ძალიან ვწუხვარ ჩემი მშობლიური დედამიწის გამო და იმის გამო, რომ მასზე ცხოვრება იმდენად არასრულყოფილი იყო, რომ მაიძულებდა ასეთი კითხვების დასმას... მაგრამ, ამავე დროს, ძალიან მინდოდა, რომ ბოროტება სამუდამოდ დაეტოვებინა ჩვენი სახლი, რადგან მთელი გულით მიყვარდა ეს სახლი და ხშირად ვოცნებობდი, რომ ოდესმე დადგებოდა ასეთი მშვენიერი დღე, როდესაც:
ადამიანი სიხარულით გაიღიმებს, რადგან იცის, რომ ადამიანებს მხოლოდ სიკეთის მოტანა შეუძლიათ...
როცა მარტოხელა გოგონას არ ეშინია საღამოს ყველაზე ბნელ ქუჩაზე გავლის, არ ეშინია რომ ვინმემ განაწყენდეს...
როცა შეგიძლია გააღო გული სიხარულით, იმის შიშის გარეშე, რომ შენი საუკეთესო მეგობარი გიღალატებს...
როდესაც შესაძლებელი იქნება ქუჩაში რაღაც ძალიან ძვირი დატოვოთ, არ შეგეშინდეთ, რომ თუ მოშორდებით - და ის მაშინვე მოიპარება ...
და მე გულწრფელად, მთელი გულით მჯეროდა, რომ სადღაც მართლაც არსებობს ასეთი მშვენიერი სამყარო, სადაც არ არის ბოროტება და შიში, მაგრამ არის უბრალო ცხოვრებისა და სილამაზის სიხარული... ამიტომ, მივყვები ჩემს გულუბრყვილო ოცნებას, მე გამოვიყენე მცირედი შესაძლებლობა, რომ სულ ცოტა რამ გამეგო იმის შესახებ, თუ როგორ შეიძლება გაანადგურო ეს იგივე, ასეთი გამძლე და ასეთი ურღვევი, ჩვენი მიწიერი ბოროტება... და კიდევ ერთი რამ, რომ არასოდეს შერცხვება ვინმეს სადმე უთხრა, რომ მე ადამიანი ვარ...
რა თქმა უნდა, ეს იყო გულუბრყვილო ბავშვობის ოცნებები... მაგრამ მაშინ ჯერ კიდევ ბავშვი ვიყავი.
– მე მქვია ატისი, სვეტლანა კაცი. მე თავიდანვე აქ ვცხოვრობ, ბოროტება მინახავს... ბევრი ბოროტება...
– და როგორ მოიშორე, გონიერი ჰატისი?! ვინმე დაგეხმარა?.. - ვკითხე იმედიანად. -შეგიძლია დაგვეხმარო?.. რჩევა მაინც მისცე?
– მიზეზი ვიპოვეთ... და მოვკალით. მაგრამ შენი ბოროტება ჩვენს კონტროლს სცილდება. განსხვავებულია... ისევე როგორც სხვები და შენ. და ყოველთვის არ შეიძლება სხვისი სიკეთე იყოს თქვენთვის კარგი. თქვენ უნდა იპოვოთ თქვენი მიზეზი. და გაანადგურე, - ნაზად დამადო თავზე ხელი და საოცარმა სიმშვიდემ შემომიარა... - მშვიდობით, ადამიანო სვეტლანა... შენს კითხვაზე პასუხს იპოვი. დაისვენე შენ...
ღრმად ვიდექი ფიქრებში და ყურადღებას არ ვაქცევდი იმ ფაქტს, რომ ჩემს ირგვლივ რეალობა დიდი ხნის წინ შეიცვალა და უცნაური, გამჭვირვალე ქალაქის ნაცვლად, ჩვენ ახლა „ვცურავდით“ მკვრივ მეწამულ „წყალზე“ რაღაც უჩვეულო, ბრტყელი და გამჭვირვალე მოწყობილობა, რომელსაც არც სახელურები ჰქონდა, არც ნიჩბები – საერთოდ არაფერი, თითქოს დიდ, თხელ, მოძრავ გამჭვირვალე მინაზე ვიდექით. მიუხედავად იმისა, რომ არანაირი მოძრაობა ან დარტყმა საერთოდ არ იგრძნობოდა. ის საოცრად რბილად და მშვიდად სრიალებდა ზედაპირზე, რის გამოც დაივიწყებდი, რომ საერთოდ მოძრაობდა...
– რა არის?.. სად მივდივართ? ვკითხე გაკვირვებულმა.
"შენი პატარა მეგობრის აყვანა", მშვიდად უპასუხა ვეიამ.
- Მაგრამ როგორ?!. მას არ შეუძლია...
- შეძლებს. მას აქვს იგივე კრისტალი, რაც შენს, იყო პასუხი. - "ხიდზე" შევხვდებით, - და სხვა არაფერი აუხსნია, მალევე გააჩერა ჩვენი უცნაური "ნავი".
ახლა ჩვენ უკვე ვიდექით ღამისავით შავი ფერის ბრწყინვალე „გაპრიალებული“ კედლის ძირში, რომელიც მკვეთრად განსხვავდებოდა გარშემო ყველაფრისგან ნათელი და ცქრიალა და ხელოვნურად შექმნილი და უცხო ჩანდა. უცებ კედელი "გაიყო", თითქოს იმ ადგილას მკვრივი ნისლისაგან შედგებოდა და ოქროს "კოკონში" გამოჩნდა... სტელა. ახალი და ჯანმრთელი, თითქოს ახლახან წასულიყო სასიამოვნო სასეირნოდ... და, რა თქმა უნდა, უზომოდ კმაყოფილი იყო იმით, რაც ხდებოდა... როცა დამინახა, მის ლამაზ სახეს სიხარულით გაუბრწყინდა და, ჩვევის გამო, მაშინვე ჩაილაპარაკა:
– შენც აქ ხარ?!... აუ რა კარგია!!! და ისე ვღელავდი!.. ისე ვღელავდი!.. მეგონა რაღაც უნდა დაგემართა. მაგრამ აქ როგორ მოხვედი?.. - გაბრუებული მიყურებდა ბავშვი.

ძირითადი სტანდარტები

UNIX-ს აწვდის კომპიუტერის მწარმოებლები

Მანქანა Ოპერაციული სისტემა "Ორიგინალური"
მზე 1,2,10, ... SunOS 4.1.2 BSD 4.3
მზე 10,20,1000 SunOS 5.5 SVR4.0
IBM RS/6000 AIX SV 3.2
HP Apollo 900 HP/UX 10 BSD 4.2 & SV 3.2
თანმიმდევრობა Dynix SW 4.0
Motorola 922 SVR4/88 SVR4.0
ბესტა-88 bestix SV 3.1
დეკ ულტრიქსი BSD 4.2
DEC Alpha AXP OSF/1 BSD 4.3
SGCS Silicon Graphic IRIX 6.0

პლატფორმის არჩევით ჩვენ ავტომატურად ვიღებთ მასთან ერთად „საკუთარ“ UNIX-ს. შესაძლოა, მომხმარებლის და ადმინისტრატორის გარემოს მოხერხებულობისა და მთლიანობის თვალსაზრისით, მათგან ყველაზე სასიამოვნოა AIX. და ყველაზე გავრცელებული არის Solaris 2.5 (რა თქმა უნდა).

ეს იყო Unix-ის კომერციული განხორციელების გამოჩენა, რამაც გამოიწვია ეგრეთ წოდებული Unix ომები. თითოეულმა ფირმამ, ბაზარზე უპირატესობის მიღწევის მცდელობისას, თავის სისტემაში აერთიანებს ზოგიერთ მახასიათებელს, საკუთარ გაუმჯობესებას და გაუმჯობესებას, ზოგჯერ კი მისი სისტემის იზოლირების პირდაპირი მიზანს ბაზარზე სხვებისგან. ფირმ-დეველოპერებმა კონკურენტებთან უპირატესობის მოპოვების მცდელობებში შეიტანეს ცვლილებები კიდეც აპლიკაციის პროგრამირების ინტერფეისი(API- პროგრამები პროგრამისტის ინტერფეისი), - ფუნქციების ნაკრების სპეციფიკაცია, რომელსაც პროგრამული უზრუნველყოფის შემქმნელებმა უნდა შეასრულონ, რათა მათი პროგრამები ოპერაციულ სისტემასთან თავსებადი გახადონ. ამან კიდევ უფრო გაზარდა Unix-ის სხვადასხვა ვერსიების შეუთავსებლობა და გამოიწვია პროგრამული უზრუნველყოფის შეუთავსებლობა სხვადასხვა (მათ შორის დამოუკიდებელი) მომწოდებლები.

მაგრამ Unix-ის სხვადასხვა ვერსიებს შორის ომების ბევრად უარესი შედეგი იყო ის, რომ შეწყდა წყაროს კოდის თავისუფალი გაცვლა, რომელიც დაეხმარა Unix-ის სწრაფ გაუმჯობესებას მისი განვითარების ადრეულ ეტაპებზე. არ იცოდა პროგრამული უზრუნველყოფისგან სარგებლობის სხვა მოდელი, გარდა მისი გასაიდუმლოებისა და კომერციული პროდუქტის განვითარებაზე სრული კონტროლის არსებობისა, AT&T მკაცრად კრძალავდა წყაროს კოდების გავრცელებას. რამდენიმე ადამიანი მიიპყრო Unix-ის ფირის უკანონო გავრცელების საფრთხის წინაშე. უნივერსიტეტებიდან ახალი იდეების ნაკადი დაშრა.

ამ პრობლემის დასაძლევად რამდენიმე მცდელობა გაკეთდა Unix-ის სტანდარტიზაციაზე.

პირველი სერიოზული მცდელობა სისტემის V-ისა და ბერკლისთვის შემუშავებული API-ის (პროგრამირების ინტერფეისის) ვერსიების სტანდარტიზაციისთვის გაკეთდა 1983 წელს საინიციატივო ჯგუფის მიერ, სახელწოდებით /usr/group. თუმცა ოპერაციული სისტემის ვერსიების რაოდენობის ზრდასთან ერთად სტანდარტის ეფექტურობა შემცირდა და ერთი წლის შემდეგ, 1985 წელს შეიქმნა POSIX (პორტატული ოპერაციული სისტემის ინტერფეისი გამოთვლითი გარემოსთვის) სტანდარტი.



1988 წელს შეიქმნა POSIX 1003.1-1988 სტანდარტი, რომელმაც განსაზღვრა აპლიკაციის პროგრამირების ინტერფეისი. ამ სტანდარტმა იპოვა ფართო გამოყენება ბევრ ოპერაციულ სისტემაში, მათ შორის UNIX არქიტექტურებში. ორი წლის შემდეგ, სტანდარტი მიღებულ იქნა, როგორც IEEE (ელექტრო და ელექტრო ინჟინრების ინსტიტუტი, ჯერ კიდევ არსებობს) IEEE 1003.1-1990 სტანდარტი. სტანდარტი განსაზღვრავს მხოლოდ ინტერფეისს და ე კონკრეტული ორგანიზაცია, ასე რომ, ის არ განასხვავებს სისტემურ ზარებს და ბიბლიოთეკის ფუნქციებს, ყველა API ელემენტს უწოდებს მხოლოდ ფუნქციებს.

ყველა შემდგომი Unix სტანდარტი მოიცავს POSIX-ს და Unix-ის ყველა შემდგომი ვერსია იცავს ამ სტანდარტს. ერთადერთი დიდი დამატება, რომელიც მოგვიანებით გამოჩნდა Unix-ის ბირთვში, იყო სოკეტები, რომლებიც მოვიდა BSD-დან.

არაკომერციული ორგანიზაცია - X / Open კონსორციუმი (მოგვიანებით Open Group), რომელიც შეიქმნა 1984 წელს არაერთი ევროპული კომპანიის მიერ, აიღო ოპერაციული სისტემის ინტერფეისების საერთო ნაკრების შემუშავება, შეთანხმებული სხვადასხვა მწარმოებლებს შორის და შექმნა ჭეშმარიტად. ღია სისტემები, რომლებისთვისაც განაცხადის პორტაბელურობის ღირებულება მინიმალური იქნება.

1992 წელს გამოჩნდა დოკუმენტი, რომელიც ცნობილია როგორც X/OpenPortability Guide ვერსია 3 (XPG3), რომელიც მოიცავდა POSIX 1003.1-1988 და X Windows სისტემის გრაფიკული სისტემის სტანდარტს, რომელიც შემუშავებული იყო მასაჩუსეტსის ტექნოლოგიის ინსტიტუტში (აშშ). 1994 წელს - XPG4.2.

1996 წელს X / Open და OSF-ის გაერთიანებამ გამოიწვია კონსორციუმის The Open Group-ის შექმნა, რომელიც განაგრძობდა განვითარებას ღია სისტემების სფეროში, მაგალითად, Common Desktop Environment მომხმარებლის ინტერფეისის შემდგომი განვითარება, განაწილებული გამოთვლითი გარემოს ინტერფეისები. - DCE და ა.შ.

(ამერიკული სტანდარტების ეროვნული ინსტიტუტი)

1989 წელს ამერიკის ეროვნულმა სტანდარტების ინსტიტუტმა დაამტკიცა X3.159-1989 სტანდარტი C პროგრამირების ენისთვის. სტანდარტი განსაზღვრავს სტანდარტული ბიბლიოთეკის სინტაქსს, სემანტიკას და შინაარსს.

GNU არის დეველოპერების ასოციაცია, რომლებიც ქმნიან ყველა სახის უფასო პროგრამულ უზრუნველყოფას.

GNU არის პროექტი, რომელმაც შექმნა უამრავი უფასო პროგრამა, როგორც ღია კოდის სტრატეგიის ნაწილი.

ამავდროულად, ამ პროგრამებს შეუძლიათ ყველაფერი გააკეთონ ფაილებთან მუშაობიდან ტექსტის დამუშავებამდე, ხოლო gcc შემდგენელი (GNU C) არის ერთ-ერთი ყველაზე საიმედო და ეფექტური შემდგენელი UNIX-ისთვის. ეს შესაძლებელს ხდის თითქმის ნებისმიერი UNIX-ის მსგავსი ოპერაციული სისტემის აღჭურვას უფასო პროგრამული უზრუნველყოფით.

რა არის GNU/Linux?

ვინაიდან Linux არის მხოლოდ ბირთვი, ასეთი აღჭურვილობა აუცილებელია. ბირთვი პასუხისმგებელია მეხსიერებასთან, დისკებთან, შიდა მოწყობილობებთან მუშაობაზე, მაგრამ, მაგალითად, მას არ აქვს ტექსტური რედაქტორი. მაგრამ მას შეუძლია სხვა პროგრამების გაშვება. აქედან გამომდინარე, უფასო ბირთვის დამატება უფასო პროგრამების ნაკრებით ძალიან ბუნებრივად გამოიყურება. შედეგი არის GNU/Linux ტანდემი.

"აბრევიატურა GNU ნიშნავს "GNU is not UNIX" (GNU - Not UNIX). GNU სისტემის განვითარების მთავარი იდეა არის მისი სრული განსხვავება UNIX-დან. UNIX ყოველთვის იყო და რჩება საკუთრების პროგრამულ უზრუნველყოფას, რაც იმას ნიშნავს, რომ ის მომხმარებლებს ართმევს თანამშრომლობისა და კომპიუტერების კონტროლის თავისუფლებას. იმისათვის, რომ ვიყოთ საზოგადოება, რომელიც თავისუფლად იყენებს საკუთარ კომპიუტერებს, გვჭირდებოდა უფასო ოპერაციული სისტემა. ჩვენ არ გვქონდა საკმარისი თანხა, რომ შეგვეძინა და გაგვეთავისუფლა რომელიმე არსებული სისტემა, მაგრამ გვქონდა საკმარისი ცოდნა და უნარები ახლის შესაქმნელად. GNU-ს შექმნა უზარმაზარი წამოწყება იყო. ჩვენ გავაკეთეთ ეს ჩვენი და თქვენი თავისუფლების სახელითაც“.

1985 წელს რ. სტალმანმა დაწერა თავისი ცნობილი GNU მანიფესტი (იგი გამოქვეყნდა 1985 წლის მარტის ნომერში Dr. Dobb's Journal) და დააარსა თავისუფალი პროგრამული უზრუნველყოფის ფონდი (FSF) - საქველმოქმედო ფონდი თავისუფალი პროგრამული უზრუნველყოფის განვითარებისთვის. Emacs-ის ფირების გავრცელება. , და მოგვიანებით სხვა უფასო პროგრამული უზრუნველყოფის გავრცელება (როგორც GNU პროექტიდან, ისე მის ფარგლებს გარეთ) და მათი სახელმძღვანელოების გაყიდვა, რაც უზრუნველყოფდა სახსრებს GNU პროექტის განვითარებისთვის. FSF იღებდა შემოწირულობებს, მაგრამ შემოსავლის უმეტესი ნაწილი ყოველთვის ასლების გაყიდვიდან მოდიოდა. უფასო პროგრამული უზრუნველყოფის და მასთან დაკავშირებული სერვისების.

უფასო პროგრამული უზრუნველყოფის შემუშავება ძალიან მნიშვნელოვანი ნაბიჯი იყო, მაგრამ რ. სტალმანის კიდევ უფრო დიდი დამსახურება უნდა იყოს აღიარებული, როგორც GNU General Public License (GPL) შექმნა. სხვადასხვა ავტორი ამ სახელს რუსულად თარგმნის სხვადასხვა გზით - უნივერსალური საჯარო ლიცენზია, გენერალიზებული საჯარო ლიცენზია და ა.შ. მაგრამ ითვლება, რომ ამ ლიცენზიის მხოლოდ ინგლისური ვერსია მოქმედებს. GPL-ის მთავარი იდეა არის ის, რომ მომხმარებელს უნდა ჰქონდეს შემდეგი ოთხი უფლება (ან ოთხი თავისუფლება):

პროგრამის გაშვების უფლება ნებისმიერი მიზნით (თავისუფლება 0)

· პროგრამის სტრუქტურის შესწავლისა და თქვენს საჭიროებებზე ადაპტაციის უფლება (თავისუფლება 1), რაც გულისხმობს პროგრამის საწყის კოდზე წვდომას.

· პროგრამის გავრცელების უფლება სხვების დასახმარებლად (თავისუფლება 2).

· პროგრამის გაუმჯობესებისა და გაუმჯობესებების გამოქვეყნების უფლება მთელი საზოგადოების საკეთილდღეოდ (თავისუფლება 3), რაც ასევე გულისხმობს პროგრამის საწყის კოდზე წვდომას.

თქვენ შეგიძლიათ გამოიყენოთ, დააკოპიროთ, შეცვალოთ, შეცვალოთ, გადასცეთ ან მიყიდოთ შეცვლილი (ან შეუცვლელი) ვერსიები სხვას, როგორც გსურთ, იმ პირობით, რომ ასეთი დამუშავების შედეგი ასევე გავრცელდება GPL ლიცენზიით. ბოლო პირობა არის ყველაზე მნიშვნელოვანი და განმსაზღვრელი ამ ლიცენზიაში. ის უზრუნველყოფს, რომ უფასო პროგრამული უზრუნველყოფის შემქმნელების ძალისხმევის შედეგები დარჩეს ღია კოდის წყაროში და არ გახდეს ნებისმიერი ჩვეულებრივი ლიცენზირებული პროდუქტის ნაწილი. ის ასევე განასხვავებს თავისუფალ პროგრამულ უზრუნველყოფას თავისუფალი პროგრამული უზრუნველყოფისგან. ამ ლიცენზიის ერთ-ერთი მოთხოვნაა ის, რომ როდესაც თქვენ ყიდით პროგრამულ უზრუნველყოფას GPL-ის ქვეშ, თქვენ უნდა გახადოთ ამ პროგრამული უზრუნველყოფის წყაროს კოდი ხელმისაწვდომი ყველასთვის, ვისაც სურს მასზე წვდომა. FSF-ის შემქმნელების სიტყვებით, GPL „ათავისუფლებს პროგრამულ უზრუნველყოფას და უზრუნველყოფს მის უფასო დარჩენას“.

GPL-ის მთავარი მიზანია დაიცვას თავისუფალი პროგრამული უზრუნველყოფა „პრივატიზაციისგან“. მაგრამ უნდა აღინიშნოს, რომ ის შექმნილია ისე, რომ დაუშვას თავისუფალი პროგრამული უზრუნველყოფის საშუალებით ფულის გამომუშავების ყველა "სამართლიანი" გზა, ეს არის ძალიან მნიშვნელოვანი წერტილი, რომელსაც განსაკუთრებული ყურადღება სჭირდება. GPL-ში პირველად გაცნობისას, შეიძლება არასწორად გავიგოთ, რომ ეს ლიცენზია ზოგადად კრძალავს პროგრამული უზრუნველყოფის ან მისი განვითარებისგან ფულის გამომუშავებას. ფაქტობრივად, GPL, კერძოდ, და ზოგადად FSF, პირდაპირ ხელს უწყობს ბიზნესს, რომელიც დაკავშირებულია დაკავშირებული სერვისების მიწოდებასთან - ტრენინგთან, კონსულტაციასთან და კომერციული პროგრამული უზრუნველყოფის რეპლიკაციასთან. ეს შესაძლებელს ხდის თანამშრომლობის მოზიდვას როგორც კორპორაციების, ასევე ადამიანების, ვისთვისაც მატერიალური ინტერესი უფრო მნიშვნელოვანია, ვიდრე მორალური სტიმული.

თავდაპირველად გამოქვეყნდა წიგნში ღია წყაროები. რიჩარდ სტალმანი იყო, მაგრამ ამ სტატიაში წვლილი შეიტანა ისე, რომ თავისუფალი პროგრამული უზრუნველყოფის მოძრაობის იდეები მთლიანად არ აკლდებოდნენ ამ წიგნს.

პირველი პროგრამული უზრუნველყოფის გაზიარების საზოგადოება

როდესაც დავიწყე მუშაობა MIT ხელოვნური ინტელექტის ლაბორატორიაში 1971 წელს, გავხდი პროგრამული უზრუნველყოფის გაზიარების საზოგადოების ნაწილი, რომელიც არსებობდა მრავალი წლის განმავლობაში. პროგრამული უზრუნველყოფის გაზიარება არ შემოიფარგლებოდა ჩვენი კონკრეტული თემით; ის ისეთივე ძველია, როგორც კომპიუტერი, ისევე როგორც რეცეპტების გაზიარება, როგორც სამზარეულო. მაგრამ ჩვენ ეს ყველაზე მეტად გავაკეთეთ.

AI Lab-მა გამოიყენა დროის გაზიარების ოპერაციული სისტემა სახელწოდებით ITS (Incompatible Timesharing System), რომელიც ლაბორატორიის პერსონალის ჰაკერებმა (1) დააპროექტეს და დაწერეს ასამბლერის ენაზე Digital PDP -10-ისთვის, ეპოქის ერთ-ერთი დიდი კომპიუტერისთვის. ამ საზოგადოების წევრი, AI Lab პერსონალის სისტემის ჰაკერი, ჩემი სამუშაო იყო ამ სისტემის გაუმჯობესება.

ჩვენ არ ვუწოდებდით ჩვენს პროგრამას „თავისუფალი პროგრამული უზრუნველყოფა“, რადგან ეს ტერმინი ჯერ არ არსებობდა; მაგრამ ეს არის ის, რაც იყო. როდესაც სხვა უნივერსიტეტის ან კომპანიის ადამიანებს სურდათ პროგრამის პორტირება და გამოყენება, ჩვენ სიამოვნებით ვუშვებდით მათ. თუ დაინახეთ ვინმე, რომელიც იყენებს უცნობ და საინტერესო პროგრამას, ყოველთვის შეგიძლიათ მოითხოვოთ წყაროს კოდის ნახვა, რათა შეგეძლოთ მისი წაკითხვა, შეცვლა ან მისი ნაწილების კანიბალიზება ახალი პროგრამის შესაქმნელად.

(1) „ჰაკერის“ გამოყენება „უსაფრთხოების დამრღვევად“ ნიშნავს მასმედიის დაბნეულობას. ჩვენ, ჰაკერები, უარს ვამბობთ ამ მნიშვნელობის აღიარებაზე და ვაგრძელებთ ამ სიტყვის გამოყენებას, ნიშნავს იმას, ვისაც უყვარს პროგრამირება, ვისაც უყვარს სათამაშო ჭკუა, ან ამ ორის კომბინაცია. იხილეთ ჩემი სტატია ჰაკერების შესახებ.

საზოგადოების ნგრევა

სიტუაცია მკვეთრად შეიცვალა 1980-იანი წლების დასაწყისში, როდესაც Digital-მა შეწყვიტა PDP-10 სერია. მისი არქიტექტურა, ელეგანტური და ძლიერი 60-იან წლებში, ბუნებრივად ვერ გავრცელდა უფრო დიდ მისამართებზე, რომლებიც შესაძლებელი ხდებოდა 80-იან წლებში. ეს იმას ნიშნავდა, რომ ITS-ის შემადგენელი თითქმის ყველა პროგრამა მოძველებული იყო.

AI Lab ჰაკერების საზოგადოება უკვე დაინგრა, არც ისე დიდი ხნის წინ. 1981 წელს სპინ-ოფმა კომპანია Symbolics-მა დაიქირავა თითქმის ყველა ჰაკერი AI-ს ლაბორატორიიდან და დასახლებულმა საზოგადოებამ ვერ შეძლო თავის შენარჩუნება. (წიგნი ჰაკერები, ავტორი სტივ ლევის, აღწერს ამ მოვლენებს და ასევე იძლევა მკაფიო სურათს ამ თემის აყვავების პერიოდში.) როდესაც AI ​​Lab-მა იყიდა ახალი PDP-10 1982 წელს, მისმა ადმინისტრატორებმა გადაწყვიტეს გამოეყენებინათ Digital-ის არათავისუფალი. დროის გაზიარების სისტემა ITS-ის ნაცვლად.

ეპოქის თანამედროვე კომპიუტერებს, როგორიცაა VAX ან 68020, გააჩნდათ საკუთარი ოპერაციული სისტემა, მაგრამ არცერთი მათგანი არ იყო თავისუფალი პროგრამული უზრუნველყოფა: თქვენ უნდა მოეწერათ არაგამჟღავნების ხელშეკრულება, თუნდაც შესასრულებელი ასლის მისაღებად.

ეს ნიშნავს, რომ კომპიუტერის გამოყენების პირველი ნაბიჯი იყო დაპირება, რომ არ დაეხმარები შენს მეზობელს. აკრძალული იყო თანამშრომელი საზოგადოება. საკუთრების პროგრამული უზრუნველყოფის მფლობელების მიერ დაწესებული წესი იყო: „თუ მეზობელს უზიარებ, მეკობრე ხარ. თუ რაიმე ცვლილება გსურთ, სთხოვეთ ჩვენ განვახორციელოთ ისინი“.

მოსაზრება, რომ საკუთრებაში არსებული პროგრამული უზრუნველყოფის სოციალური სისტემა - სისტემა, რომელიც ამბობს, რომ თქვენ არ გაქვთ უფლება პროგრამული უზრუნველყოფის გაზიარება ან შეცვლა - არის ანტისოციალური, რომ ის არაეთიკურია, რომ ის უბრალოდ არასწორია, შეიძლება გასაკვირი იყოს ზოგიერთი მკითხველისთვის. მაგრამ კიდევ რა შეგვიძლია ვთქვათ სისტემაზე, რომელიც დაფუძნებულია საზოგადოების გაყოფაზე და მომხმარებლების უმწეო მდგომარეობაში შენარჩუნებაზე? მკითხველებმა, რომლებსაც ეს იდეა გასაკვირად მიაჩნიათ, შესაძლოა საკუთრებაში არსებული პროგრამული უზრუნველყოფის სოციალური სისტემა მიიჩნიეს, ან შეაფასეს იგი საკუთრების პროგრამული უზრუნველყოფის ბიზნესების მიერ შემოთავაზებული პირობებით. პროგრამული უზრუნველყოფის გამომცემლები დიდხანს და ბევრს მუშაობდნენ ხალხის დასარწმუნებლად, რომ პრობლემის გადასაჭრელად მხოლოდ ერთი გზა არსებობს.

როდესაც პროგრამული უზრუნველყოფის გამომცემლები საუბრობენ თავიანთი „უფლებების აღსრულებაზე“ ან „მეკობრეობის შეჩერებაზე“, სინამდვილეში რას აკეთებენ ისინი ამბობენარის მეორეხარისხოვანი. ამ განცხადებების რეალური გზავნილი მდგომარეობს იმ გამოუცხადებელ ვარაუდებში, რომლებიც მათ მიაჩნიათ თავისთავად, რომელთა მიღებასაც სთხოვენ საზოგადოებას ექსპერტიზის გარეშე. ამიტომ, განვიხილოთ ისინი.

ერთი ვარაუდი არის ის, რომ პროგრამული უზრუნველყოფის კომპანიებს აქვთ უდავო ბუნებრივი უფლება, ფლობდნენ პროგრამულ უზრუნველყოფას და, შესაბამისად, აქვთ ძალაუფლება მის ყველა მომხმარებელზე. (ეს რომ ბუნებრივი უფლება იყოს, მაშინ რაც არ უნდა ზიანი მიაყენოს მას საზოგადოებას, ჩვენ ვერ გავაპროტესტებდით.) საინტერესოა, რომ აშშ-ს კონსტიტუცია და სამართლებრივი ტრადიცია უარყოფს ამ მოსაზრებას; საავტორო უფლება არ არის ბუნებრივი უფლება, არამედ ხელისუფლების მიერ დაწესებული ხელოვნური მონოპოლია, რომელიც ზღუდავს მომხმარებელთა ბუნებრივ უფლებას კოპირებაზე.

კიდევ ერთი გამოუცხადებელი ვარაუდი არის ის, რომ პროგრამული უზრუნველყოფის შესახებ ერთადერთი მნიშვნელოვანი რამ არის ის, თუ რა სამუშაოები გაძლევს საშუალებას, რომ ჩვენ კომპიუტერის მომხმარებლებს არ უნდა გვაინტერესებდეს, როგორი საზოგადოება გვაქვს უფლება გვქონდეს.

მესამე ვარაუდი არის ის, რომ ჩვენ არ გვექნებოდა გამოსაყენებელი პროგრამული უზრუნველყოფა (ან არასდროს გვექნებოდა პროგრამა ამა თუ იმ კონკრეტული სამუშაოს შესასრულებლად), თუ კომპანიას არ შევთავაზებთ ძალაუფლებას პროგრამის მომხმარებლებზე. ეს ვარაუდი შეიძლება დამაჯერებლად ჩანდა, სანამ თავისუფალი პროგრამული უზრუნველყოფის მოძრაობა აჩვენა, რომ ჩვენ შეგვიძლია შევქმნათ უამრავი სასარგებლო პროგრამა მასზე ჯაჭვის გარეშე.

თუ ჩვენ უარს ვიტყვით ამ ვარაუდების მიღებაზე და ვიმსჯელებთ ამ საკითხებზე ჩვეულებრივი საღი ზნეობრივი ზნე-ჩვეულებრივი ზნე-ჩვეულებრივი ზნე-ჩვეულებრივი ზნე-ჩვეულებრივი ზნე-ჩვეულებრივი ზნე-ჩვეულებისამებრ განმსაზღვრელ საკითხებზე დაყრდნობით, მაშინ როცა პირველ ადგილზე ვაყენებთ მომხმარებლებს, ძალიან განსხვავებულ დასკვნამდე მივდივართ. კომპიუტერის მომხმარებლებს უნდა შეეძლოთ თავისუფლად შეცვალონ პროგრამები მათი საჭიროებების შესაბამისად და თავისუფლად გააზიარონ პროგრამული უზრუნველყოფა, რადგან სხვა ადამიანების დახმარება საზოგადოების საფუძველია.

მკაცრი მორალური არჩევანი

ჩემი საზოგადოების წასვლის შემდეგ, შეუძლებელი იყო გავაგრძელო ისე, როგორც ადრე. სამაგიეროდ, მკაცრი მორალური არჩევანის წინაშე დავდექი.

მარტივი არჩევანი იყო საკუთრების პროგრამული უზრუნველყოფის სამყაროში გაწევრიანება, ხელმოწერა არასაჯარო ხელშეკრულებებზე და დაპირება, რომ არ დავეხმარებოდი ჩემს თანამემამულე ჰაკერს. დიდი ალბათობით, მე ასევე შევიმუშავებდი პროგრამულ უზრუნველყოფას, რომელიც გამოიცა არაგამჟღავნების ხელშეკრულებების საფუძველზე, რითაც დავამატებდი ზეწოლას სხვა ადამიანებზე, რომ ღალატობდნენ მათ თანამოაზრეებს.

შემეძლო ამ გზით ფულის გამომუშავება და, ალბათ, კოდის წერით გამეხარდა. მაგრამ ვიცოდი, რომ ჩემი კარიერის ბოლოს ვიხსენებდი წლების განმავლობაში კედლების აშენებას ხალხის გასაყოფად და ვგრძნობდი, რომ ჩემი ცხოვრება გავატარე სამყაროს უარეს ადგილად ქცევაში.

მე უკვე განვიცდიდი არაგამჟღავნების შესახებ ხელშეკრულების მიმღები, როდესაც ვიღაცამ უარი მითხრა მე და MIT AI Lab-ს ჩვენი პრინტერის საკონტროლო პროგრამის საწყისი კოდი. (ამ პროგრამის გარკვეული ფუნქციების ნაკლებობამ პრინტერის გამოყენება უკიდურესად იმედგაცრუებული გახადა.) ასე რომ, საკუთარ თავს ვერ ვიტყოდი, რომ გამჟღავნების შეთანხმებები უდანაშაულო იყო. ძალიან გავბრაზდი, როცა უარი გვითხრა ჩვენთან გაზიარებაზე; არ შემეძლო შემობრუნებულიყავი და იგივე გავუკეთო ყველას.

სხვა არჩევანი, პირდაპირი, მაგრამ არასასიამოვნო, იყო კომპიუტერული სფეროს დატოვება. ამგვარად ჩემი უნარები ბოროტად არ გამოიყენებოდა, მაგრამ მაინც დაიხარჯებოდა. მე არ ვიქნები დამნაშავე კომპიუტერის მომხმარებლების გაყოფისა და შეზღუდვისთვის, მაგრამ ეს მაინც მოხდებოდა.

ამიტომ ვეძებდი გზას, რომ პროგრამისტს შეეძლო რაიმე გაეკეთებინა სასიკეთოდ. მე ვკითხე ჩემს თავს, იყო თუ არა რაიმე პროგრამა ან პროგრამა, რომლის დაწერა შემეძლო, რათა კიდევ ერთხელ გავმხდარიყავი საზოგადოება?

პასუხი ნათელი იყო: პირველ რიგში ოპერაციული სისტემა იყო საჭირო. ეს არის გადამწყვეტი პროგრამა კომპიუტერის გამოყენების დასაწყებად. ოპერაციული სისტემით ბევრი რამის გაკეთება შეგიძლიათ; ერთის გარეშე, თქვენ არ შეგიძლიათ კომპიუტერის გაშვება საერთოდ. უფასო ოპერაციული სისტემით, ჩვენ კვლავ შეგვეძლება გვქონდეს თანამშრობელი ჰაკერების საზოგადოება და მოვიწვიოთ ნებისმიერი ადამიანი, რათა შეუერთდეს. და ყველას შეეძლება გამოიყენოს კომპიუტერი ისე, რომ არ დაწყებულიყო შეთქმულების ჩამორთმევა მისი მეგობრებისთვის.

როგორც ოპერაციული სისტემის შემქმნელს, მე მქონდა შესაბამისი უნარები ამ სამუშაოსთვის. ასე რომ, მიუხედავად იმისა, რომ წარმატებას თავისთავად ვერ ვიღებდი, მივხვდი, რომ ამ საქმის შესასრულებლად ამირჩიეს. მე ავირჩიე სისტემა Unix-თან თავსებადი გავხადო, რათა ის ყოფილიყო პორტატული და რომ Unix-ის მომხმარებლებს მარტივად შეეძლოთ მასზე გადასვლა. სახელი GNU შეირჩა ჰაკერების ტრადიციის შესაბამისად, როგორც რეკურსიული აკრონიმი "GNU"s Not Unix". იგი გამოითქმის როგორც ერთი მარცვალი მძიმე გ-ით.

ოპერაციული სისტემა არ ნიშნავს მხოლოდ ბირთვს, რომელიც ძლივს საკმარისია სხვა პროგრამების გასაშვებად. 1970-იან წლებში ყველა ოპერაციული სისტემა, რომელიც იმსახურებს სახელს, მოიცავდა ბრძანების პროცესორებს, ასამბლერებს, შემდგენელებს, თარჯიმნებს, გამართულებს, ტექსტის რედაქტორებს, მეილერებს და ბევრ სხვას. ITS-ს ჰქონდა ისინი, Multics-ს ჰქონდა ისინი, VMS-ს ჰქონდა ისინი და Unix-ს ჰქონდა ისინი. GNU ოპერაციული სისტემა მათაც მოიცავდა.

მოგვიანებით მოვისმინე ეს სიტყვები, რომლებიც მიეწერება ჰილელს (1):

თუ მე არ ვარ ჩემთვის, ვინ იქნება ჩემთვის?
თუ მხოლოდ ჩემთვის ვარ, რა ვარ?
თუ არა ახლა, როდის?

GNU პროექტის დაწყების გადაწყვეტილება მსგავს სულისკვეთებას ეფუძნებოდა.

(1) როგორც ათეისტი, მე არ მივყვები არცერთ რელიგიურ ლიდერს, მაგრამ ზოგჯერ ვხვდები, რომ აღფრთოვანებული ვარ იმით, რაც ერთ-ერთმა მათგანმა თქვა.

თავისუფალი, როგორც თავისუფლებაში

ტერმინი „თავისუფალი პროგრამული უზრუნველყოფა“ ზოგჯერ არასწორად არის გაგებული - მას საერთო არაფერი აქვს ფასთან. საუბარია თავისუფლებაზე. აქედან გამომდინარე, აქ არის თავისუფალი პროგრამული უზრუნველყოფის განმარტება.

პროგრამა არის უფასო პროგრამა თქვენთვის, კონკრეტული მომხმარებლისთვის, თუ:

  • თქვენ გაქვთ თავისუფლება განახორციელოთ პროგრამა, როგორც გსურთ, ნებისმიერი მიზნით.
  • თქვენ გაქვთ თავისუფლება შეცვალოთ პროგრამა თქვენს საჭიროებებზე. (იმისთვის, რომ ეს თავისუფლება პრაქტიკაში ეფექტური იყოს, თქვენ უნდა ჰქონდესწყაროს კოდზე წვდომა, რადგან პროგრამაში ცვლილებების შეტანა საწყისი კოდის გარეშე ძალზედ რთულია.)
  • თქვენ გაქვთ ასლების გადანაწილების თავისუფლება, უფასო ან საფასურის სანაცვლოდ.
  • თქვენ გაქვთ თავისუფლება, გაავრცელოთ პროგრამის შეცვლილი ვერსიები, რათა საზოგადოებამ ისარგებლოს თქვენი გაუმჯობესებით.

ვინაიდან „უფასო“ გულისხმობს თავისუფლებას და არა ფასს, არ არსებობს წინააღმდეგობა ასლების გაყიდვასა და უფასო პროგრამულ უზრუნველყოფას შორის. სინამდვილეში, ასლების გაყიდვის თავისუფლება გადამწყვეტია: CD-ROM-ებზე გაყიდული უფასო პროგრამული უზრუნველყოფის კოლექციები მნიშვნელოვანია საზოგადოებისთვის და მათი გაყიდვა მნიშვნელოვანი გზაა თავისუფალი პროგრამული უზრუნველყოფის განვითარებისთვის სახსრების მოსაზიდად. მაშასადამე, პროგრამა, რომელიც ადამიანებს არ შეუძლიათ თავისუფლად შეიტანონ ამ კოლექციებში, არ არის უფასო პროგრამა.

„თავისუფლის“ გაურკვევლობის გამო ხალხი დიდი ხანია ეძებს ალტერნატივას, მაგრამ უკეთესი ტერმინი ვერავინ იპოვა. ინგლისურ ენას უფრო მეტი სიტყვა და ნიუანსი აქვს, ვიდრე ნებისმიერ სხვას, მაგრამ მას აკლია მარტივი, ცალსახა სიტყვა, რომელიც ნიშნავს "თავისუფალს", როგორც თავისუფლებაში - "უზღუდავი" არის სიტყვა, რომელიც მნიშვნელობით ყველაზე ახლოსაა. ისეთ ალტერნატივებს, როგორიცაა „განთავისუფლებული“, „თავისუფლება“ და „ღია“ აქვს ან არასწორი მნიშვნელობა ან რაიმე სხვა მინუსი.

GNU პროგრამული უზრუნველყოფა და GNU სისტემა

მთელი სისტემის შემუშავება ძალიან დიდი პროექტია. მის ხელმისაწვდომობის მიზნით, მე გადავწყვიტე ადაპტირება და გამომეყენებინა უფასო პროგრამული უზრუნველყოფის არსებული ნაწილები, სადაც ეს შესაძლებელი იყო. მაგალითად, თავიდანვე გადავწყვიტე გამომეყენებინა TeX, როგორც ძირითადი ტექსტის ფორმატირება; რამდენიმე წლის შემდეგ მე გადავწყვიტე გამომეყენებინა X ფანჯრის სისტემა, ვიდრე დამეწერა სხვა ფანჯრის სისტემა GNU-სთვის.

ამ და სხვა მსგავსი გადაწყვეტილებების გამო, GNU სისტემა არ არის იგივე, რაც GNU-ს ყველა პროგრამული უზრუნველყოფის კოლექცია. GNU სისტემა მოიცავს პროგრამებს, რომლებიც არ არის GNU პროგრამული უზრუნველყოფა, პროგრამებს, რომლებიც შემუშავებულია სხვა ადამიანების მიერ და პროექტების მიერ საკუთარი მიზნებისთვის, მაგრამ რომლებიც ჩვენ შეგვიძლია გამოვიყენოთ, რადგან ისინი უფასო პროგრამაა.

პროექტის დაწყება

1984 წლის იანვარში დავტოვე სამსახური MIT-ში და დავიწყე GNU პროგრამული უზრუნველყოფის წერა. MIT-ის დატოვება აუცილებელი იყო, რათა MIT-ს ხელი არ შეეშალა GNU-ს, როგორც თავისუფალი პროგრამული უზრუნველყოფის გავრცელებაში. მე რომ დავრჩენილიყავი პერსონალში, MIT-ს შეეძლო პრეტენზია გამოეცხადებინა ნამუშევრის ფლობაზე და შეეძლო დაეწესებინა საკუთარი განაწილების პირობები, ან თუნდაც ნამუშევარი გადაექცია საკუთრების პროგრამულ პაკეტად. მე არ მქონია განზრახვა გამეკეთებინა დიდი სამუშაო, მხოლოდ იმის დასანახად, რომ ის გამოუსადეგარი გამხდარიყო დანიშნულებისამებრ: ახალი პროგრამული უზრუნველყოფის გაზიარების საზოგადოების შექმნა.

თუმცა, პროფესორმა უინსტონმა, მაშინდელი MIT AI ლაბორატორიის ხელმძღვანელმა, გულთბილად მიმიწვია, რომ განმეგრძო ლაბორატორიის საშუალებები.

პირველი ნაბიჯები

GNU პროექტის დაწყებამდე ცოტა ხნით ადრე გავიგე თავისუფალი უნივერსიტეტის შემდგენელი ნაკრების შესახებ, რომელიც ასევე ცნობილია როგორც VUCK. (ჰოლანდიური სიტყვა "თავისუფალი" იწერება ა .) ეს იყო შემდგენელი, რომელიც შექმნილია მრავალი ენის დასამუშავებლად, მათ შორის C და Pascal-ის ჩათვლით, და მრავალი სამიზნე აპარატის მხარდასაჭერად. მე მივწერე მის ავტორს და ვკითხე, შეეძლო თუ არა GNU-ს მისი გამოყენება.

მან დამცინავად უპასუხა და თქვა, რომ უნივერსიტეტი უფასოა, შემდგენელი კი არა. ამიტომ გადავწყვიტე, რომ ჩემი პირველი პროგრამა GNU პროექტისთვის იქნებოდა მრავალენოვანი, მრავალპლატფორმული შემდგენელი.

იმ იმედით, რომ თავიდან ავიცილებდი მთლიანი შემდგენელის დაწერის აუცილებლობას, მივიღე პასტელის შემდგენელის საწყისი კოდი, რომელიც იყო ლოურენს ლივერმორის ლაბორატორიაში შემუშავებული მულტიპლატფორმული შემდგენელი. იგი მხარს უჭერდა და დაიწერა პასკალის გაფართოებულ ვერსიაზე, რომელიც შექმნილია სისტემის პროგრამირების ენად. მე დავამატე C წინა ნაწილი და დავიწყე მისი პორტირება Motorola 68000 კომპიუტერზე. მაგრამ მე მომიწია ამაზე უარის თქმა, როდესაც აღმოვაჩინე, რომ შემდგენელს სჭირდებოდა მრავალი მეგაბაიტი სტეკის სივრცე და ხელმისაწვდომი 68000 Unix სისტემა მხოლოდ 64k-ს დაუშვებდა.

შემდეგ მივხვდი, რომ Pastel შემდგენელი ფუნქციონირებდა მთელი შეყვანის ფაილის სინტაქსურ ხეში გაანალიზებით, მთელი სინტაქსის ხის "ინსტრუქციების" ჯაჭვში გადაქცევით და შემდეგ მთლიანი გამომავალი ფაილის გენერირებით, მეხსიერების გათავისუფლების გარეშე. ამ ეტაპზე, მე დავასკვენი, რომ მომიწევდა ახალი შემდგენელის დაწერა ნულიდან. ეს ახალი შემდგენელი ახლა ცნობილია როგორც GCC; მასში არც ერთი Pastel შემდგენელი არ არის გამოყენებული, მაგრამ მე მოვახერხე ადაპტირება და გამოვიყენე C წინა ნაწილი, რომელიც მე დავწერე. მაგრამ ეს იყო რამდენიმე წლის შემდეგ; პირველი, მე ვმუშაობდი GNU Emacs-ზე.

GNU Emacs

მე დავიწყე მუშაობა GNU Emacs-ზე 1984 წლის სექტემბერში და 1985 წლის დასაწყისში მისი გამოყენება დაიწყო. ამან საშუალება მომცა დამეწყო Unix სისტემების გამოყენება რედაქტირებისთვის; იმის გამო, რომ არ მაინტერესებდა ვისწავლე ვი ან ed-ის გამოყენება, მანამდე ვაკეთებდი ჩემს რედაქტირებას სხვა სახის მანქანებზე.

ამ ეტაპზე, ადამიანებს გაუჩნდათ სურვილი გამოიყენონ GNU Emacs, რამაც წამოჭრა კითხვა, თუ როგორ უნდა გავრცელდეს იგი. რა თქმა უნდა, მე დავდე ანონიმურ ftp სერვერზე MIT კომპიუტერზე, რომელსაც ვიყენებდი. (ამგვარად, ეს კომპიუტერი, prep.ai.mit.edu, გახდა GNU ftp დისტრიბუციის მთავარი საიტი; როდესაც ის გამორთული იქნა რამდენიმე წლის შემდეგ, ჩვენ გადავიტანეთ სახელი ჩვენს ახალ ftp სერვერზე.) მაგრამ იმ დროს, ბევრი დაინტერესებული იყო. ხალხი არ იყო ინტერნეტში და ვერ იღებდა ასლს ftp-ით. ასე რომ, კითხვა იყო, რას ვეტყოდი მათ?

მე შემეძლო მეთქვა: „იპოვე მეგობარი, რომელიც ქსელშია და რომელიც შენთვის ასლს გააკეთებს“. ან მე შემეძლო გამეკეთებინა ის, რაც გავაკეთე ორიგინალური PDP-10 Emacs-ით: უთხარი მათ: „გამომიგზავნეთ ფირზე და SASE და მე გამოგიგზავნით მასზე Emacs-ით“. მაგრამ მე არ მქონდა სამუშაო და ვეძებდი გზებს ფულის გამომუშავების თავისუფალი პროგრამული უზრუნველყოფის საშუალებით. ამიტომ გამოვაცხადე, რომ 150 დოლარის საფასურად, ფირს გავუგზავნი, ვისაც უნდა. ამ გზით, მე დავიწყე უფასო პროგრამული უზრუნველყოფის დისტრიბუციის ბიზნესი, იმ კომპანიების წინამორბედი, რომლებიც დღეს ავრცელებენ GNU/Linux სისტემის მთელ დისტრიბუციას.

არის თუ არა პროგრამა უფასო ყველა მომხმარებლისთვის?

თუ პროგრამა არის თავისუფალი პროგრამული უზრუნველყოფა, როდესაც ის ტოვებს თავის ავტორს, ეს სულაც არ ნიშნავს იმას, რომ ეს იქნება უფასო პროგრამა ყველასთვის, ვისაც აქვს მისი ასლი. მაგალითად, საჯარო დომენის პროგრამული უზრუნველყოფა (პროგრამული უზრუნველყოფა, რომელიც არ არის დაცული საავტორო უფლებებით) არის უფასო პროგრამა; მაგრამ ყველას შეუძლია შექმნას მისი საკუთრების შეცვლილი ვერსია. ანალოგიურად, ბევრი უფასო პროგრამა დაცულია საავტორო უფლებებით, მაგრამ განაწილებულია მარტივი დასაშვები ლიცენზიებით, რაც საშუალებას აძლევს საკუთრებაში შეცვლილ ვერსიებს.

ამ პრობლემის პარადიგმატული მაგალითია X Window System. შემუშავებული MIT-ში და გამოშვებული უფასო პროგრამული უზრუნველყოფის სახით ნებადართული ლიცენზიით, ის მალევე იქნა მიღებული სხვადასხვა კომპიუტერული კომპანიების მიერ. მათ დაამატეს X თავიანთ საკუთრებაში არსებულ Unix სისტემებში, მხოლოდ ორობითი ფორმით და დაფარულია იგივე არაგამჟღავნების ხელშეკრულებით. X-ის ეს ასლები არ იყო უფრო თავისუფალი პროგრამული უზრუნველყოფა, ვიდრე Unix იყო.

X ფანჯრის სისტემის დეველოპერებმა ეს პრობლემად არ მიიჩნიეს - ისინი მოელოდნენ და განზრახული ჰქონდათ ეს მომხდარიყო. მათი მიზანი არ იყო თავისუფლება, უბრალოდ "წარმატება", რომელიც განისაზღვრება როგორც "ბევრი მომხმარებლის ყოლა". მათ არ აინტერესებდათ, ჰქონდათ თუ არა ამ მომხმარებლებს თავისუფლება, მხოლოდ ის, რომ ისინი მრავალრიცხოვანი უნდა იყვნენ.

ამან გამოიწვია პარადოქსული ვითარება, როდესაც თავისუფლების რაოდენობის დათვლის ორმა სხვადასხვა ხერხმა განსხვავებული პასუხი გასცა კითხვაზე, "ეს პროგრამა უფასოა?" თუ თქვენ შეაფასებდით MIT-ის გამოშვების განაწილების პირობებით გათვალისწინებული თავისუფლების საფუძველზე, თქვენ იტყოდით, რომ X იყო უფასო პროგრამა. მაგრამ თუ თქვენ გაზომავთ X-ის საშუალო მომხმარებლის თავისუფლებას, უნდა გეთქვათ, რომ ეს იყო საკუთრების პროგრამული უზრუნველყოფა. X მომხმარებელთა უმეტესობა იყენებდა საკუთრებაში არსებულ ვერსიებს, რომლებიც მოჰყვა Unix სისტემებს და არა უფასო ვერსიას.

Copyleft და GNU GPL

GNU-ს მიზანი იყო მომხმარებლებს თავისუფლების მინიჭება და არა მხოლოდ პოპულარობის მიცემა. ამიტომ დაგვჭირდა გამოგვეყენებინა სადისტრიბუციო ტერმინები, რომლებიც ხელს შეუშლიდა GNU პროგრამული უზრუნველყოფის საკუთრებაში გადაქცევას. მეთოდს, რომელსაც ჩვენ ვიყენებთ, ეწოდება "copyleft".(1)

Copyleft იყენებს საავტორო უფლებების კანონს, მაგრამ აბრუნებს მას, რათა ემსახურებოდეს მისი ჩვეულებრივი მიზნის საპირისპიროს: პროგრამის შეზღუდვის საშუალების ნაცვლად, ის ხდება პროგრამის თავისუფალი შენარჩუნების საშუალება.

Copyleft-ის ცენტრალური იდეა არის ის, რომ ჩვენ ყველას ვაძლევთ პროგრამის გაშვების, პროგრამის კოპირების, პროგრამის შესაცვლელად და შეცვლილი ვერსიების გავრცელების უფლებას, მაგრამ არა საკუთარი შეზღუდვების დამატების უფლებას. ამრიგად, გადამწყვეტი თავისუფლებები, რომლებიც განსაზღვრავს „თავისუფალ პროგრამულ უზრუნველყოფას“ გარანტირებულია ყველასთვის, ვისაც აქვს ასლი; ისინი ხდებიან განუყოფელი უფლებები.

ეფექტური კოპირლეფტისთვის, შეცვლილი ვერსიებიც უფასო უნდა იყოს. ეს უზრუნველყოფს, რომ ჩვენზე დაფუძნებული ნამუშევარი ხელმისაწვდომი გახდება ჩვენი საზოგადოებისთვის, თუ ის გამოქვეყნდება. როდესაც პროგრამისტები, რომლებსაც აქვთ სამუშაოები პროგრამისტად, მოხალისეებად აცხადებენ GNU-ს პროგრამული უზრუნველყოფის გაუმჯობესებას, ეს არის კოპირალფი, რომელიც ხელს უშლის მათ დამსაქმებლებს თქვან: „თქვენ არ შეგიძლიათ ამ ცვლილებების გაზიარება, რადგან ჩვენ ვაპირებთ მათ გამოვიყენოთ პროგრამის ჩვენი საკუთრების ვერსიის შესაქმნელად“.

მოთხოვნა, რომ ცვლილებები უფასო უნდა იყოს, არსებითია, თუ გვინდა პროგრამის თითოეული მომხმარებლის თავისუფლება უზრუნველვყოთ. კომპანიები, რომლებმაც მოახდინეს X Window System-ის პრივატიზება, ჩვეულებრივ ახორციელებდნენ გარკვეულ ცვლილებებს მის სისტემებსა და აპარატურაზე პორტირებისთვის. ეს ცვლილებები მცირე იყო X-ის დიდ ზომებთან შედარებით, მაგრამ ისინი არ იყო ტრივიალური. თუ ცვლილებების შეტანა იყო მომხმარებლის თავისუფლების უარყოფის საბაბი, ვინმესთვის ადვილი იქნებოდა ამ საბაბით ისარგებლოს.

დაკავშირებული საკითხი ეხება უფასო პროგრამის არათავისუფალ კოდთან გაერთიანებას. ასეთი კომბინაცია აუცილებლად არათავისუფალი იქნებოდა; რომელი თავისუფლება აკლია არათავისუფალ ნაწილს, აკლდება მთლიანსაც. ასეთი კომბინაციების დასაშვებად გაიხსნება საკმარისად დიდი ხვრელი გემის ჩაძირვისთვის. აქედან გამომდინარე, გადამწყვეტი მოთხოვნა copyleft-ისთვის არის ამ ხვრელის შეერთება: ყველაფერი, რაც დაემატება ან შერწყმულია კოპირლეფტით პროგრამასთან, უნდა იყოს ისეთი, რომ უფრო დიდი კომბინირებული ვერსიაც იყოს თავისუფალი და საავტორო უფლებით.

copyleft-ის კონკრეტული იმპლემენტაცია, რომელსაც ჩვენ ვიყენებთ GNU პროგრამული უზრუნველყოფის უმეტესობისთვის, არის GNU General Public License, ან მოკლედ GNU GPL. ჩვენ გვაქვს სხვა სახის კოპირლეფტი, რომელიც გამოიყენება კონკრეტულ ვითარებაში. GNU სახელმძღვანელოები ასევე დაცულია საავტორო უფლებით, მაგრამ გამოიყენეთ ბევრად უფრო მარტივი ტიპის კოპირლეფტი, რადგან GNU GPL-ის სირთულე არ არის აუცილებელი სახელმძღვანელოებისთვის.(2)

(1) 1984 ან 1985 წელს, დონ ჰოპკინსმა (ძალიან წარმოსახვითი ადამიანი) გამომიგზავნა წერილი. კონვერტზე მან დაწერა რამდენიმე სახალისო გამონათქვამი, მათ შორის ეს: "Copyleft - ყველა უფლება შებრუნებულია". მე გამოვიყენე სიტყვა "copyleft" განაწილების კონცეფციის დასასახელებლად, რომელსაც იმ დროს ვავითარებდი.

თავისუფალი პროგრამული უზრუნველყოფის ფონდის თანამშრომლებმა დაწერეს და შეინარჩუნეს რამდენიმე GNU პროგრამული პაკეტი. ორი მნიშვნელოვანი არის C ბიბლიოთეკა და ჭურვი. GNU C ბიბლიოთეკა არის ის, რასაც ყველა პროგრამა, რომელიც მუშაობს GNU/Linux სისტემაზე, იყენებს Linux-თან კომუნიკაციისთვის. ის შეიქმნა თავისუფალი პროგრამული უზრუნველყოფის ფონდის წევრის როლანდ მაკგრატის მიერ. GNU/Linux სისტემების უმეტესობაში გამოყენებული ჭურვი არის BASH, Bourne Again Shell(1), რომელიც შეიმუშავა FSF-ის თანამშრომელმა ბრაიან ფოქსმა.

ჩვენ დავაფინანსეთ ამ პროგრამების განვითარება, რადგან GNU Project არ იყო მხოლოდ ინსტრუმენტები ან განვითარების გარემო. ჩვენი მიზანი იყო სრული ოპერაციული სისტემა და ეს პროგრამები იყო საჭირო ამ მიზნისთვის.

(1) "Bourne Again Shell" არის პიესა სახელზე "Bourne Shell", რომელიც იყო ჩვეულებრივი ჭურვი Unix-ზე.

უფასო პროგრამული უზრუნველყოფის მხარდაჭერა

თავისუფალი პროგრამული უზრუნველყოფის ფილოსოფია უარყოფს კონკრეტულ ფართოდ გავრცელებულ ბიზნეს პრაქტიკას, მაგრამ ის არ ეწინააღმდეგება ბიზნესს. როდესაც ბიზნესი პატივს სცემს მომხმარებელთა თავისუფლებას, ვუსურვებთ მათ წარმატებებს.

Emacs-ის ასლების გაყიდვა ადასტურებს ერთი სახის უფასო პროგრამული უზრუნველყოფის ბიზნესს. როდესაც FSF-მა აიღო ეს ბიზნესი, მე მჭირდებოდა ცხოვრების სხვა გზა. მე ეს ვიპოვე ჩემს მიერ შემუშავებული უფასო პროგრამული უზრუნველყოფის სერვისების გაყიდვისას. ეს მოიცავდა სწავლებას ისეთი საგნებისთვის, როგორიცაა GNU Emacs-ის დაპროგრამება და GCC-ის მორგება და პროგრამული უზრუნველყოფის განვითარება, ძირითადად GCC-ის ახალ პლატფორმებზე პორტირება.

დღეს თითოეული ამ ტიპის უფასო პროგრამული უზრუნველყოფის ბიზნესი პრაქტიკაში გამოიყენება რიგი კორპორაციების მიერ. ზოგი ავრცელებს უფასო პროგრამულ კოლექციებს CD-ROM-ზე; სხვები ყიდიან მხარდაჭერას ისეთ დონეზე, როგორიცაა მომხმარებლის კითხვებზე პასუხის გაცემა, შეცდომების გამოსწორება და ახალი ძირითადი ფუნქციების დამატება. ჩვენ ვიწყებთ უფასო პროგრამული უზრუნველყოფის კომპანიებს, რომლებიც დაფუძნებულია ახალი უფასო პროგრამული პროდუქტების გამოშვებაზე.

თუმცა, ფრთხილად იყავით - რიგი კომპანიები, რომლებიც საკუთარ თავს უკავშირებენ ტერმინს „ღია წყარო“ რეალურად აფუძნებენ თავიანთ ბიზნესს არათავისუფალ პროგრამულ უზრუნველყოფაზე, რომელიც მუშაობს თავისუფალ პროგრამულ უზრუნველყოფაზე. ეს არ არის უფასო პროგრამული უზრუნველყოფის კომპანიები, ისინი არიან საკუთრების პროგრამული უზრუნველყოფის კომპანიები, რომელთა პროდუქტები აცდუნებს მომხმარებლებს თავისუფლებისგან. ისინი ამ პროგრამებს უწოდებენ "დამატებითი ღირებულების პაკეტებს", რაც აჩვენებს იმ ღირებულებებს, რომლებიც მათ სურთ ჩვენ მივიღოთ: კომფორტი თავისუფლებაზე მაღლა. თუ უფრო მეტად ვაფასებთ თავისუფლებას, მათ უნდა ვუწოდოთ „თავისუფლების გამოკლებული“ პაკეტები.

ტექნიკური მიზნები

GNU-ს მთავარი მიზანია იყოს თავისუფალი პროგრამული უზრუნველყოფა. მაშინაც კი, თუ GNU-ს არ ჰქონდა ტექნიკური უპირატესობა Unix-ზე, მას ექნება სოციალური უპირატესობა, რომელიც მომხმარებლებს თანამშრომლობის საშუალებას მისცემს და ეთიკური უპირატესობა მომხმარებლის თავისუფლების პატივისცემით.

მაგრამ ბუნებრივი იყო კარგი პრაქტიკის ცნობილი სტანდარტების გამოყენება სამუშაოზე - მაგალითად, მონაცემთა სტრუქტურების დინამიურად განაწილება, რათა თავიდან იქნას აცილებული თვითნებური ფიქსირებული ზომის ლიმიტები და ყველა შესაძლო 8-ბიტიანი კოდის დამუშავება, სადაც ამას აზრი ჰქონდა.

გარდა ამისა, ჩვენ უარვყავით Unix-ის ფოკუსირება მცირე მეხსიერების ზომაზე, რადგან გადავწყვიტეთ, არ დაგვეხმარა 16-ბიტიანი მანქანები (ნათელი იყო, რომ 32-ბიტიანი აპარატები ნორმა იქნებოდა GNU სისტემის დასრულებამდე) და არ დაგვეხმარა ძალისხმევა. მეხსიერების მოხმარების შესამცირებლად, თუ ის არ აღემატება მეგაბაიტს. პროგრამებში, რომლებისთვისაც ძალიან დიდი ფაილების დამუშავება არ იყო გადამწყვეტი, ჩვენ ვურჩევდით პროგრამისტებს, წაეკითხათ მთლიანი შეყვანის ფაილი ბირთვში, შემდეგ დაასკანიროთ მისი შინაარსი I/O-ზე ფიქრის გარეშე.

ეს გადაწყვეტილებები საშუალებას აძლევდა GNU-ს ბევრ პროგრამას აჯობოდნენ თავიანთ Unix კოლეგებს საიმედოობითა და სიჩქარით.

საჩუქრად კომპიუტერები

როდესაც GNU Project-ის რეპუტაცია იზრდებოდა, ადამიანებმა დაიწყეს სთავაზობდნენ პროექტს Unix-ზე მომუშავე მანქანების შემოწირულობაზე. ეს იყო ძალიან სასარგებლო, რადგან GNU-ს კომპონენტების შემუშავების ყველაზე მარტივი გზა იყო ამის გაკეთება Unix სისტემაზე და ამ სისტემის კომპონენტების შეცვლა. მაგრამ მათ წამოაყენეს ეთიკური საკითხი: სწორი იყო თუ არა ჩვენთვის საერთოდ Unix-ის ასლი.

Unix იყო (და არის) საკუთრების პროგრამული უზრუნველყოფა და GNU Project-ის ფილოსოფია ამბობდა, რომ ჩვენ არ უნდა გამოვიყენოთ საკუთრების პროგრამული უზრუნველყოფა. მაგრამ იმავე მსჯელობის გამოყენებით, რომელიც მივყავართ იმ დასკვნამდე, რომ ძალადობა თავდაცვაში გამართლებულია, მე დავასკვენი, რომ მისი გამოყენება ლეგიტიმური იყო. საკუთრების პაკეტი, როდესაც ეს გადამწყვეტი იყო უფასო შემცვლელის შესაქმნელად, რომელიც დაეხმარებოდა სხვებს შეწყვიტონ საკუთრების პაკეტის გამოყენება.

მაგრამ, თუნდაც ეს იყო გამართლებული ბოროტება, ის მაინც ბოროტება იყო. დღეს ჩვენ აღარ გვაქვს Unix-ის ასლები, რადგან ჩვენ შევცვალეთ ისინი უფასო ოპერაციული სისტემებით. თუ ჩვენ ვერ შევცვლით აპარატის ოპერაციულ სისტემას უფასო სისტემით, ჩვენ შევცვალეთ მანქანა.

GNU ამოცანების სია

როდესაც GNU პროექტი გრძელდებოდა და სისტემის კომპონენტების მზარდი რაოდენობა იქნა ნაპოვნი ან განვითარებული, საბოლოოდ სასარგებლო გახდა დარჩენილი ხარვეზების სიის შედგენა. ჩვენ გამოვიყენეთ ის დეველოპერების დასაკომპლექტებლად, რათა დაეწერათ დაკარგული ნაწილები. ეს სია ცნობილი გახდა როგორც GNU Task List. Unix-ის კომპონენტების გარდა, ჩვენ ჩამოვთვალეთ სხვა სასარგებლო პროგრამული უზრუნველყოფა და დოკუმენტაციის პროექტები, რომლებიც, ვფიქრობდით, ნამდვილად სრულყოფილი სისტემა უნდა ყოფილიყო.

დღეს (1), თითქმის არცერთი Unix კომპონენტი დარჩა GNU-ს ამოცანების სიაში - ეს სამუშაოები შესრულდა, გარდა რამდენიმე არაარსებითისა. მაგრამ სია სავსეა პროექტებით, რომლებსაც ზოგიერთი შეიძლება უწოდოს "აპლიკაციები". ნებისმიერი პროგრამა, რომელიც მიმართავს მომხმარებელთა ვიწრო კლასს, სასარგებლო იქნება ოპერაციული სისტემის დასამატებლად.

თამაშებიც კი შედის ამოცანების სიაში - და ეს იყო თავიდანვე. Unix მოიცავდა თამაშებს, ასე რომ, ბუნებრივია, GNU-იც უნდა იყოს. მაგრამ თავსებადობა არ წარმოადგენდა თამაშებს პრობლემას, ამიტომ ჩვენ არ მივყვეთ თამაშების სიას, რომელიც Unix-ს ჰქონდა. ამის ნაცვლად, ჩვენ ჩამოვთვალეთ სხვადასხვა სახის თამაშების სპექტრი, რომელიც შეიძლება მოეწონოს მომხმარებლებს.

(1) ეს დაიწერა 1998 წელს. 2009 წელს ჩვენ აღარ გვაქვს დავალების გრძელი სია. საზოგადოება ისე სწრაფად ავითარებს თავისუფალ პროგრამულ უზრუნველყოფას, რომ ჩვენ ვერც კი ვადევნებთ თვალყურს ამ ყველაფერს. ამის ნაცვლად, ჩვენ გვაქვს მაღალი პრიორიტეტული პროექტების სია, პროექტების გაცილებით მოკლე სია, რომლებიც ნამდვილად გვინდა წაახალისოთ ხალხი დაწერონ.

GNU ბიბლიოთეკა GPL

GNU C ბიბლიოთეკა იყენებს სპეციალურ საავტორო უფლებებს, სახელწოდებით GNU Library General Public License(1), რომელიც იძლევა უფლებას დააკავშიროს საკუთრების პროგრამული უზრუნველყოფა ბიბლიოთეკასთან. რატომ ხდება ეს გამონაკლისი?

ეს არ არის პრინციპული საკითხი; არ არსებობს პრინციპი, რომელიც ამბობს, რომ საკუთრების პროგრამულ პროდუქტებს უფლება აქვთ შეიტანონ ჩვენი კოდი. (რატომ წვლილი შეიტანოთ პროექტში, რომელიც ეფუძნება ჩვენთან გაზიარებაზე უარის თქმას?) LGPL-ის გამოყენება C ბიბლიოთეკისთვის ან ნებისმიერი ბიბლიოთეკისთვის, სტრატეგიის საკითხია.

C ბიბლიოთეკა აკეთებს ზოგად სამუშაოს; ყველა საკუთრების სისტემას ან კომპილერს გააჩნია C ბიბლიოთეკა. ამიტომ, ჩვენი C ბიბლიოთეკის მხოლოდ თავისუფალი პროგრამული უზრუნველყოფის ხელმისაწვდომობა არ მისცემს თავისუფალ პროგრამულ უზრუნველყოფას რაიმე უპირატესობას - ეს მხოლოდ ხელს შეუშლის ჩვენი ბიბლიოთეკის გამოყენებას.

გამონაკლისი არის ერთი სისტემა: GNU სისტემაში (და ეს მოიცავს GNU/Linux-ს), GNU C ბიბლიოთეკა ერთადერთი C ბიბლიოთეკაა. ასე რომ, GNU C ბიბლიოთეკის განაწილების პირობები განსაზღვრავს, შესაძლებელია თუ არა GNU სისტემის საკუთრების პროგრამის შედგენა. არ არსებობს ეთიკური მიზეზი, რომ დაუშვას საკუთრების აპლიკაციები GNU სისტემაზე, მაგრამ სტრატეგიულად, როგორც ჩანს, მათი აკრძალვა უფრო მეტს შეუწყობს ხელს GNU სისტემის გამოყენებას, ვიდრე წაახალისებს უფასო აპლიკაციების განვითარებას. ამიტომ ბიბლიოთეკის GPL-ის გამოყენება კარგი სტრატეგიაა C ბიბლიოთეკისთვის.

სხვა ბიბლიოთეკებისთვის სტრატეგიული გადაწყვეტილების გათვალისწინება საჭიროა თითოეულ შემთხვევაში. როდესაც ბიბლიოთეკა აკეთებს სპეციალურ სამუშაოს, რომელიც დაგეხმარებათ გარკვეული სახის პროგრამების დაწერაში, მაშინ მისი გამოშვება GPL-ის ქვეშ, მხოლოდ უფასო პროგრამებით შეზღუდვა, არის საშუალება, დაეხმაროს სხვა უფასო პროგრამული უზრუნველყოფის დეველოპერებს, რაც მათ უპირატესობას ანიჭებს საკუთრების პროგრამულ უზრუნველყოფას.

განვიხილოთ GNU Readline, ბიბლიოთეკა, რომელიც შეიქმნა BASH-ისთვის ბრძანების ხაზის რედაქტირების უზრუნველსაყოფად. Readline გამოშვებულია ჩვეულებრივი GNU GPL-ით და არა ბიბლიოთეკის GPL-ით. ეს, ალბათ, ამცირებს Readline-ის გამოყენებას, მაგრამ ეს ჩვენთვის ზარალი არ არის. იმავდროულად, მინიმუმ ერთი სასარგებლო აპლიკაცია გაკეთდა უფასო პროგრამული უზრუნველყოფის სპეციალურად, რათა გამოიყენოს Readline, და ეს არის რეალური მოგება საზოგადოებისთვის.

საკუთრებაში არსებული პროგრამული უზრუნველყოფის შემქმნელებს აქვთ ფულის უპირატესობები; უფასო პროგრამული უზრუნველყოფის შემქმნელებმა ერთმანეთისთვის უპირატესობა უნდა გამოიჩინონ. ვიმედოვნებ, რომ ერთ დღეს გვექნება GPL-ით დაფარული ბიბლიოთეკების დიდი კოლექცია, რომლებსაც არ ექნებათ პარალელი ხელმისაწვდომი საკუთრების პროგრამულ უზრუნველყოფასთან, რაც უზრუნველყოფს სასარგებლო მოდულებს, რომლებიც ახალი თავისუფალი პროგრამული უზრუნველყოფის სამშენებლო ბლოკად გამოდგება და დამატებით უპირატესობას შემატებს უფასო პროგრამული უზრუნველყოფის შემდგომ განვითარებას.

(1) ამ ლიცენზიას ახლა ეწოდება GNU Lesser General Public License, რათა თავიდან იქნას აცილებული იდეა, რომ ყველა ბიბლიოთეკამ უნდა გამოიყენოს იგი. დამატებითი ინფორმაციისთვის იხილეთ რატომ არ უნდა გამოიყენოთ Lesser GPL თქვენი შემდეგი ბიბლიოთეკისთვის.

ქავილი?

ერიკ რეიმონდი ამბობს, რომ „პროგრამული უზრუნველყოფის ყველა კარგი ნამუშევარი იწყება დეველოპერის პირადი ქავილის გაფუჭებით“. შეიძლება ეს ზოგჯერ მოხდეს, მაგრამ GNU პროგრამული უზრუნველყოფის მრავალი მნიშვნელოვანი ნაწილი შეიქმნა იმისათვის, რომ გქონდეთ სრული უფასო ოპერაციული სისტემა.

მაგალითად, ჩვენ შევიმუშავეთ GNU C ბიბლიოთეკა, რადგან Unix-ის მსგავს სისტემას სჭირდება C ბიბლიოთეკა, BASH იმიტომ, რომ Unix-ის მსგავს სისტემას სჭირდება გარსი და GNU tar იმიტომ, რომ Unix-ის მსგავს სისტემას სჭირდება tar პროგრამა. იგივე ეხება ჩემს პროგრამებს - GNU C შემდგენელი, GNU Emacs, GDB და GNU Make.

ზოგიერთი GNU პროგრამა შეიქმნა იმისათვის, რომ გაუმკლავდეს ჩვენს თავისუფლებას კონკრეტულ საფრთხეებს. ამრიგად, ჩვენ შევიმუშავეთ gzip, რათა შეცვალოს Compress პროგრამა, რომელიც საზოგადოებამ დაიკარგა LZW პატენტების გამო. ჩვენ აღმოვაჩინეთ ადამიანები, რომლებიც ავითარებდნენ LessTif-ს და ახლახან დავიწყეთ GNOME და Harmony, გარკვეული საკუთრების ბიბლიოთეკებით გამოწვეული პრობლემების გადასაჭრელად (იხ. ქვემოთ). ჩვენ ვავითარებთ GNU Privacy Guard-ს, რათა შევცვალოთ პოპულარული არათავისუფალი დაშიფვრის პროგრამული უზრუნველყოფა, რადგან მომხმარებლებს არ უნდა უწევთ არჩევანის გაკეთება კონფიდენციალურობასა და თავისუფლებას შორის.

რასაკვირველია, ამ პროგრამების დამწერი ადამიანები დაინტერესდნენ ნამუშევრით და მრავალი ფუნქცია დაემატა მათ სხვადასხვა ადამიანებმა საკუთარი საჭიროებებისა და ინტერესების გამო. მაგრამ ეს არ არის რატომ არსებობს პროგრამები.

მოულოდნელი მოვლენები

GNU პროექტის დასაწყისში მე წარმოვიდგენდი, რომ ჩვენ განვავითარებდით მთელ GNU სისტემას, შემდეგ კი მთლიანად გამოვაქვეყნებდით მას. ასე არ მოხდა.

ვინაიდან GNU სისტემის თითოეული კომპონენტი დანერგილი იყო Unix სისტემაზე, თითოეულ კომპონენტს შეეძლო ემუშავა Unix სისტემებზე დიდი ხნით ადრე, სანამ სრული GNU სისტემა იარსებებდა. ზოგიერთი პროგრამა პოპულარული გახდა და მომხმარებლებმა დაიწყეს მათი გაფართოება და პორტირება - Unix-ის სხვადასხვა შეუთავსებელ ვერსიებზე და ზოგჯერ სხვა სისტემებზეც.

ამ პროცესმა ეს პროგრამები გაცილებით მძლავრი გახადა და მოიზიდა როგორც სახსრები, ისე კონტრიბუტორები GNU პროექტში. მაგრამ, ალბათ, რამდენიმე წლით გადაიდო მინიმალური სამუშაო სისტემის დასრულება, რადგან GNU დეველოპერებმა დრო დაუთმეს ამ პორტების შენარჩუნებას და არსებულ კომპონენტებს ფუნქციების დამატებას, ვიდრე ერთი დაკარგული კომპონენტის მეორის მიყოლებით დაწერა.

GNU Hurd

1990 წლისთვის GNU სისტემა თითქმის დასრულებული იყო; ერთადერთი მთავარი დაკარგული კომპონენტი იყო ბირთვი. ჩვენ გადავწყვიტეთ ჩვენი ბირთვის დანერგვა, როგორც სერვერის პროცესების კოლექცია, რომელიც მუშაობს Mach-ზე. Mach არის მიკროკერნელი, რომელიც შეიქმნა კარნეგი მელონის უნივერსიტეტში და შემდეგ იუტას უნივერსიტეტში; GNU Hurd არის სერვერების კოლექცია (ანუ GNU-ების ნახირი), რომელიც მუშაობს მახის თავზე და ასრულებს Unix-ის ბირთვის სხვადასხვა დავალებებს. განვითარების დაწყება გადაიდო, რადგან ჩვენ ველოდით Mach-ის გამოშვებას, როგორც თავისუფალი პროგრამული უზრუნველყოფის, როგორც დაპირებული იყო.

ამ დიზაინის არჩევის ერთ-ერთი მიზეზი იყო იმის თავიდან აცილება, რაც, როგორც ჩანს, სამუშაოს ურთულესი ნაწილი იყო: ბირთვის პროგრამის გამართვა წყაროს დონის გამართვის გარეშე. სამუშაოს ეს ნაწილი უკვე შესრულდა, მახში, და ჩვენ ველოდით Hurd სერვერების გამართვას, როგორც მომხმარებლის პროგრამებს, GDB-ით. მაგრამ ამას დიდი დრო დასჭირდა გააკეთე ესშესაძლებელია, და მრავალძაფიანი სერვერები, რომლებიც ერთმანეთს აგზავნიან შეტყობინებებს, ძალიან რთული აღმოჩნდა გამართვა. ჰერდის მტკიცე მუშაობა მრავალი წლის განმავლობაში გაგრძელდა.

ალიქს

GNU ბირთვს თავდაპირველად არ უნდა ერქვა Hurd. მისი ორიგინალური სახელი იყო ალიქსი - იმ ქალის სახელი, რომელიც იმ დროს ჩემი საყვარელი იყო. მან, Unix სისტემის ადმინისტრატორმა, მიუთითა, თუ როგორ შეეფერება მისი სახელი Unix სისტემის ვერსიების საერთო დასახელების ნიმუშს; ხუმრობით მან მეგობრებს უთხრა: „ვიღაცამ ჩემი სახელი უნდა დაასახელოს“. არაფერი მითქვამს, მაგრამ გადავწყვიტე მისი გაოცება ბირთვით, სახელად ალიქსით.

ასე არ დარჩენილა. მაიკლ (ამჟამად თომას) ბუშნელმა, ბირთვის მთავარმა დეველოპერმა, ამჯობინა სახელი Hurd და ხელახლა განსაზღვრა Alix, რათა მიემართა ბირთვის გარკვეულ ნაწილს - ნაწილს, რომელიც აკავებს სისტემის ზარებს და ამუშავებს მათ შეტყობინებების გაგზავნით Hurd სერვერებზე.

მოგვიანებით მე და ალიქსი დავშორდით და მან სახელი შეიცვალა; დამოუკიდებლად, Hurd-ის დიზაინი შეიცვალა ისე, რომ C ბიბლიოთეკა აგზავნიდა შეტყობინებებს პირდაპირ სერვერებზე და ამან გაქრა Alix კომპონენტი დიზაინიდან.

მაგრამ სანამ ეს მოხდებოდა, მისმა მეგობარმა ჰერდის საწყის კოდში წააწყდა სახელი ალიქსი და ახსენა იგი. ასე რომ, მას ჰქონდა შანსი ეპოვა მისი სახელობის ბირთვი.

Linux და GNU/Linux

GNU Hurd არ არის შესაფერისი საწარმოო გამოყენებისთვის და ჩვენ არ ვიცით ოდესმე იქნება თუ არა. შესაძლებლობებზე დაფუძნებულ დიზაინს აქვს პრობლემები, რომლებიც უშუალოდ დიზაინის მოქნილობის შედეგია და არ არის ნათელი, არსებობს თუ არა გადაწყვეტილებები.

საბედნიეროდ, სხვა ბირთვი ხელმისაწვდომია. 1991 წელს ლინუს ტორვალდსმა შექმნა Unix-თან თავსებადი ბირთვი და უწოდა მას Linux. ის თავდაპირველად საკუთრებაში იყო, მაგრამ 1992 წელს მან ის უფასო პროგრამული უზრუნველყოფა გახადა; ლინუქსის გაერთიანებამ არცთუ სრულყოფილ GNU სისტემასთან გამოიწვია სრული უფასო ოპერაციული სისტემა. (რა თქმა უნდა, მათი გაერთიანება თავისთავად მნიშვნელოვანი სამუშაო იყო.) Linux-ის წყალობით ჩვენ შეგვიძლია რეალურად გავუშვათ GNU სისტემის ვერსია დღეს.

გამოწვევები ჩვენს მომავალში

ჩვენ გვაქვს ჩვენი დადასტურებული უნარი განვავითაროთ უფასო პროგრამული უზრუნველყოფის ფართო სპექტრი. ეს არ ნიშნავს, რომ ჩვენ უძლეველი და შეუჩერებელი ვართ. რამდენიმე გამოწვევა თავისუფალი პროგრამული უზრუნველყოფის მომავალს გაურკვეველს ხდის; მათთან შეხვედრა მოითხოვს მტკიცე ძალისხმევას და გამძლეობას, რომელიც ზოგჯერ წლების განმავლობაში გრძელდება. საჭირო იქნება ისეთი მონდომება, რომელსაც ადამიანები ავლენენ, როცა აფასებენ თავიანთ თავისუფლებას და არავის მისცემენ მის წართმევას.

შემდეგი ოთხი ნაწილი განიხილავს ამ გამოწვევებს.

საიდუმლო აპარატურა

ტექნიკის მწარმოებლები სულ უფრო ხშირად ინახავენ ტექნიკის სპეციფიკაციებს საიდუმლოდ. ეს ართულებს უფასო დრაივერების დაწერას, რათა Linux-მა და XFree86-მა შეძლონ ახალი აპარატურის მხარდაჭერა. ჩვენ დღეს გვაქვს სრული უფასო სისტემები, მაგრამ ხვალ არ გვექნება, თუ ხვალინდელი კომპიუტერების მხარდაჭერა არ შეგვიძლია.

ამ პრობლემის გადასაჭრელად ორი გზა არსებობს. პროგრამისტებს შეუძლიათ გააკეთონ საპირისპირო ინჟინერია, რათა გაერკვნენ, თუ როგორ დაუჭირონ მხარი აპარატურას. დანარჩენს შეუძლია აირჩიოს აპარატურა, რომელსაც აქვს უფასო პროგრამული უზრუნველყოფა; რაც უფრო გაიზრდება ჩვენი რიცხვი, სპეციფიკაციების საიდუმლოება გახდება თვითდამამარცხებელი პოლიტიკა.

საპირისპირო ინჟინერია დიდი სამუშაოა; გვეყოლება თუ არა პროგრამისტები, რომლებსაც აქვთ საკმარისი გადაწყვეტილება ამის გასაკეთებლად? დიახ, თუ ჩვენ შეგვექმნა ძლიერი განცდა, რომ თავისუფალი პროგრამული უზრუნველყოფა პრინციპული საკითხია და არათავისუფალი დრაივერები აუტანელია. და დახარჯავს თუ არა ჩვენგანის დიდი ნაწილი დამატებით ფულს, ან თუნდაც ცოტა დამატებით დროს, რათა გამოვიყენოთ უფასო დრაივერები? დიახ, თუ თავისუფლების მტკიცე გადაწყვეტილება ფართოდაა გავრცელებული.

(2008 შენიშვნა: ეს საკითხი ვრცელდება BIOS-ზეც. არის უფასო BIOS, LibreBoot (coreboot-ის დისტრიბუცია); პრობლემა არის აპარატების სპეციფიკაციების მიღება, რათა LibreBoot-მა შეძლოს მათი მხარდაჭერა არათავისუფალი "blobs"-ის გარეშე).

არათავისუფალი ბიბლიოთეკები

არათავისუფალი ბიბლიოთეკა, რომელიც მუშაობს თავისუფალ ოპერაციულ სისტემებზე, მოქმედებს როგორც ხაფანგი თავისუფალი პროგრამული უზრუნველყოფის შემქმნელებისთვის. ბიბლიოთეკის "მიმზიდველი ფუნქციები სატყუარაა; თუ ბიბლიოთეკას იყენებთ, ხაფანგში მოხვდებით, რადგან თქვენი პროგრამა არ შეიძლება იყოს უფასო ოპერაციული სისტემის ნაწილი. (მკაცრად რომ ვთქვათ, ჩვენ შეგვიძლია ჩავრთოთ თქვენი პროგრამა, მაგრამ ის მოიგებს" გაშვებაბიბლიოთეკა აკლია.) კიდევ უფრო უარესი, თუ პროგრამა, რომელიც იყენებს საკუთრების ბიბლიოთეკას, პოპულარული გახდება, მას შეუძლია ხაფანგში ჩააგდოს სხვა უეჭველი პროგრამისტები.

ამ პრობლემის პირველი შემთხვევა იყო Motif ინსტრუმენტარიუმი, ჯერ კიდევ 80-იან წლებში. მიუხედავად იმისა, რომ ჯერ არ არსებობდა უფასო ოპერაციული სისტემები, ცხადი იყო, რა პრობლემას შეუქმნიდა მათ მოტივი მოგვიანებით. GNU Project-მა უპასუხა ორი გზით: ცალკეული უფასო პროგრამული უზრუნველყოფის პროექტების თხოვნით, მხარი დაუჭირონ უფასო X Toolkit ვიჯეტებს, ასევე Motif-ს, და სთხოვა ვინმეს დაეწერა Motif-ის უფასო ჩანაცვლება. სამუშაოს მრავალი წელი დასჭირდა; LessTif, რომელიც შეიქმნა Hungry Programmers-ის მიერ, საკმარისად ძლიერი გახდა Motif აპლიკაციების უმეტესობის მხარდასაჭერად მხოლოდ 1997 წელს.

1996-დან 1998 წლამდე სხვა არათავისუფალი GUI ინსტრუმენტარიუმის ბიბლიოთეკა, სახელწოდებით Qt, გამოიყენებოდა უფასო პროგრამული უზრუნველყოფის მნიშვნელოვან კოლექციაში, დესკტოპის KDE-ში.

უფასო GNU/Linux სისტემებმა ვერ გამოიყენეს KDE, რადგან ჩვენ ვერ ვიყენებდით ბიბლიოთეკას. თუმცა, GNU/Linux სისტემების ზოგიერთმა კომერციულმა დისტრიბუტორმა, რომლებიც არ იყვნენ მკაცრი თავისუფალ პროგრამულ უზრუნველყოფასთან დაკავშირებით, დაამატეს KDE თავიანთ სისტემებში - აწარმოეს სისტემა მეტი შესაძლებლობებით, მაგრამ ნაკლები თავისუფლებით. KDE ჯგუფი აქტიურად უბიძგებდა უფრო მეტ პროგრამისტს გამოიყენონ Qt და მილიონობით ახალი „Linux მომხმარებელი“ არასოდეს ყოფილა გამოვლენილი იმ აზრზე, რომ ამაში პრობლემა არსებობდა. სიტუაცია მძიმე ჩანდა.

უფასო პროგრამული უზრუნველყოფის საზოგადოებამ უპასუხა პრობლემას ორი გზით: GNOME და Harmony.

GNOME, GNU Network Object Model Environment, არის GNU-ს დესკტოპის პროექტი. დაწყებული 1997 წელს მიგელ დე იკაზას მიერ და განვითარებული Red Hat Software-ის მხარდაჭერით, GNOME მიზნად ისახავს უზრუნველყოს მსგავსი დესკტოპის საშუალებები, მაგრამ ექსკლუზიურად უფასო პროგრამული უზრუნველყოფის გამოყენებით. მას აქვს ტექნიკური ასევე უპირატესობები, როგორიცაა სხვადასხვა ენების მხარდაჭერა და არა მხოლოდ C++.

Harmony არის თავსებადი ჩანაცვლების ბიბლიოთეკა, რომელიც შექმნილია იმისათვის, რომ შესაძლებელი გახდეს KDE პროგრამული უზრუნველყოფის გაშვება Qt-ის გამოყენების გარეშე.

1998 წლის ნოემბერში, Qt-ის დეველოპერებმა გამოაცხადეს ლიცენზიის ცვლილება, რომლის განხორციელებისას Qt უნდა გახდეს თავისუფალი პროგრამული უზრუნველყოფა. დარწმუნების საშუალება არ არსებობს, მაგრამ მე ვფიქრობ, რომ ეს ნაწილობრივ განპირობებული იყო საზოგადოების მტკიცე პასუხით იმ პრობლემაზე, რომელიც Qt-მ წამოაყენა, როდესაც ის არათავისუფალი იყო. (ახალი ლიცენზია მოუხერხებელი და არათანაბარია, ამიტომ სასურველია თავიდან ავიცილოთ გამოყენება რტ.)

როგორ ვუპასუხოთ შემდეგ მაცდურ არათავისუფალ ბიბლიოთეკას? გაიგებს თუ არა მთელი საზოგადოება ხაფანგში დარჩენის აუცილებლობას? ან ბევრი ჩვენგანი დათმობს თავისუფლებას მოხერხებულობისთვის და წარმოქმნის დიდ პრობლემას? ჩვენი მომავალი დამოკიდებულია ჩვენს ფილოსოფიაზე.

პროგრამული პატენტები

ყველაზე უარესი საფრთხე, რომელსაც ჩვენ ვაწყდებით, მოდის პროგრამული უზრუნველყოფის პატენტებიდან, რამაც შეიძლება ალგორითმები და ფუნქციები შეზღუდოს თავისუფალ პროგრამულ უზრუნველყოფას ოცი წლის განმავლობაში. LZW შეკუმშვის ალგორითმის პატენტებზე განაცხადი 1983 წელს შევიდა და ჩვენ ჯერ კიდევ არ შეგვიძლია გამოვუშვათ უფასო პროგრამული უზრუნველყოფა სათანადო შეკუმშული GIF-ების წარმოებისთვის. 1998 წელს, უფასო პროგრამა MP3 შეკუმშული აუდიოს წარმოებისთვის ამოიღეს დისტრიბუციიდან პატენტის საჩივრის საფრთხის ქვეშ.

პატენტებთან გამკლავების გზები არსებობს: ჩვენ შეგვიძლია მოვძებნოთ მტკიცებულება, რომ პატენტი არასწორია და შეგვიძლია მოვძებნოთ სამუშაოს შესრულების ალტერნატიული გზები. მაგრამ თითოეული ეს მეთოდი მუშაობს მხოლოდ ხანდახან; როდესაც ორივე ვერ მოხერხდება, პატენტი შეიძლება აიძულოს ყველა თავისუფალ პროგრამულ უზრუნველყოფას არ ჰქონდეს გარკვეული ფუნქცია, რომელიც მომხმარებლებს სურთ. დიდი ხნის ლოდინის შემდეგ პატენტებს ვადა ეწურება (MP3 პატენტს ვადა სავარაუდოდ 2018 წლისთვის ამოეწურება), მაგრამ მანამდე რას ვიზამთ?

ისინი, ვინც აფასებენ თავისუფალ პროგრამულ უზრუნველყოფას თავისუფლებისთვის, მაინც დარჩება თავისუფალ პროგრამულ უზრუნველყოფასთან. ჩვენ მოვახერხებთ სამუშაოს შესრულებას დაპატენტებული ფუნქციების გარეშე. მაგრამ ისინი, ვინც აფასებენ თავისუფალ პროგრამულ უზრუნველყოფას, რადგან მოელიან, რომ ის ტექნიკურად აღმატებულია, სავარაუდოდ მას უწოდებს. წარუმატებლობა, როდესაც პატენტი აფერხებს მას, ამიტომ, სანამ სასარგებლოა ვისაუბროთ განვითარების „ბაზარის“ მოდელის პრაქტიკულ ეფექტურობაზე და ზოგიერთი თავისუფალი პროგრამული უზრუნველყოფის საიმედოობასა და ძალაზე, ჩვენ არ უნდა შევჩერდეთ აქ: თავისუფლება და პრინციპები.

უფასო დოკუმენტაცია

ჩვენს უფასო ოპერაციულ სისტემებში ყველაზე დიდი ნაკლოვანება არ არის პროგრამულ უზრუნველყოფაში - ეს არის კარგი უფასო სახელმძღვანელოების ნაკლებობა, რომელიც შეგვიძლია შევიტანოთ ჩვენს სისტემებში. დოკუმენტაცია ნებისმიერი პროგრამული პაკეტის განუყოფელი ნაწილია; როდესაც მნიშვნელოვან უფასო პროგრამულ პაკეტს არ მოჰყვება კარგი უფასო სახელმძღვანელო, ეს არის მთავარი ხარვეზი. ასეთი ხარვეზები დღეს ბევრი გვაქვს.

უფასო დოკუმენტაცია, ისევე როგორც უფასო პროგრამული უზრუნველყოფა, არის თავისუფლების საკითხი და არა ფასი. უფასო სახელმძღვანელოს კრიტერიუმი თითქმის იგივეა, რაც უფასო პროგრამული უზრუნველყოფის: ეს არის ყველა მომხმარებლის მინიჭება გარკვეული თავისუფლება. ხელახალი განაწილება (კომერციული გაყიდვის ჩათვლით) უნდა იყოს დაშვებული ონლაინ და ქაღალდზე, რათა სახელმძღვანელოს თან ახლდეს პროგრამის ყველა ეგზემპლარი.

მოდიფიკაციის ნებართვა ასევე გადამწყვეტია. როგორც წესი, მე არ მჯერა, რომ აუცილებელია ადამიანებს ჰქონდეთ ნებართვა შეცვალონ ყველა სახის სტატია და წიგნები. მაგალითად, მე არ ვფიქრობ, რომ თქვენ და მე არ უნდა მოგცეთ ნებართვა, შევცვალოთ მსგავსი სტატიები, რომლებიც აღწერს ჩვენს ქმედებებსა და შეხედულებებს.

მაგრამ არსებობს კონკრეტული მიზეზი, რის გამოც ცვლილებების თავისუფლება გადამწყვეტია თავისუფალი პროგრამული უზრუნველყოფის დოკუმენტაციისთვის. როდესაც ადამიანები სარგებლობენ პროგრამული უზრუნველყოფის შესაცვლელად და მისი ფუნქციების დამატების ან შესაცვლელად, თუ ისინი კეთილსინდისიერნი არიან, ისინი შეცვლიან სახელმძღვანელოსაც, რათა უზრუნველყონ ზუსტი და გამოსაყენებელი დოკუმენტაცია შეცვლილი პროგრამით. არათავისუფალი სახელმძღვანელო, რომელიც არ აძლევს პროგრამისტებს უფლებას, იყვნენ კეთილსინდისიერი და დაასრულონ სამუშაო, არ აკმაყოფილებენ ჩვენი საზოგადოების საჭიროებებს.

ზოგიერთი სახის შეზღუდვა, თუ როგორ ხდება ცვლილებები, არ წარმოადგენს პრობლემას. მაგალითად, მოთხოვნები ორიგინალური ავტორის საავტორო უფლებების შესახებ შეტყობინების, გავრცელების პირობების ან ავტორების სიის შესანარჩუნებლად წესრიგშია. ასევე არ არის პრობლემა, რომ მოითხოვოთ შეცვლილი ვერსიების შენიშვნა, რომ ისინი შეცვლილია, თუნდაც მთელი სექციები, რომლებიც შეიძლება არ იყოს წაიშლება ან შეიცვლება, თუ ეს სექციები ეხება არატექნიკურ თემებს. სხვა სიტყვებით რომ ვთქვათ, ისინი არ ბლოკავენ უფასო პროგრამული უზრუნველყოფის საზოგადოებას სახელმძღვანელოს სრულად გამოყენებისგან.

თუმცა, შესაძლებელი უნდა იყოს ყველაფრის შეცვლა ტექნიკურისახელმძღვანელოს შინაარსი და შემდეგ გაავრცელეთ შედეგი ყველა ჩვეულებრივ მედიაში, ყველა ჩვეულებრივი არხით; წინააღმდეგ შემთხვევაში, შეზღუდვები ხელს უშლის საზოგადოებას, სახელმძღვანელო არ არის უფასო და ჩვენ გვჭირდება სხვა სახელმძღვანელო.

ექნებათ თუ არა თავისუფალი პროგრამული უზრუნველყოფის შემქმნელებს ინფორმირებულობა და განსაზღვრა, რომ შექმნან უფასო სახელმძღვანელოების სრული სპექტრი? კიდევ ერთხელ, ჩვენი მომავალი დამოკიდებულია ფილოსოფიაზე.

ჩვენ უნდა ვისაუბროთ თავისუფლებაზე

დღეს არსებული შეფასებით არის GNU/Linux სისტემების ათი მილიონი მომხმარებელი, როგორიცაა Debian GNU/Linux და Red Hat “Linux”. თავისუფალმა პროგრამულმა პროგრამამ ისეთი პრაქტიკული უპირატესობები შეიმუშავა, რომ მომხმარებლები მას წმინდად პრაქტიკული მიზეზების გამო იყრიან.

ამის კარგი შედეგები აშკარაა: მეტი ინტერესი თავისუფალი პროგრამული უზრუნველყოფის შემუშავებისადმი, მეტი კლიენტი თავისუფალი პროგრამული უზრუნველყოფის ბიზნესისთვის და მეტი უნარი წაახალისოს კომპანიები, განავითარონ კომერციული თავისუფალი პროგრამული უზრუნველყოფა, საკუთრების პროგრამული პროდუქტების ნაცვლად.

მაგრამ პროგრამული უზრუნველყოფისადმი ინტერესი უფრო სწრაფად იზრდება, ვიდრე მისი ფილოსოფიის ცნობიერება და ეს იწვევს პრობლემებს. ზემოაღნიშნული გამოწვევებისა და საფრთხეების დაძლევის ჩვენი უნარი დამოკიდებულია თავისუფლებაზე მტკიცედ დგომის ნებაზე. იმისათვის, რომ დავრწმუნდეთ, რომ ჩვენს საზოგადოებას აქვს ეს ნება, ჩვენ უნდა გავავრცელოთ იდეა ახალ მომხმარებლებზე, როდესაც ისინი შედიან საზოგადოებაში.

მაგრამ ჩვენ ამას ვერ ვაკეთებთ: ჩვენს საზოგადოებაში ახალი მომხმარებლების მოზიდვის მცდელობები ბევრად აღემატება მცდელობებს, რომ მათ ვასწავლოთ ჩვენი საზოგადოების სამოქალაქო განათლება. ჩვენ ორივე უნდა გავაკეთოთ და ორივე ძალისხმევა უნდა შევინარჩუნოთ წონასწორობაში.

"საჯარო წყარო"

ახალი მომხმარებლების თავისუფლების სწავლება გართულდა 1998 წელს, როდესაც საზოგადოების ნაწილმა გადაწყვიტა შეეწყვიტა ტერმინი „თავისუფალი პროგრამული უზრუნველყოფის“ გამოყენება და ამის ნაცვლად ეთქვა „ღია პროგრამული უზრუნველყოფა“.

ზოგიერთი, ვინც ამ ტერმინს ემხრობოდა, მიზნად ისახავდა აირიდოს „უფასო“ და „უფასო“ - სწორი მიზანი. თუმცა, სხვები მიზნად ისახავდნენ გვერდიდან დაეტოვებინათ პრინციპის სულისკვეთება, რომელიც მოტივირებული იყო თავისუფალი პროგრამული უზრუნველყოფის მოძრაობასა და GNU პროექტზე, და ამის ნაცვლად მიმართონ აღმასრულებლებსა და ბიზნეს მომხმარებლებს, რომელთაგან ბევრი ფლობს იდეოლოგიას, რომელიც მოგებას აყენებს თავისუფლებაზე მაღლა, საზოგადოებაზე მაღლა. პრინციპები. ამრიგად, „ღია წყაროს“ რიტორიკა ფოკუსირებულია მაღალი ხარისხის, ძლიერი პროგრამული უზრუნველყოფის შექმნის პოტენციალზე, მაგრამ ერიდება თავისუფლების, საზოგადოებისა და პრინციპების იდეებს.

ამის ნათელი მაგალითია ჟურნალები "Linux" - ისინი სავსეა საკუთრების პროგრამული უზრუნველყოფის რეკლამებით, რომელიც მუშაობს GNU/Linux-თან. როდესაც გამოჩნდება შემდეგი მოტივი ან Qt, გააფრთხილებენ თუ არა ეს ჟურნალები პროგრამისტებს, რომ თავი შეიკავონ მისგან, თუ ისინი აწარმოებენ რეკლამას?

ბიზნესის მხარდაჭერას შეუძლია მრავალი თვალსაზრისით წვლილი შეიტანოს საზოგადოებაში; ყველა სხვა თანაბარი იყოს, სასარგებლოა. მაგრამ მათი მხარდაჭერის მოპოვება თავისუფლებისა და პრინციპების შესახებ კიდევ უფრო ნაკლებ ლაპარაკით შეიძლება დამღუპველი იყოს; ეს კიდევ უფრო ამძიმებს წინარე დისბალანსს აუთრიჩსა და სამოქალაქო განათლებას შორის.

„თავისუფალი პროგრამული უზრუნველყოფა“ და „ღია წყარო“ აღწერს პროგრამული უზრუნველყოფის ერთსა და იმავე კატეგორიას, მეტ-ნაკლებად, მაგრამ განსხვავებულს ამბობენ პროგრამულ უზრუნველყოფასა და ღირებულებებზე. GNU Project აგრძელებს ტერმინის „თავისუფალი პროგრამული უზრუნველყოფის“ გამოყენებას, რათა გამოხატოს აზრი, რომ თავისუფლება მნიშვნელოვანია და არა მხოლოდ ტექნოლოგია.

სცადე!

იოდას აფორიზმი ("არ არსებობს "ცდა") ლამაზად ჟღერს, მაგრამ ეს არ გამომდის. ჩემი სამუშაოს უმეტესი ნაწილი გავაკეთე იმ დროს, როცა ვნერვიულობდი, შემეძლო თუ არა საქმის გაკეთება და არ ვარ დარწმუნებული, რომ საკმარისი იქნებოდა მიზნის მისაღწევად, თუ ამას გავაკეთებდი. მაგრამ მაინც ვცდილობდი, რადგან ჩემს გარდა მტერსა და ჩემს ქალაქს შორის არავინ იყო. მიკვირს, რომ ხანდახან მივაღწიე წარმატებას.

ხანდახან ჩავვარდი; ჩემი ზოგიერთი ქალაქი დაეცა. მერე სხვა ქალაქი დამხვდა საფრთხის ქვეშ და მოვემზადე სხვა ბრძოლისთვის. დროთა განმავლობაში მე ვისწავლე საფრთხის ძებნა და თავს მათსა და ჩემს ქალაქს შორის მოვთავსდი, მოვუწოდე სხვა ჰაკერებს, მოვიდნენ და შემომიერთდნენ.

დღესდღეობით, ხშირად მე არ ვარ ერთადერთი. შვება და სიხარულია, როცა ვხედავ ჰაკერების პოლკს, რომელიც იჭრება ხაზის შესანარჩუნებლად და ვხვდები, რომ ეს ქალაქი შეიძლება გადარჩეს - ჯერჯერობით. მაგრამ საფრთხეები ყოველი მათგანი უფრო დიდია. წელს, და ახლა მაიკროსოფტი აშკარად მიზნად ისახავს ჩვენს საზოგადოებას. ჩვენ არ შეგვიძლია თავისუფლების მომავალი თავისთავად მივიღოთ. ნუ მიიღებთ ამას თავისთავად! თუ გსურთ შეინარჩუნოთ თქვენი თავისუფლება, მზად უნდა იყოთ მისი დასაცავად.

TH.arial ( font-family: Arial, Serif;) P.topic ( font-family: sans-serif;) A.plain (ტექსტი-დეკორაცია: არცერთი;) A.topic01 (ფერი: #006890; font-family: sans-serif; text-decoration: none;) A.topic02 ( ფერი: #099771; font-family: sans-serif; text-decoration: none;) serif; text-decoration: none;) A.topic04 (ფერი: #98650A; font-family: sans-serif; text-decoration: none;) text-decoration: none;) A.topic06 (ფერი: #099607; font-family: sans-serif; text-decoration: none;) A .topic07 ( ფერი: #9E1215; შრიფტი-ოჯახი: sans-serif; გაფორმება: არცერთი;) A.topic08 ( ფერი: #970941; შრიფტი-ოჯახი: sans-serif; ტექსტი-გაფორმება: არანაირი;) A.topic09 (ფერი : #950995; font-family: sans-serif; text-decoration: none;) A.topic010 (ფერი: #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 ვ;) H5 (შრიფტი-ოჯახი: sans-serif;) H6 (შრიფტი-ოჯახი: sans-serif;)

თავისუფალი პროგრამული უზრუნველყოფის იდეოლოგია და GNU პროექტი: ამჟამინდელი მდგომარეობა და დაუყოვნებელი გამოწვევები

S.D. კუზნეცოვი

თავისუფალი პროგრამული უზრუნველყოფის ფონდი (FSF) არის ძალიან საინტერესო და მრავალი თვალსაზრისით განსაკუთრებული ფენომენი დღევანდელ პროგრამირების სამყაროში. ბევრ ადგილობრივ პროგრამისტს უწევდა საქმე FSF-ის პროგრამებთან (განსაკუთრებით ცნობილია GCC პროგრამირების სისტემა), მაგრამ რუსულ ენაზე პუბლიკაციების ნაკლებობა ართულებს FSF-ის იდეოლოგიისა და მიზნების გაგებას და ასევე შეუძლებელს ხდის არსებულის შეფასებას. ჩამორჩენილი. ამ მოკლე სტატიის მიზანია ნაწილობრივ მაინც შეავსოს ეს ხარვეზი. სტატია მთლიანად ეფუძნება FSF-ის მასალებს და, შესაბამისად, ამ ორგანიზაციის ზოგადი პრინციპების შესაბამისად, შეიძლება თავისუფლად დაიბეჭდოს, გადაიწეროს ან გავრცელდეს ნებისმიერი სხვა გზით (ამ შენიშვნის დაცვით).

1. FSF იდეოლოგია და GNU პროექტის ზოგადი მიზნები

FSF არის პროგრამირების ორგანიზაცია, რომელიც დააარსა და ხელმძღვანელობს რიჩარდ სტალმანის მიერ. ყველაზე ზოგად გარემოში, FSF-ის ამოცანაა აღმოფხვრას შეზღუდვები კომპიუტერული პროგრამების კოპირებაზე, გავრცელებაზე, შესწავლასა და შეცვლაზე. ამ საერთო მიზნის მისაღწევად, FSF წაახალისებს უფასო პროგრამული უზრუნველყოფის შემუშავებას და გამოყენებას, რომელიც მიმართულია აპლიკაციების ფართო სპექტრზე.

თავის "GNU Manifesto"-ში, რომელიც ჯერ კიდევ 1985 წელს დაიწერა, რ. სტალმანი, როგორც მთავარი იდეა, რომელმაც განაპირობა FSF-ის და GNU პროექტის გაჩენა, აყენებს თავის უარყოფას პროგრამული უზრუნველყოფის მფლობელობაზე. პროგრამირების საზოგადოებაში ურთიერთობების თავისებურებები ხშირად აიძულებს ადამიანებს აირჩიონ მეგობრობისა და ურთიერთდახმარების ბუნებრივ გრძნობას, ან დამორჩილებას, რომელიც ერევა ამ საკუთრების კანონში. უფასო პროგრამული უზრუნველყოფის პირობებში, ეს რთული არჩევანი აღარ არის საჭირო.

ინტეგრირებული უფასო პროგრამული სისტემის შექმნა თავიდან აიცილებს პროგრამისტების მიერ სამუშაოს დუბლირებას (რაც ხშირად საჭიროა მხოლოდ პროგრამული უზრუნველყოფის მფლობელის გამო). პროგრამების საწყისი კოდების უფასო გავრცელება ხელს უწყობს მათ შენარჩუნებას და ადაპტირებას კონკრეტული მომხმარებლის საჭიროებებთან (არ არის საჭირო მხოლოდ იმ კომპანიების სერვისების მიმართვა, რომლებიც ფლობენ წყაროს კოდების ლიცენზიებს). არსებობს დამატებითი და ძალიან მნიშვნელოვანი შესაძლებლობა, გამოიყენოთ კარგი პროგრამული უზრუნველყოფა საგანმანათლებლო მიზნებისთვის.

რ. სტალმანის თქმით, თავისუფალ პროგრამულ უზრუნველყოფაზე გადასვლისას პროგრამისტები შიმშილით არ მოკვდებიან (თუმცა, როგორც ჩანს, გარკვეულწილად ნაკლებს გამოიმუშავებენ). პროგრამული უზრუნველყოფის კოპირებაზე შეზღუდვა არ არის ფულის გამომუშავების ერთადერთი გზა. სტალმანის მთავარი იდეა არის ის, რომ თქვენ არ უნდა გაყიდოთ პროგრამები, არამედ პროგრამისტის ნამუშევარი. კერძოდ, შემოსავლის წყარო შეიძლება იყოს პროგრამული სისტემების შენარჩუნება ან მათი კონფიგურაცია ახალ კომპიუტერებზე გამოსაყენებლად ან/და ახალ პირობებში, სწავლება და ა.შ.

სტალმანის „მანიფესტი“ ძალიან ემოციურად არის დაწერილი და ზოგან ზედმეტად უტოპიურია. მიუხედავად ამისა, როგორც ჩანს, თავისუფალი პროგრამული უზრუნველყოფის იდეები ისტორიულად ახლოსაა საბჭოთა პროგრამისტების ტრადიციულ (უკანასკნელი წლების გარდა) დამოკიდებულებასთან. შესაძლოა, ეს არის FSF ხაზი, რომელიც არის პროგრამისტების შიდა და მსოფლიო თემების ღრმა ინტეგრაციის ყველაზე ბუნებრივი გზა.

უფრო კონკრეტულად, FSF ავითარებს პროგრამებს GNU პროექტის ფარგლებში (აბრევიატურა GNU გაფართოებულია რეკურსიულად - GNU "s Not Unix). GNU პროექტის მიზანია შექმნას სრული ინტეგრირებული პროგრამული სისტემა, რომელიც თავსებადია Unix OS გარემო (როგორც წესი, GNU პროგრამების შესაძლებლობები არის Unix გარემოს ანალოგების უფრო ფართო შესაძლებლობები).

FSF პროგრამული უზრუნველყოფა არის "უფასო" ორი გაგებით. პირველ რიგში, ნებისმიერი პროგრამის თავისუფლად კოპირება და გადაცემა ნებისმიერს შეუძლია. მეორეც, პროგრამების წყაროს კოდების ხელმისაწვდომობა იძლევა პროგრამების უფასო შესწავლის, მათი გაუმჯობესებისა და შეცვლილი ვერსიების გავრცელების შესაძლებლობას.

ისევე, როგორც ჩვეულებრივი პროგრამული კომპანიების უფლებები დაცულია მათი საავტორო ნიშნით (საავტორო უფლებები), FSF პროგრამული სისტემების „თავისუფლებას“ იცავს „copyleft“ - საავტორო უფლებების კომბინაცია და დოკუმენტი სახელწოდებით „GNU General Public License“ წარმოდგენილი. FSF-ის ყველა ტექსტში. ამ დოკუმენტში მითითებულია უფლებები, რაც ამ ტექსტის ნებისმიერ ამჟამინდელ მფლობელს აქვს და ამ უფლებების სხვა სუბიექტისთვის ჩამორთმევის შეუძლებლობა.

FSF-ის ძირითადი საქმიანობაა GNU პროექტის ფარგლებში ახალი თავისუფალი პროგრამული კომპონენტების შემუშავება. უმეტესწილად, GNU პროექტი გეგმიურად ვითარდება (იხილეთ, კერძოდ, ამ სტატიის მე-3 ნაწილი), მაგრამ FSF ასევე იღებს უფასო სადისტრიბუციო პროგრამებს, რომლებიც შემუშავებულია ფირმებისა და კერძო პირების მიერ საკუთარი ინიციატივით. გარდა ამისა, FSF აწარმოებს და ყიდის უფასო პროგრამული უზრუნველყოფის ფირებს, ამზადებს, აქვეყნებს და ავრცელებს სახელმძღვანელოებს GNU პროგრამული უზრუნველყოფის სხვადასხვა კომპონენტებისთვის, ასევე ინახავს და ავრცელებს სერვისის დირექტორიას, ფირმებისა და პირების სიას, რომლებიც აწვდიან ფასიან მომსახურებას GNU პროგრამების მომხმარებლებს და სისტემები..

FSF-ის ფინანსურ საფუძველს წარმოადგენს ფირისა და დოკუმენტაციის გაყიდვა, ასევე კომერციული ფირმებისა და კერძო პირების სპონსორობა.

2. ხელმისაწვდომი GNU პროგრამული უზრუნველყოფა

ამჟამად GNU Project პროგრამული უზრუნველყოფის ყველა კომპონენტი მზად არ არის. თუმცა, FSF ავრცელებს ბევრ პროგრამას, რომელთაგან ზოგიერთი დაწერილია უშუალოდ FSF პროგრამისტების მიერ და ზოგიერთი მათგანი გადაეცემა FSF-ს სხვა ორგანიზაციებისა და კერძო პირების მიერ უფასოდ გავრცელებისთვის. ახლა მოკლედ ჩამოვთვალოთ FSF-ის მიერ გავრცელებული პროგრამული პროდუქტები.

Emacs არის გაფართოებადი, კონფიგურირებადი რედაქტორი სხვადასხვა ტიპის ტერმინალებისა და მომხმარებლის საჭიროებებისთვის. რედაქტორის გაფართოება ეფუძნება რედაქტორში ჩაშენებული Lisp ენის თარჯიმნის გამოყენებას (Common Lisp-ის დიალექტი). რედაქტორის წყაროს ტექსტებთან პარალელურად ვრცელდება Emacs-ის გამოყენების სახელმძღვანელო და Lisp-ში პროგრამირების საცნობარო სახელმძღვანელო Emacs-ის გარემოში.

Bison არის სტანდარტული Yacc პარსერის გენერატორის ჩანაცვლება რამდენიმე გაფართოებით. ასევე მიმდინარეობს სახელმძღვანელოს გავრცელება.

Lisp ენის გამარტივებული დიალექტის ორი განხორციელება - სქემა: ერთი MIT-დან (დაწერილი C-ზე), მეორე იელის უნივერსიტეტიდან (დაწერილი Scheme-ში).

texi2roff უტილიტა შექმნილია ტექსტური ფაილების TeX ფორმატში გადასაყვანად Unix OS-ისთვის roff სტანდარტული ფორმატის ტექსტურ ფაილებად (დოკუმენტაცია, რომელიც ავრცელებს FSF-ს აპარატურ მედიაზე დაფორმატებულია TeX ფორმატში).

კომუნალური პროგრამები ტექსტური ფაილების შეფუთვა/გახსნისთვის.

GNU ჭადრაკის პროგრამა.

GNU CC არის პორტატული C ოპტიმიზაციის შემდგენელი. სრულად უჭერს მხარს ANSI C სტანდარტს. შეიცავს ინსტრუმენტებს ახალი კომპიუტერებისთვის კოდის გენერატორების ნახევრად ავტომატურად შესაქმნელად. განაწილებულია სახელმძღვანელოსთან ერთად.

ერთჯერადი პორტატული გაზის ასამბლეერი, რომელიც თითქმის ორჯერ უფრო სწრაფია ვიდრე სტანდარტული Unix ასამბლერი.

უფასო კომუნალური პარამეტრები ობიექტის ფაილებთან მუშაობისთვის: ar, ld, nm, ზომა, gprof, strip და ranlib. ასევე ვრცელდება ახალი დინამიური ჩატვირთვის პროგრამა, dld.

GNU make მოიცავს BSD, System V და POSIX მწარმოებლების თითქმის ყველა უტილიტას, ასევე უამრავ გაფართოებას. განაწილებულია სახელმძღვანელოსთან ერთად.

GDB debugger შეიძლება გამოყენებულ იქნას C, C++ და Fortran-ში დაწერილი პროგრამების გამართვისთვის. განაწილებულია სახელმძღვანელოსთან ერთად.

BASH (Bourne Again SHell) - GNU Shell თავსებადია სტანდარტული Unix sh ბრძანებით და მოიცავს უამრავ გაფართოებას, რომელიც აღებულია Shell-ის სხვა ვარიანტებიდან.

GAWK არის სტანდარტული Unix AWK პროგრამის GNU ვერსია.

flex არის GNU ჩანაცვლება სტანდარტული ლექსიკური ანალიზატორის გენერატორი lex. flex საშუალებას გაძლევთ მიიღოთ უფრო ეფექტური სკანერები, ვიდრე lex.

GNU tar არის სტანდარტული tar archive პროგრამის გაფართოება.

ფაილების ნაწილი BSD 4.3-tahoe-დან, რომლებიც არ შეიცავს AT&T წყაროს კოდს და გამოუშვეს ბერკლის უნივერსიტეტის მიერ უფასოდ გავრცელებისთვის. ეს ფაილები შეიცავს, კერძოდ, ზოგიერთი კომუნალური პროგრამის სრულ წყაროს ტექსტებს, თამაშებს, ბიბლიოთეკის რუტინებს და ა.შ.

სისტემები, რომლებიც მხარს უჭერენ პროგრამული უზრუნველყოფის ვერსიებთან მუშაობას დიდ პროგრამულ პროექტებში, RCS (Revision Control System) და CVS (Concurrent Version System).

უფრო სწრაფად, ვიდრე grep და diff უტილიტების სტანდარტული უფასო ვერსიები.

თითქმის მთლიანად Postscript თავსებადი გრაფიკული ენა, Ghostscript.

მათემატიკური გამონათქვამებისა და მონაცემთა gnuplot-ის დახატვის ინტერაქტიული პროგრამა.

ინსტრუმენტების ნაკრები GCC შემდგენელის C++ შემდგენლად გადაქცევისთვის, მოწინავე კლასის ბიბლიოთეკების ჩათვლით.

X11 პროგრამების უზარმაზარი რაოდენობა, MIT X-Windows დანერგვა (ვერსია 11, გამოშვება 4). სტატიის მოცულობა არ იძლევა ამაზე უფრო დეტალურად ფიქრის საშუალებას.

ძირითადად, FSF-ის მიერ განაწილებული ყველა პროგრამა შექმნილია Unix-ის გარემოში მუშაობისთვის და უკვე გამოიყენება ამ სისტემის სხვადასხვა ვერსიებთან, მაგრამ არსებობს ზოგიერთი პროგრამის ვერსიები VMS-თან და თუნდაც MS-DOS-თან მუშაობისთვის.

3. GNU პროექტის უშუალო ამოცანები

სამუშაოების ჩამონათვალი, რომელიც დაგეგმილია GNU პროექტის ფარგლებში, საკმაოდ ვრცელია. მოდით მივცეთ მხოლოდ მოკლე მიმოხილვა ძირითადი მიმართულებების შესახებ.

3.1. დოკუმენტაცია

საჭიროა მრავალი სახელმძღვანელოს მომზადება იმ პროგრამებისთვის, რომლებიც უკვე მზადაა ან დასასრულს უახლოვდება: საცნობარო სახელმძღვანელო C ენისთვის, GCC-ის აღწერა, სამიზნე მანქანების განსაზღვრის სახელმძღვანელოს ჩათვლით, X-ში აპლიკაციის სისტემების პროგრამირების სახელმძღვანელო. ვინდოუსის გარემო და ა.შ.

3.2. უფასო Unix ბირთვის განვითარებასთან დაკავშირებული პროექტები

FSF მუშაობს Unix-ის ბირთვის შექმნაზე, რომელიც დაფუძნებულია უფასო Mach მიკროკერნელზე. დაუყოვნებელი ამოცანები მოიცავს TCP/IP ქსელის პროტოკოლების დანერგვას და ახალ ფაილურ სისტემას (იმედია, ისარგებლებს ზოგიერთი თაროზე არსებული პროგრამით, რომელიც სავარაუდოდ გამოცხადდება უფასო). არსებობს სხვა ამოცანები, მათ შორის დისტანციური OS ბირთვის გამართვის შემუშავება.

3.3. უფასო Unix გარემოს შემუშავება

ზოგიერთი უტილიტა უნდა განხორციელდეს (sdiff, mailx, join და ა.შ.). საჭიროა მრავალი ბიბლიოთეკის განვითარება. ამოცანებს შორის არის მოსახერხებელი ტერმინალის ინტერფეისის შემუშავება.

3.4. არსებული GNU პროგრამული უზრუნველყოფის გაფართოებები

ძირითადად, Emacs, GCC და GDB სჭირდება მუშაობა.

Emacs-თან დაკავშირებით, გაუმჯობესების ორი სფეროა საჭირო: Emacs-ის გაფართოება, რათა ის გამოიყენებოდეს როგორც საგამომცემლო სისტემა, და Emacs-ის სრული ინტერნაციონალიზაცია ისე, რომ ნებისმიერი ეროვნული სკრიპტის გამოყენება შესაძლებელი იყოს.

GCC უნდა დასრულდეს დაგროვილი კომენტარების დასაფიქსირებლად და არსებული წინადადებების განსახორციელებლად (შენიშვნებისა და წინადადებების სია განაწილებულია სშკ-სთან ერთად).

GDB უნდა გაუმჯობესდეს გამართულში C თარჯიმანის დანერგვის თვალსაზრისით; ასევე საჭიროა გარკვეული შესწორებები, რომ შეძლოთ GDB-ის გამოყენება C-ის გარდა სხვა ენებზე დაწერილი პროგრამების გამართვისას.

3.5. ახალი შემდგენელები

საჭიროა კომპილატორების დანერგვა მრავალი პროგრამირების ენებისთვის (Algol, Algol-68, PL/1, Ada და ა.შ.) GCC კოდის გენერატორზე წვდომით. (ასეთი სამუშაოები უკვე მიმდინარეობს Fortran-ის, Pascal-ისა და Modula-2-ისთვის.)

3.5. ტონა სხვა პროექტი

GNU პროექტის ამჟამინდელი დაუყოვნებელი ამოცანების სია მოიცავს სხვა სამუშაოების მრავალფეროვნებას. ავღნიშნოთ Page Maker, Ventura Publisher, dbase2 ან dbase3 და ა.შ სისტემების უფასო ანალოგების არსებობის სურვილი. მოითხოვს X-Windows-ის რამდენიმე პროგრამას. და ა.შ. და ა.შ.

4. როგორ მივიღოთ მეტი ინფორმაცია და/ან GNU პროგრამები

დღევანდელ საშინაო გარემოში FSF-თან კომუნიკაციისთვის უმჯობესია გამოიყენოთ ელექტრონული ფოსტა. FSF-ის საკონტაქტო პირი მათთვის, ვისაც სურს შეუერთდეს GNU პროექტს, არის ვალტერ პოქსონი. მისი ელექტრონული ფოსტის მისამართი: თქვენ ასევე შეგიძლიათ მიიღოთ ინფორმაცია FSF-დან GNU პროგრამული უზრუნველყოფით ფირის მიღების წესების შესახებ. სამწუხაროდ, ეს ბუნებრივი გზა არც თუ ისე შეეფერება დღევანდელ საბჭოთა რეალობას (ფირების გადახდა, თუმცა სიმბოლურია, მაგრამ მაინც მძიმე ვალუტაშია).

ჩვენს ქვეყანაში, ფაქტობრივად, არის ყველა ეს ფირი. მათი ნებისმიერი მფლობელი, FSF თამაშის წესების შესაბამისად, ვალდებულია ხელი შეუწყოს მათ შემდგომ გავრცელებას. სამწუხაროდ, ეს საკმაოდ ბევრი ტექნიკური სამუშაოა. UNIX-ის მომხმარებელთა საბჭოთა ასოციაცია (SUUG) გეგმავს აიღოს, როგორც კი ტექნიკური პირობები საშუალებას მისცემს, თავისუფალი პროგრამული უზრუნველყოფის უფასო გავრცელება მისი წევრებისთვის და ფირების ფასიანი კოპირება ყველასთვის (ეს მომდევნო თვეების საქმეა). სუუგ-ის ყველა წევრი მიიღებს შესაბამის ინფორმაციას, მიმდინარე ინფორმაციის მიღება შეგიძლიათ მისამართზე ელექტრონული ფოსტით ან ჩვეულ სუგ-ის მისამართზე: 125502, მოსკოვი, ქ. ლავოჩკინა, 19.

ლიტერატურა.

  1. რიჩარდ მ. სტალმანი. GNU მანიფესტი.
  2. GNU General Public License // Free Software Foundation, 1989 წ.
  3. GNU's Bulletin // Free Software Foundation, 1991 წ.
  4. GNU Task List (პერიოდულად განახლებული ფაილი ხელმისაწვდომია ელექტრონული ფოსტით; ჩვენ დაფუძნებულია 1991 წლის 24 ივლისის ვერსიაზე)