Jumat, 06 Maret 2009

TUGAS1! PROSES BOOTING LINUX

1.  PC BOOT DAN LINUX INIT PROCESS
   Pada praktikum ini membahas PC boot process dan inisialisasi sistem operasi
   Linux pada aplikasi background (daemons/service).
   1.BIOS : Basic Input/Output System adalah antar muka level terendah antara
      komputer dan peripheral. Bios melakukan pemeriksaan pada memori dan mencari
      instruksi pada Master Boot Record (MBR) pada floppy atau hard drive.
  2. MBR menunjuk ke boot loader (LILO : Linux boot loader)
  3. LILO akan menanyakan label sistem operasi yang akan mengidentifikasi kernel
      yang dijalankan. Kernel akan menjalankan sistem operasi Linux.
  4. Yang pertama kali dikerjakan oleh kernel adalah menjalankan program init. Init
      adalah root/parent dari semua proses yang dijalankan pada Linux
  5. Proses pertama yang memulai init adalah skrip /etc/rc.d/rc/sysinit.
  6. Berdasarkan run-level yang ditentukan, skrip dieksekusi untuk memulai proses
      tertentu untuk menjalankan sistem dan membuat sistem lebih fungsional.

2. LINUX INIT PROCESS
    Proses init adalah langkah terakhir pada prosedur boot dan diidentifikasi sebagai
    process ide “1”. Init bertanggung-jawab untuk memulai proses sistem seperti yang
   ditentukan pada file /etc/inittab. Init biasanya memulai “getty” yang menunggu
   layar login yang menandakan proses shell seorang user. Pada saat shutdown, init
   mengontrol urutan dan proses untu shutdown. Proses init tidak pernah shut down.
   Proses init merupakan proses user dan bukan proses sistem kernel meskipun dijalankan
   sebagai root.
   Proses sistem :
   Process ID   Description
      0                The Scheduler
      1                The init process
      2                kflushd
      3                kupdate
      4                kpiod
      5                kswapd
      6                mdrecoveryd

3. PROSEDUR BOOT
    Linux mempunyai 6 state operasi dimana “0” adalah shutdown state dan “3”
    keatas adalah operasional penuh dengan semua proses yang esensial dijalankan untuk
    interaksi user. Berdasarkan sistem boot, Linux sistem akan melakukan :
    · Mengeksekusi program /sbin/init yang memulai semua proses-proses lain.
      Program ini akan diberikan ke mesin oleh proses awal yang didefinisikan pada file
      /etc/inittab
    · Komputer akan di-booting ke runlevel yang didefinisikan oleh baris initdefault
      pada file /etc/inittab.
      id:5:initdefault:
      Pada contoh diatas, runlevel ”5” dipilih. Runlevel “5” akan melakukan booting
      sistem pada mode GUI menggunakan XDM dan X-Windows. Booting ke runlevel
      ”3” (biasanya disebut mode console) biasanya digunakan oleh server yang tidak
      memerlukan GUI.
      File inittab mengijinkan menggunakan kunci (Ctrl-Alt-Del), memulai dial ke
      koneksi internet dll.
    · Satu dari proses-proses yang dimulai oleh init adalah /sbin/rc. Skrip ini
      menjalankan sekumpulan skrip pada direktory /etc/rc.d/rc0.d/,
      /etc/rc.d/rc1.d, /etc/rc.d/rc2.d dan seterusnya.
    · Skrip pada direktory tersebut dieksekusi pada setiap boot state dari oeprasi sampai
      menjadi operasi yang lengkap. Skrip mulai dengan S yang merupakan skrip startup
      sedangkan skrip yang dimulai dengan K menandakan skrip shutdown (kill). Angka
      yang mengikuti huruf tersebut merupakan urutan eksekusi (terendah ke tertinggi)

          Jika Anda menginstall semua daemons (proses background), Linux akan
      menjalankan semua, menyebabkan mesin lebih lambar. Kita bisa memulai (start) /
      menghentikan (stop) daemon secara individual dengan mengubah direktory :
      /etc/rc.d/init.d (Redhat)
      dan diikuti perintah pilihan start, stop, status, restart atau reload, misalnya untuk stop
      web server :
      cd /etc/rc.d/init.d
      httpd stop
      Gunakan perintah ps –aux untuk melihat semua proses pada mesin Anda.

