**GNU** ialah sebuah sistem pengendalian perisian bebas. Namanya ialah akronim rekursif bagi "***G**NU's **N**ot **U**nix*" (iaitu "GNU bukannya UNIX") yang telah dipilih kerana reka bentuknya seakan-akan dengan UNIX tetapi tidak mengandungi sebarang kod UNIX. Sistem GNU yang digabungkan dengan Linux, sebuah inti pihak ketiga, merupakan sebuah sistem pengendalian yang paling banyak digunakan di dunia. Gabungan ini biasa digelarkan secara mudah sebagai "Linux" sahaja. 

Rancangan untuk sistem pengendalian GNU diumumkan pada bulan September 1983 oleh Richard Stallman, dan kerja untuk membangunkan perisian dimulakan pada bulan Januari 1984. Projek untuk membangunkan GNU telah digelarkan sebagai *Projek GNU*, dan semua atur cara yang diterbitkan di bawah Projek GNU digelarkan pakej GNU *atau* atur cara GNU*.*

Sejarah
-------

Projek GNU diumumkan pada 27 September 1983 dalam portal net.unix-wizards dan kumpulan berita net.usoft. Pembangunan perisian bermula pada 5 Januari 1984 sewaktu Stallman meletakkan jawatannya di Institut Teknologi Massachusetts supaya universiti itu tidak boleh menuntut hak milik atau bercampur tangan dengan pengedaran GNU sebagai perisian bebas. Sebutan yang tepat untuk GNU ialah *g'noo* (IPA: /gnu/), dengan bunyi "g" yang keras untuk membezakannya daripada perkataan "*new*" dalam bahasa Inggeris. Menurut Stallman, nama ini diilhami oleh pelbagai permainan dengan kata-kata, termasuknya lagu Gnu.

Matlamatnya ialah untuk mewujudkan sebuah sistem pengendalian perisian yang benar-benar bebas. Stallman hendak pengguna-pengguna komputer berasa bebas, seperti pada zaman 1960-an dan 1970-an: bebas untuk membelajari kod sumber perisian yang digunakan oleh mereka, bebas untuk mengubah suai tindakan perisian, dan bebas untuk menerbitkan versi-versi terubah suai untuk perisian. Falsafah ini diterbitkan pada Mac 1985 sebagai Manifesto GNU.

Bayi GNU
Kebanyakan perisian harus ditulis semula tanpa sebarang asas, tetapi sewaktu terdapatnya komponen perisian serasi yang wujud, ia digunakan. Dua contoh ialah sistem set taip TeX dan Sistem X Window. Kebanyakan GNU ditulis oleh sukarelawan; sebilangan pada masa lapang mereka, dan sebilangan dibayar oleh syarikat-syarikat yang lain. Pada Oktober 1985, Stallman memulakan Yayasan Perisian Bebas (FSF). FSF menggajikan pembangun-pembangun perisian untuk menulis perisian yang diperlukan untuk GNU pada pertengahan dan akhir dekad 80-an. Pada kemuncaknya, yayasan itu menggajikan 15 orang kakitangan. FSF juga memegang hak cipta untuk sebilangan pakej perisian GNU. Kebanyakan pakej GNU dilesenkan di bawah Lesen Awam Am GNU (GNU GPL), sedangkan beberapanya menggunakan Lesen Awam Kecil GNU (GNU LGPL), dan sedikit menggunakan lesen-lesen perisian bebas.

Untuk memudahkan orang-orang yang hendak bertukar kepada GNU, keputusan telah dibuat untuk menjadikan GNU serasi dengan UNIX yang merupakan perisian pengendalian berhak milik yang popular pada waktu itu. Reka bentuk UNIX terbukti stabil dan oleh sebab ia adalah bermodul, ia dapat dilaksanakan semula bahagian demi bahagian.

Sewaktu GNU semakin terkenal, perniagaan-perniagaan bermula menyumbang kepada pembangunan atau penjualan perisian GNU serta membekalkan sokongan teknikal. Yang paling terkenal dan berjaya daripada perniagaan itu ialah Cygnus Solutions yang kini merupakan sebahagian Red Hat.

Pelesenan
---------

