Proje tasarımı
- C kursu
- Uzman
- Ders 43/47
- 6 dk
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
#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
#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
void ____(void);
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ı |