Karena akses terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing.
Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programer.
Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah program dapat saja langsung di- load dan dijalankan diatas mesin ‘telanjang’ komputer, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin berpindah dari satu program ke program lain, kita harus mereset dan meload kembali program-program tersebut.
Ada 4 kategori kernel:
1. Monolithic kernel. Kernel yang menyediakan abstraksi perangkat keras yang kaya dan tangguh.
2. Microkernel. Kernel yang menyediakan hanya sekumpulan kecil abstraksi perangkat keras sederhana, dan menggunakan aplikasi-aplikasi yang disebut sebagai server untuk menyediakan fungsi-fungsi lainnya.
3. Hybrid (modifikasi dari microkernel). Kernel yang mirip microkernel, tetapi ia juga memasukkan beberapa kode tambahan di kernel agar ia menjadi lebih cepat.
4. Exokernel. Kernel yang tidak menyediakan sama sekali abstraksi hardware, tapi ia menyediakan sekumpulan pustaka yang menyediakan fungsi-fungsi akses ke perangkat keras secara langsung atau hampir-hampir langsung.
Dari keempat kategori kernel yang disebutkan diatas, kernel Linux termasuk kategori monolithic kernel. Kernel Linux berbeda dengan sistem Linux. Kernel Linux merupakan sebuah perangkat lunak orisinil yang dibuat oleh komunitas Linux, sedangkan sistem Linux, yang dikenal saat ini, mengandung banyak komponen yang dibuat sendiri atau dipinjam dari proyek pengembangan lain.
Kernel Linux pertama yang dipublikasikan adalah versi 0.01, pada tanggal 14 Maret 1991. Sistem berkas yang didukung hanya sistem berkas Minix. Kernel pertama dibuat berdasarkan kerangka Minix (sistem UNIX kecil yang dikembangkan oleh Andy Tanenbaum). Tetapi, kernel tersebut sudah mengimplementasi proses UNIX secara tepat.
Pada tanggal 14 Maret 1994 dirilis versi 1.0, yang merupakan tonggak sejarah Linux. Versi ini adalah kulminasi dari tiga tahun perkembangan yang cepat dari kernel Linux. Fitur baru terbesar yang disediakan adalah jaringan. Versi 1.0 mampu mendukung protokol standar jaringan TCP/IP. Kernel 1.0 juga memiliki sistem berkas yang lebih baik tanpa batasan-batasan sistem berkas Minix. Sejumlah dukungan perangkat keras ekstra juga dimasukkan ke dalam rilis ini. Dukungan perangkat keras telah berkembang termasuk diantaranya floppy-disk, CD-ROM, sound card, berbagai mouse, dan keyboard internasional. Dukungan juga diberikan terhadap modul kernel yang loadable dan unloadable secara dinamis.
Satu tahun kemudian dirilis kernel versi 1.2. Kernel ini mendukung variasi perangkat keras yang lebih luas. Pengembang telah memperbaharui networking stack untuk menyediakan support bagi protokol IPX, dan membuat implementasi IP lebih lengkap dengan memberikan fungsi accounting dan firewalling. Kernel 1.2 ini merupakan kernel Linux terakhir yang PC-only. Konsentrasi lebih diberikan pada dukungan perangkat keras dan memperbanyak implementasi lengkap pada fungsi-fungsi yang ada.
Pada bulan Juni 1996, kernel Linux 2.0 dirilis. Versi ini memiliki dua kemampuan baru yang penting, yaitu dukungan terhadap multiple architecture dan multiprocessor architectures. Kode untuk manajemen memori telah diperbaiki sehingga kinerja sistem berkas dan memori virtual meningkat. Untuk pertama kalinya, file system caching dikembangkan ke networked file systems, juga sudah didukung writable memory mapped regions. Kernel 2.0 sudah memberikan kinerja TCP/IP yang lebih baik, ditambah dengan sejumlah protokol jaringan baru. Kemampuan untuk memakai remote netware dan SMB (Microsoft LanManager) network volumes juga telah ditambahkan pada versi terbaru ini. Tambahan lain adalah dukungan internal kernel threads, penanganan dependencies antara modul-modul loadable, dan loading otomatis modul berdasarkan permintaan (on demand). Konfigurasi dinamis dari kernel pada run time telah diperbaiki melalui konfigurasi interface yang baru dan standar.
Semenjak Desember 2003, telah diluncurkan Kernel versi 2.6, yang dewasa ini (2008) telah mencapai patch versi 2.6.26.1 (
http://kambing.ui.edu/kernel-linux/v2.6/). Hal-hal yang berubah dari versi 2.6 ini ialah:
* Subitem M/K yang dipercanggih.
* Kernel yang pre-emptif.
* Penjadwalan Proses yang dipercanggih.
* Threading yang dipercanggih.
* Implementasi ALSA (Advanced Linux Sound Architecture) dalam kernel.
* Dukungan sistem berkas seperti: ext2, ext3, reiserfs, adfs, amiga ffs, apple macintosh hfs, cramfs, jfs, iso9660, minix, msdos, bfs, free vxfs, os/2 hpfs, qnx4fs, romfs, sysvfs, udf, ufs, vfat, xfs, BeOS befs (ro), ntfs (ro), efs (ro).
5.pemilihan aplikasi server
| 1 | Web Server | Menampilkan informasi perusahaan Aplikasi multiguna berbasis web seperti ERP (Enterprise Resource Planning) dan CMS (Content Management System) |
| 2 | FTP (File Transfer Protocol) Server | Melayani transaksi data kapasitas besar |
| 3 | SMTP (Simple Mail Transfer Protocol) | Melayani pengiriman surat elektronik |
| 4 | Proxy Server | Menyimpan halaman web yang pernah diakses oleh user |
| 5 | SNMP (Simple Network Management Protocol) | Monitoring trafik jaringan TCP/IP |
| 6 | IRC (Internet Relay Chat) | Chatting server |
| 7 | POP3 (Post Office Protocol version 3) | Melayani transfer surat elektronik dari mail server ke mail user agent, seperti: outlook express dan evolution |
| 8 | VPN (Virtual Private Network) Server | Melayani tunneling aplikasi vpn client, memberikan IP lokal komputer yang berbeda lokasi sehingga tetap dalam satu subnet |
| 9 | VoIP (Voice over Internet Protocol) Server | Melayani percakapan suara jarak jauh melalui media internet |
| 10 | Database Server | Menyediakan layanan pengelolaan basis data dan melayani komputer atau program aplikasibasis data yang menggunakan model klien/server |
| 11 | Remote Server | Melayani kontrol komputer server jarak jauh melalui jaringan |
| 12 | DHCP (Dynamic Host Configuration Protocol) Server | Layanan yang dapat “menyewakan” alamat IP dan informasi TCP/IP lainnya kepada semua klien yang memintanya |
| 13 | DNS (Domain Name System) Server | Layanan menerjemahkan alamat domain sebuah komputer ke dalam bentuk IP |
| 14 | Software Server | Layanan yang digunakan untuk menjalankan suatu software applikasi berbasis jaringan |
| 15 | Streaming Media Server/Server Audio/Server Multimedia | Melayani servis streaming data media seperti musik, video tanpa harus mendownload terlebih dahulu |
| 16 | Groupware Server | Software yang dirancang yang memungkinkan pengguna untuk bekerja sama, terlepas dari lokasi, melalui Internet atau intranet perusahaan dan berfungsi bersama-sama dalam suasana virtual |
| 17 | Game Server | Layanan yang digunakan untuk pusat untuk menghubungkan antar pemain (client) dengan pemain yang lainnya |
| 18 | Home Server | Merupakan layanan yang khusus bagi pengguna rumah yang membutuhkan layanan seperti home entertainment. Komputer ini bisa juga ditambah layanan servis lainnya seperti printing servis, web servis, maupun file servis sebagai backup data |
6.sistem operasi untuk keutuhan komputer server
Server adalah perangkat jaringan yang memberikan layanan terhadap pengguna. Server melayani pengguna dengan handal dan harus bisa melakukanya setiap saat. Maka analisa terhadap kebutuhan server untuk bisa memenuhi tugasnya sangat dibutuhkan.
Server yang lemah, tidak sesuai, dan tidak handal, bisa membuat kerugian yang besar. Oleh karena itu, ada beberapa faktor yang harus dipertimbangkan sebelum membuat sebuah server.
Server harus disesuaikan berdasarkan kebutuhan kesesuaian dengan hardware jaringan yang lainya, aktifitas bisnis yang dilakukanya, jumlah pengguna yang dilayaninya, juga harus dilengkapi dengan software yang mendukung kinerja hardware secara optimal, handal, dan terjamin.
Server adalah komputer sentral atau komputer pusat yang berfungsi untuk menyediakan jenis layanan (service) tertentu yang dibutuhkan oleh client dalam sebuah jaringan komputer. Server juga berfungsi menjalankan perangkat lunak administratif yang mengontrol akses terhadap jaringan dan sumber daya yang terdapat di dalamnya, seperti halnya berkas atau alat pencetak (printer), dan memberikan akses kepada workstation atau komputer yang terhubung ke server. Komputer Server biasanya didukung dengan prosesor yang bersifat scalable dan RAM yang besar, juga dilengkapi dengan sistem operasi khusus, yang disebut sebagai sistem operasi jaringan (network operating system).
Tugas utama server adalah melayani komputer client atau merespon setiap request atau permintaan dari komputer client. fungsi dari server itu sendiri sangat dipengaruhi oleh jenis server sebagai berikut:
1. Server Aplikasi
Server yang digunakan untuk menyimpan dan menjalankan berbagai macam aplikasi yang dapat diakses oleh client.
2. Server Data
Server jenis ini di gunakan untuk menyimpan berbagai data , baik data yang belum diolah ataupun data yang sudah diolah menjadi informasi. data ini dapat di akses oleh client dengan bantuan aplikasi yang ada di server.
3. Server Proxy
Sedangkan Server proxy berfungsi untuk mengatur lalu lintas di jaringan melalui pengaturan proxy. Orang awam lebih mengenal proxy server untuk mengkoneksikan komputer client ke Internet.
4. Telnet Server
Melakukan remote komputer dengan melakukan log in dan log out sebuah komputer host.
5. Virtual Server
Membuat jumlah server fisik, seolah-olah menjadi beberapa server.
6. Web Server
Memberikan konten pada ke web browser untuk berkomunikasi dengan menggunakan HTTP (Hypertext Transfer Protocol).
7. Server Audio dan Video
Memberikan fitur multimedia pada sebuah situs web untuk menyiarkan streaming konten multimedia.
8. File Transfer Protocol Server
FTP server digunakan untuk transfer data dalam jaringan.
9. Server Aplikasi
Berfungsi untuk mengolah perintah dalam jaringan antara client dan database.
10. Mail Server
Jenis server yang menangani permasalahan untuk menangani e-mail.
11. News Server