Ideologi Perangkat Lunak Bebas dan Proyek GNU: Status Saat Ini dan Tantangan Segera.

Biaya Penghasilan

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Donasi

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Jumlah relawan

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Jumlah Karyawan

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Jumlah anggota

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Anak perusahaan

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Memiliki

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Tagline

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Situs web

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Tanggal likuidasi

Lua error di Module:Wikidata on line 170: mencoba mengindeks field "wikibase" (nilai nihil).

Pekerjaan Proyek GNU saat ini meliputi pengembangan perangkat lunak, peningkatan kesadaran, kampanye politik, dan distribusi materi baru.

Asal proyek

Ketika proyek pertama dimulai, mereka...

  • Sebuah asteroid dinamai proyek GNU - (9965) GNU.

Lihat juga

Tulis ulasan tentang "Proyek GNU"

Catatan

Tautan

  • (Bahasa Inggris) - situs resmi proyek GNU

Kutipan yang mencirikan Proyek GNU

- Kebohongan, pembunuhan, pengkhianatan ... Apakah Anda tidak memiliki kata-kata seperti itu? ..
- Itu sudah lama sekali ... tidak ada yang ingat lagi. Hanya saya. Tapi kita tahu apa itu. Ini tertanam dalam "memori kuno" kami untuk tidak pernah lupa. Apakah Anda berasal dari tempat yang jahat hidup?
Aku mengangguk sedih. Saya sangat menyesal untuk Bumi asal saya, dan untuk kenyataan bahwa kehidupan di sana sangat tidak sempurna sehingga membuat saya mengajukan pertanyaan seperti itu ... Tetapi, pada saat yang sama, saya benar-benar ingin Kejahatan meninggalkan Rumah kita selamanya, karena itu Saya mencintai rumah ini dengan sepenuh hati, dan sangat sering bermimpi bahwa suatu hari nanti hari yang begitu indah akan datang ketika:
seseorang akan tersenyum kegirangan, mengetahui bahwa orang hanya bisa membawa kebaikan untuknya...
ketika seorang gadis kesepian tidak takut untuk berjalan melalui jalan tergelap di malam hari, tidak takut seseorang akan menyinggung perasaannya...
ketika kamu bisa membuka hatimu dengan suka cita, tanpa rasa takut sahabatmu akan mengkhianatimu...
ketika mungkin untuk meninggalkan sesuatu yang sangat mahal tepat di jalan, tidak takut jika Anda berpaling - dan itu akan segera dicuri ...
Dan saya dengan tulus, dengan sepenuh hati, percaya bahwa di suatu tempat dunia yang begitu indah benar-benar ada, di mana tidak ada kejahatan dan ketakutan, tetapi ada kegembiraan hidup dan keindahan yang sederhana ... Itulah sebabnya, mengikuti mimpi naif saya, saya menggunakan kesempatan sekecil apa pun untuk mempelajari setidaknya sesuatu tentang bagaimana mungkin untuk menghancurkan Kejahatan duniawi kita yang sama, begitu ulet dan tidak dapat dihancurkan ini ... Dan satu hal lagi - sehingga tidak akan pernah malu untuk memberi tahu seseorang di suatu tempat bahwa saya saya seorang Manusia. . .
Tentu saja, ini adalah mimpi masa kecil yang naif ... Tapi saat itu saya masih anak-anak.
– Nama saya Atis, Svetlana Man. Saya tinggal di sini sejak awal, saya telah melihat Kejahatan... Banyak kejahatan...
– Dan bagaimana caramu menyingkirkannya, Hatis yang bijaksana?! Apakah seseorang membantu Anda? .. - Saya bertanya penuh harap. - Bisakah Anda membantu kami? .. Berikan setidaknya saran?
– Kami menemukan alasannya... Dan membunuhnya. Tapi kejahatanmu di luar kendali kami. Ini berbeda... Sama seperti orang lain dan Anda. Dan tidak selalu kebaikan orang lain mungkin baik untukmu. Anda harus menemukan alasan Anda sendiri. Dan hancurkan, - dia dengan lembut meletakkan tangannya di kepalaku dan kedamaian yang luar biasa mengalir ke dalam diriku ... - Selamat tinggal, Manusia Svetlana ... Anda akan menemukan jawaban untuk pertanyaan Anda. Istirahat untukmu...
Saya berdiri tenggelam dalam pikiran, dan tidak memperhatikan fakta bahwa kenyataan di sekitar saya telah berubah sejak lama, dan alih-alih kota yang aneh dan transparan, kami sekarang "mengambang" di atas "air" ungu pekat di beberapa tempat yang tidak biasa, perangkat datar dan transparan, yang tidak memiliki pegangan, tidak ada dayung - tidak ada sama sekali, seolah-olah kita berdiri di atas kaca transparan yang besar, tipis, dan bergerak. Meskipun tidak ada gerakan atau pitching yang terasa sama sekali. Itu meluncur di atas permukaan secara mengejutkan dengan mulus dan tenang, membuat Anda lupa bahwa itu bergerak sama sekali ...
– Apa itu?.. Di mana kita berlayar? aku bertanya dengan heran.
“Untuk menjemput teman kecilmu,” jawab Veya dengan tenang.
- Tapi bagaimana caranya?!. Dia tidak bisa...
- Akan dapat. Dia memiliki kristal yang sama dengan milikmu, adalah jawabannya. - Kami akan menemuinya di "jembatan", - dan tanpa menjelaskan apa pun, dia segera menghentikan "perahu" aneh kami.
Sekarang kami sudah berada di kaki semacam dinding malam yang "dipoles" cemerlang, yang sangat berbeda dari segala sesuatu yang terang dan berkilau di sekitarnya, dan tampak dibuat secara artifisial dan asing. Tiba-tiba, dinding "terbelah", seolah-olah di tempat itu terdiri dari kabut tebal, dan dalam "kepompong" emas muncul ... Stella. Segar dan sehat, seolah-olah dia baru saja pergi jalan-jalan yang menyenangkan... Dan, tentu saja, dia sangat senang dengan apa yang terjadi... Ketika dia melihatku, wajahnya yang cantik berseri-seri bahagia dan, karena kebiasaan, dia langsung mengobrol:
– Apakah kamu di sini juga?!... Oh, bagus sekali!!! Dan saya sangat khawatir! .. Sangat khawatir! .. Saya pikir sesuatu pasti telah terjadi pada Anda. Tapi bagaimana kamu bisa sampai di sini? .. - bayi itu menatapku tercengang.

STANDAR UTAMA

UNIX dipasok oleh produsen komputer

Mobil Sistem operasi "Asli"
Matahari 1,2,10, ... SunOS 4.1.2 BSD 4.3
Matahari 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
urutan Dynix SW 4.0
Motorola 922 SVR4/88 SVR4.0
Besta-88 terbaik SV 3.1
DES Ultrix BSD 4.2
DES Alfa AXP OSF/1 BSD 4.3
Grafik Silikon SGCS IRIX 6.0

Dengan memilih platform, kami secara otomatis mendapatkan UNIX "miliknya" dengannya. Mungkin, dari sudut pandang kenyamanan dan integritas lingkungan pengguna dan administrator, yang paling menyenangkan adalah AIX. Dan yang paling umum adalah Solaris 2.5 (tentu saja).

Itu adalah munculnya implementasi komersial Unix yang menyebabkan apa yang disebut perang Unix. Masing-masing perusahaan, dalam upaya untuk mencapai keunggulan di pasar, termasuk dalam sistemnya beberapa fitur, perbaikan dan perbaikannya sendiri, kadang-kadang bahkan dengan tujuan langsung mengisolasi sistemnya dari yang lain di pasar. Perusahaan-pengembang dalam upaya mereka untuk mendapatkan keuntungan atas pesaing membuat perubahan bahkan dalam antarmuka pemrograman aplikasi(API- Antarmuka Pemrogram Aplikasi), - spesifikasi serangkaian fungsi yang harus dipatuhi oleh pengembang perangkat lunak agar program mereka kompatibel dengan sistem operasi. Hal ini semakin meningkatkan ketidakcocokan berbagai versi Unix dan menyebabkan ketidakcocokan perangkat lunak yang dikembangkan oleh pemasok yang berbeda (termasuk independen).

Tetapi konsekuensi yang jauh lebih buruk dari perang antara versi yang berbeda dari Unix adalah bahwa pertukaran bebas kode sumber yang telah membantu Unix begitu cepat meningkat pada tahap awal perkembangannya berhenti. Mengetahui tidak ada model lain untuk mendapatkan keuntungan dari perangkat lunak selain merahasiakannya dan memiliki kendali penuh atas pengembangan produk komersial, AT&T dengan tegas melarang distribusi kode sumber. Hanya sedikit orang yang tertarik dengan ancaman tindakan hukum karena mendistribusikan kaset Unix secara ilegal. Aliran ide-ide baru dari universitas telah mengering.

Untuk mengatasi masalah ini, beberapa upaya dilakukan untuk standarisasi Unix.

Upaya serius pertama untuk menstandarisasi versi API (antarmuka pemrograman) yang dikembangkan untuk Sistem V dan Berkeley dilakukan pada tahun 1983 oleh sebuah grup inisiatif bernama /usr/group. Namun, karena jumlah versi sistem operasi bertambah, efektivitas standar menurun, dan setahun kemudian, pada tahun 1985, standar POSIX (Portable Operating System Interface for Computing Environment) dibuat.



Pada tahun 1988, standar POSIX 1003.1-1988 dikembangkan, yang mendefinisikan antarmuka pemrograman aplikasi. Standar ini telah menemukan aplikasi luas di banyak sistem operasi, termasuk arsitektur non-UNIX. Dua tahun kemudian, standar tersebut diadopsi sebagai standar IEEE (Institute of Electrical and Electronic Engineers, masih ada) IEEE 1003.1-1990. Standar hanya mendefinisikan antarmuka, dan e organisasi tertentu, sehingga tidak membedakan antara panggilan sistem dan fungsi perpustakaan, memanggil semua elemen API hanya fungsi.

Semua standar Unix yang lebih baru menyertakan POSIX, dan semua versi Unix berikutnya mematuhi standar ini. Satu-satunya tambahan besar yang kemudian muncul di kernel Unix adalah soket, yang berasal dari BSD.

Sebuah organisasi nirlaba - konsorsium X / Open (kemudian Open Group), dibuat pada tahun 1984 oleh sejumlah perusahaan Eropa, melakukan pengembangan seperangkat antarmuka sistem operasi yang disepakati antara berbagai produsen, dan penciptaan yang benar-benar terbuka sistem yang biaya portabilitas aplikasi akan minimal.

Pada tahun 1992, sebuah dokumen yang dikenal sebagai X/OpenPortability Guide versi 3 (XPG3) muncul, termasuk POSIX 1003.1-1988 dan standar untuk sistem grafis X Windows System yang dikembangkan di Massachusetts Institute of Technology (AS). Pada tahun 1994 - XPG4.2.

Pada tahun 1996, penyatuan X / Open dan OSF mengarah pada pembentukan konsorsium Grup Terbuka, yang melanjutkan pengembangan di bidang sistem terbuka, misalnya, pengembangan lebih lanjut dari antarmuka pengguna Lingkungan Desktop Umum, antarmuka untuk Lingkungan Komputasi Terdistribusi - DCE, dll.

