$sudo apt-get update
$apt-cache search linux-headers-$(uname -r) # well done, we find it…
$sudo apg-get install linux-headers-$(uname -r)
Wednesday, December 31, 2008
Debian apt-get
Ini adalah package manager ala debian dengan apt-get, misalnya untuk instalasi source headers kernel…
Monday, December 29, 2008
Linux Timer
Oke, kali ini saya ingin membahas timer di Linux. Linux memperbolehkan proses di user mode untuk mengakses spesial timer yang disebut dengan interval timer. Timer ini mengakibatkan signal UNIX dikirimkan secara periodik ke proses. Kita juga bisa mengaktifkan interval timer agar dikirim sebagai satu signal setelah beberapa waktu tertentu (periodik). Setiap interval timer dikelompokkan secara:
- Frekuensi dimana signal tersebut di keluarkan (emit), atau nilai null jika hanya ada satu signal yang dihasilkan.
- Waktu yang tersisa sampai signal berikutnya dihasilkan.
Masalah timer adalah akurasinya, timer dijamin berjalan setelah waktu yang ditentukan telah berakhir, tapi tidak mungkin untuk memperkirakan dengan pasti kapan akan dikirim.
Interval timer diaktifkan dengan POSIX setitimer( ) system call. Parameter pertama fungsi ini adalah aturan (policy) yang akan digunakan sebagai berikut:
ITIMER_REAL: Waktu yang telah berjalan, proses menerima signal SIGALRM.
ITIMER_VIRTUAL: Waktu yang dihasilkan proses di user mode, proses tersebut menerima signal SIGVTALRM.
ITIMER_PROF: Waktu yang dihasilkan baik di user mode dan kernel mode, proses ini menerima signal SIGPROF.
- Frekuensi dimana signal tersebut di keluarkan (emit), atau nilai null jika hanya ada satu signal yang dihasilkan.
- Waktu yang tersisa sampai signal berikutnya dihasilkan.
Masalah timer adalah akurasinya, timer dijamin berjalan setelah waktu yang ditentukan telah berakhir, tapi tidak mungkin untuk memperkirakan dengan pasti kapan akan dikirim.
Interval timer diaktifkan dengan POSIX setitimer( ) system call. Parameter pertama fungsi ini adalah aturan (policy) yang akan digunakan sebagai berikut:
ITIMER_REAL: Waktu yang telah berjalan, proses menerima signal SIGALRM.
ITIMER_VIRTUAL: Waktu yang dihasilkan proses di user mode, proses tersebut menerima signal SIGVTALRM.
ITIMER_PROF: Waktu yang dihasilkan baik di user mode dan kernel mode, proses ini menerima signal SIGPROF.
Saturday, December 20, 2008
Akses hardware IRQ & DMA) di Linux dari user space...
Written in Bahasa...
Itu pertanyaan yang ditanyakan teman saya ketika sedang memprogram Counter Timer (Intel 8254) untuk perangkat embedded kami. Dia menggunakan DOS versi Windows 98. DOS adalah OS yang bukan multi-tasking, artinya hanya ada satu proses yang dapat ditangani oleh CPU dalam setiap waktu, tidak ada proteksi dengan akses memory, program yang sedang berjalan memegang kendali semua resource sistem dan dapat mengakses memori sistem dari mana saja. Karena pada dasarnya Linux adalah sistem yang multi-tasking, akses langsung dari hardware secara fisik tidak diperbolehkan. Karena fitur multi-tasking tersebut, bagaimana jika proses (program) lain sedang menulis pada sebuah port yang pada saat bersamaan (concurrently) sedang di akses juga oleh proses lainnya?. Low level memori hardware di proteksi oleh Kernel, proses harus menginstruksikan Kernel untuk mengakses, dengan system call.
Bagaimana dengan Real Time I/O (Input/Output)? Sekali lagi karena multi-tasking Linux, proses ini juga tidak secara langsung akan dikerjakan oleh Kernel, kernel harus menjaga performa kesuluruhan sistem dan tidak menitik beratkan hanya pada satu proses. Seperti OS moderen lainnya, Linux mengimplementasi ini dengan membuat antrian proses atau Process Scheduler dan IO Scheduler untuk operasi I/O. Dalam Kernel standar Linux, selalu ada jeda untuk suatu proses atau operasi I/O, teori untuk operasi I/O port selalu lebih dari 10 ms (micro seconds). Jadi jika teman saya ingin membuat program timer itu di Linux dan sangat membutuhkan presisi waktu (Real Time) mungkin dia harus menggunakan kernel yang didesain untuk pekerjaan-pekerjaan real time yaitu modifikasi proses scheduler Linux untuk mencapai target waktu tertentu. I'm being lazy to answer all of this everytime ;)
Itu pertanyaan yang ditanyakan teman saya ketika sedang memprogram Counter Timer (Intel 8254) untuk perangkat embedded kami. Dia menggunakan DOS versi Windows 98. DOS adalah OS yang bukan multi-tasking, artinya hanya ada satu proses yang dapat ditangani oleh CPU dalam setiap waktu, tidak ada proteksi dengan akses memory, program yang sedang berjalan memegang kendali semua resource sistem dan dapat mengakses memori sistem dari mana saja. Karena pada dasarnya Linux adalah sistem yang multi-tasking, akses langsung dari hardware secara fisik tidak diperbolehkan. Karena fitur multi-tasking tersebut, bagaimana jika proses (program) lain sedang menulis pada sebuah port yang pada saat bersamaan (concurrently) sedang di akses juga oleh proses lainnya?. Low level memori hardware di proteksi oleh Kernel, proses harus menginstruksikan Kernel untuk mengakses, dengan system call.
Bagaimana dengan Real Time I/O (Input/Output)? Sekali lagi karena multi-tasking Linux, proses ini juga tidak secara langsung akan dikerjakan oleh Kernel, kernel harus menjaga performa kesuluruhan sistem dan tidak menitik beratkan hanya pada satu proses. Seperti OS moderen lainnya, Linux mengimplementasi ini dengan membuat antrian proses atau Process Scheduler dan IO Scheduler untuk operasi I/O. Dalam Kernel standar Linux, selalu ada jeda untuk suatu proses atau operasi I/O, teori untuk operasi I/O port selalu lebih dari 10 ms (micro seconds). Jadi jika teman saya ingin membuat program timer itu di Linux dan sangat membutuhkan presisi waktu (Real Time) mungkin dia harus menggunakan kernel yang didesain untuk pekerjaan-pekerjaan real time yaitu modifikasi proses scheduler Linux untuk mencapai target waktu tertentu. I'm being lazy to answer all of this everytime ;)
Thursday, December 18, 2008
Glade GtkComboBox Bug: Revisited
In the previous post, from ximian mailing lists discussing about a Glade GtkComboBox's bug. So let's make a simple task howto resolve this issue, not by Glade UI's coding sight, but less than 'tricky' lines appended into your code. This happen in version 3.4.3 and some minor versions below.
When creating a widget for GtkComboBox, we need to set at least one entry. This because Glade will not generate XML's property inside interface's file by default (in this case: a bug). Say your entry is "Bug" string. Then in your code:
Have a try, it was fixed at least for me ;)
When creating a widget for GtkComboBox, we need to set at least one entry. This because Glade will not generate XML's property inside interface's file by default (in this case: a bug). Say your entry is "Bug" string. Then in your code:
GtkWidget *combobox; combobox = glade_xml_get_widget (gladexml, "combobox"); /* remove our tricky entry, first entry */ gtk_combo_box_remove_text (GTK_COMBO_BOX (combobox), 0) /* our combo box is now ready... */ gtk_combo_box_prepend_text (GTK_COMBO_BOX (combobox), "Hey");
Have a try, it was fixed at least for me ;)
Subscribe to:
Posts (Atom)