CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

Uzman finali mini uygulamasının iskeletini tasarlarsın.

Proje: Mini sistem uygulaması

Bu beş derslik projede bir mini sistem uygulaması yapacaksın. Uzman bölümün üç konusunu birleştirir: çekirdek modülü (kernel_init ve syscall), derleyici bileşeni (parse_command ile komut çözümleme) ve güvenlik katmanı (security_check ile tampon taşması denetimi).

Her ders bir parça ekler ve önceki dersin çözümü başlangıç koduna dahil edilir. İlk derste modül iskeletini kurarsın: üç fonksiyonun bildirimleri ve main. Sonraki derslerde sırayla çekirdeği, derleyiciyi ve güvenliği eklersin. Son derste tüm parçaları birleştirip çalışan bir uygulama elde edersin.

Modül iskeleti

Bir C projesinin iskeleti, fonksiyon bildirimlerinden (prototipler) ve main'den oluşur. Bildirimler, derleyiciye her fonksiyonun imzasını önceden bildirir; tanımlar daha sonra gelir.

Bu projede üç fonksiyon bildirimi yapacaksın: void kernel_init(void);, int parse_command(const char *cmd); ve int security_check(const char *buf, int len);. main fonksiyonu, programın giriş noktasıdır; her şey buradan çağrılır. Bildirimler, main'den önce yazılır; tanımlar ise main'den sonra gelebilir. Bu yapı, okunabilirliği artırır.

Uygulama Proje iskeletini yaz

Üç fonksiyon bildirimi yaz: void kernel_init(void);, int parse_command(const char *cmd);, int security_check(const char *buf, int len);. int main(void) yaz; içinde printf("Proje başladı\n") çağır.

Başlangıç kodu

main.c
#include <stdio.h>
#include <string.h>

// üç modülün bildirimlerini yaz:
// kernel_init, parse_command, security_check

// main: "Proje başladı" yazdır

Örnek çözüm

main.c
#include <stdio.h>
#include <string.h>

void kernel_init(void);
int parse_command(const char *cmd);
int security_check(const char *buf, int len);

int main(void) {
    printf("Proje başladı\n");
    return 0;
}

Beklenen çıktı

Proje başladı

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bu proje hangi üç konuyu birleştirir?

  • Sadece derleyici
  • Sadece çekirdek
  • Çekirdek + derleyici + güvenlik Doğru cevap
  • Sadece güvenlik

Açıklama: Proje üç uzman konusunu birleştirir: çekirdek, derleyici ve güvenlik.

2 kernel_init bildirimini tamamla

Soru
void ____(void);
Cevap
void kernel_init(void);

Açıklama: void kernel_init(void); çekirdek başlatma fonksiyonunun bildirimidir.

3 Modülü amacına eşle

Kavram Anlamı
kernel_init Çekirdek başlatma
parse_command Komut çözümleme
security_check Taşma denetimi
main Giriş noktası

Uzman bölümündeki tüm dersler