4. LINUX RUN LEVEL
    Runlevel “3” akan booting dalam mode teks atau console dan “5” akan booting
    dalam mode graphical login.
    State pada Runlevel / Halt :
    0      shutdown (Do NOT set initdefault to this)
    1      Single user mode
    2      Multiuser, without NFS (The same as 3, if you do not have networking)
    3      Default text start. Full multiuser
    4      unused
    5      X11
    6      Reboot (Do NOT set initdefault to this)

          Anda bila melakukan perpindahan level init dengan menggunakan perintah init
    dengan runlevel tertentu. Gunakan perintah ”init#” dimana # adalah satu dari 0, 1, 3,
    5, 6. Dapat juga menggunakan perintah telinit.
          Skrip untuk run level yang diberikan dijalankan selama boot dan shutdown.
    Skrip ditemukan pada direktory /etc/rc.d/rc#.d/ dimana simbol # menandakan
    run level, misalnya run level ”3” akan menjalankan semua skrip pada direktory
    /etc/rc.d/rc3.d/ yang dimulai dengan huruf ”S” selama sistem boot. Skrip ini
    akan menjalankan proses background yang dibutuhkan oleh sistem. Pada saat shutdown
    semua skrip pada direktory yang dimulai dengan huruf ”K” akan dieksekusi. Sistem ini
    menyediakan urutan sistem ke state yang berbeda untuk mode produksi dan
    maintenance.
    TIP : Daftar state dan

5. AKTIVASI SKRIP INIT
    Menambah suatu skrip ke direktory /etc/rc.d/rc#.d/ baik prefik S atau K,
    menambah skrip ke proses boot atau shutdown. Skrip berjalan dengan urutan numerik.
    S20abc dijalankan sebelum S30xyz. Keberadaan prosedur boot dan shutdown ini
    merupakan kekuatan sistem operasi UNIX. Inisialisasi proses dengan urutan tertentu
    dapat dikoordinasikan untuk proses dependent. Shutdown dari proses biasanya
    dibutuhkan untuk program yang kompleks misalnya database. Proses individual
    dapatkemunginan dimonitore, shutdown dan start pada sembarang waktu menggunakan
    skrip tersebut. Misalnya /etc/rc.d/rc2.d/httpd start. Mofidikasi start, stop
    atau status kemungkinan digunakan.
    
    Skrip start / stop /status berada pada direktory /etc/rc.d/init.d/ adalah
    suatu link ke direktory sebenarnya. Link tersebut kemungkinan dibuat atau dihapus
    menggunakan perintah chkconfig, misalnya chkconfig –del httpd akan menghapus web server     dari proses startup dan shutdown. Sebaliknnya chkconfig –
    add httpd akan menambahke ke proses startup/shutdown dengan membangkitkan
    link dari skrip pada /etc/rc.d/init.d/ ke direktory /etc/rc.d/rc#.d/ yang
    sebenarnya. Untuk informasi lebih lanjut gunakan halaman manual LINUX untuk init.
    
    Pada Red Hat 9.0, GUI tool /usr/bin/redhat-config-services dapat membantu
    untuk mengkonfigurasi service untuk start dan menyediakan deskripsi untuk setiap
    service yang tersedia. Service dasar meliputi :
    Sistem Service      Deskripsi
    anacron                  Run jobs which were scheduled for execution while computer was
    turned off.             Catch up with system duties.
    arpwatch               Keeps track of IP address to MAC address pairings
    atd                          Run scheduled batch jobs.
    autofs                     automounts file systems on demand.
    crond                     Job sheduler for periodic tasks
    gpm                       Allows console terminal cut and paste. (Non X-window consoles)
    https                     Apache web server.
    iptables                Firewall rules interface to kernel
    keytable               Loads selected keyboard map as set in /etc/sysconfig/keyboard
    kudzu                   New harware probe/detection during system boot.
    lpd                        Network printer services
    microcode_ctl     Uploads microcode to kernel and ultimately to the Intle Pentium
                                  processor. (Hardware specific.)
    mysqld                 Database services
    named DNS         name services (Bind)
    network               Active network services during system boot.
    nfs                         Network file system. Unix file sharing services.
    nscd                      Password and group lookup services for use with network
                                  authentication (NIS, LDAP,...).
    ntpd                     Network Time Protocol time synchronization services.
    random                Random number generation tool used for encryprion
    rawdevices          Enables raw IO. Useful for Oracle and software which utilizes this
                                  for high speed disk access.
    smb                      SAMBA: MS/Windows PC file sharing services
    syslog                   System log file facility.
    ypbind                 NIS file sharing/authentication infrastructure service.
    yppasswd            NIS file sharing/authentication infrastructure service.
    xfs                        X-Windows font server.

    Service utama yang direkomendasikan adalah : anacron, ard, autofs,
    crond, gpm, iptables, keytable, kudzu, microcode_ctl (Intel32
    hardware only), network, random. syslog
    Graphics Workstation - add: xfs
    File Server for PC clients - add: smb
    Print Server - add: lpd atau cups
    File server Linux/Unix clients - add: nfs, netfs, nfslock, portmap, ypbind,
    yppasswd, ypserv
    Web Server - add: httpd, tux, xinetdi, sshd

