Ubuntu Sabily Manarat

•Juli 21, 2011 • Tinggalkan sebuah Komentar

Sudah tidak asing lagi dengan salah satu distro yang dikasih nama UBUNTU, hampir setiap 4 bulan sekali ubuntu merilis versi lama ke versi yang baru, salah satu variannya adalah ubuntu sabily yang khusus dibuat untuk orang yang beragama muslim tentunya orang yang non muslim juga boleh untuk menginstallnya.

Dalam linux sabily ini terdapat fitur-fitur yang sangat bermanfaat bagi seorang muslim seperti Zekr dan Mus-haf Othman (Quran study tools), Minbar dan Firefox-praytimes (aplikasi prayer times), Monajat (aplikasi yang akan mengeluarkan popups prayers setiap beberapa waktu yang ditentukan), Hijra (kalender islami) dan WebStrict (parental control tool). Bahasa Arab juga didukung dengan baik. Dan tentu saja desain grafis yang telah disesuaikan.

Selain software yang dikhususkan buat muslim, terdapat juga software-software yang umum seperti OpenOffice (pengolah kata, spreasheet, presentasi), Firefox (perambah web), Pidgin (pesan instant), F-spot (manajemen foto), Gimp (program manipulasi gambar) dan perangkat lunak multimedia lainnya (video/audio). Semuanya telah terkandung di versi “kecil” Sabily, namun versi “lengkap” mengandung lebih banyak lagi! (perangkat lunak edukasi, peralatan dan seluruh tilawah Quran)

Untuk tampilannya bisa dilihat seperti di bawah ini

Warnanya yang adem dan sejuk dipandang, mau mencoba untuk menginstallnya silahkan download di sini dimana terdapat beberapa versi yaitu ada yang versi small, ada yang versi full dan ada yang versi ultimate.

Selamat mencoba…dan mari berbagi disini

Monitoring the system

•Januari 30, 2010 • 2 Komentar

Basic command line:

pstree Processes and parent-child relationships
top Show top processes
iostat Report CPU statistics and input/output statistics for devices and partitions.
ps -auxw process status
uname -a print system information
cat /proc/version Display Linux kernel version in use.
cat /etc/redhat-release Display Red Hat Linux Release. (also /etc/issue)
uptime Tell how long the system has been running. Also number of users and system’s load average.
w Show who is logged on and what they are doing.
/sbin/lsmod List all currently loaded kernel modules.
Same as cat /proc/modules
/sbin/runlevel Displays the system’s current runlevel.
hostname Displays/changes the system’s node name. (Must also manually change hostname setting in/etc/sysconfig/network. Command will change entry in /etc/hosts)
service Red Hat/Fedora command to display status of system services.
Example: service --status-all
Help: service --help

GUI/Graphical:

gnome-system-monitor Operating system monitor and usage graphing.
gkrellm Graphical system monitor. (Additional RPM package: gkrellm)
ps3 3D load meter. Very cool 3-D graphics.
xosview Operating system monitor: load, memory, swap, net, disk, …

List of tools:

Sumber : http://www.yolinux.com/TUTORIALS/

Process Management

•Januari 30, 2010 • Tinggalkan sebuah Komentar

The basic Linux monitoring commands such as pstree and ps -auxw and top will inform you of the processes running on your system. Sometimes a process must be terminated. To terminate a process:

  1. Identify the process:
    • pstree -p
      OR
    • ps -auxw
      OR
    • top
  2. Kill the process:
    • kill <process-id-number>
    • killall <command-name>

This will perform an orderly shutdown of the process. If it hangs give a stronger signal with: kill -9 <process-id-number>. This method is not as sanitary and thus less preferred.

A signal may be given to the process. The program must be programmed to handle the given signal. See /usr/include/bits/signum.h for a full list. For example, to restart a process after updating it’s configuration file, issue the command kill -HUP <process-id-number>

In the previous example, the HUP signal was sent to the process. The software was written to trap for the signal so that it could respond to it. If the software (command) is not written to respond to a particular signal, then the sending of the signal to the process is futile.

Identify all known signals: fuser -l

Process Management GUI Tools:

  • xosview: Oldie but goodie.
  • gnome-system-monitor
  • ksysguard (comes with SuSE)
  • QPS (See below)

QPS:

Also see the GUI tool QPS. (Handles MOSIX cluster) This tool is outstanding for monitoring, adjusting nice values (priorities), issue signals to the process, view files the process is using, the memory, environmnet variables and sockets the process is using. RPM available from this site. It is so simple to use, no instructions are necessary. It can monitor a program to make sure it isn’t doing something bad. It is also reverse engineer what applications are doing and the environments under which they run. I love this tool!!

