Busybox: Küçük docker image'ların arkasındaki İsviçre çakısı

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024
  • Videonun editing'ini yaparken boyutu yanlış ayarlamışım, kenardaki boşluklar için kusura bakmayın. :)
    Daha fazla bilgi: busybox.net/
    ► Kanala Abone olup bildirimleri açmayı unutmayın!
    ► Sorularınızı videolara yorum olarak ekleyin ve tartışalım.
    ► Canlı yayınlardan haberdar olmak için:
    Twitter: / ahmetb
    Discord: bit.ly/ahmetb-...
    Telegram: bit.ly/ahmetb-... gruplarımıza katılın.

Комментарии • 10

  • @mustafakorkmaz37
    @mustafakorkmaz37 4 года назад +1

    bizim isvicre cakisi da sensin heralde :)

  • @skylow32
    @skylow32 4 года назад +1

    Bu hıza hayranım :D

  • @ealtay93
    @ealtay93 4 года назад

    Bu tarz içerikleri aktardığın için teşekkürler. Bu video'dan bağımsız bir soru sormak istiyorum; Kubernetes, tcp socket bazlı uygulamalar için mantıklı bir teknoloji mi? Teşekkürler

  • @RooTHackera
    @RooTHackera 2 года назад

    vay bee

  • @ogunack7549
    @ogunack7549 4 года назад +1

    busybox alt komutlara applet ismini veriyor, çalıştırılan executable dosya adını kendine argüman olarak gönderiyor.
    "busybox date" şeklinde çalıştırıldığında execve("/bin/busybox", ["busybox", "date"]),
    busybox executable dosya ismini örnekteki container içinde olduğu gibi mesela "date" olarak değiştirip çalıştırdığımızda execve("/bin/date", ["date"]) olarak çağırıyor. Yani executable dosya ismi argüman olarak çağırılacak applet'i belirliyor.

    • @ahmetb
      @ahmetb  4 года назад +1

      dogrudur ama genelde exec boyle olmuyor cunku symlink edilmis oluyor bu binary komutlara. O yuzden “date” adli symlink veya hardlink’i cagirdiginizda execve(/bin/date)”, [ ]) oluyor. Yine de argv[0] dan komutun adi bulunabiliyor tabi.

    • @ogunack7549
      @ogunack7549 4 года назад

      @@ahmetb Evet. Hardlink de olsa symlink de olsa dosyanın adı argv[0] olarak gönderiliyor. Ben container içindeki farklı isimdeki aynı busybox executable dosyasının alt komutları nasıl yakaladığını anlatmak istedim.
      Ama hardlink olduklarını unutup dosya ismini değiştirmekten bahsetmişim. Orada hatalıyım :)

    • @ahmetb
      @ahmetb  4 года назад +1

      Benim de emin olmadan yazdigim nokta 1) acaba syscall yapilmadan once symlink evaluate ediliyormu 2) syscallda argv’a dosyanin path’i ekleniyormu yoksa OS processi cagirirken kendisi mi ekliyor. Denemek istersen strace ile guzel bir egzersiz :))

    • @ogunack7549
      @ogunack7549 4 года назад +1

      @@ahmetb symlinkleri öncesinde ve sonrasında okuyan bir system call göremedim.
      ln -s /bin/busybox /bin/ifconfig diye bir link yarattım.
      ifconfig'i çağırınca, execve aşağıdaki şekilde normal dosyalar gibi çağırıyor.
      execve("/bin/ifconfig", ["ifconfig"] )
      syscall kendi içerisinde çözümlüyor galiba. Kaynak kodunda referans verdiğim fonksiyon o işi yapıyor gibi geldi ama tam emin değilim. Sen çözümleyip bize de anlatırsın :)
      github.com/torvalds/linux/blob/b85051e755b0e9d6dd8f17ef1da083851b83287d/fs/exec.c#L842

  • @tolgaayan5618
    @tolgaayan5618 4 года назад

    Videoların kalitesi sürekli artıyor, emeğiniz için teşekkürler :)