(Institut Standar Nasional Amerika)

Pada tahun 1989, American National Standards Institute menyetujui standar X3.159-1989 untuk bahasa pemrograman C. Standar mendefinisikan sintaks, semantik, dan konten perpustakaan standar.

GNU adalah asosiasi pengembang yang membuat segala jenis perangkat lunak bebas.

GNU adalah proyek yang telah menciptakan banyak perangkat lunak bebas sebagai bagian dari strategi open source.

Pada saat yang sama, program ini dapat melakukan segalanya mulai dari bekerja dengan file hingga pengolah kata, dan kompiler gcc (GNU C) adalah salah satu kompiler UNIX yang paling andal dan efisien. Hal ini memungkinkan untuk melengkapi hampir semua sistem operasi mirip UNIX dengan perangkat lunak bebas.

Apa itu GNU/Linux?

Karena Linux hanyalah sebuah kernel, peralatan semacam ini sangat penting. Kernel bertanggung jawab untuk bekerja dengan memori, disk, perangkat internal, tetapi, misalnya, tidak memiliki editor teks. Tetapi dapat menjalankan program lain. Oleh karena itu, penambahan kernel gratis dengan serangkaian program gratis terlihat sangat alami. Hasilnya adalah tandem GNU/Linux.

Singkatan GNU adalah singkatan dari "GNU is not UNIX" (GNU - Not UNIX). Ide utama di balik pengembangan sistem GNU adalah perbedaan lengkap dari UNIX. UNIX selalu dan tetap menjadi perangkat lunak berpemilik, artinya UNIX merampas kebebasan penggunanya untuk berkolaborasi serta mengontrol komputer mereka. Untuk menjadi komunitas yang bebas menggunakan komputernya sendiri, kami membutuhkan sistem operasi gratis. Kami tidak memiliki cukup uang untuk membeli dan membuat sistem yang ada menjadi gratis, tetapi kami memiliki cukup pengetahuan dan keterampilan untuk membuat yang baru. Penciptaan GNU adalah usaha besar-besaran. Kami melakukannya atas nama kebebasan kami, dan kebebasan Anda juga."

Pada tahun 1985, R. Stallman menulis Manifesto GNU-nya yang terkenal (diterbitkan dalam Jurnal Dr. Dobb edisi Maret 1985) dan mendirikan Free Software Foundation (FSF) - sebuah yayasan amal untuk pengembangan perangkat lunak bebas, mendistribusikan kaset Emacs , dan kemudian mendistribusikan perangkat lunak bebas lainnya (baik dari Proyek GNU dan di luarnya) dan menjual manual mereka, yang menyediakan dana untuk pengembangan proyek GNU. FSF menerima sumbangan, tetapi sebagian besar pendapatan selalu datang dari penjualan salinan perangkat lunak bebas dan layanan terkait.

Pengembangan perangkat lunak bebas merupakan langkah yang sangat penting, tetapi jasa R.Stallman yang lebih besar harus diakui sebagai penciptaan GNU General Public License (GPL). Penulis yang berbeda menerjemahkan nama ini ke dalam bahasa Rusia dengan cara yang berbeda - Lisensi Publik Universal, Lisensi Publik Umum, dll. Tapi dianggap bahwa Hanya versi bahasa Inggris dari lisensi ini yang valid. Gagasan utama GPL adalah bahwa pengguna harus memiliki empat hak berikut (atau empat kebebasan):

Hak untuk menjalankan program untuk tujuan apapun (kebebasan 0)

· Hak untuk mempelajari struktur program dan menyesuaikannya dengan kebutuhan Anda (kebebasan 1), yang melibatkan akses ke kode sumber program.

· Hak untuk mendistribusikan program sambil dapat membantu orang lain (kebebasan 2).

· Hak untuk meningkatkan program dan mempublikasikan perbaikan untuk kepentingan seluruh komunitas (kebebasan 3), yang juga mencakup akses ke kode sumber program.

Anda dapat menggunakan, menyalin, memodifikasi, memodifikasi, mentransfer, atau menjual versi yang dimodifikasi (atau tidak dimodifikasi) kepada orang lain dengan cara apa pun yang Anda suka, asalkan hasil pemrosesan tersebut juga didistribusikan di bawah lisensi GPL. Kondisi terakhir adalah yang paling penting dan menentukan dalam lisensi ini. Ini memastikan bahwa hasil upaya pengembang perangkat lunak bebas tetap open source dan tidak menjadi bagian dari produk berlisensi konvensional. Ini juga membedakan perangkat lunak bebas dari perangkat lunak bebas. Salah satu persyaratan lisensi ini adalah ketika Anda menjual perangkat lunak di bawah GPL, Anda harus membuat kode sumber perangkat lunak tersebut tersedia bagi siapa saja yang ingin mengaksesnya. Dalam kata-kata pencipta FSF, GPL "membuat perangkat lunak bebas dan memastikan bahwa itu tetap gratis."

Tujuan utama GPL adalah untuk melindungi perangkat lunak bebas dari "privatisasi". Tetapi perlu dicatat bahwa itu dirancang sedemikian rupa untuk memungkinkan semua cara "jujur" untuk menghasilkan uang dari perangkat lunak bebas.Ini adalah poin yang sangat penting yang perlu mendapat perhatian khusus. Ketika pertama kali diperkenalkan ke GPL, orang mungkin mendapatkan kesalahpahaman bahwa lisensi ini umumnya melarang cara apa pun untuk menghasilkan uang dari perangkat lunak atau pengembangannya. Bahkan, GPL pada khususnya, dan FSF pada umumnya, secara langsung mendorong bisnis yang terkait dengan penyediaan layanan terkait - pelatihan, konsultasi, dan replikasi komersial perangkat lunak. Hal ini memungkinkan untuk menarik kerjasama baik perusahaan maupun orang-orang yang kepentingan materialnya lebih penting daripada insentif moral.

Awalnya diterbitkan dalam buku sumber terbuka. Richard Stallman pernah , tetapi menyumbangkan artikel ini sehingga ide-ide gerakan perangkat lunak bebas tidak akan sepenuhnya hilang dari buku itu.

Komunitas berbagi perangkat lunak pertama

Ketika saya mulai bekerja di MIT Artificial Intelligence Lab pada tahun 1971, saya menjadi bagian dari komunitas berbagi perangkat lunak yang telah ada selama bertahun-tahun. Berbagi perangkat lunak tidak terbatas pada komunitas khusus kami; itu setua komputer, sama seperti berbagi resep setua memasak. Tapi kami melakukannya lebih dari kebanyakan.

AI Lab menggunakan sistem operasi pembagian waktu yang disebut ITS (Incompatible Timesharing System) yang dirancang dan ditulis oleh peretas staf lab (1) dalam bahasa assembler untuk Digital PDP -10, salah satu komputer besar pada zaman itu. anggota komunitas ini, peretas sistem staf AI Lab, tugas saya adalah meningkatkan sistem ini.

Kami tidak menyebut perangkat lunak kami sebagai "perangkat lunak bebas", karena istilah itu belum ada; tapi itulah yang terjadi. Setiap kali orang dari universitas atau perusahaan lain ingin menggunakan dan menggunakan program, kami dengan senang hati mengizinkannya. Jika Anda melihat seseorang menggunakan program yang tidak dikenal dan menarik, Anda selalu dapat meminta untuk melihat kode sumbernya, sehingga Anda dapat membacanya, mengubahnya, atau mencopot sebagiannya untuk membuat program baru.

(1) Penggunaan "peretas" yang berarti "pemecah keamanan" adalah kebingungan di pihak media massa. Kami para peretas menolak untuk mengenali arti itu, dan terus menggunakan kata itu untuk mengartikan seseorang yang suka memprogram, seseorang yang menikmati kepintaran yang menyenangkan, atau kombinasi keduanya. Lihat artikel saya, Tentang Peretasan.

Runtuhnya komunitas

Situasi berubah drastis pada awal 1980-an ketika Digital menghentikan seri PDP-10. Arsitekturnya, elegan dan kuat di tahun 60-an, tidak dapat secara alami meluas ke ruang alamat yang lebih besar yang menjadi layak di tahun 80-an. Artinya, hampir semua program yang disusun ITS sudah usang.

Komunitas peretas AI Lab telah runtuh, tidak lama sebelumnya. Pada tahun 1981, perusahaan spin-off Symbolics telah mempekerjakan hampir semua peretas dari AI Lab, dan komunitas yang tidak berpenghuni tidak dapat mempertahankan dirinya sendiri. (Buku Hackers, oleh Steve Levy, menjelaskan peristiwa ini, serta memberikan gambaran yang jelas tentang komunitas ini pada masa jayanya.) Ketika AI Lab membeli PDP-10 baru pada tahun 1982, administratornya memutuskan untuk menggunakan Digital nonfree sistem timesharing bukan ITS.

Komputer modern pada zaman itu, seperti VAX atau 68020, memiliki sistem operasi mereka sendiri, tetapi tidak satupun dari mereka adalah perangkat lunak bebas: Anda harus menandatangani perjanjian kerahasiaan bahkan untuk mendapatkan salinan yang dapat dieksekusi.

Ini berarti bahwa langkah pertama dalam menggunakan komputer adalah berjanji untuk tidak membantu tetangga Anda. Komunitas yang bekerja sama dilarang. Aturan yang dibuat oleh pemilik perangkat lunak berpemilik adalah, “Jika Anda berbagi dengan tetangga Anda, Anda adalah bajak laut. Jika Anda menginginkan perubahan, mohon kepada kami untuk membuatnya. ”

Gagasan bahwa sistem sosial perangkat lunak berpemilik—sistem yang menyatakan bahwa Anda tidak boleh berbagi atau mengubah perangkat lunak—adalah antisosial, tidak etis, dan salah, mungkin mengejutkan sebagian pembaca. Tapi apa lagi yang bisa kita katakan tentang sistem yang didasarkan pada pembagian publik dan membuat pengguna tidak berdaya? Pembaca yang menganggap gagasan itu mengejutkan mungkin telah menganggap sistem sosial perangkat lunak berpemilik sebagai sesuatu yang diberikan, atau menilainya berdasarkan istilah yang disarankan oleh bisnis perangkat lunak berpemilik. Penerbit perangkat lunak telah bekerja lama dan keras untuk meyakinkan orang bahwa hanya ada satu cara untuk melihat masalah ini.

Ketika penerbit perangkat lunak berbicara tentang "menegakkan" "hak" mereka atau "menghentikan pembajakan", apa yang sebenarnya mereka mengatakan adalah sekunder. Pesan sebenarnya dari pernyataan-pernyataan ini adalah asumsi-asumsi yang tidak dinyatakan yang mereka terima begitu saja, yang diminta untuk diterima oleh publik tanpa pemeriksaan. Oleh karena itu mari kita periksa mereka.

Salah satu asumsinya adalah bahwa perusahaan perangkat lunak memiliki hak alami yang tidak perlu dipertanyakan lagi untuk memiliki perangkat lunak dan dengan demikian memiliki kekuasaan atas semua penggunanya. (Jika ini adalah hak alami, maka tidak peduli seberapa besar kerugiannya bagi publik, kami tidak dapat menolaknya.) Menariknya, Konstitusi dan tradisi hukum AS menolak pandangan ini; hak cipta bukanlah hak alami, tetapi monopoli buatan pemerintah yang membatasi hak alami pengguna untuk menyalin.

