Archive

Posts Tagged ‘Sistem Operasi’

Ubuntu 9.04, Jaunty Jackalope

November 15, 2008 azer89 Leave a comment

Jackalope

Bapak dari Ubuntu, Mark Shuttleworth telah mengumumkan nama kode dan tujuan dari versi selanjutnya dari sistem operasi miliknya, Ubuntu 9.04 yang memiliki nama kode Jaunty Jackalope akan di rencanakan rilis pada April 2009. Mark Shuttleworth mengatakan, “Jaunty, the code name for what will most likely become Ubuntu 9.04, will be the focus of our efforts from November through to April next year. We will be gathering forces in Mountain View on 8th – 12th December to survey the upstream landscape and finalize Jaunty plans, enjoying the excellent hospitality of Google and Silicon Valley’s abundance of talent and innovation.“.

Nah, apa sih maksudnya Jackalope ??? kalau dicari di Wikipedia, Jackalope adalah binatang yang bentuknya seperti gabungan dari kelinci dan antelop yang hidup di daerah barat laut Amerika. Aneh – aneh aja ni…..

Daemonizing…

November 11, 2008 azer89 Leave a comment

Daemon tu apaan sih????

Daemon proses adalah proses yang bekerja pada background karena tidak memiliki
terminal pengontrol. Dalam sistem operasi Windows lebih dikenal dengan sebutan service.
Daemon adalah proses yang didesain agar proses tidak mendapatkan intervensi dari user.
Daemon biasanya bekerja untuk jangka waktu yang sangat lama dan bertugas
“mendengarkan” request dan menjalankan responsnya. Contoh dari daemon ini misalnya
adalah Apache Web Server HTTP daemon. Daemon ini bekerja pada background dan
mendengarkan request HTTP pada port tertentu (biasanya 80 atau 8080) dan memberikan
respon terhadap request tersebut, berdasarkan tipe dari request.

Nah, kalo gitu ciri-ciri daemon yang membedakan dari proses lainnya???

- Tidak memiliki parent process ID.
- Tidak memiliki terminal pengontrol baik STDOUT, STDIN, maupun STDERR.
- Berjalan dalam previlege super user.

Cara mbikin Daemon???

1. Forking dan Pembunuhan Proses Induk
Langkah pertama dalam pembuatan daemon adalah menspawn proses menjadi induk
dan anak dengan melakukan forking, kemudian mematikan proses induk. Proses induk
yang mati akan membuat sistem operasi mengira bahwa proses telah selesai sehingga
akan kembali ke terminal user. Dari langkah ini kita telah mendapatkan satu proses yang
hampir bekerja di background, yaitu proses anak yang melanjutkan program setelah kita
membunuh induknya.

2. Membuat Proses Bekerja Secara Independen
Daemon harus bekerja secara independen dari proses lain, termasuk proses yang
menjalankannya. Langkah ini dapat dilakukan dengan cara memanggil fungsi setsid(),
sehingga proses akan mendapatkan session ID yang baru.

3. Menutup Standard I/O Descriptor yang diwarisi
Standard I/O descriptor dan descriptor yang diwarisi dari proses induk harus ditutup untuk
mencegah intervensi dari user serta untuk pengamanan. Ada tiga jenis standar I/O
descriptor, yaitu standard input (STDIN), standard output (STDOUT), dan standard error
(STDERR).

4. Melakukan Masking pada File Creation
Sebagian besar daemon bekerja dalam previlege super user. Untuk alasan keamanan,
daemon harus memproteksi setiap file yang dibuat. Fungsi umask() akan mencegah file
previleges yang tidak aman dalam setiap pembuatan file. Misalnya: 2
umask (027) akan membatasi mode pembuatan file ke 750 (komplemen dari 027).

5. Running Directory
Direktori kerja suatu daemon harus berada pada direktori yang selalu hidup. Bisa saja
pada saat starting, working directory berada pada user home. Karena daemon bekerja
hingga sistem reboot, maka file system user directory tidak akan pernah bisa di unmount.

6. Mendengarkan Signal
Tugas utama dari sebuah daemon sebenarnya adalah mendengarkan request. Maka di
dalam daemon harus terdapat pendengar signal yang akan merespon ketika daemon
dikirimi signal tertentu. Hal ini dapat dilakukan dengan memanggil fungsi signal() untuk
mengintall sebuah signal listener. Perlu diketahui bahwa signal 15 (SIGTERM) dan signal
9 (SIGKILL) tidak dapat ditangkap oleh signal handler.

