Pemograman Linux Layanan Pada Linux

2.3.2. Pemograman Linux

Kebanyakan distribusi Linux mendukung banyak bahasa pemrograman. Koleksi peralatan untuk membangun aplikasi dan program-program sistem operasi yang umum terdapat di dalam GNU toolchain, yang terdiri atas GNU Compiler Collection GCC dan GNU build system. GCC menyediakan kompilator untuk Ada, C, C++, Java, dan Fortran. Kernel Linux sendiri ditulis untuk dapat dikompilasi oleh GCC. Kompilator tak bebas proprietary untuk Linux antara lain adalah Intel C++ Compiler dan IBM XL CC++ Compiler. Kebanyakan distribusi juga memiliki dukungan untuk Perl, Ruby, Python dan bahasa pemrograman dinamis lainnya. Contoh bahasa pemrograman yang tidak umum tetapi tetap mendapat dukungan di Linux antara lain adalah C dengan proyek Mono yang disponsori oleh Novell, dan Scheme. Sejumlah Java Virtual Machine dan peralatan pengembang jalan di Linux termasuk Sun Microsystems JVM HotSpot, dan J2SE RE IBM, serta proyek-proyek sumber terbuka lainnya seperti Kaffe. Dua kerangka kerja utama untuk pengembangan aplikasi grafis di Linux adalah GNOME dan KDE. Proyek-proyek ini berbasiskan GTK+ dan Qt. Keduanya mendukung beragam bahasa pemrograman. Untuk Integrated development environment terdapat Anjuta, Code::Blocks, Eclipse, KDevelop, Lazarus, MonoDevelop, NetBeans, dan Omnis Studio, sedangkan penyunting teks yang telah lama tersedia adalah Vim dan Emacs. Linux adalah sistem operasi yang di-porting secara luas. Kernel Linux awalnya didisain hanya untuk mikroprosesor Intel 80386, sekarang kernel Linux telah jalan di beragam arsitektur komputer antara lain di perangkat hand-held iPAQ berbasis ARM, komputer mainframe IBM System z9, dari peralatan berupa telepon bergerak hingga superkomputer.Terdapat distribusi yang dikhususkan untuk sejumlah kecil arsitektur. Fork kernel ELKS dapat dijalankan di mikroprosesor 16-bit Intel 8086 atau Intel 80286, sementara fork kernel µClinux dapat dijalankan di atas sistem yang tidak memiliki sebuah unit manajemen memori.

2.3.3. Layanan Pada Linux

Pada awalnya Linux memang dirancang sebagai sistem operasi jaringan. Oleh karena itu tidak heran jika banyak sekali program yang berjalan dibackground tidak terlihat di layar monitor program seperti itu disebut dengan daemon. Di Windows kita biasa menyebutnya dengan istilah servicelayanan. Jadi walaupun sepintas tidak ada aktivitas program di layar monitor, tapi sebenarnya komputer tetap menjalankan beberapa program di background. Misalnya saja httpd untuk webserver atau ftpd untuk FTP server. Service merupakan program yang dijalankan oleh komputer untuk melayani request yang ditujukan pada komputer tersebut. Sebagai contoh agar user bisa melakukan telnet ke suatu server maka sever tersebut harus menjalankan service telnetd, karena jika telnetd tidak dijalankan maka server tersebut tidak akan melayani telnet. Kebanyakan service berjalan dengan menggunakan protokol TCP dan UDP dimana masing masing service telah mempunyai nomor port tersendiri sehingga tidak akan terjadi tabrakan antar service. Pada saat pertama kali menginstal Linux, banyak sekali service yang secara default juga terinstal dan berjalan. Sehingga perlu dilakukan pemeriksaan apakah service-service yang telah berjalan tersebut benar-benar dibutuhkan. Jika memang tidak diperlukan sebaiknya service-service tersebut dimatikan untuk mencegah ekploitasi dan pemborosan sumberdaya. Pada Linux juga dikenal tiga jenis service yaitu init service, inet service dan xinet service. Init service merupakan service yang dijalankan oleh script init yang terdapat pada file dalam direktori etcrc.d atau etcrc.dinit.d. Inet service merupakan service yang dijalankan oleh daemon inetd, dimana inetd sendiri dijalankan melalui init service, sedangkan xinetd merupakan pengganti dari inetd yang digunakan pada kernel 2.4.x. yang digunakan untuk menghandle setiap koneksi yang masuk pada masing-masing port. Seperti yang diketahui bahwa service yang ada pada linux berjalan berdasarkan port masing- masing Mematikan semua service mungkin memang cara terbaik untuk menjaga keamanan sistem, tetapi hal tersebut tidak mungkin dilakukan jika komputer tersebut adalah sebuah server, karena untuk melayani request dari klien banyak service yang harus dijalankan. Untuk memudahkan dalam mengambil keputusan apakah sebuah service harus dijalankan atau dimatikan ada beberapa hal yang dapat digunakan sebagai pedoman, yaitu : 1. Sedapat mungkin mengurangi service yang berjalan dengan tanpa mengorbankan fungsi dari komputer tersebut. 2. Jika tidak mengenal suatu service untuk lebih aman sebaiknya dimatikan. 3. Memastikan bahwa service-service tersebut tidak mempunyai hole, dengan melihat referensi dan informasi patch. Untuk melihat service apa saja yang sedang dijalankan bisa digunakan utilitas seperti chkconfig, netstat atau ps.

2.4. Xen Hypervisor