Asumsi lain yang tidak dinyatakan adalah bahwa satu-satunya hal penting tentang perangkat lunak adalah pekerjaan apa yang memungkinkan Anda melakukannya—bahwa kita pengguna komputer tidak boleh peduli masyarakat seperti apa yang boleh kita miliki.

Asumsi ketiga adalah bahwa kami tidak akan memiliki perangkat lunak yang dapat digunakan (atau tidak akan pernah memiliki program untuk melakukan pekerjaan ini atau itu) jika kami tidak menawarkan kekuasaan perusahaan atas pengguna program. Asumsi ini mungkin tampak masuk akal, sebelum gerakan perangkat lunak bebas menunjukkan bahwa kita dapat membuat banyak perangkat lunak yang berguna tanpa harus mengikatnya.

Jika kami menolak untuk menerima asumsi ini, dan menilai masalah ini berdasarkan moralitas akal sehat biasa sambil mengutamakan pengguna, kami sampai pada kesimpulan yang sangat berbeda. Pengguna komputer harus bebas untuk memodifikasi program agar sesuai dengan kebutuhan mereka, dan bebas untuk berbagi perangkat lunak, karena membantu orang lain adalah dasar dari masyarakat.

Pilihan moral yang tegas

Dengan perginya komunitas saya, untuk melanjutkan seperti sebelumnya tidak mungkin. Sebaliknya, saya menghadapi pilihan moral yang keras.

Pilihan yang mudah adalah bergabung dengan dunia perangkat lunak berpemilik, menandatangani perjanjian kerahasiaan dan berjanji untuk tidak membantu sesama peretas saya. Kemungkinan besar saya juga akan mengembangkan perangkat lunak yang dirilis di bawah perjanjian kerahasiaan, sehingga menambah tekanan pada orang lain untuk mengkhianati rekan-rekan mereka juga.

Saya bisa menghasilkan uang dengan cara ini, dan mungkin menghibur diri saya sendiri dengan menulis kode. Tapi saya tahu bahwa di akhir karir saya, saya akan melihat ke belakang pada tahun-tahun membangun tembok untuk memecah belah orang, dan merasa saya telah menghabiskan hidup saya membuat dunia menjadi tempat yang lebih buruk.

Saya telah mengalami menerima perjanjian kerahasiaan, ketika seseorang menolak untuk memberi saya dan MIT AI Lab kode sumber untuk program kontrol untuk printer kami. (Kurangnya fitur tertentu dalam program ini membuat penggunaan printer sangat frustasi.) Jadi saya tidak dapat meyakinkan diri sendiri bahwa perjanjian kerahasiaan tidak bersalah. Saya sangat marah ketika dia menolak untuk berbagi dengan kami; Saya tidak bisa berbalik dan melakukan hal yang sama kepada orang lain.

Pilihan lain, langsung tetapi tidak menyenangkan, adalah meninggalkan bidang komputer. Dengan begitu keterampilan saya tidak akan disalahgunakan, tetapi mereka tetap akan sia-sia. Saya tidak akan bersalah karena membagi dan membatasi pengguna komputer, tetapi itu akan tetap terjadi.

Jadi saya mencari cara agar seorang programmer dapat melakukan sesuatu untuk kebaikan. Saya bertanya pada diri sendiri, apakah ada program atau program yang bisa saya tulis, sehingga memungkinkan komunitas sekali lagi?

Jawabannya jelas: yang pertama dibutuhkan adalah sistem operasi. Itu adalah perangkat lunak penting untuk mulai menggunakan komputer. Dengan sistem operasi, Anda dapat melakukan banyak hal; tanpa satu, Anda tidak dapat menjalankan komputer sama sekali. Dengan sistem operasi gratis, kami dapat kembali memiliki komunitas peretas yang bekerja sama—dan mengundang siapa saja untuk bergabung. Dan siapa pun akan dapat menggunakan komputer tanpa memulai dengan bersekongkol untuk menghilangkan teman-temannya.

Sebagai pengembang sistem operasi, saya memiliki keterampilan yang tepat untuk pekerjaan ini. Jadi, meskipun saya tidak bisa menerima begitu saja kesuksesan, saya menyadari bahwa saya terpilih untuk melakukan pekerjaan itu. Saya memilih untuk membuat sistem yang kompatibel dengan Unix sehingga akan portabel, dan agar pengguna Unix dapat dengan mudah beralih ke sistem tersebut. Nama GNU dipilih, mengikuti tradisi peretas, sebagai akronim rekursif untuk "GNU's Not Unix." Ini diucapkan sebagai satu suku kata dengan g keras.

Sebuah sistem operasi tidak berarti hanya sebuah kernel, hampir tidak cukup untuk menjalankan program lain. Pada 1970-an, setiap sistem operasi yang sesuai dengan namanya termasuk prosesor perintah, assembler, compiler, interpreter, debugger, editor teks, mailer, dan banyak lagi. ITS memilikinya, Multics memilikinya, VMS memilikinya, dan Unix memilikinya. Sistem operasi GNU akan menyertakannya juga.

Kemudian saya mendengar kata-kata ini, dikaitkan dengan Hillel (1):

Jika saya bukan untuk diri saya sendiri, siapa yang akan menjadi untuk saya?
Jika saya hanya untuk diri saya sendiri, apakah saya?
Jika tidak sekarang kapan?

Keputusan untuk memulai Proyek GNU didasarkan pada semangat yang sama.

(1) Sebagai seorang Ateis, saya tidak mengikuti pemimpin agama mana pun, tetapi terkadang saya mengagumi sesuatu yang dikatakan salah satu dari mereka.

Bebas seperti dalam kebebasan

Istilah "perangkat lunak bebas" terkadang disalahpahami—tidak ada hubungannya dengan harga. Ini tentang kebebasan. Oleh karena itu, di sini adalah definisi perangkat lunak bebas.

Suatu program adalah perangkat lunak bebas, untuk Anda, pengguna tertentu, jika:

  • Anda memiliki kebebasan untuk menjalankan program sesuai keinginan, untuk tujuan apa pun.
  • Anda memiliki kebebasan untuk memodifikasi program sesuai dengan kebutuhan Anda. (Untuk membuat kebebasan ini efektif dalam praktik, Anda harus memiliki akses ke kode sumber, karena membuat perubahan dalam program tanpa kode sumber sangat sulit.)
  • Anda memiliki kebebasan untuk mendistribusikan kembali salinan, baik gratis atau dengan biaya.
  • Anda memiliki kebebasan untuk mendistribusikan versi program yang dimodifikasi, sehingga komunitas dapat mengambil manfaat dari peningkatan Anda.

Karena "gratis" mengacu pada kebebasan, bukan pada harga, tidak ada kontradiksi antara penjualan salinan dan perangkat lunak bebas. Faktanya, kebebasan untuk menjual salinan sangat penting: koleksi perangkat lunak bebas yang dijual dalam CD-ROM penting bagi komunitas, dan menjualnya merupakan cara penting untuk mengumpulkan dana bagi pengembangan perangkat lunak bebas. Oleh karena itu, sebuah program yang orang-orang tidak bebas untuk memasukkannya ke dalam koleksi ini bukanlah perangkat lunak bebas.

Karena ambiguitas "bebas", orang telah lama mencari alternatif, tetapi tidak ada yang menemukan istilah yang lebih baik. Bahasa Inggris memiliki lebih banyak kata dan nuansa daripada yang lain, tetapi tidak memiliki kata yang sederhana, tidak ambigu, yang berarti "bebas", seperti dalam kebebasan—"tidak terkekang" menjadi kata yang paling dekat artinya. Alternatif-alternatif seperti "terbebaskan", "kebebasan", dan "terbuka" memiliki arti yang salah atau kerugian lainnya.

Perangkat lunak GNU dan sistem GNU

Mengembangkan keseluruhan sistem adalah proyek yang sangat besar. Untuk mencapainya, saya memutuskan untuk mengadaptasi dan menggunakan perangkat lunak gratis yang ada jika memungkinkan. Sebagai contoh, saya memutuskan di awal untuk menggunakan TeX sebagai formatter teks utama; beberapa tahun kemudian, saya memutuskan untuk menggunakan Sistem X Window daripada menulis sistem jendela lain untuk GNU.

Karena keputusan ini, dan keputusan lain yang serupa, sistem GNU tidak sama dengan kumpulan semua perangkat lunak GNU. Sistem GNU mencakup program yang bukan perangkat lunak GNU, program yang dikembangkan oleh orang lain dan proyek untuk tujuan mereka sendiri, tetapi dapat kita gunakan karena merupakan perangkat lunak bebas.

Memulai proyek

Pada Januari 1984 saya berhenti dari pekerjaan saya di MIT dan mulai menulis perangkat lunak GNU. Meninggalkan MIT diperlukan agar MIT tidak dapat mengganggu pendistribusian GNU sebagai perangkat lunak bebas. Jika saya tetap menjadi staf, MIT dapat mengklaim memiliki karya tersebut, dan dapat memberlakukan persyaratan distribusi mereka sendiri, atau bahkan mengubah karya tersebut menjadi paket perangkat lunak berpemilik. Saya tidak berniat melakukan banyak pekerjaan hanya untuk melihatnya menjadi tidak berguna untuk tujuan yang dimaksudkan: menciptakan komunitas berbagi perangkat lunak baru.

Namun, Profesor Winston, yang saat itu kepala Lab AI MIT, dengan ramah mengundang saya untuk tetap menggunakan fasilitas lab.

Langkah pertama

Sesaat sebelum memulai Proyek GNU, saya mendengar tentang Kit Kompilator Universitas Gratis, juga dikenal sebagai VUCK. (Kata Belanda untuk “bebas” ditulis dengan a v.) Ini adalah kompiler yang dirancang untuk menangani banyak bahasa, termasuk C dan Pascal, dan untuk mendukung beberapa mesin target. Saya menulis kepada penulisnya menanyakan apakah GNU dapat menggunakannya.

Dia menanggapi dengan mengejek, menyatakan bahwa universitas itu gratis tetapi penyusunnya tidak. Oleh karena itu saya memutuskan bahwa program pertama saya untuk Proyek GNU adalah kompiler multibahasa dan multiplatform.

Berharap untuk menghindari kebutuhan untuk menulis sendiri seluruh kompiler, saya memperoleh kode sumber untuk kompiler Pastel, yang merupakan kompiler multiplatform yang dikembangkan di Lawrence Livermore Lab. Ini mendukung, dan ditulis dalam, versi Pascal yang diperluas, yang dirancang untuk menjadi bahasa pemrograman sistem. Saya menambahkan front end C, dan mulai porting ke komputer Motorola 68000. Tapi saya harus menyerah ketika saya menemukan bahwa compiler membutuhkan banyak megabyte ruang stack, dan sistem Unix 68000 yang tersedia hanya akan memungkinkan 64k.

