GNU selalu dikembangkan. Kendati hampir semua komponen telah lama dirampungkan dan telah digunakan untuk proses produksi selama satu dasawarsa atau lebih, kernel resminya, GNU Hurd, tidaklah lengkap dan tidak semua komponen GNU dapat berjalan dengannya. Dengan demikian, kernel Linux sebagai pihak ketiga paling banyak dipakai untuk menggantikannya. Sementara kernel ini tidak secara resmi diadopsi oleh proyek GNU, beberapa perangkat lunak pihak ketiga disertakan, misalnya X.Org yang dirilis oleh X Window System dan sistem typesetting TeX. Banyak program GNU juga telah diportasi ke beberapa sistem operasi lain, misalnya Microsoft Windows, varian BSD, Sun Solaris, dan Mac OS.
Perencanaan untuk sistem operasi GNU diperkenalkan kepada khalayak ramai pada 27 September 1983, melalui newsgroup net.unix-wizards dan net.usoft oleh Richard Stallman.[2] Pengembangan perangkat lunak mulai dikembangkan pada 5 Januari 1984, ketika Stallman keluar dari pekerjaannya di Laboratorium Kecerdasan Buatan, Institut Teknologi Massachusetts, jadi mereka tidak dapat mengakui kepemilikan atau mengganggu penyebaran GNU sebagai perangkat lunak bebas. Richard Stallman memilih nama GNU dengan menggunakan permainan kata-kata, termasuk lagu The Gnu.[3]
Tujuannya adalah untuk mewujudkan sistem operasi yang sepenuhnya bebas. Stallman ingin para pengguna komputer bebas, seperti pada era 1960-an dan 1970-an — bebas mempelajari kode sumber perangkat lunak yang mereka gunakan, bebas berbagi perangkat lunak dengan orang lain, bebas memodifikasi perilaku perangkat lunak, dan bebas merilis versi-versi perangkat lunak yang mereka modifikasi. Filsafat ini kemudian diumumkan sebagai GNU Manifesto pada Maret 1985.
Pengalaman Richard Stallman dengan Incompatible Timesharing System (ITS), sistem operasi kuno yang ditulis menggunakan bahasa assembly (rakitan) yang menjadi usang karena dihentikannya PDP-10, arsitektur komputer tempat ditulisnya ITS, mengarah kepada suatu keputusan bahwa sistem portabel adalah sebuah keperluan.[4] Oleh karena itulah GNU sebagian besar kompatibel dengan Unix. Di waktu yang sama, Unix telah menjadi sistem operasi tak bebas yang umum dipakai. Perancangan Unix telah terbukti kokoh, dan modular, jadi perancangan tersebut dapat diterapkan kembali bagian demi bagian.
Banyak perangkat lunak yang diperlukan harus ditulis dari scratch (goresan awal), tetapi komponen-komponen bebas kompatibel yang ada juga dipakai, misalnya sistem typesetting TeX, dan X Window System. Sebagian besar dari GNU ditulis oleh sukarelawan; pada waktu luangnya, beberapa lagi dibayar perusahaan, lembaga pendidikan, dan organisasi nirlaba lainnya. Pada Oktober 1985, Stallman mendirikan Free Software Foundation (FSF). Di penghujung 1980-an dan awal 1990-an, FSF menyewa para pengembang perangkat lunak untuk menulis perangkat-perangkat lunak yang diperlukan GNU.
Karena GNU meraih kemasyhuran, badan-badan usaha yang berminat mulai menyokong pengembangan atau menjual perangkat lunak GNU dan dukungan teknisnya. Yang paling mengemuka dan berjaya dari semua itu adalah Cygnus Solutions, kini bagian dari Red Hat.
Perancangan dan penerapan
Perencanaan awal untuk GNU adalah supaya kompatibel dengan Unix, sambil menambahkan perbaikan yang berguna. Sejak 1990, sistem GNU memiliki editor teks yang ekstensibel (Emacs), compiler optimisasi yang sangat berjaya (GCC), dan sebagian besar pustaka inti dan utilitas distribusi Unix standar. Sebagai tujuannya untuk mewujudkan sistem operasi yang sepenuhnya bebas — lebih daripada keharusan menuliskan keseluruhan sistem operasi bebas — Stallman berupaya menggunakan perangkat lunak yang sudah ada ketika hal itu mungkin. Pada 1980-an terdapat sedikit perangkat lunak bebas, tetapi telah ada X Window System untuk tampilan grafis, sistem typesetting TeX, dan kernel mikro Mach. Komponen-komponen ini diintegrasikan ke dalam GNU.
Di dalam Manifesto GNU, Stallman menuliskan bahwa "sebuah kernel permulaan ada, tetapi ada lebih banyak fitur yang diperlukan untuk mengemulasi Unix". Dia merujuk kepada TRIX[butuh rujukan], sebuah kernel panggilan prosedur jarak jauh yang dikembangkan di Institut Teknologi Massachusetts, yang para penulisnya telah memutuskan untuk menyebarkannya sebagai perangkat lunak bebas, dan kompatibel dengan Version 7 Unix. Pada Desember 1986, upaya telah dilakukan untuk memodifikasi kernel ini. Namun, para pengembang sebenarnya berpendapat bahwa hal ini tidaklah berguna sebagai titik permulaan, terutama karena kernel itu hanya bekerja pada "sebuah peti 68000 yang mahal dan tidak jelas" dan kemudian harus diportasi ke arsitektur lainnya sebelum dapat digunakan.
Perencanaan dini Proyek GNU adalah untuk mengadaptasi kernel BSD 4.4-Lite untuk GNU. Tetapi karena minimnya kerjasama dari para programer Berkeley[butuh rujukan], sejak 1998 Stallman beralih menggunakan Mach kernel yang dikembangkan di Universitas Mellon Carnegie, kendati rilisnya sebagai perangkat lunak bebas ditunda sampai 1990 sambil para pengembangnya bekerja untuk menghilangkan kode-kode yang patennya menjadi milik AT&T. Thomas Bushnell, arsitek perintis Hurd, berkata di dalam peninjauannya bahwa keputusan untuk memulai sebuah kernel baru sebagai ganti mengadaptasi karya BSD telah cukup memundurkan proyek, dan oleh karena itulah proyek ini harus menggunakan kernel BSD.[5]
Perancangan kernel ini merupakan permulaan terbesar GNU dari Unix "tradisional". Kernel GNU merupakan Microkernel multiserver, dan terdiri dari sehimpunan program yang memanggil server-server yang memberikan fungsionalitas yang sama sebagai kernel Unix tradisional. Karena kernel mikro Mach, menurut perancangannya, hanya menyediakan fungsionalitas kernel tingkat-rendah, Proyek GNU harus mengembangkan bagian-bagian tingkatan yang lebih tinggi dari kernel itu, sebagai kumpulan program-program pengguna. Mulanya, kumpulan ini disebut Alix, tetapi pengembang Thomas Bushnell lebih suka memanggilnya Hurd, jadi nama Alix dipindahkan ke suatu subsistem dan sebenarnya menghilang sama sekali.[6] Sebenarnya, kemajuan pengembangan Hurd menjadi sangat lamban karena isu-isu teknis yang terus saja muncul.[7]
Meskipun pada 2002 Stallman secara optimistik memperkirakan dirilisnya GNU/Hurd,[8] pengembangan dan perancangan lebih jauh masih saja diperlukan. Rilis terbaru dari Hurd adalah versi 0.2. Versi tersebut cukup stabil, cocok untuk penggunaan di dalam aplikasi-aplikasi non-kritikal. Sejak 2005, Hurd lamban dikembangkan, dan kini merupakan kernel resmi sistem GNU. Ada juga proyek yang berjalan dengan cara memportasi sistem GNU ke kernel-kernel FreeBSD, NetBSD, dan OpenSolaris.
Setelah kernel Linux dapat digunakan dan dialihkan ke lisensi perangkat lunak bebas, kernel itu menjadi host yang paling lazim untuk perangkat lunak GNU. Proyek GNU menggulirkan istilah GNU/Linux untuk sistem-sistem demikian.
Proyek GNU menganjurkan para penyumbang untuk menyerahkan hakcipta paket-paket GNU ke Free Software Foundation,[9] kendati bukan keharusan.[10]
Undang-undang hakcipta memberi pemegang hakcipta secara signifikan untuk mengawasi dan mengendalikan penyalinan dan penyebaran suatu karya, tetapi FSF menuliskan sebuah lisensi untuk perangkat lunak GNU yang memberi izin kepada penerima untuk menyalin dan menyebarkan kembali perangkat lunak di bawah pasal-pasal yang sangat permisif. Di sebagian besar era 1980-an, tiap-tiap paket GNU memiliki lisensinya sendiri - Emacs General Public License, GCC General Public License, dan lain-lain. Pada 1989, FSF menerbitkan lisensi tunggal yang dapat mereka gunakan untuk semua perangkat lunak mereka, dan dapat digunakan oleh proyek-proyek non-GNU, yakni GNU General Public License (GPL).
Lisensi ini kini dipakai oleh sebagian besar program GNU, juga sejumlah program perangkat lunak bebas yang bukan bagian dari proyek GNU; biasa disebut sebagai Free software license. Lisensi ini memberi hak kepada para penerima program untuk menjalankan, menyalin, memodifikasi, dan menyebarkannya kembali, tetapi melarang mereka menambahkan syarat tambahan pada salinan yang mereka sebarkan. Gagasan ini sering dinyatakan sebagai Copyleft.
Pada 1991, GNU Lesser General Public License (LGPL), kemudian dikenal sebagai Library General Public License, ditulis untuk beberapa pustaka tertentu. Pada 1991 juga dirilis versi 2 dari GNU GPL. GNU Free Documentation License (FDL), untuk dokumentasi, pada 2000. GPL dan LGPL adalah revisi terhadap versi 3 pada 2007, memperbaiki aplikabilitas internasional, dan menambahkan perlindungan bagi para pengguna, di mana perangkat keras yang mereka miliki membatasi perubahan perangkat lunak.
Sebagian besar perangkat lunak GNU disebarkan di bawah GPL. Sebagian kecil disebarkan di bawah GPL, dan lebih sedikit paket-paket disebarkan di bawah permissive free software licenses.[11]
Banyak program GNU telah diportasi ke bermacam-macam sistem operasi lainnya, termasuk platform-platform proprietary, seperti Microsoft Windows dan Mac OS X. Mereka sering diinstal pada sistem-sistem UNIX yang proprietary sebagai pengganti untuk utilitas-utilitas proprietary, tetapi ini sering menjadi topik hangat di antara para pecandu, sebagai motif untuk mengembangkan program-program ini untuk menggantikan sistem-sistem itu dengan perangkat lunak bebas, tidak untuk memperbaikinya. Program-program GNU, yang berada di dalam kasus-kasus pertandingan, diuji untuk membuktikan diri lebih andal daripada saingan-saingannya, UNIX proprietary.[12]
Pada 2007, terdapat 319 paket GNU yang disediakan di situs pengembangan resmi GNU.[13]
Penyebaran GNU
Penggunaan bersama-sama Linux kernel sejauh ini menjadi vektor penyebaran terumum perangkat lunak GNU, meskipun kernel Linux itu sendiri bukan bagian dari GNU.
Logo GNU adalah sebuah kepala gnu. Lukisan logo yang terkenal ini pertama dibuat oleh Etienne Suvasa. Logo ini muncul di dalam perangkat lunak GNU dan di dalam dokumentasi elektronik dan tercetak untuk proyek GNU, dan juga dipakai di dalam bahan-bahan Free Software Foundation.[14]
^Peter H. Salus. "The Hurd and BSDI". The Daemon, the GNU and the Penguin. Diarsipkan dari versi asli tanggal 2023-07-10. Diakses tanggal 2008-08-18. It is now perfectly obvious to me that this would have succeeded splendidly and the world would be a very different place today.
^"Stallman describing Hurd progress". Diarsipkan dari versi asli tanggal 2009-03-12. Diakses tanggal 2009-04-29. it took many many many years to get this kernel to run at all, and it still doesn't run well, and it looks like there may be fundamental problems with this design, which nobody knew about back in 1990.