Selasa, 11 Desember 2012

Proses Booting Di Linux

I. Pendahuluan

Sebagai pengguna linux, mungkin sebagian besar dari kita tidak perduli dengan apa yang terjadi ketika booting linux berlangsung. Padahal, di dalam booting kita bisa melihat tentang sistem linux yang kita gunakan, bisa mengubah password, backup dan restore database, dan sebagainya. Maka dari itu tutorial ini mencoba menjelaskan apa yang terjadi di dalam linux ketika peristiwa booting itu berlangsung.

II. Urutan Booting

Secara ringkas, urutan booting pada linux bisa dilihat pada gambar di bawah ini:
alt

1. BIOS: Basic Input/Output System merupakan interface level paling bawah yang menghubungkan antara komputer dan periperalnya. BIOS melakukan pengecekan integritas memori dan mencari instruksi pada? Master Boot Record (MBR) yang terdapat pada floppy drive atau harddisk.

2. MBR menjalankan boot loader. Di linux, boot loader yang sering dipakai adalah LILO (Linux Loader) dan GRUB (GRand Unified Boot loader). Pada Red Hat dan Turunannya menggunakan GRUB sebagai boot loader.

3. LILO/GRUB akan membaca label sistem operasi yang kernelnya akan dijalankan. Pada boot loader inilah sistem operasi mulai dipanggil. Untuk mengkonfigurasi file grub, buka filenya di /boot/grub/grub.conf

4. Setelah itu, tanggung jawab untuk booting diserahkan ke kernel. Setelah itu, kernel akan menampilkan versi dari kernel yang dipergunakan, mengecek status SELinux, menegecek paritisi swap, mengecek memory, dan sebagainya.

5. Kernel yang dipanggil oleh bootloader kemudian menjalankan program init, yaitu proses yang menjadi dasar dari proses-proses yang lain. Ini dikenal dengan nama The First Process. Proses ini mengacu pada script yang ada di file /etc/rc.d/rc.sysinit.

6. Program init kemudian menentukan jenis runlevel yang terletak pada file /etc/inittab. Berdasarkan pada run-level, script kemudian menjalankan berbagai proses lain yang dibutuhkan oleh sistem sehingga sistem dapat berfungsi dan digunakan. Runlevel adalah suatu parameter yang mengatur servis yang akan dijalankan misalnya single user, reboot, shutdown, dan sebagainya. Program yang mengatur runlevel ini adalah init yang terletak pada direktori /etc/inittab. Ini adalah file di /etc/inittab:
alt

Di file tersebut, dapat dilihat jenis-jenis runlevel. Ada 7 jenis runlevel yang bisa digunakan untuk berbagai macam keperluan yang selengkapnya dapat dilihat sebagai berikut:
0: sistem halt
1: Modus single user, untuk maintenance (backup/restore) dan perbaikan
2: Multi user tanpa dukungan jaringan
3: Multiuser dengan dukungan jaringan baerbasis console (text)
4: Tidak digunakan
5: Multiuser dengan dukungan jaringan berbasis grafis
6: reboot

Selanjutnya ada system initialization. Skrip ini berhubungan dengan setiap runlevel. Sebagai contoh, runlevel yang kita gunakan adalah runlevel 3, maka skrip yang digunakan untuk menjalankan runlevel ini ada di directory /etc/rc.d/rc3.d.

Selanjutnya di dalam file tersebut ada skrip seperti berikut:
id:3:initdefault:
pernyataan di atas menunjukkan bahwa ketika system booting, maka sistem akan menggunakan runlevel 3 yaitu system akan menggunakan konsol teks.

Selanjutnya ada skrip yang seperti dibawah ini:
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Ini menjelaskan bahwa setelah penekanan tpombol CTRL-ALT-DELETE, sistem akan tereboot setelah 3 detik.

Skrip selanjutnya berhubungan dengan penggunaan UPS (Uninterruptible Power Supply). Jika kita mempunyai UPS? yang terhubungkan dengan system kita dan listrik mati, maka UPS mengambil alih system kelistrikan system computer. Tetapi UPS hanya bisa menjalankan computer dalam batas waktu tertentu dan proses shutdown akan dimulai selama 2 menit dan memberitahukan pengguna sebagai berikut:
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
perintah ini tidak menjalankan fsck ketika reboot dan ketika mematikan system.
Jika listrik kembali menyala sebelum shutdown dieksekusi, maka perintah berikutnya untuk membatalkan shutdown:
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

Skrip selanjutnya menjelaskan tentang virtual consoles. Virtual consoles adalah baris perintah dimana kita bisa masuk ke system linux. Untuk membuat virtual console yang baru cukup tekan ALT+F2 sampai ALT+F6. Untuk mengkonfigurasi virtual console, maka kita cukup membuka file ini dan secara asal, di file ini hanya tersedia 6 virtual consoles. Kita bisa menambahkan sampai 12 virtual console di dalam system kita.

