Kernel adalah merupakan suatu inti yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer.
Oleh karena akses terhadap perangkat keras terbatas, sedangkan program yang harus dilayani dalam waktu yang bersamaan bisa lebih dari satu, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut.
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 di-run, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini digunakan pada komputer generasi lama, sehingga apabila ingin berpindah dari satu program ke program lain, pemakai harus me-reset dan me-load kembali program-program tersebut.
Beberapa kernel telah dikembangkan secara mandiri untuk dipergunakan di apapun jenis sistem operasi yang akan mempergunakannya. Sebagai contoh; the Mach kernel dikembangkan di Carnegie-Mellon University dan sekarang ini terpakai pada satu versi dari sistem operasi Linux untuk Apple’s PowerMac computers.
Shell adalah satu unit masukkan untuk interface pemakai untuk berinteraksi dengan satu sistem operasi. Shell adalah lapisan dari program yang mengerti dan melaksanakan perintah satu masukan dari user. Di beberapa sistem operasi, shell dipanggil satu command interpreter. Satu shell biasanya menyiratkan satu interface dengan satu bentuk perintah (command syntax) tertentu yang akan diterima oleh mesin komputer melalui sistemnya. — contohnya pemakaian perintah “dir” , “edit”, “cls” dan lain-lain yang dipakai pada sistem operasi DOS selalu di-input-kan oleh user melalui “C:>”.
Shell merupakan lapisan luar dari satu sistem operasi. Sedangakan kernel sistem operasi merupakan lapisan sebelah dalam atau inti sistem operasi.