Note: The RPM provided was compiled for RedHat 7.x. For RedHat 8.0+ one must install the appropriate QT library RPMs to satisfy dependencies:

   rpm -ivh qt2-2.3.1-8.i386.rpm qt2-Xt-2.3.1-8.i386.rpm qt2-devel-2.3.1-8.i386.rpm qt2-static-2.3.1-8.i386.rpm

Then install qps: rpm -ivh qps-1.9.7-5.i386.rpmNote Fedora Core 3: rpm -ivh qt2-2.3.1-8.i386.rpm qps-1.9.7-5.i386.rpm
These older RH 8.0 and 7 binary release rpms even work on my AMD64 Fedora Core 3 x86_64 OS system.

Configuring QPS to run applications against a process: Select “Command” + “Edit Commands…” + “Add…”

  • Description: GDB
    Command Line: xterm -T "GDB %C" -e gdb -d /directory-where-source-code-is-located --pid=%p
  • Description: gdb
    Command Line: xterm -T "gdb %c (%p)" -e gdb /proc/%p/exe %p &
    (As issued in RPM)
    gdb man page
  • Description: strace
    Command Line: xterm -T "strace %c (%p)" -e sh -c 'strace -f -p%p; sleep 10000'&
    (show process system calls and signals. Try it with the process qps itself.)
    Show output written by process:
    xterm -T "strace %c (%p)" -e sh -c 'strace -f -q -e trace=write -p%p; sleep 10000'&
    strace man page
  • Description: truss (Solaris command)
    Command Line: xterm -T "truss %C (%p) -e sh -c 'truss -f -p %p; sleep 1000'&

IPCs: Semaphores, Shared Memory and Queues

Note that some processes may use Linux InterProcess Communication or IPC (semaphores, shared memory or queues) which may need to be cleaned up manually:

  1. Identify the semaphores: ipcs
    ipcs -q List share queues.
    ipcs -m Shared memory.
    ipcs -s List Semaphores.
  2. Remove the semaphores: ipcrm -s <ipcs id>

Example: If you are running Apache, you may see the following:

[root@node DIR]#  ipcs -m                    

------ Shared Memory Segments --------
key       shmid     owner     perms     bytes     nattch    status
0x00000000 341504    nobody    600       46084     27        dest

lsof – Processes attached to open files or open network ports:

The command lsof shows a list of processes attached to open files or network ports.

  • List processes attached to a given file: lsof filename:
    [root@node DIR]# lsof /var/log/mailman/qrunner
    python  18538 mailman    4u   REG    3,5  657 486746 /var/log/mailman/qrunner
    python  18578 mailman    6u   REG    3,5  657 486746 /var/log/mailman/qrunner
    python  18579 mailman    6u   REG    3,5  657 486746 /var/log/mailman/qrunner
    python  18580 mailman    6u   REG    3,5  657 486746 /var/log/mailman/qrunner
    python  18581 mailman    6u   REG    3,5  657 486746 /var/log/mailman/qrunner
    python  18582 mailman    6u   REG    3,5  657 486746 /var/log/mailman/qrunner
    python  18583 mailman    6u   REG    3,5  657 486746 /var/log/mailman/qrunner
    python  18584 mailman    6u   REG    3,5  657 486746 /var/log/mailman/qrunner

    The process attached to an open file can be killed using the command fuser -ki filename

  • List all open files on system: lsof
    (Long list)
  • List all files opened by user: lsof -u user-id
  • The commands netstat -punta and socklist will list open network connections.
    Use the command lsof -i TCP:port-number to see the processes attached to the port.
    Example:
    [root@node DIR]# lsof -i TCP:389
    COMMAND   PID USER   FD   TYPE  DEVICE SIZE NODE NAME
    slapd    5927 ldap    6u  IPv4 7560023       TCP *:ldap (LISTEN)
    slapd    5928 ldap    6u  IPv4 7560023       TCP *:ldap (LISTEN)
    slapd   21185 ldap    6u  IPv4 7560023       TCP *:ldap (LISTEN)
    slapd   21186 ldap    6u  IPv4 7560023       TCP *:ldap (LISTEN)
    slapd   21193 ldap    6u  IPv4 7560023       TCP *:ldap (LISTEN)

    This shows that the command slapd running under user id ldap is running five process connected to port 389.