Saya kemudian menyadari bahwa kompiler Pastel berfungsi dengan mem-parsing seluruh file input menjadi pohon sintaks, mengubah seluruh pohon sintaks menjadi rantai "instruksi", dan kemudian menghasilkan seluruh file output, tanpa pernah mengosongkan penyimpanan apa pun. Pada titik ini, saya menyimpulkan bahwa saya harus menulis kompiler baru dari awal. Kompiler baru itu sekarang dikenal sebagai GCC ; tidak ada kompiler Pastel yang digunakan di dalamnya, tetapi saya berhasil mengadaptasi dan menggunakan ujung depan C yang telah saya tulis. Tapi itu beberapa tahun kemudian; pertama, saya bekerja di GNU Emacs.

GNU Emacs

Saya mulai mengerjakan GNU Emacs pada September 1984, dan pada awal 1985 mulai dapat digunakan. Ini memungkinkan saya untuk mulai menggunakan sistem Unix untuk melakukan pengeditan; karena tidak tertarik untuk belajar menggunakan vi atau ed, saya telah melakukan pengeditan pada jenis mesin lain sampai saat itu.

Pada titik ini, orang mulai ingin menggunakan GNU Emacs, yang menimbulkan pertanyaan tentang bagaimana mendistribusikannya. Tentu saja, saya meletakkannya di server ftp anonim di komputer MIT yang saya gunakan. (Komputer ini, prep.ai.mit.edu, dengan demikian menjadi situs distribusi ftp GNU utama; ketika dinonaktifkan beberapa tahun kemudian, kami memindahkan nama tersebut ke server ftp baru kami.) Tetapi pada saat itu, banyak orang yang tertarik orang tidak di Internet dan tidak bisa mendapatkan salinan dengan ftp. Jadi pertanyaannya adalah, apa yang akan saya katakan kepada mereka?

Saya bisa saja berkata, “Temukan teman yang ada di internet dan yang akan membuatkan salinannya untuk Anda.” Atau saya bisa melakukan apa yang saya lakukan dengan Emacs PDP-10 asli: beri tahu mereka, "Kirimkan saya kaset dan SASE , dan saya akan mengirimkannya kembali dengan Emacs di dalamnya." Tapi saya tidak punya pekerjaan, dan saya sedang mencari cara untuk menghasilkan uang dari perangkat lunak bebas. Jadi saya mengumumkan bahwa saya akan mengirimkan kaset itu kepada siapa pun yang menginginkannya, dengan biaya $150. Dengan cara ini, saya memulai bisnis distribusi perangkat lunak gratis, pendahulu dari perusahaan yang saat ini mendistribusikan seluruh distribusi sistem GNU/Linux.

Apakah program gratis untuk setiap pengguna?

Jika sebuah program adalah perangkat lunak bebas ketika ia meninggalkan tangan pembuatnya, ini tidak berarti itu akan menjadi perangkat lunak bebas untuk semua orang yang memiliki salinannya. Misalnya, perangkat lunak domain publik (perangkat lunak yang tidak memiliki hak cipta) adalah perangkat lunak bebas; tetapi siapa pun dapat membuat versi modifikasi yang dipatenkan. Demikian juga, banyak program gratis memiliki hak cipta tetapi didistribusikan di bawah lisensi permisif sederhana yang memungkinkan versi modifikasi milik.

Contoh paradigmatik dari masalah ini adalah Sistem X Window. Dikembangkan di MIT, dan dirilis sebagai perangkat lunak bebas dengan lisensi permisif, segera diadopsi oleh berbagai perusahaan komputer. Mereka menambahkan X ke sistem Unix milik mereka, dalam bentuk biner saja, dan dicakup oleh perjanjian kerahasiaan yang sama. Salinan X ini tidak lebih dari perangkat lunak bebas daripada Unix.

Pengembang Sistem X Window tidak menganggap ini sebagai masalah—mereka mengharapkan dan menginginkan hal ini terjadi. Tujuan mereka bukanlah kebebasan, hanya "sukses", yang didefinisikan sebagai "memiliki banyak pengguna." Mereka tidak peduli apakah pengguna ini memiliki kebebasan, hanya saja mereka harus banyak.

Hal ini menyebabkan situasi paradoks di mana dua cara yang berbeda untuk menghitung jumlah kebebasan memberikan jawaban yang berbeda untuk pertanyaan, "Apakah program ini gratis?" Jika Anda menilai berdasarkan kebebasan yang diberikan oleh ketentuan distribusi rilis MIT, Anda akan mengatakan bahwa X adalah perangkat lunak bebas. Tetapi jika Anda mengukur kebebasan rata-rata pengguna X, Anda harus mengatakan bahwa itu adalah perangkat lunak berpemilik. Sebagian besar pengguna X menjalankan versi berpemilik yang disertakan dengan sistem Unix, bukan versi gratis.

Copyleft dan GNU GPL

Tujuan GNU adalah memberikan kebebasan kepada pengguna, bukan hanya untuk menjadi populer. Jadi kami perlu menggunakan istilah distribusi yang akan mencegah perangkat lunak GNU diubah menjadi perangkat lunak berpemilik. Metode yang kami gunakan disebut "copyleft".(1)

Copyleft menggunakan undang-undang hak cipta, tetapi membaliknya untuk melayani kebalikan dari tujuan biasanya: alih-alih sarana untuk membatasi program, itu menjadi sarana untuk menjaga program tetap gratis.

Ide utama dari copyleft adalah bahwa kami memberikan izin kepada semua orang untuk menjalankan program, menyalin program, memodifikasi program, dan mendistribusikan versi yang dimodifikasi—tetapi bukan izin untuk menambahkan batasan mereka sendiri. Dengan demikian, kebebasan penting yang mendefinisikan "perangkat lunak bebas" dijamin bagi setiap orang yang memiliki salinannya; mereka menjadi hak yang tidak dapat dicabut.

Untuk copyleft yang efektif, versi modifikasi juga harus gratis. Ini memastikan bahwa karya berdasarkan kami tersedia untuk komunitas kami jika diterbitkan. Ketika pemrogram yang memiliki pekerjaan sebagai pemrogram secara sukarela meningkatkan perangkat lunak GNU, copyleftlah ​​yang mencegah majikan mereka mengatakan, "Anda tidak dapat membagikan perubahan itu, karena kami akan menggunakannya untuk membuat versi program milik kami."

Persyaratan bahwa perubahan harus bebas sangat penting jika kita ingin memastikan kebebasan bagi setiap pengguna program. Perusahaan yang memprivatisasi Sistem X Window biasanya membuat beberapa perubahan untuk mem-porting-nya ke sistem dan perangkat keras mereka. Perubahan ini kecil dibandingkan dengan sebagian besar X, tetapi mereka tidak sepele. Jika membuat perubahan adalah alasan untuk menolak kebebasan pengguna, akan mudah bagi siapa saja untuk memanfaatkan alasan tersebut.

Masalah terkait berkaitan dengan menggabungkan program gratis dengan kode tidak bebas. Kombinasi seperti itu pasti tidak bebas; kebebasan mana pun yang kurang untuk bagian yang tidak bebas akan kurang untuk keseluruhan juga. Mengizinkan kombinasi seperti itu akan membuka lubang yang cukup besar untuk menenggelamkan kapal. Oleh karena itu, persyaratan penting untuk copyleft adalah menutup lubang ini: apapun yang ditambahkan atau digabungkan dengan program copyleft harus sedemikian rupa sehingga versi gabungan yang lebih besar juga gratis dan copyleft.

Implementasi khusus dari copyleft yang kami gunakan untuk sebagian besar perangkat lunak GNU adalah GNU General Public License, atau disingkat GNU GPL. Kami memiliki jenis copyleft lain yang digunakan dalam keadaan tertentu. Manual GNU juga copyleft, tetapi gunakan jenis copyleft yang lebih sederhana, karena kerumitan GNU GPL tidak diperlukan untuk manual.(2)

(1) Pada tahun 1984 atau 1985, Don Hopkins (seorang yang sangat imajinatif) mengirimi saya surat. Di amplopnya dia menulis beberapa ucapan lucu, termasuk yang ini: “Copyleft—semua hak dibalikkan.” Saya menggunakan kata “copyleft” untuk menamai konsep distribusi yang saya kembangkan saat itu.

Karyawan Free Software Foundation telah menulis dan memelihara sejumlah paket perangkat lunak GNU. Dua yang terkenal adalah C library dan shell. Pustaka GNU C adalah apa yang digunakan setiap program yang berjalan pada sistem GNU/Linux untuk berkomunikasi dengan Linux. Ini dikembangkan oleh anggota staf Free Software Foundation, Roland McGrath. Shell yang digunakan pada sebagian besar sistem GNU/Linux adalah BASH , Bourne Again Shell(1), yang dikembangkan oleh karyawan FSF Brian Fox.

Kami mendanai pengembangan program ini karena Proyek GNU bukan hanya tentang alat atau lingkungan pengembangan. Tujuan kami adalah sistem operasi yang lengkap, dan program ini diperlukan untuk tujuan itu.

(1) “Bourne Again Shell” adalah plesetan dari nama “Bourne Shell”, yang merupakan shell biasa di Unix.

Dukungan perangkat lunak gratis

Filosofi perangkat lunak bebas menolak praktik bisnis tertentu yang tersebar luas, tetapi tidak bertentangan dengan bisnis. Ketika bisnis menghormati kebebasan pengguna, kami berharap mereka sukses.

Menjual salinan Emacs menunjukkan satu jenis bisnis perangkat lunak bebas. Ketika FSF mengambil alih bisnis itu, saya membutuhkan cara lain untuk mencari nafkah. Saya menemukannya dalam menjual layanan yang berkaitan dengan perangkat lunak gratis yang saya kembangkan. Ini termasuk pengajaran, untuk mata pelajaran seperti cara memprogram GNU Emacs dan cara menyesuaikan GCC, dan pengembangan perangkat lunak, sebagian besar mem-porting GCC ke platform baru.

Hari ini setiap jenis bisnis perangkat lunak bebas dipraktekkan oleh sejumlah perusahaan. Beberapa mendistribusikan koleksi perangkat lunak bebas dalam CD-ROM; yang lain menjual dukungan di tingkat mulai dari menjawab pertanyaan pengguna, hingga memperbaiki bug, hingga menambahkan fitur baru utama. Kami bahkan mulai melihat perusahaan perangkat lunak bebas yang meluncurkan produk perangkat lunak bebas baru.

Namun, hati-hati—sejumlah perusahaan yang mengaitkan diri mereka dengan istilah "sumber terbuka" sebenarnya mendasarkan bisnis mereka pada perangkat lunak tidak bebas yang bekerja dengan perangkat lunak bebas. Ini bukan perusahaan perangkat lunak bebas, mereka adalah perusahaan perangkat lunak berpemilik yang produknya menggoda pengguna dari kebebasan. Mereka menyebut program ini "paket nilai tambah", yang menunjukkan nilai-nilai yang mereka ingin kita adopsi: kenyamanan di atas kebebasan. Jika kita lebih menghargai kebebasan, kita harus menyebutnya paket "pengurangan kebebasan".

tujuan teknis

Tujuan utama GNU adalah menjadi perangkat lunak bebas. Bahkan jika GNU tidak memiliki keunggulan teknis dibandingkan Unix, itu akan memiliki keuntungan sosial, memungkinkan pengguna untuk bekerja sama, dan keuntungan etis, menghormati kebebasan pengguna.

