İçeriğe geç

Kategori: Linux

Toolchain nedir ? ne işe yarar ?

 

 

toolchain
toolchain

Genellikle başka bilgisayar programları yada programlar arasında ilişi kuran, karmaşık yazılım geliştirme görevlerini yapmak ya da yazılım ürünü oluşturmada programlama araçlarını ayarlamak için kullanılan yazılımdır. Genel olarak toolchain aracı ardışık çalışan bir formdadır bu yüzden her tool un çıktı yada sonuç durumu bir sonraki için giriş yada başlangıç durumunu oluşturur, aynı zamanda set edilmiş ilişkili toollara bakrak çalışabilir bu yüzden her zaman sıralı çalışması gerekmez.

Basit bri yazılım geliştirme toolchain i complier, linker(kaynak kodu çalıştırılabilir bir dosyaya dönüştüren yapı), libraries(İşletim sistemine kullanıcı arayüzü oluşturan yapı) ve debuggerdan(programı test etmek için kullanılan yapı) oluşur. Karmaşık bir yazılım ürünü örneğin video oyunları ses efektleri, müzik yapıları, 3d animasyon modeller ve animasyonların birlikte ek tool larla birleştirilerek  bu kaynakların hazırlanıp bir ürün oluşturmasına ihtiyaç duyar.

Komut satısından tty terminal ler arası geçiş

tty terminal ler girdi çıktı alabilen komut uygulanabilen bir device file(dosya sisteminde bir dosya gibi gözüken aygıt sürücüsünün arayüzü)dır. Birbirlerinden bağımsızdırlar, mesela ben aynı anda tty1 den başka tty2de de komut yürütebilirim. Örnek olarak tty1 de capslock u açıp tty2 ye geçtiğinizde kapanır tekrar tty1 e geldiğinizde açık olacaktır.

tty terminal

 

7 adet var f1 den f7 kadar geçiş yapabilirsiniz. Bizim grafik arayüzümüz ise f7 de bulunuyor.

Virtualboxta minimal alfa7 sürümünü kullanırken ctrl + alt + f1 e bastığımda sistem bunu ana işletim sistemi için algıladı bu yüzden tty terminaller arası geçiş yapamadım.

Şu komutu buldum örneğin herhangi bir tty terminalden  tty5 e gitmek için:

chvt 5

yazmamız yeterli. Bu komut tty terminal üzerindeyseniz oluyor. Bunun dışında açtığınız konsol ve xterm gibi arayüzlerde bu komut işe yaramıyor.

 

Bu yazıyı aynı zamanda pisi forumunda da yayınladım.

GNU Linux ne demektir ?

Hepimiz kullanırken genelde linux kullanıyorum gibi bir tabir kulalnırız ancak bu tabir pekde doğru değil asıl olna GNU Linux olarak kullanmamız daha amacına uygun bir adlandırma olmuş oluyor. GNU/linux ve tarihçesini daha iyi öğrenmek içni bir slayt hazrıladım bu slayta linkten ulaşabilirsiniz yada aşağıda metnini okuyarak devam edebilirsiniz

GNU Linux
GNU Linux

GNU aslında antilop demek simgeside bunu gösteriyor zaten 🙂