7. Logging
Karena daemon tidak memiliki terminal pengontrol, maka satu-satunya cara untuk
mengetahui apa yang terjadi dengan daemon tersebut adalah dengan logging. Logging
digunakan untuk menulis suatu pesan dari daemon atau untuk mendebug kesalahan
yang terjadi. Logging harus banyak dilakukan oleh daemon untuk menyediakan informasi
sebaik-baiknya baik bagi user maupun programmer.
Ada beberapa cara untuk melakukan logging, antara lain:
- Metode Log File:
Semua pesan ditulis ke dalam file tertentu yang diatur d alam file konfigurasi daemon
tersebut. Kita dapat melakukannya dengan memanggil fungsi fopen().
- Metode Log Server:
Sistem operasi UNIX dan keluarganya memiliki daemon khusus yang digunakan
untuk logging yang dinamakan syslogd. Daemon ini mengelompokkan pesan-pesan
menjadi beberapa kelompok (disebut facility) dan kelompok-kelompok ini dapat
dikirim ke tempat-tempat yang berbeda, misalnya langsung dikirim ke sysadmin lewat
email, dikirimkan ke console terminal semua pengguna yang sedang logged in, atau
ditulis dalam suatu file logger. Konfigurasi dari daemon syslogd ini ditulis dalam file
/etc/syslog.conf.

Nahh.. contoh programnya bang???


include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <syslog.h>
#include <string.h>
#include <signal.h>
#include <termios.h>

void daemonize();
void working();

int main(void)
{
    // Initialize the logging interface
    openlog( "daemonlock", LOG_PID, LOG_LOCAL5 );
    syslog( LOG_INFO, "starting" );
    daemonize();
    working();

    // Finish up
    syslog( LOG_NOTICE, "terminated" );
    closelog();

    exit(EXIT_SUCCESS);
}

void daemonize()
{
    pid_t pid, sid;

    pid = fork();

    if (pid < 0)
    {
        syslog(LOG_ERR, "tidak bisa membuat proses anak");
        exit(EXIT_FAILURE);
    }

    if (pid > 0)
    {
        syslog(LOG_INFO, "proses induk dibunuh");
        exit(EXIT_SUCCESS);
    }

    umask(0);

    sid = setsid();

    if (sid < 0)
    {
        syslog(LOG_ERR, "tidak bisa membuat SID baru proses anak");
        exit(EXIT_FAILURE);
    }

    if ((chdir("/")) < 0)
    {
        syslog( LOG_ERR, "tidak bisa berpindah direktori ke %s, code %d (%s)",
                "/", errno, strerror(errno) );
        exit(EXIT_FAILURE);
    }

    freopen( "/dev/null", "r", stdin);
    freopen( "/dev/null", "w", stdout);
    freopen( "/dev/null", "w", stderr);

    syslog(LOG_INFO, "daemon berhasil diciptakan :) ");

}

void working()
{
    while(1)
    {
        sleep(1);
            // do what you want in here...
    }
}

Pengecekan Keyboard Stroke di C UNIX (2)

November 7, 2008 azer89 2 comments

Wew…sebelumnya pengecekan keyboard stroke yang pake kbhit itu ada kelemahannya, yaitu……resposinya jelek, kbhit cuman ngecek keyboard tersebut tidak idle klo kita ketikkan suatu string ke terminal dan kita tekan ENTER. Nah, kalau kita cuman mencet2 kibor dan gak tekan enter…ya kbhit tadi menganggap kita idle…
Nah, disini ternyata, lagi-lagi ada cara yang lebih seru dan lebih keren, kita cek TTY-nya :

static int long_idle_time;  // ini variabel global

void check_idle()
{
    struct stat stbuf;
    stat(tty, &stbuf);
    char out[100];;
    char time_now[100];
    time_t now,*mod_time;
    memset( out, '', sizeof( time_now) );
    now = time( NULL );
    mod_time = &stbuf.st_mtime;
    if(last_mod_time!=*mod_time)
    {
        last_mod_time=*mod_time;
        long_idle_time=0;
    }
    else long_idle_time++;
    char output[100];
    sprintf(output,"%s has been idle for %d second",tty,long_idle_time);
    syslog(LOG_INFO, output);
}