Tapi itu wajar untuk menerapkan standar praktik yang baik untuk pekerjaan—misalnya, secara dinamis mengalokasikan struktur data untuk menghindari batas ukuran tetap yang sewenang-wenang, dan menangani semua kemungkinan kode 8-bit di mana pun itu masuk akal.

Selain itu, kami menolak fokus Unix pada ukuran memori kecil, dengan memutuskan untuk tidak mendukung mesin 16-bit (jelas bahwa mesin 32-bit akan menjadi norma pada saat sistem GNU selesai), dan tidak berusaha untuk mengurangi penggunaan memori kecuali melebihi satu megabyte. Dalam program yang tidak terlalu penting untuk menangani file yang sangat besar, kami mendorong pemrogram untuk membaca seluruh file input ke dalam inti, kemudian memindai isinya tanpa harus khawatir tentang I/O.

Keputusan ini memungkinkan banyak program GNU untuk melampaui rekan-rekan Unix mereka dalam hal keandalan dan kecepatan.

komputer yang disumbangkan

Ketika reputasi Proyek GNU tumbuh, orang-orang mulai menawarkan untuk menyumbangkan mesin yang menjalankan Unix ke proyek. Ini sangat berguna, karena cara termudah untuk mengembangkan komponen GNU adalah melakukannya pada sistem Unix, dan mengganti komponen dari sistem itu. satu per satu Tapi mereka mengangkat masalah etika: apakah benar bagi kita untuk memiliki salinan Unix sama sekali.

Unix adalah (dan masih) perangkat lunak berpemilik, dan filosofi Proyek GNU mengatakan bahwa kita tidak boleh menggunakan perangkat lunak berpemilik. Tetapi, menerapkan alasan yang sama yang mengarah pada kesimpulan bahwa kekerasan dalam membela diri dibenarkan, saya menyimpulkan bahwa itu sah untuk digunakan paket berpemilik ketika itu sangat penting untuk mengembangkan pengganti gratis yang akan membantu orang lain berhenti menggunakan paket berpemilik.

Tetapi, bahkan jika ini adalah kejahatan yang dapat dibenarkan, itu tetaplah kejahatan. Hari ini kami tidak lagi memiliki salinan Unix, karena kami telah menggantinya dengan sistem operasi gratis. Jika kami tidak dapat mengganti sistem operasi mesin dengan yang gratis, kami mengganti mesin sebagai gantinya.

Daftar Tugas GNU

Seiring berjalannya Proyek GNU, dan semakin banyak komponen sistem yang ditemukan atau dikembangkan, akhirnya menjadi berguna untuk membuat daftar kesenjangan yang tersisa. Kami menggunakannya untuk merekrut pengembang untuk menulis bagian yang hilang. Daftar ini kemudian dikenal sebagai Daftar Tugas GNU. Selain komponen Unix yang hilang, kami membuat daftar berbagai proyek perangkat lunak dan dokumentasi berguna lainnya yang, menurut kami, harus dimiliki oleh sistem yang benar-benar lengkap.

Hari ini (1), hampir tidak ada komponen Unix yang tersisa di Daftar Tugas GNU—pekerjaan itu telah selesai, selain beberapa yang tidak penting. Tetapi daftar ini penuh dengan proyek yang mungkin disebut "aplikasi". Program apa pun yang menarik lebih dari sekadar kelas pengguna yang sempit akan menjadi hal yang berguna untuk ditambahkan ke sistem operasi.

Bahkan game termasuk dalam daftar tugas—dan sudah ada sejak awal. Unix menyertakan game, jadi tentu saja GNU juga harus. Tetapi kompatibilitas tidak menjadi masalah untuk game, jadi kami tidak mengikuti daftar game yang dimiliki Unix. Sebagai gantinya, kami mencantumkan spektrum berbagai jenis game yang mungkin disukai pengguna.

(1) Itu ditulis pada tahun 1998. Pada tahun 2009 kami tidak lagi mempertahankan daftar tugas yang panjang. Komunitas mengembangkan perangkat lunak bebas begitu cepat sehingga kami bahkan tidak dapat melacak semuanya.Sebaliknya, kami memiliki daftar Proyek Prioritas Tinggi, daftar proyek yang jauh lebih pendek yang kami ingin mendorong orang untuk menulis.

Perpustakaan GNU GPL

Pustaka GNU C menggunakan jenis copyleft khusus yang disebut Lisensi Publik Umum Perpustakaan GNU (1), yang memberikan izin untuk menautkan perangkat lunak berpemilik dengan pustaka. Mengapa membuat pengecualian ini?

Ini bukan masalah prinsip; tidak ada prinsip yang mengatakan bahwa produk perangkat lunak berpemilik berhak menyertakan kode kami. (Mengapa berkontribusi pada proyek yang didasarkan pada penolakan untuk berbagi dengan kami?) Menggunakan LGPL untuk perpustakaan C, atau untuk perpustakaan apa pun, adalah masalah strategi.

Pustaka C melakukan pekerjaan umum; setiap sistem atau kompiler berpemilik dilengkapi dengan pustaka C. Oleh karena itu, membuat pustaka C kami tersedia hanya untuk perangkat lunak bebas tidak akan memberikan manfaat apa pun bagi perangkat lunak bebas—itu hanya akan mengurangi penggunaan pustaka kami.

Satu sistem merupakan pengecualian untuk ini: pada sistem GNU (dan ini termasuk GNU/Linux), pustaka C GNU adalah satu-satunya pustaka C. Jadi, syarat distribusi pustaka GNU C menentukan apakah mungkin untuk mengkompilasi program berpemilik untuk sistem GNU. Tidak ada alasan etis untuk mengizinkan aplikasi berpemilik pada sistem GNU, tetapi secara strategis tampaknya melarang mereka akan lebih mencegah penggunaan sistem GNU daripada mendorong pengembangan aplikasi gratis. Itulah mengapa menggunakan Library GPL adalah strategi yang baik untuk library C.

Untuk perpustakaan lain, keputusan strategis perlu dipertimbangkan berdasarkan kasus per kasus. Ketika perpustakaan melakukan pekerjaan khusus yang dapat membantu menulis jenis program tertentu, kemudian merilisnya di bawah GPL, membatasinya hanya untuk program gratis, adalah cara membantu pengembang perangkat lunak bebas lainnya, memberi mereka keuntungan terhadap perangkat lunak berpemilik.

Pertimbangkan GNU Readline, perpustakaan yang dikembangkan untuk menyediakan pengeditan baris perintah untuk BASH. Readline dirilis di bawah GNU GPL biasa, bukan Library GPL. Ini mungkin memang mengurangi jumlah Readline yang digunakan, tapi itu bukan kerugian bagi kami. Sementara itu, setidaknya satu aplikasi yang berguna telah dibuat perangkat lunak bebas khusus sehingga dapat menggunakan Readline, dan itu adalah keuntungan nyata bagi masyarakat.

Pengembang perangkat lunak berpemilik memiliki keuntungan yang diberikan uang; pengembang perangkat lunak bebas perlu membuat keuntungan satu sama lain. Saya berharap suatu hari nanti kita akan memiliki banyak koleksi perpustakaan tercakup GPL yang tidak memiliki paralel yang tersedia untuk perangkat lunak berpemilik, menyediakan modul yang berguna untuk berfungsi sebagai blok pembangun dalam perangkat lunak bebas baru, dan menambahkan keuntungan besar untuk pengembangan perangkat lunak bebas lebih lanjut.

(1) Lisensi ini sekarang disebut GNU Lesser General Public License, untuk menghindari anggapan bahwa semua perpustakaan harus menggunakannya. Lihat Mengapa Anda tidak boleh menggunakan Lesser GPL untuk perpustakaan Anda berikutnya untuk informasi selengkapnya.

Menggaruk gatal?

Eric Raymond mengatakan bahwa "Setiap pekerjaan yang baik dari perangkat lunak dimulai dengan menggaruk gatal pribadi pengembang." Mungkin itu kadang terjadi, tetapi banyak bagian penting dari perangkat lunak GNU dikembangkan untuk memiliki sistem operasi bebas yang lengkap.

Misalnya, kami mengembangkan pustaka C GNU karena sistem mirip Unix membutuhkan pustaka C, BASH karena sistem mirip Unix membutuhkan shell, dan tar GNU karena sistem mirip Unix membutuhkan program tar. Hal yang sama berlaku untuk program saya sendiri—kompiler GNU C, GNU Emacs, GDB dan GNU Make.

Beberapa program GNU dikembangkan untuk mengatasi ancaman khusus terhadap kebebasan kita. Jadi, kami mengembangkan gzip untuk menggantikan program Kompres, yang telah hilang dari komunitas karena paten LZW. Kami menemukan orang untuk mengembangkan LessTif, dan baru-baru ini memulai GNOME dan Harmony, untuk mengatasi masalah yang disebabkan oleh perpustakaan berpemilik tertentu (lihat di bawah). Kami sedang mengembangkan GNU Privacy Guard untuk menggantikan perangkat lunak enkripsi non-bebas yang populer, karena pengguna tidak harus memilih antara privasi dan kebebasan.

Tentu saja, orang-orang yang menulis program-program ini menjadi tertarik dengan pekerjaan itu, dan banyak fitur ditambahkan ke dalamnya oleh berbagai orang demi kebutuhan dan minat mereka sendiri. Tapi bukan itu sebabnya program-program itu ada.

perkembangan tak terduga

Pada awal Proyek GNU, saya membayangkan bahwa kami akan mengembangkan seluruh sistem GNU, kemudian merilisnya secara keseluruhan. Bukan seperti itu yang terjadi.

Karena setiap komponen sistem GNU diimplementasikan pada sistem Unix, setiap komponen dapat berjalan di sistem Unix jauh sebelum sistem GNU lengkap ada. Beberapa dari program ini menjadi populer, dan pengguna mulai memperluas dan mem-portingnya—ke berbagai versi Unix yang tidak kompatibel, dan terkadang juga ke sistem lain.

Proses tersebut membuat program-program ini jauh lebih kuat, dan menarik baik dana maupun kontributor ke Proyek GNU. Tetapi mungkin juga menunda penyelesaian sistem kerja minimal selama beberapa tahun, karena pengembang GNU" menghabiskan waktu untuk memelihara port ini dan menambahkan fitur ke komponen yang ada, daripada melanjutkan untuk menulis satu demi satu komponen yang hilang.

GNU Hurd

Pada tahun 1990, sistem GNU hampir selesai; satu-satunya komponen utama yang hilang adalah kernel. Kami telah memutuskan untuk mengimplementasikan kernel kami sebagai kumpulan proses server yang berjalan di atas Mach. Mach adalah mikrokernel yang dikembangkan di Carnegie Mellon University dan kemudian di University of Utah; GNU Hurd adalah kumpulan server (yaitu, kumpulan GNU) yang berjalan di atas Mach, dan melakukan berbagai pekerjaan kernel Unix. Awal pengembangan tertunda karena kami menunggu Mach dirilis sebagai perangkat lunak bebas, seperti yang telah dijanjikan.