Skrip terakhir menunjukkan jika kita ingin merubah dari command teks ke GUI. Hal ini bisa dilakukan dengan cara menekan CTRL+ALT+x, dimana x mewakili salah satu dari virtual consoles.

Jika semuanya berjalan normal, maka linux siap untuk proses booting.

Sumber:
www.catatanlepas.com/component/content/article/

PHP



Perbedaan PHP versi 6 dengan versi sebelumnya
  1. Mendukung Unicode
Pasti anda bingung dengan istilah Unicode, dan ingin bertanya apa Unicode? Unicode adalah satu cara dalam pengaturan kode biner untuk text dan bentuk tulisan lainnya. Metoda ini diharap dapat menjembatani berbagai karakter yang tidak sama dengan tulisan latin. Contohnya tulisan Cina, Arab, Aksara Bali, dan lain sebagainya.
Unicode mendukung seluruh sistem penulisan yang ada di dunia ini. Unicode merupakan karakter set dengan kemampuan multi-lingual(multi bahasa). Saat ini hampir seluruh os mendukungnya. Unicode merupakan sistem pengkodean yang digunakan selain ASCII dan EBCDIC pada system kompoter. Istilah Unicode ini sering juga disebut dengan Double Buye Character. Set karakter ASCII yang menggunakan dua bytes untuk tiap karakter. Mampu mengolah 65.536 kombinasi karakter sehingga mampu mengolah kata dari beragam bahasa di dunia.
2. Register Global di tiadakan
Pasti bingung lagi dengan istilah Register Global? Register Global adalah merupakan salah satu pengaturan yang berada di dalam file php.ini yang bertugas untuk mengatur apakah variabel-variabel EGCPS (environment, get, post, cookie, server) akan didaftarkan sebagai variabel global atau tidak.
Biasanya pengaturan defaultnya untuk register globals adalah on tetapi ada juga di beberapa webserver seperti xampp defaultnya off.
Sekarang apa bedanya register globals on dengan off ? Bedanya adalah apabila pengaturan register globals on maka kita dapat menyebutkan nama variabelnya yang berasal dari get, post, cookie, session, dan server secara langsung misalnya $simpan, Contoh :
Berbeda jika pengaturan register globals off, kita harus memanggil variabelnya :
  1. Jika method yang digunakan adalah post, maka dituliskan dengan cara $_POST[simpan],
  2. Jika method yang digunakan adalah get, maka dituliskan dengan cara $_GET[simpan],
  3. Jika method yang digunakan adalah cookie, maka dituliskan dengan cara $_COOKIE[simpan], dan
  4. Jika method yang digunakan adalah session, maka dituliskan dengan cara $_SESSION[simpan].
Contohnya :
Biasanya pengaturan defaultnya untuk register globals adalah on tetapi ada juga di beberapa webserver seperti xampp defaultnya off.
Sekarang apa bedanya register globals on dengan off ? Bedanya adalah apabila pengaturan register globals on maka kita dapat menyebutkan nama variabelnya yang berasal dari get, post, cookie, session, dan server secara langsung misalnya $simpan, Contoh :
Nah, karena di PHP6 Register Global sudah di tiadakan maka kita harus memanggil variablenya mengikuti pengaturan pemanggilan variabelnya menggunakan register globals off.
3. Safe Mode di tiadakan
4. Magic Quotes di tiadakan
Setting magic quotes (magic_quotes, magic_quotes_sybase ataupun magic_quotes_gpc) berfungsi untuk memberikan keamanan pada setiap inputan dari sisi client. karena cukup direpotkann dengannya adanya kesalahanan “undefined functionget_magic_quotes_gpc() pada beberapa halaman, oleh karena itu lakukan langkah persuasif dengan cara mendeklarasikan fungsi get_magic_quotes_gpc() yang hanya mengembalikan nilai false,Contoh :
5. Call Time Pass by Reference di tiadakan
Apabila anda menemukan error “Assigning the return value of new by reference is deprecated“, maka hilangkan saja tanda “&” pada deklarasi object, Contoh:
6. Semua fungsi Case Sensitive
PHP6 membedakan penulisan besar kecil huruf, jadi variabel $simpan berbeda dengan $Simpan. Dimulai dari PHP6, semua fungsi yang built in dari PHP diharap dituliskan secara lowercase.7. Ereg pindah ke Preg
Gunakanlah fungsi preg untuk regular expression daripada ereg. karena preg dapat dieksekusi lebih cepat.
8. Pengambilan satu karakter pada karakter string gunakkan [].
Pada awalnya PHP menyarankan menggunakan tanda {} untuk mengakses salah satu karakter dalam string. Mulai dari PHP6, pengambilan 1 karakter pada string gunakanlah tanda [], Contoh :