GNU Hurd
![]() | |
![]() Debian GNU Hurd | |
Perusahaan / pengembang | Proyek GNU Thomas Bushnell Roland McGrath Marcus Brinkmann Neal Walfield |
---|---|
Diprogram dalam | Assembly, C |
Keluarga | bertipe Unix |
Status terkini | Sekarang |
Model sumber | Perangkat Lunak Bebas |
Repositori |
![]() |
Kernel type | Mikrokernel klien/server |
Ruang pengguna | GNU dan lainya |
Antarmuka bawaan | Bash |
Lisensi | Lisensi Publik Umum GNU |
Situs web resmi | www |
GNU Hurd adalah sebuah kernel sistem operasi yang dirancang sebagai pengganti Unix,[1] dirilis sebagai perangkat lunak bebas dibawah Lisensi Publik Umum GNU (GPL). Telah dalam pengembangan sejak tahun 1990 oleh Proyek GNU dari Yayasan Perangkat Lunak Bebas.
GNU Hurd terdiri dari satu set protokol dan proses server (atau daemon, di dalam terminologi Unix) yang berjalan pada GNU Mach mikrokernel; bersama-sama mereka dimaksudkan untuk membentuk kernel dari sistem operasi GNU.[1] Hurd bertujuan untuk melampaui sistem operasi Unix dalam fungsi, keamanan, dan stabilitas, sedangkan sisanya sebagian besar agar kompatibel dengan Unix. Proyek GNU memilih mikrokernel, arsitektur Server-kilen untuk sistem operasi mereka, karena memiliki keuntungan dibanding arsitektur kernel monolitik tradisional Unix.[2]
Nama dan Logo
Pada Desember 1991, arsitek utama dari Hurd, menjelaskan arti akronim berulang dari nama Hurd:[3]
Sudah waktunya [untuk] menjelaskan arti "Hurd". "Hurd" adalah singkatan dari "Hird of Unix-Replacing Daemons". Dan kemudian "Hird" adalah singkatan dari "Hurd of Interfaces Representing Depth". Menurut pengetahuan saya, ini adalah Perangkat Lunak pertama yang diberi nama sepasang akronim berulang.
— Thomas Bushnell
Karena kedua hurd dan hird hanya ejaan alternatif untuk kawanan dalam bahasa inggris, nama lengkap GNU Hurd juga merupakan plesetan dari kata kawanan dari gnu atau herd of gnus, yang mencerminkan bagaimana kernel bekerja. Logo Hurd disebut juga Hurd kotak dan juga mencerminkan arsitekturnya.[4] Logo Hurd adalah grafik dimana node mewakili server Hurd kernel dan tepi yang diarahkan adalah pesan IPC.[3]
Karena keadaan teknologi mikrokernel, singkatan rekursif ganda kadang-kadang disebut oleh para ahli sebagai fitur yang paling menarik dari GNU Hurd.[5][membutuhkan kutipan untuk dapat dipastikan]
Sejarah Perkembangan
Richard Stallman mendirikan Proyek GNU pada September 1983 dengan tujuan membuat sebuah sistem operasi GNU yang bebas. Awalnya komponen yang diperlukan untuk kernel dan pengembangan adalah: penyunting, shell, kompilator dan lain-lain. Pada tahun 1989, GPL dibentuk dan satu-satunya komponen utama yang hilang adalah kernel.[6][7]
Pembangunan di Hurd dimulai pada tahun 1990 setelah upaya penulisan kernel ditinggalkan pada tahun 1986, berdasarkan penelitian sistem operasi TRIX yang dikembangkan oleh Profesor Steve Ward dan kelompoknya di Laboratorium Komputer MIT.[8] Menurut Thomas Bushnell, arsitek utama Hurd, Rencana awal mereka adalah untuk mengadaptasi kernel 4.4BSD-Lite dan belakangan ia berpendapat, "Sekarang sangat jelas bagi saya bahwa proyek ini akan berhasil dan dunia akan menjadi tempat yang sangat berbeda hari ini".[9] Pada tahun 1987 Richard Stallman mengusulkan untuk menggunakan Mach mikrokernel yang dikembangkan di Carnegie Mellon University. Usaha ini telah tertunda selama tiga tahun karena ketidakpastian mengenai apakah CMU akan merilis kode Mach bawah lisensi yang sesuai.[8]
Dengan dirilisnya kernel Linux pada tahun 1991, komponen utama ruang pengguna GNU segera menjadi sistem operasi berbasis kernel Linux (distribusi Linux s), hal ini mendorong kontroversi penamaan GNU/Linux.
Pengembangan Hurd berjalan dengan lambat. Meskipun pengumuman optimis oleh Stallman pada tahun 2002 memprediksi rilis GNU/Hurd akhir tahun itu,[10] Hurd masih belum dianggap cocok untuk lingkungan produksi. Pembangunan pada umumnya belum memenuhi harapan, dan masih ada bug dan fitur yang hilang.[11] Hal ini telah menghasilkan produk yang lebih buruk daripada yang banyak orang (termasuk Stallman) harapkan.[12] Pada tahun 2010, setelah dua puluh tahun dalam pengembangan, Stallman mengatakan bahwa ia "tidak terlalu optimis" tentang GNU Hurd. Telah ada beberapa kemajuan, tetapi harus benar-benar unggul untuk pemecahan banyak masalah", tetapi ia menambahkan bahwa "penyelesaiannya tidak penting" untuk sistem GNU karena kernel bebas sudah ada di Linux, dan menyelesaikan Hurd tidak akan mengatasi masalah utama yang tersisa untuk sistem operasi bebas yaitu dukungan perangkat.[13]
Proyek Debian, di antara yang lain, telah bekerja pada proyek Hurd untuk menghasilkan distribusi Hurd berbasis sistem operasi GNU untuk sistem yang kompatibel dengan IBM PC.
Arsitektur
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/67/OS-structure.svg/450px-OS-structure.svg.png)
Tidak seperti kebanyakan kernel Unix lain, Hurd menggunakan arsitektur client-server, dibangun di atas Mikrokernel yang bertanggung jawab untuk menyediakan layanan kernel yang paling dasar - akses koordinasi ke perangkat keras: CPU (melalui manajemen proses dan penjadwalan), RAM (melalui manajemen memori), dan berbagai input/output perangkat (via penjadwalan I/O) untuk suara, grafis, penyimpanan massal, dll. Dalam teori desain Mikrokernel akan memungkinkan untuk semua driver perangkat dibuat sebagai server yang bekerja di ruang pengguna, tapi sekarang sebagian besar driver semacam ini masih terdapat di dalam ruang kernel GNU Mach.[14]
Menurut para pengembang Hurd keuntungan utama dari desain berbasis mikrokernel adalah kemampuan untuk memperluas sistem: membuat modul baru tidak membutuhkan pengetahuan yang dalam tentang seluruh kernel dan sebuah bug di dalam modul tidak akan merusak seluruh sistem. Hurd menyediakan sebuah kosep penerjemah, yaitu sebuah kerangka dari modul untuk memperluas fungsi sebuah file system.[15]
Dari awal, Hurd dikembangkan dengan GNU Mach sebagai Mikrokernel. Ini adalah sebuah keputusan teknis yang dibuat oleh Richard Stallman, yang mengira akan mempercepat pengerjaan. Dia mengakui bahwa ia salah tentang hal itu.[16] Sistem bertipe-Unix yang juga mengerjakan mikrokernel Mach adalah OSF/1, Lites, dan MkLinux. Mac OS X dan NeXTSTEP menggunakan kernel hibrida berdasarkan Mach.
Mikrokernel lain
Mulai tahun 2004, berbagai usaha telah dilakukan untuk memindahkan Hurd ke mikrokernel yang lebih modern. mikrokernel L4 adalah pilihan sebenarnya pada tahun 2004, namun kemajuannya lambat dan akhirnya berhenti. Namun, selama tahun 2005, pengembang Hurd Neal Walfield menyelesaikan kerangka manajemen memori awal L4 untuk Hurd, dan Marcus Brinkmann memindahkan bagian penting dari glibc; yaitu, membuat proses kode startup bekerja, yang memungkinkan program berjalan, sehingga memungkinkan program pertama pengguna (contohnya seperti program hallo dunia dalam bahasa C) untuk berjalan.
Sejak tahun 2005 Brinkmann dan Walfield mulai meneliti Coyotos sebagai baru untuk HURD.[17][18] Pada tahun 2006, Brinkmann bertemu dengan Jonathan Shapiro (seorang arsitek utama Sistem Operasi Coyotos) untuk membantu dan mendiskusikan penggunaan kernel Coyotos untuk GNU/Hurd. Dalam diskusi lebih lanjut pengembang HURD menyadari bahwa Coyotos (serta kernel lain yang serupa) tidak cocok untuk HURD.
Pada tahun 2007, pengembang Hurd Neal Walfield dan Marcus Brinkmann memberikan kritik tentang arsitektur Hurd, yang dikenal sebagai "kritik",[19] dan proposal untuk bagaimana sistem masa depan dapat dirancang, dikenal sebagai "kertas posisi".[20] Pada tahun 2008, Neal Walfield mulai bekerja pada mikrokernel Viengoos sebagai kernel modern asli untuk HURD. Hingga 2009[update], perkembangan Viengoos karena Walfield tidak punya waktu untuk mengerjakannya.[21]
Sementara itu, yang lain terus bekerja pada varian Mach untuk Hurd.[22]
Tambahan Unix
Sejumlah konsep tradisional Unix diganti atau diperpanjang di Hurd.
Di dalam Unix, setiap program yang berjalan memiliki asosiasi id pengguna, yang biasanya sesuai dengan pengguna yang memulai proses. Id ini sebagian besar menentukan tindakan yang diizinkan untuk program. Tidak ada proses luar dapat mengubah id pengguna dari program berjalan. Sebuah proses Hurd, di sisi lain, berjalan dibawah beberapa pasang id pengguna, yang dapat berisi beberapa id, satu, atau tidak ada. Sebuah proses yang cukup istimewa dapat menambah dan menghapus id ke proses lain. Misalnya ada server password yang akan memberikan id dengan memasukan password login yang benar.
Mengenai sistem berkas, program yang sesuai dapat ditunjuk sebagai penerjemah untuk satu berkas atau seluruh bagan direktori. Setiap akses ke berkas yang telah diterjemahkan, atau file dibawah bagan direktor dalam kasus lain, sebenarnya ditangani oleh program. untuk contoh berkas penerjemah mungkin mengarahkan operasi membaca dan menulis ke file lain, tidak seperti tautan simbolis Unix.
Hurd membutuhkan pengebut/bootloader yang mampu multiboot, seperti GRUB.
Distribusi GNU yang menggunakan Hurd
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/Debian_GNU_HURD_XFCE_desktop_screenshot.png/220px-Debian_GNU_HURD_XFCE_desktop_screenshot.png)
Distribusi GNU berbasis Hurd yaitu:
- Arch Hurd
- Debian GNU/Hurd
- NixOS[23][24]
- Bee GNU/Hurd (dihentikan)
- Gentoo GNU Hurd (dihentikan)
- GNU/Hurd Live CD[25] (dihentikan)
Referensi
- ^ a b "What Is the GNU Hurd?". GNU. Diarsipkan dari versi asli tanggal 2011-09-02. Diakses tanggal 2010-03-04.
- ^ "advantages". GNU. Diarsipkan dari versi asli tanggal 2023-03-15. Diakses tanggal 2011-12-07.
- ^ a b Vervloesem, Koen (July 7, 2010). "The Hurd: GNU's quest for the perfect kernel". LWN.net. Diarsipkan dari versi asli tanggal 2020-11-09. Diakses tanggal October 5, 2012.
- ^ "GNU Hurd: Origin of the Name". GNU. Diarsipkan dari versi asli tanggal 2011-09-02. Diakses tanggal 2010-03-04.
- ^ Doeppner, Thomas W. "Operating System Design." Computer Science 167. Brown University. Providence, RI, Oct 1, 2011.
- ^ Hillesley, Richard (June 30, 2010). "GNU HURD: Altered visions and lost promise". Diarsipkan dari versi asli tanggal 2023-06-07. Diakses tanggal October 1, 2012.
- ^ "Linux and the GNU Project". GNU. 2010-01-26. Diarsipkan dari versi asli tanggal 2011-06-29. Diakses tanggal 2010-03-04.
- ^ a b "The GNU Hurd History, "How it Started"". GNU. Diarsipkan dari versi asli tanggal 2023-07-10. Diakses tanggal 2006-08-27.
- ^ Salus, Peter H. "The Daemon, the GNU and the Penguin". Diarsipkan dari versi asli tanggal 2023-07-10. Diakses tanggal 2006-08-08. Tidak memiliki atau membutuhkan
|url=
(bantuan); Parameter|chapter=
akan diabaikan (bantuan) - ^ Ribeiro, John (2002-03-11). "Free Software Sees GNU Loose of Linux". PC World. Diarsipkan dari versi asli tanggal 2016-09-22. Diakses tanggal 2012-10-05.
- ^ "Status". GNU. Diarsipkan dari versi asli tanggal 2023-06-25. Diakses tanggal 2010-03-04.
- ^ Stallman, Richard (2006-03-09). "The Free Software Movement and the Future of Freedom" (ogg). Free Software Foundation. Zagreb. Diarsipkan dari versi asli tanggal 2010-08-02. Diakses tanggal 2013-05-05. Ringkasan.
This is the way, also, that people thought was the cleanest possible way to design kernels back in 1990. Well, 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.
- ^ Stallman, Richard (2010-07-29). "RMS AMA". Reddit. Diarsipkan dari versi asli tanggal 2011-07-15. Diakses tanggal 2011-12-07.
- ^ Kousoulos, Constantine (2007-03-21). "Re: Device drivers in Mach?". bug-hurd mailing list. http://lists.gnu.org/archive/html/bug-hurd/2007-03/msg00089.html.
- ^ Thomas W. Doeppner (20 December 2010). Sistem Operasi In Depth: Design and Programming. John Wiley & Sons. hlm. 160. ISBN 978-0-471-68723-8. Diarsipkan dari versi asli tanggal 2023-07-26. Diakses tanggal 29 November 2012.
- ^ Stallman, Richard (2000-10-12). "In Defense of Red Hat". Linux Today. Diarsipkan dari versi asli tanggal 2021-06-23. Diakses tanggal 2011-12-07.
I take full responsibility for the technical decision to develop the GNU kernel based on Mach, a decision which seems to have been responsible for the slowness of the development. I thought using Mach would speed the work by saving us a large part of the job, but I was wrong.
- ^ Shapiro, Jonathan S. (2005-10-27). "Re: A comment about changing kernels". l4-hurd mailing list. http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00755.html.
- ^ Bachmann, Tom (2006-07-07). "Re: seL4, L4.sec and coyotos mess". l4-hurd mailing list. http://lists.gnu.org/archive/html/l4-hurd/2006-07/msg00004.html.
- ^ Walfield, Neal H.; Brinkmann, Marcus (2007-07). "A Critique of the GNU Hurd Multi-server Operating System" (PDF). GNU. Diarsipkan (PDF) dari versi asli tanggal 2015-11-05. Diakses tanggal 2011-12-07. Periksa nilai tanggal di:
|date=
(bantuan) - ^ Walfield, Neal H.; Brinkmann, Marcus (2007-01-04). "Improving Usability via Access Decomposition and Policy Refinement" (PDF). GNU. Diarsipkan (PDF) dari versi asli tanggal 2011-10-05. Diakses tanggal 2011-12-07.
- ^ "viengoos". GNU. Diarsipkan dari versi asli tanggal 2010-12-23. Diakses tanggal 2010-03-04.
- ^ "What happened to the L4/Coyotos/viengoos micro-kernels?". GNU. Diarsipkan dari versi asli tanggal 2023-06-08. Diakses tanggal 2011-01-07.
- ^ nixos.org Diarsipkan 2018-01-09 di Wayback Machine.
- ^ lunak/hurd/hurd/running/nix.html "Nix-based GNU/Hurd System" Periksa nilai
|url=
(bantuan). Gnu.org. 2012-03-21. Diakses tanggal 2012-07-12. [pranala nonaktif permanen] - ^ lunak/hurd/hurd/running/live_cd.html "GNU Hurd/ hurd/ running/ live cd" Periksa nilai
|url=
(bantuan). Diakses tanggal November 19, 2012. [pranala nonaktif permanen]
<ref>
dengan nama "debian-hurd-doc" yang didefinisikan di <references>
tidak digunakan pada teks sebelumnya.Pranala luar
- Situs web resmi
- GNU Hurd - Pelajaran dan Prespektif di Google Videos (video Adobe Flash) oleh Marcus Brinkmann
- l
- b
- s
![GNU bukanlah gnu](http://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Heckert_GNU_white.svg/64px-Heckert_GNU_white.svg.png)