Restricting user resources:

  • ulimit: (bash shell command)Shell and process resources may be controlled and reported using the ulimit command. Display the limits of a shell using the bash command “ulimit -a“. Limits can be set for the number of open files and processes, memory and virtual memory etc.
  • See limits assigned in /etc/security (discussed below)
  • Modify process scheduling priority: Range goes from -20 (highest priority) to 19 (lowest).
    • Lower scheduling priority (runs slower and less likely to slow you down.)
      nice -n 19 program-to-launch
      Default for “nice -n” is 10
    • Show default for any process: nice executable
      Shows nice value to be used if run.

Distro Linux’S

•Januari 30, 2010 • 2 Komentar

Distro Linux (singkatan dari distribusi Linux) adalah sebutan untuk sistem operasi komputer mirip Unix yang menggunakan kernel Linux. Distribusi Linux bisa berupa perangkat lunak bebas dan bisa juga berupa perangkat lunak komersial seperti Red Hat Enterprise, SuSE, dan lain-lain.

Ada banyak distribusi atau distro Linux yang telah muncul. Beberapa bertahan dan besar, bahkan sampai menghasilkan distro turunan, contohnya adalah :

  • Debian GNU/Linux ( http://www.debian.org/). Debian GNU/Linux adalah distro non-komersial yang dihasilkan oleh para sukarelawan dari seluruh dunia yang saling bekerjasama melalui Internet. Distro ini menginginkan adanya semangat open-source yang harus tetap ada pada Debian. Kedinamisan distro ini membuat setiap rilis paket-paketnya di-update setiap waktu dan dapat diakses melalui utilitas apt-get. Apt-get adalah sebuah utilitas baris-perintah yang dapat digunakan secara dinamis untuk meng- upgrade sistem Debian GNU/Linux melalui apt-repository jaringan archive Debian yang luas. Milis dan forum debian selalu penuh dengan pesan-pesan baik mengenai bug, masalah, sharing, dll. Dengan adanya sistem komunikasi ini bug dan masalah keamanan pada tiap paket dapat dilaporkan oleh para pengguna dan pengembang Debian dengan cepat.Keuntungan dari Debian adalah upgradability, ketergantungan antar paket didefinisikan dengan baik, dan pengembangannya secara terbuka.Beberapa proyek dan turunan Debian GNU/Linux:
  • Red Hat Linux ( http://www.redhat.com/). Red Hat adalah distro yang cukup populer di kalangan pengembang dan perusahaan Linux. Dukungan-dukungan secara teknis, pelatihan, sertifikasi, aplikasi pengembangan, dan bergabungnya para hacker kernel dan free-software seperti Alan Cox, Michael Johnson, Stephen Tweedie menjadikan Red Hat berkembang cepat dan digunakan pada perusahaan. Poin terbesar dari distro ini adalah Red Hat Package Manager (RPM). RPM adalah sebuah perangkat lunak untuk memanajemen paket-paket pada sistem Linux kita dan dianggap sebagai standar de-facto dalam pemaketan pada distro-distro turunannya dan yang mendukung distro ini secara luas.
  • Slackware ( http://www.slackware.com/). Distronya Patrick Volkerding yang terkenal pertama kali setelah SLS. Slackware dikenal lebih dekat dengan gaya UNIX, sederhana, stabil, mudah di- custom, dan didesain untuk komputer 386/486 atau lebih tinggi. Distro ini termasuk distro yang cryptic dan manual sekali bagi pemula Linux, tapi dengan menggunakan distro ini beberapa penggunanya dapat mengetahui banyak cara kerja sistem dan distro tersebut. Debian adalah salah satu distro selain Slackware yang masuk dalam kategori ini. Sebagian besar aktivitas konfigurasi di Slackware dilakukan secara manual (tidak ada tool seperti Yast pada S.U.S.E ataupun Linuxconf pada RedHat).
  • S.u.S.E. ( http://www.suse.com/). S.u.S.E. adalah distro yang populer di Jerman dan Eropa, terkenal akan dukungan driver VGA-nya dan YasT. S.u.S.E tersedia secara komersial dan untuk versi GPL-nya dapat diinstal melalui ftp di situs S.u.S.E. Instalasi berbasis menu grafis dari CD-ROM, disket boot modular, 400-halaman buku referensi, dukungan teknis, dukungan driver-driver terutama VGA dan tool administrasi sistem S.u.S.E., YaST, membuat beberapa pengguna memilih distro ini.S.u.S.E. juga terlibat dalam pembuatan X server (video driver) untuk proyek XFree86 sehingga X server distro ini mendukung kartu grafis baru. S.U.S.E. menggunakan dua sistem pemaketan yaitu RPM (versi lama) dan SPM, S.U.S.E. Package Manager (versi baru).
  • Turbo Linux ( http://www.turbolinux.com/). TurboLinux menargetkan pada produk berbasis Linux dengan kinerja tinggi untuk pasar workstation dan server terutama untuk penggunaan clustering dan orientasinya ke perusahaan. Beberapa produk-produknya: TurboLinux Workstation untuk dekstopnya, TurboLinux Server untuk backend server dengan kinerja tinggi terutama untuk penggunaan bisnis di perusahaan, e-commerce dan transaksi B2B (Business-to-Business).Salah satu produknya TurboCluster Server ditargetkan untuk pembuatan server cluster yang berskala luas dan dapat digunakan 25 cluster node atau lebih. TurboCluster server ini pernah memenangkan poling Best Web Solution dari editor Linux Journal.enFuzion, satu lagi produk yang berbasis pada konsep sederhana dan powerful yang dinamakan ‘ parametric execution‘. enFuzion akan merubah jaringan komputer perusahaan menjadi super computer dengan kecepatan tinggi dan ‘ fault tolerant‘. Pengguna produk dan layanan TurboLinux terbanyak adalah perusahaan dan perorangan di Jepang dan Asia.

Untuk mendapatkan distro linux, anda dapat mendownloadnya langsung dari situs distributor distro bersangkutan, atau membelinya dari penjual lokal.

Kernel Linux’S

•Januari 30, 2010 • Tinggalkan sebuah Komentar

Bagian ini akan menjelaskan kernel secara umum dan sejarah perkembangan Kernel Linux. Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.

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).

Lisensi Linux’S

•Januari 30, 2010 • Tinggalkan sebuah Komentar

Kernel Linux terdistribusi di bawah Lisensi Publik Umum GNU (GPL), dimana peraturannya disusun oleh Free Software Foundation. Linux bukanlah perangkat lunak domain publik: Public Domain berarti bahwa pengarang telah memberikan copyright terhadap perangkat lunak mereka, tetapi copyright terhadap kode Linux masih dipegang oleh pengarang-pengarang kode tersebut. Linux adalah perangkat lunak bebas, namun: bebas dalam arti bahwa siapa saja dapat mengkopi, modifikasi, memakainya dengan cara apa pun, dan memberikan kopi mereka kepada siapa pun tanpa larangan atau halangan.

Implikasi utama peraturan lisensi Linux adalah bahwa siapa saja yang menggunakan Linux, atau membuat modifikasi dari Linux, tidak boleh membuatnya menjadi hak milik sendiri. Jika sebuah perangkat lunak dirilis berdasarkan lisensi GPL, produk tersebut tidak boleh didistribusi hanya sebagai produk biner (binary-only). Perangkat lunak yang dirilis atau akan dirilis tersebut harus disediakan sumber kodenya bersamaan dengan distribusi binernya.

Modul Kernel Linux’S

•Januari 30, 2010 • 2 Komentar

Pengertian Modul Kernel Linux

Modul kernel Linux adalah bagian dari kernel Linux yang dapat dikompilasi, dipanggil dan dihapus secara terpisah dari bagian kernel lainnya saat dibutuhkan. Modul kernel dapat menambah fungsionalitas kernel tanpa perlu me-reboot sistem. Secara teori tidak ada yang dapat membatasi apa yang dapat dilakukan oleh modul kernel. Kernel modul dapat mengimplementasikan antara lain device driver, sistem berkas, protokol jaringan.

Modul kernel Linux memudahkan pihak lain untuk meningkatkan fungsionalitas kernel tanpa harus membuat sebuah kernel monolitik dan menambahkan fungsi yang mereka butuhkan langsung ke dalam image dari kernel. Selain hal tersebut akan membuat ukuran kernel menjadi lebih besar, kekurangan lainnya adalah mereka harus membangun dan me-reboot kernel setiap saat hendak menambah fungsi baru. Dengan adanya modul maka setiap pihak dapat dengan mudah menulis fungsi-fungsi baru dan bahkan mendistribusikannya sendiri, di luar GPL.

Kernel modul juga memberikan keuntungan lain yaitu membuat sistem Linux dapat dinyalakan dengan kernel standar yang minimal, tanpa tambahan device driver yang ikut dipanggil. Device driver yang dibutuhkan dapat dipanggil kemudian secara eksplisit maupun secara otomatis saat dibutuhkan.

Terdapat tiga komponen untuk menunjang modul kernel Linux. Ketiga komponen tersebut adalah manajemen modul, registrasi driver, dan mekanisme penyelesaian konflik. Berikut akan dibahas ketiga komponen pendukung tersebut.

Manajemen Modul Kernel Linux

Manajemen modul akan mengatur pemanggilan modul ke dalam memori dan berkomunikasi dengan bagian lainnya dari kernel. Memanggil sebuah modul tidak hanya memasukkan isi binarinya ke dalam memori kernel, namun juga harus dipastikan bahwa setiap rujukan yang dibuat oleh modul ke simbol kernel atau pun titik masukan diperbaharui untuk menunjuk ke lokasi yang benar di alamat kernel. Linux membuat tabel simbol internal di kernel. Tabel ini tidak memuat semua simbol yang didefinisikan di kernel saat kompilasi, namun simbol-simbol tersebut harus diekspor secara eksplisit oleh kernel. Semua hal ini diperlukan untuk penanganan rujukan yang dilakukan oleh modul terhadap simbol-simbol.

Pemanggilan modul dilakukan dalam dua tahap. Pertama, utilitas pemanggil modul akan meminta kernel untuk mereservasi tempat di memori virtual kernel untuk modul tersebut. Kernel akan memberikan alamat memori yang dialokasikan dan utilitas tersebut dapat menggunakannya untuk memasukkan kode mesin dari modul tersebut ke alamat pemanggilan yang tepat. Berikutnya system calls akan membawa modul, berikut setiap tabel simbol yang hendak diekspor, ke kernel. Dengan demikian modul tersebut akan berada di alamat yang telah dialokasikan dan tabel simbol milik kernel akan diperbaharui.

Komponen manajemen modul yang lain adalah peminta modul. Kernel mendefinisikan antarmuka komunikasi yang dapat dihubungi oleh program manajemen modul. Saat hubungan tercipta, kernel akan menginformasikan proses manajemen kapan pun sebuah proses meminta device driver, sistem berkas, atau layanan jaringan yang belum terpanggil dan memberikan manajer kesempatan untuk memanggil layanan tersebut. Permintaan layanan akan selesai saat modul telah terpanggil. Manajer proses akan memeriksa secara berkala apakah modul tersebut masih digunakan, dan akan menghapusnya saat tidak diperlukan lagi.

Registrasi Driver

Untuk membuat modul kernel yang baru dipanggil berfungsi, bagian dari kernel yang lain harus mengetahui keberadaan dan fungsi baru tersebut. Kernel membuat tabel dinamis yang berisi semua driver yang telah diketahuinya dan menyediakan serangkaian routines untuk menambah dan menghapus driver dari tabel tersebut. Routines ini yang bertanggung-jawab untuk mendaftarkan fungsi modul baru tersebut.

Hal-hal yang masuk dalam tabel registrasi adalah:

  • device driver
  • sistem berkas
  • protokol jaringan
  • format binari

Resolusi Konflik

Keanekaragaman konfigurasi perangkat keras komputer serta driver yang mungkin terdapat pada sebuah komputer pribadi telah menjadi suatu masalah tersendiri. Masalah pengaturan konfigurasi perangkat keras tersebut menjadi semakin kompleks akibat dukungan terhadap device driver yang modular, karena device yang aktif pada suatu saat bervariasi.

Linux menyediakan sebuah mekanisme penyelesaian masalah untuk membantu arbitrasi akses terhadap perangkat keras tertentu. Tujuan mekanisme tersebut adalah untuk mencegah modul berebut akses terhadap suatu perangkat keras, mencegah autoprobes mengusik keberadaan driver yang telah ada, menyelesaikan konflik di antara sejumlah driver yang berusaha mengakses perangkat keras yang sama.

Kernel membuat daftar alokasi sumber daya perangkat keras. Ketika suatu driver hendak mengakses sumber daya melalui M/K port, jalur interrupt, atau pun kanal DMA, maka driver tersebut diharapkan mereservasi sumber daya tersebut pada basis data kernel terlebih dahulu. Jika reservasinya ditolak akibat ketidaktersediaan sumber daya yang diminta, maka modul harus memutuskan apa yang hendak dilakukan selanjutnya. Jika tidak dapat melanjutkan, maka modul tersebut dapat dihapus.

 
Ikuti

Get every new post delivered to your Inbox.