nah,kita bisa dapat berapa lama user sedang idle lewat variabel long_idle_time

MINIX 3

July 30, 2008 azer89 Leave a comment

MINIX 3 is a new open-source operating system designed to be highly reliable, flexible, and secure. It is loosely based somewhat on previous versions of MINIX, but is fundamentally different in many key ways. MINIX 1 and 2 were intended as teaching tools; MINIX 3 adds the new goal of being usable as a serious system on resource-limited and embedded computers and for applications requiring high reliability

This new OS is extremely small, with the part that runs in kernel mode under 4000 lines of executable code. The parts that run in user mode are divided into small modules, well insulated from one another. For example, each device driver runs as a separate user-mode process so a bug in a driver (by far the biggest source of bugs in any operating system), cannot bring down the entire OS. In fact, most of the time when a driver crashes it is automatically replaced without requiring any user intervention, without requiring rebooting, and without affecting running programs. These features, the tiny amount of kernel code, and other aspects greatly enhance system reliability.
Read more…

MINIX

July 30, 2008 azer89 Leave a comment

MINIX is a Unix-like computer operating system based on a microkernel architecture. Andrew S. Tanenbaum wrote the operating system to be used for educational purposes; MINIX also inspired the creation of the Linux kernel. Its name derives from the words minimal and Unix. Released under the BSD license, MINIX is free and open source software.
Andrew S. Tanenbaum created MINIX at Vrije Universiteit in Amsterdam to exemplify the principles conveyed in his textbook, Operating Systems Design and Implementation (1987). An abridged 12,000 lines of the mainly C source code of the kernel, memory manager, and file system of MINIX 1.0 are printed in the book. Prentice-Hall also released MINIX source code and binaries on floppy disk with a reference manual. MINIX 1 was system-call compatible with Seventh Edition Unix.
Read more…

ZFS, Zettabyte File System

July 29, 2008 azer89 Leave a comment


In computing, ZFS is a file system designed by Sun Microsystems for the Solaris Operating System. The features of ZFS include support for high storage capacities, integration of the concepts of filesystem and volume management, snapshots and copy-on-write clones, on-line integrity checking and repair, and RAID-Z. ZFS is implemented as open-source software, licensed under the Common Development and Distribution License (CDDL).
ZFS was designed and implemented by a team at Sun led by Jeff Bonwick. It was announced on September 14, 2004. Source code for ZFS was integrated into the main trunk of Solaris development on October 31, 2005 and released as part of build 27 of OpenSolaris on November 16, 2005. Sun announced that ZFS was included in the 6/06 update to Solaris 10 in June 2006, one year after the opening of the OpenSolaris community.
Read more…

Shadow OS 2008 Mini

July 29, 2008 azer89 Leave a comment

Shadow OS 2008 Mini is an operating system released in 2008 by Unknownsoft Inc. specifically designed to run inside other operating systems, namely Windows and Mac. It is a non-graphical based operating system that runs like a command line interpreter, and processes commands much faster than graphical-based operating systems. Although it can open any file type without an external program, many people do not know how to use it, as it is a text-based OS. Unknownsoft Inc. released a new version (1.3) shortly afterwards that could process service packs in .KTU (short for Know The Unknown, Unknownsoft Inc.’s host website) filetype. The corporation is currently developing Shadow OS 2009, an OS that will be a hybrid of text and graphics.

(From Wikipedia, The Free encyclopedia)

Categories: Computer Tags:

Distro Linux Terbaik Buat Saya?

July 28, 2008 azer89 Leave a comment

Kebanyakan “orang baru” di dunia linux pasti mempertanyakan satu hal:

“Saya akan bermigrasi ke Linux dari Windows, Linux versi mana yang terbaik? RedHat, SuSE, atau lainnya?

Saya memakai PC saya untuk:

Browsing Internet

Menonton DVD/MP3

Burn CD/DVD”

Jawaban singkat/males, “Saya tidak bisa merekomendasikan distro,banyak banget sih…”.

Jawaban yang puanjang,”Linux adalah pilihan dan kemerdekaan, ada banyak distribusi linux dengan kelebihan yang berbeda-beda, Coba untuk mendefinisikan kebutuhanmu dan pilih distribus linux yang sesuai dengan kebutuhanmu”

Beberapa orang sih menyukai SuSE dan yang lainnya merekomendasikan Ubuntu. Saya sih make Ubuntu

Read more…