GNU ve Linux kavramları, GNU Linux ve özgür yazılım nedir ?

 

  1. 1. Özgür Yazılım Felsefesi nedir?
  2. 2. Özgür yazılım kullanıcı tarafından: değiştirillebilir, geliştirilebiir, çalıştırılabilir, kopyalanabilir, ticari projelerde kullanılabilir, kaynak koda her türlü müdehale edilebilir yazılımlardır.
  3. 3. GNU Projesi nedir?
  4. 4. ABD’li özgür yazılım aktivisti, sistem uzmanı ve yazılım geliştiricisi. GNU Projesi ve Özgür Yazılım Vakfı’nın kurucusudur. Eylül 1983’de, Unix-benzeri işletim sistemi oluşturmak amacıyla işletim sistemi çekirdeği (kernel) hariç bir işletim sistemi için gerekli olan tüm yazılımları içeren dev bir özgür yazılım koleksiyonu olan GNU Projesi ni hayata geçirmiştir.
  5. 5. Stallman’ın savunuculuğunu yaptığı özgür yazılım aslında dünyanın birçok başka yerinde zaten uygulanmaktaydı. University of California, Berkeley’de vücuda gelen BSD bunun başta gelen örneğidir. BSD geliştirdiği yazılımları, ki aralarında TCP/IP protokol takımı gibi İnternet’in belkemiğini oluşturan kodlar da vardır, tamamen açık şekilde herkesin takdirine sunmaktaydı.
  6. 6. BSD de, Stallman’ın yaşadıklarına benzer şekilde kendi geliştirdiği kodların bir başkası tarafından alınarak üstü kapatılıp ticaret amacıyla kullanılmasını yaşamıştır: AT&T, Sys V adı verilen Unix sürümü içinde BSD’nin geliştirdiği ve TCP/IP’yı da içeren birçok kodu kullandı ve daha sonra trajikomik bir şekilde BSD’yi AT&T’nin kendi telif hakkındaki yazılımları kullandığı iddiasıyla 1992’de mahkemeye verdi. Ancak mahkeme AT&T’nin aleyhine sonuçlandı ve BSD kendi Unix sürümünü FreeBSD olarak serbestçe dağıtmaya başlayabildi.
  7. 7. FreeBSD x86 Uyumlu, AMD64, IA-64, PC-98 ve UltraSPARC® mimarileri için ileri seviye bir işletim sistemidir. Berkeley’deki Kaliforniya Üniversitesi’nde geliştirilmiş UNIX® türevi olan BSD’yi temel almıştır. FreeBSD birçok kişi tarafından geliştirilmekte ve devam ettirilmektedir. Ayrıca başka mimariler için geliştirim değişik aşamalardadır.
  8. 8. GNU işletim sistemi planı 1983 Eylül’ünde Richard Stallman tarafından duyurulmuş, 1984 Ocak ayında işleyişe başlamıştır. Günümüz itibarıyla hâlâ tamamlanmış bir GNU sistemi sunulmamıştır. Resmi çekirdeği GNU Hurd’dür ancak Hurd henüz bitmemiştir zira geliştirilmesi aşamasında bazı lisans sorunları yaşanmış ve yapısal değişikliğe gidilmiştir.
  9. 9. Linux çekirdeğini kullanan kullanıcılar sistemlerini genel olarak “Linux” demektedir ancak GNU Projesi “Linux” yerine “GNU Linux” denmesini önerir. Çünkü Linux, bünyeside GNU araçlarını barındırmaktadır. Bu konudaki tartışma uzun süredir devam etmektedir. Birçok GNU yazılımları diğer işletim sistemlerinde de kullanılmıştır (Windows, BSD, Solaris ve Mac OS gibi).
  10. 10. GNU General Public Lisance (GNU Genel kamu lisansı) nedir?
  11. 11. Özgür Yazılım Vakfı (FSF) tarafından kaleme alınan GNU Genel Kamu Lisansı, dört temel özgürlüğü güvence altına almayı amaçlar. Bu dört temel özgürlük sırasıyla şunlardır: Özgürlük 0: Programı sınırsız kullanma özgürlüğü. Özgürlük 1: Programın nasıl çalıştığını inceleme ve amaçlara uygun değiştirme özgürlüğü. Özgürlük 2: Programın kopyalarını sınırsız dağıtma özgürlüğü. Özgürlük 3: Programın değiştirilmiş halini dağıtma özgürlüğü.
  12. 12. GPL sözleşmeli bir yazılım, kaynak kodunu kullanan türevlerinin de GPL ile lisanslanmasını şart koşar. Yani GPL ile korunan bir yazılımın kodlarını, daha dar kapsamlı bir lisans sözleşmesine sahip bir yazılımın içinde asla sunamazsınız.
  13. 13. LGPL (Kısıtlanmış Genel Kamu Lisansı)
  14. 14. LGPL ise ağırlıklı olarak kütüphanelerde kullanılan bir özgür yazılım lisansıdır. Mesela yaygınlaşmasını istediğiniz bir kütüphane ya da görüntü biçimimiz var. Bu görüntü biçimini özgür olmayan yazılımlar içinde de kullanılabilmesini arzularsanız, LGPL ile lisanslayıp, kapalı kaynak kodlu bir yazılım içinde de kullanılabilmesini sağlayabilirsiniz. LGPL ile lisansladığınız kısmı ve o kısma yapılan yamalar yine LGPL ile lisanslanmalıdır.
  15. 15. Linux tarihçesi
  16. 16. Linux ismi ilk olarak Linus Torvalds tarafından yazılan ve 5 Ekim 1991 Linux 0.02 etiketiyle duyurusu yapılan, Linux çekirdeğinden gelmektedir. Linux’un Unix ile herhangi bir kod ortaklığı bulunmamaktadır yani Linux’un kodları sıfırdan başlanılarak yazılmıştır.
  17. 17. a.x.y şeklinde belirtilen çekirdek türevlerinde y bulunulan seviyeyi, x gelişim aşamasını göstermektedir. Tek sayılı x’ler geliştirme aşamalarını çift sayılı x’ler ise güvenilir Linux çekirdeklerini göstermektedir. a ise değişik Linux sürümlerini belirtir.
  18. 18. Gelişiminden bu yana onlarca GNU Linux dağıtımı bulunmaktadır.
  19. 19. Linux Masaüstü Ortamları:● GNOME (GNU Object Model Environment- GNU Geliştirilebilir Masaüstü Ortamı)
    ● KDE , “K Desktop Environment” (K Masaüstü Ortamı)
    ● LXDE “Lightweight X11 Desktop Environment”
    ● Xfce, (XForms Common Enviroment ( XFormları Ortak Ortamı)
    ● FluxBox
    ● Enlightenment
    ● Unity
  20. 20. Teşekkürler… Hüseyin akkaya akkaya.hu@gmail.com www.akkayahu.com

Ubuntu recovery modda root güvenlik sorunu

 

Olayın hikayesi :

Okuldaki bilgisayar ağları lablarında bilgisayarlarda ubuntu kurulu bir aglab birde öğrenci ve guest hesabı omak üzere 3 hesap var ama biz aglab ve ogrenci hesabının şifresini bilmiyoruz bu yüzden guestle girmek zorunda kalıyoruz.

Bende geçenlerde labdayken bi internete bakim belki şifre değiştirebilirim diye ama olmayacağınıda biliyorum tabi. Neyse bir site buldum orada ubuntu şifresi sıfırlamayı anlatıyor. Buraya kadar olna kısım hikayeydi şimdi asıl olay başlıyor.

 

Neden ubuntu recovery mod güvenlik sorunu ? :

Sitede grup ekranında ubuntu recovery modu açıyorsunuz bazı guruplarda direk ekranda var, yeni sürümlerde de Advanced setting menüsünde var oradan bir recovery mod seçiyoruz sistemde bulunana çekirdek sürümlerinden istediğimizle  recovery modda açabiliriz hepsi listede var. Daha sonra bilgisayar linux çekirdeğini yüklüyor ve sizin karşınıza bir menü açıyor. O münüde şöyle bir seçenek var:

 

ubuntu recovery
ubuntu recovery

 

root – drop to shell prompt

diye buraya tıkladığınızda root kullanıcısı hesabı ile bağlanıyorsunuz (root kullanıcısı, root gibi olanlar değil).

Buraya kadar herşey normal beni şaşırtan şey şu oldu hiçbir şekilde root parolası istemedi direk ‘#’ işaretli kabuk shell e girdi 🙂 ilk girişte kısıtlı bir erişim oluyor recovery modda açtığı için tam yetkiyle çalışabiliyoruz. Tam yetki ile çalışabilmemiz için ‘/’ dizinin gerekli ayarlarla tekrar mount etmemiz gerekiyor. bunun içnide şu komutu

mount -rw -o remount /

kullanıyoruz ve artık kök dizinini çalıştırma modunda tekrar bağladık.

Şimdi istediğimiz kulalnıcının şifresini değiştirebilir istediğimiz her şeyi yapabiliriz ki bende labdaki bilgisayarlarda ogrenci hesabının şifresini değiştirerek giriş yapmayı başardım 🙂 .

Peki Bu duruma nasıl geldik neden “root – drop to shell prompt” bizden herhangi bir parola istemedi ??
Bu durumun nedeni basit sistemi kurarken bizden kullanıcı hesabimıza giriş için bir parola seçmemizi ister, bunun dışında da kullanıcının root yetkilerine sahip olması için bir parola ister yani root değil root kullanıcısını yetkilerine sahip olmak içni bir parola. Dolayısıyla bizim sistemimizde default var olan gerçek  ‘root’ kullanıcısının şifresi olmaz bu yüzden “root – drop to shell prompt” sekmesine girdiğimizde herhangi bir şifre belirlemediğimiz için bizi direk root olarak görüyor. Ve buda bir güvenlik açığına sebep oluyor.

 

Bu güvenlik açığını kapatmak için:

Bu durumun önüne geçmek için terminalde

su root

komutunu girelim ve root olalım daha sonra passwd root diyerek kendimize bir parola belirleyelim böylece bu güvenlikaçığımızıda kapatmış oluyoruz.

root kullanıcısı veroot yetkilerine sahip kullanıcıları daha iyi anlamak için aşağıdaki resimde parola isteme şekillerine bakabilirsiniz.

ubuntu root parolası
ubuntu root parolası

Biz normal kullanımımızda sudo su dediğimizde kendi hesabımızı root yetkilerine ulaşımını açıyoruz root kullanıcısı olmuyoruz.

 

Bu işlemlerin sonunda elimizde

  1. kullanıcı hesabımıza giriş için parola
  2. Kullanıcı hesabımızı root yetkilerine kavuşturmak için parola
  3. Ve bilgisayarımızdaki root kullanıcı hesabının paroları

olmak üzere 3 adet parola olmuş oluyor.  Muhtemelen bu durum root kullanıcı parolası konulmamış diğer dağıtımlarda da mevcuttur diye tahmin ediyorum.  Bu da GNU/Linux dağıtımı kullanırken bunun gibi basit ayarların ne kadar önemli olduğunu gösteryor.

 

underground dünyasından Emre abiye tespitlerde yardımcı olduğu için teşekkür ederim :))

 

SASM ubuntu için bir assembly idesi

Herşey micro işlemci dersinde assembly kodlarının debug edilmesinde visual studio kullanılması ile başladı bende mutlaka linux ta da vardır diye düşündüm. Hatta ilk ders dersi dinlemek yerine assembly kodu nasıl derlenir onu araştırmak zorunda kaldım. İkinci derse artık konsoldan derleyebiliyordum ama bana bu yeterli değildi debug ederek görmem gerekiyordu.Ve SASM idesini buldum.

 

Bunun için gene araştırmaya başladım ve tanıdıklarımdan birinden şu ide önerisini aldım:

SASM ide
assembly ide

 

ilk açıldığında sizi bu şekilde karşılıyor daha sonra örnek bir kod ile proje geliyor:

 

sasmide2
assembly SASM ide

 

Program açılınca Ctrl + r yaparsanız en sağdaki menü açılıyor ve registerleri görebiliyorsunuz. Help menüsüne girerseniz

“A little bit about the debugger:” başlığı altında diğer kısayollara ulaşabilirsiniz.

Ve sitesinden  indirebilirsiniz.