Salah satu alasan memilih desain ini adalah untuk menghindari apa yang tampaknya menjadi bagian tersulit dari pekerjaan: men-debug program kernel tanpa debugger tingkat sumber untuk melakukannya. Bagian pekerjaan ini sudah selesai, di Mach, dan kami berharap untuk men-debug server Hurd sebagai program pengguna, dengan GDB. Tapi butuh waktu lama untuk buat itu mungkin, dan server multithread yang saling mengirim pesan ternyata sangat sulit untuk di-debug. Membuat Hurd bekerja dengan kokoh telah berlangsung selama bertahun-tahun.

Alix

Kernel GNU pada awalnya tidak seharusnya disebut Hurd. Nama aslinya adalah Alix—diambil dari nama wanita yang menjadi kekasihku saat itu. Dia, seorang administrator sistem Unix, telah menunjukkan bagaimana namanya akan cocok dengan pola penamaan umum untuk versi sistem Unix; sebagai lelucon, dia memberi tahu teman-temannya, "Seseorang harus memberi nama kernel setelah saya." Saya tidak mengatakan apa-apa, tetapi memutuskan untuk mengejutkannya dengan kernel bernama Alix.

Itu tidak tetap seperti itu. Michael (sekarang Thomas) Bushnell, pengembang utama kernel, lebih menyukai nama Hurd, dan mendefinisikan ulang Alix untuk merujuk ke bagian tertentu dari kernel—bagian yang akan menjebak panggilan sistem dan menanganinya dengan mengirimkan pesan ke server Hurd.

Kemudian, Alix dan saya putus, dan dia mengganti namanya; secara independen, desain Hurd diubah sehingga pustaka C akan mengirim pesan langsung ke server, dan ini membuat komponen Alix menghilang dari desain.

Tapi sebelum hal ini terjadi, seorang temannya menemukan nama Alix di kode sumber Hurd, dan menyebutkannya padanya. Jadi dia memang memiliki kesempatan untuk menemukan kernel yang dinamai menurut namanya.

Linux dan GNU/Linux

GNU Hurd tidak cocok untuk penggunaan produksi, dan kami tidak tahu apakah itu akan pernah terjadi.Desain berbasis kemampuan memiliki masalah yang diakibatkan langsung dari fleksibilitas desain, dan tidak jelas apakah ada solusi.

Untungnya, kernel lain tersedia. Pada tahun 1991, Linus Torvalds mengembangkan kernel yang kompatibel dengan Unix dan menyebutnya Linux. Itu adalah hak milik pada awalnya, tetapi pada tahun 1992, ia membuatnya menjadi perangkat lunak bebas; menggabungkan Linux dengan sistem GNU yang tidak terlalu lengkap menghasilkan sistem operasi gratis yang lengkap. (Menggabungkan mereka adalah pekerjaan yang penting, tentu saja.) Karena Linux, kami benar-benar dapat menjalankan versi sistem GNU hari ini.

Tantangan di masa depan kita

Kami memiliki kemampuan yang telah terbukti untuk mengembangkan spektrum luas perangkat lunak bebas. Ini tidak berarti kita tak terkalahkan dan tak terbendung. Beberapa tantangan membuat masa depan perangkat lunak bebas menjadi tidak pasti; memenuhinya akan membutuhkan upaya dan daya tahan yang teguh, kadang-kadang berlangsung selama bertahun-tahun. Ini akan membutuhkan jenis tekad yang ditunjukkan orang ketika mereka menghargai kebebasan mereka dan tidak akan membiarkan siapa pun mengambilnya.

Empat bagian berikut membahas tantangan-tantangan ini.

perangkat keras rahasia

Produsen perangkat keras semakin cenderung merahasiakan spesifikasi perangkat keras. Hal ini mempersulit penulisan driver gratis sehingga Linux dan XFree86 dapat mendukung perangkat keras baru. Kami memiliki sistem gratis yang lengkap hari ini, tetapi kami tidak akan memilikinya besok jika kami tidak dapat mendukung komputer masa depan.

Ada dua cara untuk mengatasi masalah ini. Pemrogram dapat melakukan rekayasa balik untuk mengetahui cara mendukung perangkat keras. Sisanya dari kita dapat memilih perangkat keras yang didukung oleh perangkat lunak bebas; seiring bertambahnya jumlah kami, kerahasiaan spesifikasi akan menjadi kebijakan yang merugikan diri sendiri.

Rekayasa terbalik adalah pekerjaan besar; akankah kita memiliki programmer dengan tekad yang cukup untuk melakukannya? Ya—jika kita telah membangun perasaan yang kuat bahwa perangkat lunak bebas adalah masalah prinsip, dan driver tidak bebas tidak dapat ditoleransi. Dan apakah banyak dari kita akan menghabiskan uang ekstra, atau bahkan sedikit waktu ekstra, sehingga kita dapat menggunakan driver gratis? Ya, jika tekad untuk memiliki kebebasan tersebar luas.

(Catatan 2008: masalah ini juga meluas ke BIOS. Ada BIOS gratis, LibreBoot (distribusi coreboot); masalahnya adalah mendapatkan spesifikasi untuk mesin sehingga LibreBoot dapat mendukungnya tanpa "gumpalan" yang tidak bebas.)

perpustakaan tidak bebas

Pustaka tidak bebas yang berjalan pada sistem operasi bebas bertindak sebagai jebakan bagi pengembang perangkat lunak bebas. Fitur menarik perpustakaan adalah umpannya; jika Anda menggunakan perpustakaan, Anda jatuh ke dalam perangkap, karena program Anda tidak dapat berguna menjadi bagian dari sistem operasi bebas. (Sebenarnya, kami dapat menyertakan program Anda, tetapi tidak akan Lari dengan perpustakaan yang hilang.) Lebih buruk lagi, jika sebuah program yang menggunakan perpustakaan berpemilik menjadi populer, itu dapat memikat pemrogram lain yang tidak menaruh curiga ke dalam perangkap.

Contoh pertama dari masalah ini adalah toolkit Motif, di tahun 80-an. Meskipun belum ada sistem operasi bebas, jelas masalah apa yang akan ditimbulkan Motif bagi mereka di kemudian hari. Proyek GNU merespons dalam dua cara: dengan meminta masing-masing proyek perangkat lunak bebas untuk mendukung widget X Toolkit gratis serta Motif, dan dengan meminta seseorang untuk menulis pengganti Motif secara gratis. Pekerjaan itu memakan waktu bertahun-tahun; LessTif, dikembangkan oleh Hungry Programmers, menjadi cukup kuat untuk mendukung sebagian besar aplikasi Motif hanya pada tahun 1997.

Antara tahun 1996 dan 1998, pustaka toolkit GUI nonfree lainnya, yang disebut Qt, digunakan dalam koleksi substansial perangkat lunak bebas, KDE desktop.

Sistem GNU/Linux gratis tidak dapat menggunakan KDE, karena kami tidak dapat menggunakan perpustakaan. Namun, beberapa distributor komersial sistem GNU/Linux yang tidak terlalu ketat dengan perangkat lunak bebas menambahkan KDE ke sistem mereka—menghasilkan sistem dengan lebih banyak kemampuan, tetapi lebih sedikit kebebasan. Grup KDE secara aktif mendorong lebih banyak pemrogram untuk menggunakan Qt, dan jutaan "pengguna Linux" baru tidak pernah mengetahui gagasan bahwa ada masalah dalam hal ini. Situasi tampak suram.

Komunitas perangkat lunak bebas menanggapi masalah ini dengan dua cara: GNOME dan Harmony.

GNOME, Lingkungan Model Objek Jaringan GNU, adalah proyek desktop GNU. Dimulai pada tahun 1997 oleh Miguel de Icaza, dan dikembangkan dengan dukungan Perangkat Lunak Red Hat, GNOME berangkat untuk menyediakan fasilitas desktop yang serupa, tetapi menggunakan perangkat lunak gratis secara eksklusif. Ini memiliki teknis kelebihan juga, seperti mendukung berbagai bahasa, tidak hanya C++.

Harmony adalah pustaka pengganti yang kompatibel, dirancang untuk memungkinkan menjalankan perangkat lunak KDE tanpa menggunakan Qt.

Pada bulan November 1998, para pengembang Qt mengumumkan perubahan lisensi yang, ketika dilakukan, seharusnya membuat perangkat lunak bebas Qt. Tidak ada cara untuk memastikannya, tetapi saya pikir ini sebagian karena respons tegas komunitas terhadap masalah yang diajukan Qt ketika tidak bebas. (Lisensi baru tidak nyaman dan tidak adil, jadi tetap disarankan untuk menghindari penggunaan Qt.)

Bagaimana kita akan menanggapi perpustakaan tidak gratis yang menggoda berikutnya? Akankah seluruh komunitas memahami kebutuhan untuk keluar dari perangkap? Atau akankah banyak dari kita melepaskan kebebasan demi kenyamanan, dan menghasilkan masalah besar? Masa depan kita tergantung pada filosofi kita.

Paten perangkat lunak

Ancaman terburuk yang kita hadapi berasal dari paten perangkat lunak, yang dapat membuat algoritme dan fitur terlarang bagi perangkat lunak gratis hingga dua puluh tahun. Paten algoritma kompresi LZW diterapkan pada tahun 1983, dan kami masih tidak dapat merilis perangkat lunak gratis untuk menghasilkan GIF terkompresi yang tepat. Pada tahun 1998, sebuah program gratis untuk memproduksi audio terkompresi MP3 telah dihapus dari distribusi di bawah ancaman gugatan paten.

Ada cara untuk mengatasi paten: kita dapat mencari bukti bahwa paten tidak valid, dan kita dapat mencari cara alternatif untuk melakukan suatu pekerjaan. Tetapi masing-masing metode ini hanya berfungsi kadang-kadang; ketika keduanya gagal, paten dapat memaksa semua perangkat lunak bebas kekurangan beberapa fitur yang diinginkan pengguna. Setelah menunggu lama, paten berakhir (paten MP3 diharapkan telah berakhir pada 2018), tetapi apa yang akan kita lakukan sampai saat itu?

Kami yang menghargai perangkat lunak bebas demi kebebasan akan tetap menggunakan perangkat lunak bebas. Kami akan berhasil menyelesaikan pekerjaan tanpa fitur yang dipatenkan. Tetapi mereka yang menghargai perangkat lunak bebas karena mereka mengharapkannya secara teknis lebih unggul cenderung menyebutnya kegagalan ketika paten menahannya. Jadi, sementara itu berguna untuk berbicara tentang efektivitas praktis dari model pengembangan "bazaar", dan keandalan dan kekuatan beberapa perangkat lunak bebas, kita tidak boleh berhenti di situ, kebebasan dan prinsip.

Dokumentasi gratis

Kekurangan terbesar dalam sistem operasi gratis kami bukanlah pada perangkat lunaknya—ini adalah kurangnya manual gratis yang baik yang dapat kami sertakan dalam sistem kami. Dokumentasi adalah bagian penting dari paket perangkat lunak apa pun; ketika paket perangkat lunak bebas yang penting tidak disertai dengan manual gratis yang baik, itu adalah celah besar. Kami memiliki banyak kesenjangan hari ini.

Dokumentasi gratis, seperti perangkat lunak bebas, adalah masalah kebebasan, bukan harga. Kriteria untuk manual gratis hampir sama dengan perangkat lunak gratis: ini adalah soal memberikan kebebasan tertentu kepada semua pengguna. Pendistribusian ulang (termasuk penjualan komersial) harus diizinkan, secara online dan di atas kertas, sehingga manual dapat menyertai setiap salinan program.