Untuk memastikan kebebasan perisian GNU, projek itu menerbitkan versi pertamanya untuk Lesen Awam Am GNU (GNU GPL) pada tahun 1989. Kini, lesen ini digunakan untuk kebanyakan atur cara GNU, bersama-sama dengan sebilangan besar atur cara perisian bebas yang bukan sebahagian projek GNU. Pada waktu ini, ia adalah lesen perisian bebas yang paling banyak digunakan di dalam dunia. Ia memberikan hak kepada semua penerima atur cara untuk menggunakan, mengubah suai dan menyebarkannya, tetapi menghalangi mereka daripada mengenakan sekatan lanjutan untuk salinan-salinan yang disebarkan oleh mereka. Gagasan ini dirujuk sebagai "hak cipta replika" ataupun "copyleft".

Reka bentuk dan pelaksanaan
---------------------------

Rancangan asal untuk GNU adalah untuk menjadikan kebanyakan atur caranya serasi dengan UNIX, sewaktu membuat penambahan yang berguna. Inti GNU pada waktu itu bertujuan untuk menjadi inti-mikro pelayan-berbilang, dan reka bentuk intinya merupakan penyimpangan GNU yang terbesar daripada UNIX "tradisional".

Hurd GNU menggunakan inti mikro (Mach pada waktu ini) dan terdiri daripada satu set atur cara, digelarkan "pelayan", yang memberikan kefungsian yang serupa dengan inti UNIX tradisional (atau Linux). GNU (menggunakan Hurd) dapat dicuba dengan penggunaan cakera padat berbut. (Sila lihat: Pautan luar).

Menjelang 1990, sistem GNU mempunyai tambahan untuk penyunting teks (Emacs), pengkompil mengoptimum (GCC), dan kebanyakan pustaka dan utiliti teras untuk edaran Unix yang piawai. Komponen utama yang masih tidak ada lagi ialah intinya. Dalam Manifesto GNU, Stallman menyebut bahawa "inti awal memang sedia ada tetapi banyak lagi ciri diperlukan untuk menandingi Unix." Beliau tengah merujuk kepada TRIX, sebuah inti panggilan tatacara jauh yang serasi dengan Unix Versi 7 dan yang diperkembangkan di dalam MIT. Penulis-penulisnya telah memutuskan untuk mengedarkan inti itu secara bebas.

Pada Disember 1986, kerja bermula untuk mengubah suai inti ini. Bagaimanapun, pembangun-pembangun kemudian memutuskan bahawa ia tidak dapat digunakan sebagai titik permulaan, terutamanya kerana ia cuma dapat dilaksanakan melalui "peti 68000 yang mahal dan tidak diketahui ramai" dan justera itu, harus diportkan ke sistem seni bina yang lain sebelum ia dapat digunakan. Menjelang 1988, penghuluran mesej inti Mach yang dibangunkan di Universiti Carnegie Mellon telah dipertimbangkan sebagai ganti, walaupun penerbitan perisian bebas ditangguhkan sehingga 1990 untuk memberikan masa kepada pembangun-pembangun untuk mengeluarkan kod hak milik AT&T.

Oleh sebab inti mikro Mach telah direka bentuk semata-mata untuk membekalkan kefungsian inti pada aras rendah, Projek GNU harus membangunkan bahagian-bahagian aras tinggi untuk inti itu sebagai koleksi atur cara pengguna. Mula-mulanya, koleksi ini digelarkan "Alix", tetapi pembangun Michael Bushnell kemudian lebih suka akan nama Hurd. Oleh itu, nama Alix dialihkan ke sebuah subsistem dan kemudian dibuang sama sekali. Pembangunan Hurd kemudian dilambatkan atas sebab-sebab teknikal serta konflik personaliti.

GNU/Hurd merujuk kepada edaran OS GNU yang menggunakan Hurd GNU sebagai terasnya. Hurd GNU merupakan satu set atur cara atau perkhidmatan yang dilaksanakan atas inti mikro (GNU kini menggunakan inti mikro Mach GNU, tetapi usaha-usaha untuk memportkan Hurd kepada inti mikro keluarga L4 masih berlangsung). 

