UNIX sistem çağrılarının izlenmesi ve öğrenilmesi
Tracing and learning UNIX system calls
Yazar: ÇAĞLAR GÜMRÜKÇÜ
Danışman: YRD. DOÇ. DR. HÜSEYİN PEHLİVAN
Karadeniz Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Bölümü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2009
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
İşletim sisteminde süreç eylemlerinin belirlenmesi, izleme mekanizmaları yardımıyla yakalanan sistem çağrıları üzerine dayandırılır. Gerçekten sistem çağrıları dizisi ve onların verileri analiz edilerek izlenen sürecin gerçekleştireceği eylemlerin ortaya çıkarılması mümkündür. UNIX sistemlerinde çeşitli süreç izleme mekanizmaları mevcuttur. Fakat bu çalışmada süreçlerin izlenebilmesi için farklı bir program yazılmış olup standart UNIX izleme mekanizmaları kullanılmamıştır. Süreç izlemede en önemli rolü işletim sistemi üstlenir. Bu sebeple geliştirilen izleme mekanizmaları işletim sistemiyle işbirliğine ihtiyaç duyar.Bu çalışmanın amacı sistem çağrılarının herhangi bir web ara yüzünden koşularak izlenmesi, çağrıların çalışma mantığının grafiksel olarak gösterilmesi ve kullanıcılara öğretilmesidir. Çalışmamız temelde iki bölümden oluşmaktadır. Birincisi UNIX sistem üzerinde koşan çağrıları analiz eden bir C programı ve bir web servisi, ikinci kısım ise izlenecek sistem çağrılarının girilerek sonuçların gösterildiği web ara yüzüdür. Burada önemli olan nokta çağrıların izlenebilmesi için kullanıcıların fiilen bir UNIX makineye ihtiyaçlarının olmamasıdır. Web ara yüzünden izlenmek istenen çağrılar programla UNIX sistem üzerinde koşan web servisine aktarılır, servis UNIX tarafında geliştirdiğimiz çağrı izleme programı yardımıyla sonuçları üreterek istemci tarafa gönderir. İstemci tarafta, dönen sonuçlara göre süreçler bazında koşulan çağrıların listelenmesi, gruplanması, grafiksel olarak yorumlanması sağlanmaktadır. Genel olarak sistem çağrıları Bellek, Disk, Sistem, Giriş/Çıkış ( I/O ) gibi kategorize edilmiş ve grafiksel gösterim bu kategorizasyona dayandırılmıştır.Sistem çağrıların izlenmesi, çağrıların çalışma mantığının anlaşılması, işletim sisteminin süreçleri nasıl kullandığının yorumlanması, sistem programlamayla ilgilenen kullanıcılara yardımcı olabilmesi amacıyla bir web uygulaması yazılmıştır.

Abstract:
Process activities in operating systems are based on system calls which can be captured by monitoring mechanisms. It is possible to determine kernel-based activities of processes, by analyzing system calls and its data. In UNIX systems, there are some process monitoring mechanisms, but in this thesis a different computer program is written to monitor process, standard UNIX monitoring tools are not used. Since operating systems have a significant role in process monitoring, monitoring mechanisms needs to cooperate with operating systems.The aim of this work is, to run system programs using a web interface, monitoring the related processes and graphically presenting their kernel operations to the user in a system call-based fashion. The work is organized in two parts. First, a C program and web service, which analyses system calls of processes running on UNIX operation system, second, a web interface where you can enter some system calls to analyze and see the results. The key point is that, users do not need any UNIX machine to monitor system calls. System calls are transferred via a program to the web service which runs on a UNIX machine, the service generates results by means of system call monitoring program on UNIX side and sends results to the client side. According to the returned results, process based system calls are listed, grouped, and graphically displayed on client so that it can be analyzed and interpreted. Generally, system calls are categorized as; memory, disk, system, I/O, and graphical representation is based on this categorization.A web application is written to monitor system calls, to understand the logic behind the calls, to interpret how operating system manages processes, to help those who deal with system programming.