Izin untuk modifikasi juga penting. Sebagai aturan umum, saya tidak percaya bahwa orang harus memiliki izin untuk memodifikasi semua jenis artikel dan buku. Sebagai contoh, saya tidak berpikir Anda atau saya diharuskan memberikan izin untuk memodifikasi artikel seperti ini, yang menggambarkan tindakan dan pandangan kami.

Tetapi ada alasan khusus mengapa kebebasan untuk memodifikasi sangat penting untuk dokumentasi perangkat lunak bebas. Ketika orang menggunakan hak mereka untuk memodifikasi perangkat lunak, dan menambah atau mengubah fitur-fiturnya, jika mereka berhati-hati, mereka juga akan mengubah manualnya—sehingga mereka dapat memberikan dokumentasi yang akurat dan dapat digunakan dengan program yang dimodifikasi. Manual tidak bebas, yang tidak memungkinkan pemrogram untuk teliti dan menyelesaikan pekerjaan, tidak memenuhi kebutuhan komunitas kami.

Beberapa jenis batasan tentang bagaimana modifikasi dilakukan tidak menimbulkan masalah. Misalnya, persyaratan untuk mempertahankan pemberitahuan hak cipta penulis asli, persyaratan distribusi, atau daftar penulis, tidak masalah. Juga tidak masalah untuk meminta versi yang dimodifikasi untuk menyertakan pemberitahuan bahwa mereka telah dimodifikasi, bahkan untuk memiliki seluruh bagian yang mungkin tidak dihapus atau diubah, selama bagian ini berhubungan dengan topik nonteknis. Dengan kata lain, mereka tidak menghalangi komunitas perangkat lunak bebas untuk memanfaatkan sepenuhnya manual ini.

Namun, harus dimungkinkan untuk memodifikasi semua teknis isi manual, dan kemudian mendistribusikan hasilnya di semua media biasa, melalui semua saluran biasa; jika tidak, pembatasan memang menghalangi komunitas, manual ini tidak gratis, dan kami membutuhkan manual lain.

Akankah pengembang perangkat lunak bebas memiliki kesadaran dan tekad untuk menghasilkan spektrum penuh dari manual gratis? Sekali lagi, masa depan kita bergantung pada filosofi.

Kita harus berbicara tentang kebebasan

Diperkirakan saat ini ada sepuluh juta pengguna sistem GNU/Linux seperti Debian GNU/Linux dan Red Hat “Linux”. Perangkat lunak bebas telah mengembangkan keuntungan praktis sedemikian rupa sehingga pengguna berbondong-bondong menggunakannya karena alasan praktis semata.

Konsekuensi baik dari hal ini terbukti: lebih banyak minat dalam mengembangkan perangkat lunak bebas, lebih banyak pelanggan untuk bisnis perangkat lunak bebas, dan lebih banyak kemampuan untuk mendorong perusahaan mengembangkan perangkat lunak bebas komersial daripada produk perangkat lunak berpemilik.

Tetapi minat pada perangkat lunak tumbuh lebih cepat daripada kesadaran akan filosofi yang mendasarinya, dan ini mengarah pada masalah. Kemampuan kita menghadapi tantangan dan ancaman di atas bergantung pada kemauan untuk berdiri teguh demi kebebasan. Untuk memastikan komunitas kami memiliki keinginan ini, kami perlu menyebarkan ide tersebut kepada pengguna baru saat mereka masuk ke komunitas.

Tapi kami gagal melakukannya: upaya untuk menarik pengguna baru ke dalam komunitas kami jauh melampaui upaya untuk mengajari mereka kewarganegaraan komunitas kami. Kita perlu melakukan keduanya, dan kita perlu menjaga keseimbangan kedua upaya.

"sumber terbuka"

Mengajarkan pengguna baru tentang kebebasan menjadi lebih sulit pada tahun 1998, ketika sebagian komunitas memutuskan untuk berhenti menggunakan istilah "perangkat lunak bebas" dan mengatakan "perangkat lunak sumber terbuka".

Beberapa yang menyukai istilah ini bertujuan untuk menghindari kebingungan antara "gratis" dengan "gratis"—tujuan yang sah. Namun, yang lain bertujuan untuk mengesampingkan semangat prinsip yang telah memotivasi gerakan perangkat lunak bebas dan Proyek GNU, dan sebaliknya untuk menarik para eksekutif dan pengguna bisnis, yang banyak di antaranya menganut ideologi yang menempatkan keuntungan di atas kebebasan, di atas komunitas, di atas prinsip. Dengan demikian, retorika "sumber terbuka" berfokus pada potensi untuk membuat perangkat lunak berkualitas tinggi dan kuat, tetapi menghindari gagasan tentang kebebasan, komunitas, dan prinsip.

Majalah “Linux” adalah contoh yang jelas—majalah ini dipenuhi dengan iklan untuk perangkat lunak berpemilik yang bekerja dengan GNU/Linux. Ketika Motif atau Qt berikutnya muncul, apakah majalah-majalah ini akan memperingatkan pemrogram untuk menjauhinya, atau akankah mereka memasang iklan untuk itu?

dukungan bisnis dapat memberikan kontribusi kepada masyarakat dalam banyak hal; semuanya sama, itu berguna. tetapi memenangkan dukungan mereka dengan berbicara lebih sedikit tentang kebebasan dan prinsip dapat menjadi bencana; itu membuat ketidakseimbangan sebelumnya antara penjangkauan dan pendidikan kewarganegaraan menjadi lebih buruk.

"Perangkat lunak bebas" dan "sumber terbuka" menggambarkan kategori perangkat lunak yang sama, kurang lebih, tetapi mengatakan hal yang berbeda tentang perangkat lunak, dan tentang nilai. Proyek GNU terus menggunakan istilah "perangkat lunak bebas", untuk mengekspresikan gagasan bahwa kebebasan, bukan hanya teknologi, itu penting.

Mencoba!

Pepatah Yoda ("Tidak ada 'coba'") terdengar rapi, tetapi tidak berhasil untuk saya. Saya telah melakukan sebagian besar pekerjaan saya sambil cemas apakah saya dapat melakukan pekerjaan itu, dan tidak yakin bahwa itu akan cukup untuk mencapai tujuan jika saya melakukannya. Tetapi saya tetap mencoba, karena tidak ada seorang pun kecuali saya di antara musuh dan kota saya. Mengejutkan diri sendiri, saya kadang-kadang berhasil.

Terkadang saya gagal; beberapa kota saya telah jatuh. Kemudian saya menemukan kota lain terancam, dan bersiap-siap untuk pertempuran lain. Seiring waktu, saya telah belajar untuk mencari ancaman dan menempatkan diri saya di antara mereka dan kota saya, meminta peretas lain untuk datang dan bergabung dengan saya.