"GNU" dalam "Hurd GNU" menunjukkan bahawa ia merupakan sebahagian Projek GNU, sedangkan "GNU/Hurd" membezakannya sebagai salah satu daripada dua sistem GNU yang kini sedia ada — iaitu, sistem-sistem GNU berdasarkan Linux (atau "GNU/Linux"), dan sistem-sistem GNU berdasarkan Hurd (atau "GNU/Hurd"). Nama "GNU" sahaja merujuk kepada GNU/Hurd atau sistem GNU berdasarkan Hurd. "GNU/Linux" disebut sebagai "GNU-condong-Linux", atau lebih kerapnya, sebagai "Linux GNU". Bagaimanapun, FSF menegaskan bahawa, mengikut peraturan-peraturan bahasa Inggeris, "Linux GNU" merujuk kepada edaran inti Linux oleh projek GNU atau versi projek GNU; mereka mengatakan bahawa penggunaan nama "GNU/Linux" dapat menjelaskan bahawa seseorang tengah merujuk kepada gabungan inti Linux dengan perduaan GNU untuk membentukkan sebuah OS GNU yang lengkap. Linus Torvalds, penulis asal untuk inti itu, tidak bersetuju dengan istilah "GNU/Linux"; beliau lebih menyukai nama "Linux GNU" jika projek GNU "hendak edaran diri."

Pada tahun 1991, Linus Torvalds menulis inti Linux yang serasi dengan Unix. Walaupun pada asalnya, ia tidak merupakan perisian bebas, Torlvalds menukarkan lesennya kepada GPL GNU pada tahun 1992. Linux diperkembangkan dengan selanjutnya oleh pelbagai pengatur cara dalam Internet. Pada 1992, inti itu digabungkan dengan sistem GNU untuk menghasilkan sebuah sistem pengendalian fungsi penuh yang bebas. Sistem GNU yang amat biasa didapati adalah dalam bentuk ini yang dirujukkan sebagai "sistem GNU/Linux" atau "Edaran Linux". Sejak 2005, Hurd GNU merupakan inti rasmi untuk sistem GNU dan masih diperkembangkan secara perlahan-perlahan. Terdapatnya juga projek yang sedang mengerjakan pemportan sistem GNU kepada inti-inti FreeBSD dan NetBSD.

Perisian GNU
------------

Rencana utama: Senarai pakej GNU
Komponen-komponen sistem GNU yang utama termasuk Koleksi Pengkompil GNU (GCC), Pustaka C GNU (glibc), penyunting teks Emacs GNU, dan atas meja grafik GNOME.

Kebanyakan atur cara GNU telah diportkan kepada sistem-sistem pengendalian yang lain dan kerapnya dipasang dalam sistem-sistem UNIX proprietari untuk menggantikan utiliti-utiliti proprietari. Aturcara-aturcara GNU telah ditunjukkan dalam kes-kes yang dipertikaikan sebagai lebih boleh diharap berbanding atur cara UNIX proprietari yang serupa. 

Reputasi alat-alat pembangunan perisian GNU adalah amat baik di kalangan pengguna Linux; secara koleksi, ia digelarkan sebagai *set alatan GNU*. Merupakan cuma sebahagian kecil daripada seluruh sistem GNU, versi-versi GNU tidak serasi dengan POSIX. Dengan kepopularan sistem-sistem GNU/Linux, ramai pembangun telah memasangkan set alatan GNU dalam sistem-sistem lain untuk keserasian ataupun untuk mencapai sifat kesamaan melintasi pelantar. Banyak atur cara GNU telah diportkan kepada Microsoft Windows, Mac OS X, dan pelbagai pelantar proprietari. Bagaimanapun, ini sering merupakan topik yang hangat di kalangan peminat kerana tujuan untuk membangunkan aturcara-aturcara adalah untuk menggantikan sistem itu dengan perisian bebas, bukannya untuk mempertingkatkannya.

Senarai pakej yang terkenal dalam komuniti persisian bebas termasuk:

