Belajar Linux OS - #2 Kernel
Tags: indonesia, linux, beginners
Published: 2021-10-02 13:46:18

Kernel adalah inti dari Linux OS dan kernel juga kadang-kadang disebut "Linux" itu sendiri.

Kernel bekerja mengatur processor komputer, memory dan device-device yang tersambung ke komputer seperti DVD Drive, USB Drive, keyboard, dll.

Ketika hacker membuat malware yang menginfeksi dan merusak kernel Linux, menyebabkan yang namanya "Kernel Panic" dan itu nggak main-main btw.

Untuk mengetahui nama dan detail dari sistem operasi Linux, kita bisa pake perintah berikut (salah satu).
1. `uname -r` dan `uname -a`
2. `lsb_release -a`
3. `cat /etc/os-release`
4. `cat /proc/version`
5. `dmesg | grep 'Linux'`

Kita coba bedah satu-satu.

1. `uname -r` dan `uname -a`
```
$ uname -r
4.4.0-193-generic
$ uname -a
Linux host01 4.4.0-193-generic #224-Ubuntu SMP Tue Oct 6 17:15:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
```
Ketika kita mengetikkan perintah `uname` atau `uname -s`, akan muncul sistem operasi yang kita gunakan sekarang adalah **Linux**.
Lalu, dari output perintah `uname -a`, akan muncul seperti di atas.
`Linux` berarti nama kernelnya adalah **Linux**.
`host01` berarti hostname-nya adalah **host01**.
`4.4.0-193-generic` berarti:
4 - versi Kernel
4 - versi Major
0 - versi Minor
193 - Bug fix
generic - Ini tergantung dari distribusi Linux (distro) yang sedang kita pakai. Dalam konteks Ubuntu, `generic` berarti **desktop untuk versi desktop** dan **server untuk versi server**
Teks `#224-Ubuntu` berarti versi kernel Linux telah di-_compile_ sebanyak 224 kali.
Teks `SMP Tue Oct 6 17:15:28 UTC 2020` adalah timestamp terakhir ketika kernel selesai di-_compile_.
Lalu tiga angka selanjutnya (`x86_64 x86_64 x86_64`) mewakili arsitektur dari komputer, arsitektur dari processor dan arsitektur dari sistem operasi.
Terakhir, `GNU/Linux` berarti sistem operasi yang kita pakai adalah **Linux OS**.

2. `lsb_release -a`
```
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.7 LTS
Release:        16.04
Codename:       xenial
```
Kita juga bisa mengetikkan perintah `lsb-release -a` lalu akan muncul seperti di atas.
`LSB` berarti **Linux Standard Base** dan mengetikkan perintah di atas akan menghasilkan informasi spesifik tentang OS, seperti Distributor, Deskripsi dari Release number dan codename yang dimiliki oleh versi Linux OS yang kita pakai sekarang.

3. `cat /etc/os-release`
```
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.7 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.7 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
```
Kita juga bisa mengetikkan perintah `cat` untuk mencari tahu informasi tentang kernel Linux.
Perintah `cat` berarti **Concatenate (read=baca)** file-file dan memunculkan hasilnya ke standard output (layar monitor).

4. `cat /proc/version`
```
$ cat /proc/version
Linux version 4.4.0-193-generic (buildd@lgw01-amd64-024) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ) #224-Ubuntu SMP Tue Oct 6 17:15:28 UTC 2020
```
5. `dmesg | grep 'Linux'`
```
$ dmesg | grep 'Linux'
[    0.000000] Linux version 4.4.0-193-generic (buildd@lgw01-amd64-024) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ) #224-Ubuntu SMP Tue Oct 6 17:15:28 UTC 2020 (Ubuntu 4.4.0-193.224-generic 4.4.236)
```
Cara terakhir yang bisa kita pakai buat cari tau informasi dari kernel dengan menggunakan 2 perintah Linux ini - `dmesg` dan `grep`.
`dmesg` adalah perintah untuk mengekstrak dan menampilkan _messages_ dari kernel dan
perintah `grep` digunakan untuk mencari dan menampilkan teks yang ingin dicari.
Misalnya kita ingin menampilkan informasi kernel, kita tinggal mengetikkan perintah `dmesg | grep 'Linux'` untuk memfilter baris yang terdapat kata `Linux`.
Seharusnya informasi tentang kernel akan muncul di monitor kita.