6. SKRIP INIT
    Skrip init berada pada direktory /etc/rc.d/script-name. Gunakan
    perintah chkconfig untuk membangkitkan soft link ke direktory yang sebenarnya
    untuk beberapa run level.
    
    #!/bin/sh
    #
    # Startup script for program
    #
    # chkconfig: 345 85 15 - This statement tells the chkconfig
    command how to add or delete this process to the boot process
    # description: Description of program
    # processname: process-name
    # pidfile: /var/run/process-name.pid

    # Source function library. This creates the operating
    environment for the process to be started
     . /etc/rc.d/init.d/functions

    case "$1" in
       start)
                   echo -n "Starting process-name: "
                  daemon process-name -Starts only one process of a
    given name.
                 echo
                 touch /var/lock/subsys/process-name
                 ;;
      stop)
                echo -n "Shutting down process-name: "
                killproc process-name
                echo
                rm -f /var/lock/subsys/process-name
                rm -f /var/run/process-name.pid - Only if process
    generates this file
                ;;
      status)
                status process-name
                ;;
      restart)
               $0 stop
               $0 start
               ;;
      reload)
               echo -n "Reloading process-name: "
               killproc process-name -HUP
               echo
               ;;
      *)
              echo "Usage: $0 {start|stop|restart|reload|status}"
      exit 1
    esac
   
    exit 0

    Fungsi skrip bash daemon, killproc dan status dapat ditemukan dalam
    skrip /etc/rc.d/functions.
    Skrip harus dieksekusi untuk menjalankannya (chmod +x script-name)
    Misalnya skrip digunakan untuk memulai dan menghentikan proses seperti
          /etc/rc.d/init.d/httpd restart
          /etc/rc.d/init.d/httpd stop
          /etc/rc.d/init.d/httpd start
    atau menggunakan perintah service :
          service httpd restart
          service httpd stop
          service httpd start

    Dua baris dalam skrip yang memungkinkan perintah chkconfig mengontrol
    skrip untuk proses boot dan shutdown adalah
          # chkconfig: 345 85 15
          # description: Description of program
    Bila menambahkan ke proses booting menggunakan perintah "chkconfig --
    add script-name" awal order/priority akan diset 80 sedangkan stop/shutdown diset
    15. Proses akan ditambahkan ke runlevel 3, 4, dan 5. Hal ini dapat dilakukan dengan
    membangkitkan link dari lokasi skrip (/etc/rc.d/init.d/) ke direktori run level :
    /etc/rc.d/rc#.d/. Nama file dalam direktory run level akan menunjukkan apa yang
    digunakan untuk boot (mulai dengan “S”) atau shutdown (mulai dengan “K”).

7. CHKCONFIG
     Perintah chkconfig membangkitkan dan memutuskan link antara direktori
    /etc/rc.d/init.d/ dan direktori run level /etc/rc.d/rc[0-6].d/ untuk
    mengontrol inisialisasi proses boot dan proses shutdown.
          chkconfig [--level ] on | off | reset >
          chkconfig --list
          chkconfig --list
          chkconfig --add
          chkconfig --del
          chkconfig --level 0123456 off
    Contoh :
    chkconfig --level 345 httpd on
          - apache diberikan 3, 4 dan 5.
    chkconfig --add httpd
          - memulai web server daemon pada system boot.
    chkconfig --del sendmail
          - Tidak memulai sendmail daemon pada system boot.
    chkconfig --list ]
          - Daftar semua servis dan level init.
    chkconfig --list | grep on
          - Daftar semua service yang dimulai pada sistem boot

http://smk.adisanggoro.or.id/download/E-Book/gunungkidul/TEORI_BAHASA%20C/PraktikumOS10.pdf

Tidak ada komentar:

Posting Komentar