Saat ini, sering kali saya "bukan satu-satunya. Ini melegakan dan menyenangkan ketika saya melihat resimen peretas menggali untuk menahan garis, dan saya menyadari, kota ini mungkin bertahan—untuk saat ini. Tetapi bahayanya lebih besar masing-masing. tahun, dan sekarang Microsoft secara eksplisit menargetkan komunitas kami. Kami "tidak dapat menerima begitu saja masa depan kebebasan. Jangan anggap remeh! Jika Anda ingin mempertahankan kebebasan Anda, Anda harus siap untuk mempertahankannya.

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; dekorasi teks: tidak ada;) A.topic02 ( warna: #099771; keluarga font: sans-serif; dekorasi teks: tidak ada;) serif; dekorasi teks: tidak ada;) A.topic04 ( warna: #98650A; font-family: sans-serif; text-decoration: none;) text-decoration: none;) A.topic06 ( color: #099607; font-family: sans-serif; text-decoration: none;) A .topic07 ( warna: #9E1215; keluarga font: sans-serif; dekorasi: tidak ada;) A.topic08 ( warna: #970941; font-family: sans-serif; dekorasi teks: tidak ada;) A.topic09 ( warna : #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;)

Ideologi Perangkat Lunak Bebas dan Proyek GNU: Status Saat Ini dan Tantangan Langsung

S.D. Kuznetsov

Free Software Foundation (FSF) adalah fenomena yang sangat menarik dan dalam banyak hal luar biasa di dunia pemrograman saat ini. Banyak programmer domestik harus berurusan dengan program dari FSF (sistem pemrograman GCC sangat terkenal), tetapi kurangnya publikasi dalam bahasa Rusia membuat sulit untuk memahami ideologi dan tujuan FSF, dan juga membuat tidak mungkin untuk menilai yang ada. jaminan simpanan. Tujuan dari artikel singkat ini adalah untuk setidaknya mengisi sebagian kesenjangan ini. Artikel ini sepenuhnya didasarkan pada materi FSF dan oleh karena itu, sesuai dengan prinsip umum organisasi ini, dapat dengan bebas dicetak ulang, disalin, atau didistribusikan dengan cara lain apa pun (dengan pelestarian catatan ini).

1. Ideologi FSF dan Tujuan Umum Proyek GNU

FSF adalah organisasi pemrograman yang didirikan dan dipimpin oleh Richard Stallman. Dalam pengaturan yang paling umum, tugas FSF adalah untuk menghilangkan pembatasan menyalin, mendistribusikan, mempelajari dan memodifikasi program komputer. Untuk mencapai tujuan bersama ini, FSF mendorong pengembangan dan penggunaan perangkat lunak bebas yang ditargetkan pada berbagai aplikasi.

Dalam "Manifesto GNU"-nya, yang ditulis pada tahun 1985, R. Stallman, sebagai gagasan utama yang menyebabkan munculnya FSF dan proyek GNU, mengajukan penolakannya terhadap kepemilikan perangkat lunak. Kekhasan hubungan dalam komunitas pemrograman seringkali membuat orang memilih untuk mengikuti perasaan alami persahabatan dan gotong royong, atau ketundukan yang mengganggu hukum properti ini. Dengan perangkat lunak gratis, pilihan yang berat ini tidak lagi diperlukan.

Membuat sistem perangkat lunak bebas yang terintegrasi menghindari duplikasi pekerjaan oleh pemrogram (yang seringkali hanya diperlukan karena seseorang yang memiliki perangkat lunak). Distribusi gratis kode sumber program memfasilitasi pemeliharaan dan adaptasinya terhadap kebutuhan pengguna tertentu (tidak perlu menggunakan layanan hanya perusahaan yang memiliki lisensi untuk kode sumber). Ada kesempatan tambahan dan sangat penting untuk menggunakan perangkat lunak yang baik untuk tujuan pendidikan.

Menurut R. Stallman, ketika beralih ke perangkat lunak bebas, pemrogram tidak akan mati kelaparan (walaupun, tampaknya, penghasilan mereka akan lebih sedikit). Pembatasan penyalinan perangkat lunak bukan satu-satunya cara untuk menghasilkan uang. Ide utama Stallman adalah bahwa Anda tidak boleh menjual program, tetapi karya seorang programmer. Secara khusus, sumber pendapatan dapat berupa pemeliharaan sistem perangkat lunak atau konfigurasinya untuk digunakan pada komputer baru dan / atau dalam kondisi baru, pengajaran, dll.

"Manifesto" Stallman ditulis dengan sangat emosional dan di beberapa tempat terlalu utopis. Namun demikian, tampaknya ide-ide perangkat lunak bebas secara historis dekat dengan sikap tradisional (dengan pengecualian beberapa tahun terakhir) di antara pemrogram Soviet. Mungkin ini adalah jalur FSF yang merupakan cara paling alami untuk integrasi mendalam komunitas pemrogram domestik dan dunia.

Lebih khusus, FSF sedang mengembangkan program dalam kerangka proyek GNU (singkatan GNU diperluas secara rekursif - GNU "s Not Unix). Tujuan dari proyek GNU adalah untuk membuat sistem perangkat lunak terintegrasi lengkap yang kompatibel dengan kemampuan lingkungan Unix OS (sebagai aturan, kemampuan program GNU adalah kemampuan yang lebih luas dari analog lingkungan Unix).

Perangkat lunak FSF "gratis" dalam dua pengertian. Pertama, program apa pun dapat dengan bebas disalin dan ditransfer ke siapa pun. Kedua, ketersediaan kode sumber program memberikan kesempatan untuk mempelajari program secara gratis, peningkatannya, dan distribusi versi yang dimodifikasi.

Sama seperti hak perusahaan perangkat lunak biasa yang dilindungi oleh tanda hak cipta mereka (hak cipta), "kebebasan" sistem perangkat lunak FSF dilindungi oleh "copyleft" - kombinasi hak cipta dan dokumen dengan judul "GNU General Public License" hadir di semua teks FSF. Dokumen ini menyatakan hak-hak yang dimiliki oleh setiap pemilik teks ini saat ini, dan ketidakmungkinan untuk menghilangkan hak-hak ini dari subjek lain mana pun.

Kegiatan utama FSF adalah pengembangan komponen perangkat lunak bebas baru dalam kerangka Proyek GNU. Untuk sebagian besar, proyek GNU berkembang secara terencana (lihat, khususnya, bagian 3 artikel ini), tetapi FSF juga menerima program distribusi gratis yang dikembangkan oleh perusahaan dan individu atas inisiatif mereka sendiri. Selain itu, FSF memproduksi dan menjual kaset perangkat lunak gratis, menyiapkan, menerbitkan, dan mendistribusikan manual untuk berbagai komponen perangkat lunak GNU, dan memelihara dan mendistribusikan direktori layanan, daftar perusahaan dan individu yang menyediakan layanan berbayar kepada pengguna program GNU dan sistem. .

Dasar keuangan FSF adalah penjualan kaset dan dokumentasi, serta sponsor dari perusahaan komersial dan individu.

2. Perangkat Lunak GNU yang Tersedia

Saat ini, tidak semua komponen perangkat lunak Proyek GNU siap. Namun, FSF mendistribusikan banyak program, beberapa di antaranya ditulis langsung oleh programmer FSF, dan beberapa di antaranya disumbangkan ke FSF untuk didistribusikan secara gratis oleh organisasi dan individu lain. Mari kita daftar secara singkat produk perangkat lunak yang didistribusikan oleh FSF sekarang.

Emacs adalah editor yang dapat diperluas dan dapat disesuaikan untuk berbagai jenis terminal dan kebutuhan pengguna. Ekstensibilitas editor didasarkan pada penggunaan penerjemah bahasa Lisp yang ada di dalam editor (dialek Common Lisp). Bersamaan dengan teks sumber editor, manual untuk menggunakan Emacs dan manual referensi untuk pemrograman di Lisp di lingkungan Emacs didistribusikan.

Bison adalah pengganti generator parser Yacc standar dengan beberapa ekstensi. Panduan ini juga sedang didistribusikan.

Dua implementasi dialek bahasa Lisp yang disederhanakan - Skema: satu dari MIT (ditulis dalam C), yang kedua dari University of Yale (ditulis dalam Skema).

Utilitas texi2roff dirancang untuk mengonversi file teks dalam format TeX menjadi file teks dari format standar roff untuk Unix OS (dokumentasi yang didistribusikan oleh FSF pada media mesin diformat dalam format TeX).

Utilitas untuk mengemas/membongkar file teks.

Program Catur GNU.

GNU CC adalah kompiler C pengoptimal portabel. Sepenuhnya mendukung standar ANSI C. Berisi alat untuk membuat generator kode secara semi-otomatis untuk komputer baru. Didistribusikan dengan manual.

Assembler GAS single-pass portabel yang hampir dua kali lebih cepat dari assembler Unix standar.

Opsi utilitas gratis untuk bekerja dengan file objek: ar, ld, nm, size, gprof, strip, dan ranlib. Utilitas pemuatan dinamis baru, dld, juga sedang didistribusikan.

GNU make mencakup hampir semua utilitas make BSD, System V, dan POSIX, serta sejumlah ekstensi. Didistribusikan dengan manual.

Debugger GDB dapat digunakan untuk men-debug program yang ditulis dalam C, C++ dan Fortran. Didistribusikan dengan manual.

BASH (Bourne Again SHell) - GNU Shell kompatibel dengan perintah Unix sh standar dan mencakup sejumlah ekstensi yang diambil dari varian Shell lainnya.

GAWK adalah versi GNU dari utilitas Unix AWK standar.

flex adalah pengganti GNU untuk lex generator penganalisis leksikal standar. flex memungkinkan Anda mendapatkan pemindai yang lebih efisien daripada lex.

GNU tar adalah perpanjangan dari utilitas arsip tar standar.

Bagian dari file dari BSD 4.3-tahoe yang tidak mengandung kode sumber AT&T dan dirilis untuk distribusi gratis oleh University of Berkeley. File-file ini berisi, khususnya, teks sumber lengkap dari beberapa utilitas, permainan, rutinitas perpustakaan, dll.

Sistem yang mendukung bekerja dengan versi perangkat lunak dalam proyek perangkat lunak besar, RCS (Revision Control System) dan CVS (Concurrent Version System).

Lebih cepat dari versi gratis standar grep dan utilitas diff.

Bahasa grafis yang hampir seluruhnya kompatibel dengan Postscript, Ghostscript.

Program interaktif untuk menggambar ekspresi matematika dan gnuplot data.

Seperangkat alat untuk mengubah kompiler GCC menjadi kompiler C++, termasuk perpustakaan kelas lanjutan.

Sejumlah besar program X11, implementasi MIT X-Windows (versi 11, rilis 4). Volume artikel tidak memungkinkan memikirkan hal ini secara lebih rinci.

Pada dasarnya, semua program yang didistribusikan oleh FSF dirancang untuk bekerja di lingkungan Unix dan sudah digunakan dengan berbagai versi sistem ini, tetapi ada versi beberapa program untuk bekerja dengan VMS dan bahkan MS-DOS.

3. Tugas Segera Proyek GNU

Daftar pekerjaan yang direncanakan untuk dilakukan sebagai bagian dari proyek GNU cukup luas. Mari kita hanya memberikan gambaran singkat tentang arah utama.

3.1. Dokumentasi

Diperlukan sejumlah manual untuk program yang sudah siap atau hampir selesai: manual referensi untuk bahasa C, deskripsi GCC termasuk manual untuk menentukan mesin target, manual untuk sistem aplikasi pemrograman di X- Lingkungan Windows, dll.

3.2. Proyek yang terkait dengan pengembangan kernel Unix gratis

FSF sedang bekerja membangun kernel Unix berdasarkan mikrokernel Mach gratis. Tugas segera mencakup implementasi protokol jaringan TCP/IP dan sistem file baru (diharapkan dapat memanfaatkan beberapa perangkat lunak siap pakai yang diharapkan akan dinyatakan gratis). Ada tugas lain, termasuk pengembangan debugger kernel OS jarak jauh.

3.3. Pengembangan lingkungan Unix gratis

Beberapa utilitas perlu diimplementasikan (sdiff, mailx, join, dll.). Pengembangan sejumlah perpustakaan diperlukan. Di antara tugas-tugasnya adalah pengembangan antarmuka terminal yang ramah pengguna.

3.4. Ekstensi ke perangkat lunak GNU yang ada

Pada dasarnya, Emacs, GCC, dan GDB perlu bekerja.

Sehubungan dengan Emacs, dua bidang peningkatan diperlukan: memperluas Emacs untuk memungkinkannya digunakan sebagai sistem penerbitan, dan sepenuhnya menginternasionalisasi Emacs sehingga skrip nasional apa pun dapat digunakan.

GCC perlu diselesaikan untuk memperbaiki akumulasi komentar dan menerapkan saran yang ada (daftar komentar dan saran didistribusikan dengan GCC).

GDB perlu ditingkatkan dalam hal memperkenalkan juru bahasa C ke dalam debugger; beberapa tweak juga diperlukan untuk dapat menggunakan GDB saat men-debug program yang ditulis dalam bahasa selain C.

3.5. Kompiler baru

Implementasi kompiler untuk sejumlah bahasa pemrograman (Algol, Algol-68, PL/1, Ada, dll.) dengan akses ke generator kode GCC diperlukan. (Pekerjaan tersebut sudah berlangsung untuk Fortran, Pascal, dan Modula-2.)

3.5. Banyak proyek lainnya

Daftar tugas langsung Proyek GNU saat ini mencakup berbagai macam pekerjaan lain. Sebutkan keinginan untuk memiliki analog gratis dari sistem Page Maker, Ventura Publisher, dbase2 atau dbase3, dll. Membutuhkan sejumlah program X-Windows. Dll. dll.

4. Cara mendapatkan informasi lebih lanjut dan/atau program GNU

Untuk berkomunikasi dengan FSF di lingkungan domestik saat ini, yang terbaik adalah menggunakan email. Kontak person FSF untuk orang-orang yang ingin bergabung dengan Proyek GNU adalah Walter Poxon. Alamat emailnya: Anda juga dapat memperoleh informasi tentang aturan untuk menerima kaset dengan perangkat lunak GNU dari FSF. Sayangnya, jalur alami ini tidak terlalu cocok untuk realitas Soviet saat ini (pembayaran untuk kaset, meskipun simbolis, masih dalam mata uang keras).

Di negara kita, sebenarnya, ada semua kaset ini. Setiap pemegangnya, sesuai dengan aturan permainan FSF, berkewajiban untuk memfasilitasi distribusi lebih lanjut mereka. Sayangnya, ini cukup banyak pekerjaan teknis. Asosiasi Pengguna UNIX Soviet (SUUG) berencana untuk mengambil alih, segera setelah kondisi teknis memungkinkan, distribusi gratis perangkat lunak gratis untuk anggotanya dan salinan kaset berbayar untuk semua orang (ini adalah masalah beberapa bulan mendatang). Semua anggota SUUG akan menerima informasi yang relevan, informasi terkini dapat diperoleh di alamat melalui email atau di alamat SUUG biasa: 125502, Moskow, st. Lavochkina, 19.

Literatur.

  1. Richard M. Stallman. Manifesto GNU.
  2. Lisensi Publik Umum GNU // Yayasan Perangkat Lunak Bebas, 1989.
  3. Buletin GNU // Yayasan Perangkat Lunak Bebas, 1991.
  4. Daftar Tugas GNU (berkas yang diperbarui secara berkala tersedia melalui email; kami berdasarkan pada versi 24 Juli 1991)