* Perisian sistem
	+ Bison – penjana penghurai yang bertujuan untuk menggantikan yacc
	+ Bash – petala pemerintah
	+ BFD – pustaka fail objek
	+ Classpath – pustaka-pustaka untuk bahasa pengaturcaraan Java
	+ Coreutils – utiliti-utiliti Unix yang asas seperti cat, ls, dan rm
	+ Emacs – penyunting teks yang boleh tambah dan boleh mendokumenkan diri
	+ glibc – bahasa pengaturcaraan C POSIX piawai, dengan kefungsian tambahan
	+ gzip – pustaka dan atur cara untuk pemampatan data
	+ Rantai alat GNU untuk pembangunan perisian:
		- Binutils GNU – penghimpun, pemaut, dan alat-alat berkait
		- Sistem bina GNU – Automake, Autoconf, Libtool
		- GCC – pengkompil mengoptimum untuk banyak bahasa pengaturcaraan, termasuk C, C++, Fortran, Ada, dan Java
		- GDB – penyahpepijat
	+ MDK GNU – kit pembangunan untuk pengaturcaraan dalam MIX
	+ Skrin – pemultipleks terminal
	+ Texinfo – sistem dokumentasi untuk menghasilkan manual-manual dalam talian dan bercetak
	+ GNU wget – dapatan semula fail lanjutan dari rangkaian-rangkaian dan Internet
	+ GNUnet – rangkaian komunikasi setara berpencar yang direka bentuk semata-mata untuk menghalangkan penapisan
	+ DotGNU – gantian untuk .NET
	+ GNU Hurd – set pelayan berdasarkan inti mikro yang melaksanakan fungsi yang sama dengan inti Unix
* Perisian penggunaan
	+ GIMP – Atur cara pengolahan imej GNU
	+ GLPK – pakej yang bertujuan untuk menyelesaikan pengaturcaraan linear (LP), pengaturcaraan integer campuran, dan masalah-masalah berkait yang lain.
	+ Gnash – atur cara pemain untuk filem-filem dalam format Shockwave Flash; berdiri sendiri serta sebagai palam untuk Mozilla Firefox.
	+ GMP – pustaka pengaturcaraan penghitungan berangka kepersisan sebarangan
	+ GNOME – sekitaran atas meja grafik
	+ GNU LilyPond – atur cara untuk merakamkan muzik lembaran
	+ GNU Octave – atur cara untuk pengiraan berangka yang serupa dengan MATLAB
	+ Adang Privasi GNU (GnuPG) – alat penyulitan bebas untuk menggantikan PGP
	+ Robot GNU – permainan kecil tetapi sungguh menagihkan untuk pengaturcara-pengaturcara komputer
	+ GSL – Pustaka Sains GNU
	+ GNUstep – pelaksanaan piawai OpenStep untuk sebuah set alat pustaka dan pembangunan bagi penggunaan grafik
	+ Guile – pentafsir bahasa pengaturcaraan skim tersirat

Projek GNU juga mengedarkan dan memberi bantuan untuk pembangunan pakej-pakej lain yang berasal dari tempat yang lain, umpamanya:

* DDD – bahagian depan grafik untuk penyahpepijat
* eCos – sistem pengendalian kecil untuk peranti-peranti tersirat
* CVS – kawalan kod sumber

Sejak Januari 2005, terdapatnya sejumlah 288 pakej GNU yang dihoskan dalam tapak pengehosan GNU 
. Yang lain dihoskan di tempat yang lain.

Edaran GNU
----------

* Bee GNU/Hurd  Diarkibkan 2005-03-05 di Wayback Machine
* Debian GNU/Hurd
* Gentoo Tak Rasmi/Projek Hurd [*pautan mati kekal*]
* Superunprivileged.org's *CD Hurd Berbut*
* GNUAB Distro CD mini
* Gnuppix - yang menggunakan Hurd GNU untuk dilaksanakan atas inti mikro L4.

### Edaran GNU yang menggunakan inti Linux

Rencana utama: GNU/Linux
Ini merupakan kelainan GNU yang terpopular. Terdapatnya melebihi 300 edaran berdasarkan GNU dengan inti Linux. Sebilangan daripadanya yang paling banyak digunakan ialah:

* Debian
* Red Hat
* Ubuntu
* Linux SuSE
* Linux Mandriva
* Gentoo Linux
* Slackware

Senarai lengkap boleh didapati di Distrowatch.com

### Edaran GNU yang menggunakan inti \*BSD

* FreeBSD
* NetBSD
* OpenBSD

### Edaran GNU yang menggunakan inti Solaris

* GNU/Solaris: Nexenta

Lihat juga
----------

|  |  |
| --- | --- |
|  | Wikimedia Commons mempunyai media berkaitan: ***GNU***. |

* Yayasan Perisian Bebas
* Gerakan perisian bebas
* Kandungan bebas
* Piawai-piawai terbuka
* Hak cipta replika (copyleft)
* Lesen Dokumentasi Bebas GNU
* Senarai pakej-pakej GNU

Pautan luar
-----------

* Laman web rasmi GNU
* Lajukan kod anda dengan Pemprofil GNU
* Senarai mel serta perbincangan teknikal mengenai sistem GNU
* Pengumuman Stallman mengenai projek GNU pada tahun 1983
* Stallman memberikan pemerian peribadi yang terperinci mengenai projek dan sejarahnya
* *Ensiklopedia Sejagat Bebas dan Sumber Pembelajaran*, esei Stallman mengenai ensiklopedia GNU
* Port-port utiliti-utiliti GNU untuk Microsoft Windows
* Savannah - Perkhidmatan-perkhidmatan pembangun GNU, dengan capaian untuk perisian-perisian seperti CVS yang serupa dengan SourceForge.
* Richard Stallman terhadap hari jadi GNU yang ke-15 Diarkibkan 2006-02-15 di Wayback Machine
* Komuniti Perisian Bebas Selepas 20 Tahun: Dengan kejayaan yang amat besar tetapi tidak sempurna, apa sekarang?
* Wiki HURD Diarkibkan 2007-08-10 di Wayback Machine
* Simposium Mini Pembangun-pembangun Hurd FOSDEM 2005
* CD Berbut Hurd GNU

| * l
* b
* s
Projek GNU |
| --- |
| Sejarah | 
 GNU Manifesto **·**  Yayasan Perisian Bebas **·**  Sejarah perisian bebas  | GNU bukan gnu |
| Lesen | 
 Lesen Awam Am GNU **·**  Lesen Awam Am Lemah GNU **·**  Lesen Awam Am Affero **·**  Lesen Dokumentasi Bebas GNU **·**  Kekecualian penghubungan GPL  |
| Perisian | 
 GNU (varian) **·**  Hurd **·**  GNOME **·**  Gnuzilla **·**  IceCat **·**  Gnash **·**  Bash **·**  GCC **·**  GNU Emacs **·**  glibc **·**  Coreutils **·**  Build system **·**  Pakej dan program GNU lain  |
| Penceramah | 
 Robert J. Chassell **·**  Loïc Dachary **·**  Ricardo Galli **·**  Georg C. F. Greve **·**  Federico Heinz **·**  Benjamin Mako Hill **·**  Bradley M. Kuhn **·**  Eben Moglen **·**  Richard Stallman **·**  John Sullivan **·**  Leonard H. Tower Jr.  |
| Topik lain | 
 GNU/Linux naming controversy **·**  Revolution OS  |

| * l
* b
* s
Sistem pengendalian ala UNIX |
| --- |
| A/UX · AIX · BSD · FreeBSD · GNU · HP-UX · IRIX · Linux · Mac OS X · Minix · NetBSD · NEXTSTEP · OpenBSD · QNX · Pelayan Terbuka SCO · Solaris · Sistem V · Tru64 · Xenix · *lagi…* |

| * l
* b
* s
Sistem pengendalian |
| --- |
| Am | Sejarah · Garis masa · Perkembangan · Perbandingan · Bahagian penggunaan |
| Inti | 

|  |  |
| --- | --- |
| Am | Mikrointi · Nanointi |
| Jenis | Monolit · Hibrid · Eksointi |
| Komponen | Ruang inti · Loadable kernel module · Pemacu peranti · Ruang pengguna · Pelayan |

 |
| Pengurusan proses | Proses · Multipengaturcaraan · Sampukan · Mod: (Mod terlindung · Mod penyelia) · Multitugas · Penjadualan · Pertukaran konteks · Multitugas koperatif · Multitugas keutamaan · Jalur |
| Pengurusan ingatan | Perlindungan ingatan · Pensegmenan · Penghalaman · Unit pengurusan ingatan · Kerosakan pensegmenan · Kerosakan pelindungan umum |
| Contoh | AmigaOS · BeOS · IBM OS/2 · MS-DOS · Windows · Linux · UNIX · OpenSolaris · Mac OS X · ReactOS · *lagi…* |
| Konsep lain | But · PXE · API · Sistem fail maya · Pustaka pita maya · Rangkaian · CLI · GUI · HAL |