ARDrone

Okulda üzerinde çalışacağım (en azından çalışmaya çalışacağım) cihazı sizlere de tanıtmak için bir yazı yazmak istedim.
Adını başlıktan da anlayabileceğiniz gibi cihazın adı ARDrone. Peki nedir bu ARDrone ?
ARDrone en kaba ifadeyle dört pervaneli uzaktan kumandalı bir helikopter (İngilizcesiyle quadrotor veya quadricopter bu araçlardan Avatar'ı izlediyseniz veya Crysis oynadıysanız görmüşsünüzdür). Ama çok önemli bir farkla normal modellerin aksine radyo dalgalarıyla değil  Wi-Fi ağları sayesinde kontrol ediliyorlar. Diğer model araçlardan bir başka ilginç farkı ise kullanmak için spesifik bir kumandaya ihtiyaç yok resmi olarak iOS işletim sistemine sahip herhangi bir cihazdan kontrol edilebiliyorsa da açık kaynak SDK (Geliştirme lisansını okudum özgür yazılım değil gerçek anlamda açık kaynak) sayesinde herhangi bir kişisel bilgisayardan kontrol edilebilme özelliğine de sahip. Aslında ARDrone'un klasik uzaktan kumandalı modellerle aynı kefeye koymak da pek mümkün değil. Hatta ARDrone'u bir UAV (İnsansız Hava Aracı) olarak adlandırmak bence daha doğru. Çünkü onu kullanırken amaç uçurabilmek değil. Zaten üzerindeki bilgisayarla kullanıcının işini çok kolaylaştırıyor. Altındaki kamera ve ultrason alıcı ile yüksekliğini belirleyerek otomatik olarak inebiliyor veya kalkabiliyor komut verilmediğinde sabit bir yükseklikte durabiliyor. Ayrıca önünde de bir kamera bulunuyor bu sayede çok rahat kontrol edebiliyorsunuz.Aklınıza madem uçurmak çok kolay ne zevki kalır diye haklı bir soru gelebilir. ARDrone zaten arttırılmış gerçeklik (augmented reality) oyunları için tasarlanmış bir araç. Arttırılmış gerçeklik oyunları derken şunu kastediyorum. ARDrone'un ön kamerası belirli işaretleri algılayabiliyor. Bu algılama olayı sırasında kumandada belirli animasyonlar gösterecek oyunlar tasarlanabiliyor. (Mesela ARDrone bir işaret algıladığı zaman kumanda ekranıında ona ateş ettiğinin gösterilmesi,birden fazla ARDrone'un it dalaşı yapması vs.) Araç iç ve dış mekan uçuşlarına uygun hatta bu nedenle iki farklı gövde ile geliyor.
ARDrone SDK ve yazılım geliştirmeye ayrıca değinmek istiyorum ama önce ARDrone özelliklerini vereyim.
Özellikler

  • Geçici dijital Wi-Fi bağlantı (Wi-Fi router’a gerek yoktur). 
  • Menzil: 50 metreye kadar
  • 2 video kamera ile iPod touch® / iPhone®/ iPadTM ekranına canlı görüntü
  • Otomatik stabilizasyon ve tam pilotaj yardımı (6 metreye kadar yükseklik)
  • iPod touch® / iPhone®/ iPadTM üzerinde acemi ve uzman modu ile dokunmatik kontrol arayüzü
  • Maksimum hız: 5 m/s; 18km/h
  • Bağlantı için maksimum yükseklik: 50 metre
  • Çalışma süresi: 12 dakika
  • Güvenlik sistemi: 
  • Kapalı mekân uçuşları için EPP gövde
  • Temas halinde otomatik pervane kilitleme
  • UL2054 batarya
  • Acil durumda motorları durduran kontrol arayüzü
  • Ebatlar:
  • Kapalı mekân uçuşları için koruyucu gövde ile birlikte: 52,5x51,5cm Ağırlık: 420 g
  • Dış mekân uçuşları için şekillendirilmiş gövde ile birlikte: 45x29cm 
  •         Ağırlık: 380 g

  • Radyo dijital bağlantı
  • Geçici moda gömülü ve yapılandırılmış entegre Wi-Fi b/g modülü 

  • Video
  • Ön kamera: Geniş açı kamera
  • VGA kamera (640x480 pixel), 93° geniş açı diyagonal objektif, CMOS sensör
  • Şifreleme ve iPod touch® / iPhone® / iPad™’a görüntü akışı
  • Düşman aracını algılama
  • Çekim doğrulama
  • Tahmini mesafe
  • Mesafe algılama: 5 metre
  • Engel algılama
  • Engel konumunu hesaplama
  • Sanal nesne konumunu hesaplama
  • iPod touch® / iPhone® / iPad™ ekranına video aktarımı

  • Dikey kamera: Yüksek hız kamerası
  • QCIF kamera (176x144 pixels), 64° diyagonal lens, CMOS sensör
  • Yatay hız değişikliği hesaplama: 60 fps
  • Şifreleme ve iPod touch® / iPhone® / iPad™’a görüntü akışı

  • Otomatik pilot
  • Otomatik kalkış ve iniş
  • Kapalı ve dış mekânda otomatik sabit nokta (Rüzgâr hızı < 15km/h, Yükseklik < 6 metre 
  • Otomatik yükseklik ve hız ayarı (6 metreye kadar)
  • Kapalı (hassas) ve açık hava (hız) uçuşları için 2 komut modu

  • iPod touch® / iPhone®/ iPad™’de dokunmatik kontrol arayüzü
  • Acemi(2 komutlu) ve Uzman (1 komutlu) modlar
  • AR.Drone’u kumanda etmek için iPod touch® / iPhone®/ iPad™ ivmeölçerini kullanır
  • iPod touch® / iPhone® / iPad™’in hareketlerini kopya eder (ileri-geri, sol-sağ)
  • Motorları durdurmak için acil durum düğmesi

  • Tam Ataletsel Ölçüm Birimi
  • MEMS 3 eksen ivmeölçer
  • MEMS 2 eksen XY ve 1 eksen Z jirometre
  • Açısal hız tahmini
  • Sapma, eğim ve yuvarlanma açısı tahmini
  • Ölçüm frekansı: 200 Hz
  • Patentli anti-vibrasyon sistemi

  • Ultrason yükseklikölçer
  • Emisyon frekansı: 40kHz
  • 6 metre menzil
  • Ölçüm frekansı: 25 Hz
  • Başka bir AR.Drone’dan gelen ultrasonik sese karşı sistem 

  • On-board bilgisayar
  • CPU Parrot P6 ARM926 çekirdek 32bits-468MHz
  • Gömülü Linux platformu
  • 128 MB DDR RAM
  • 128 MB flash memory
  • Wi-Fi ya da USB üzerinden gömülü yazılım güncelleme
  • Havacılık yapısı
  • Yüksek verimlilikte pervaneler (Parrot AR.Drone için özel tasarım)
  • Karbon tüp yapısı
  • Fiber-takviyeli PA66 plastik
  • Kapalı mekân uçuşlarında pervaneleri koruyan EPP gövde
  • Dış mekân uçuşları için şekillendirilmiş EPP gövde

  • Motor ve enerji
  • Değiştirilebilir 4 fırçasız motor (3 500 rpm, Güç:15W)
  • Fırçasız motorlar için 4 kontrolör (dijital komut)
  • Lityum polimer batarya (3 gözlü, 11,1V, 1000 mAh) UL2054
  • Batarya şarj süresi: 90 dakika
Özelliklerine baktığımızda üzerinde şu an kullandığım cep telefonundan (Samsung Corby Pro) daha güçlü bir donanım barındıran ARDrone'u bir RC araç değilde UAV olarak olarak adlandırma isteğimin anlaşılabileceğini düşünüyorum. Ayrıca ARDrone'un günümüz teknolojisinin en büyük sorunlarından biri olan güç sorunundan  nasibini aldığını görüyoruz.Üzerindeki 1000mAh batarya ile sadece 12 dakika gibi bir ortalama uçuş süresi var.
Batarya daha yüksek kapasiteli başka bir tanesiyle değiştirilmediği sürece uçuş ömrü oldukça kısa.
Bu kadar yetenekli bir aracın bir geliştirme ortamı olarak da kullanılabilmesi için üretici firma Parrot bir açık kaynaklı bir SDK yayınladı. Bu SDK ARDrone'un Redmine sayfasından edinilebilir. Geliştirici sözleşmesini onayladıktan sonra SDK'yı ve yüz sayfalık developer guide'ı indirebiliyorsunuz. Önce sözleşme hakkında biraz bilgi vereyim. Parrot kendi fikri mülkiyet haklarını korumak için koyduğu bir kaç maddenin [mesela kodu tekrar dağıtırken Parrot'un telif hakkı bilgisini eklemek,geliştirilen yazılımların reklamında Parrot ismini kullanmama vs.]yanında geliştirdiğiniz yazılımın tüm fikri mülkiyetini geliştiriciye bırakıyor. SDK'nın kullanım amaçlarıyla ilgili bazı kısıtlamalar da mevcut. Şahsi fikrim sözleşmenin gayet makul maddeler içerdiği ve geliştiriciye ağır kısıtlamalar getirmediği yönünde. Sıfırıncı özgürlüğü sunmasa bile genel anlamda özgür yazılım esaslarına da pek ters düşmüyor. Parrot kaynak koda erişim, kaynak kodu düzenleme,dağıtma gibi temel özgürlüklerini geliştiricilere sunuyor.
Dökümantasyonda ARDrone'un genel yapısından,SDK hakkında kısa bir özet,API fonksyonları,temel komutlar,bilgi akışı yönetimi,drone ayarları gibi teknik bilgilerin yanı sıra Linux,Windows işletim sistemlerinde programlama ile ilgili temel veriler yer alıyor. Gerçi geliştirici sözleşmesini onaylamadan dökümanların indirilememesi olayını mantıklı bulmadım.
Peki indirdiğimiz SDK'nın içerisinde neler var.
ARDroneLIB : ARDrone ile ilgili kütüphane ve API'leri içerir.
ARDroneTool : ARDrone'un yönetimi ile ilgili hazır araçları içerir.
İPhone örneği.
Ayrıca ARDrone yazılımlarının farklı platformlarda geliştirebileceği gibi soket programlamayı destekleyen farklı programlama dilleri ile geliştirebileceğini öğrendim.
Sorularınız ve sorunlarınız varsa ARDrone API forumuna başvurabilirsiniz. Aynı zamanda ARDrone ile ilgili bir topluluk sitesi olan http://www.ardrone-flyers.com/ adresi de mevcut.

16 Mayıs 2011

Posted In: Gezegen, KOÜ Bilgisayar Müh., programlama

Linux Sık Sorulan Sorular v2

Yazıya başlamadan uyarımı yapayım. Bu yazının amacı Linux sistemler ile ilişkisi kulak dolgunluğu seviyesinde olanlar (genelde Windows kullanıcıları) için bazı temel soruları cevaplamaktır ve hayatın anlamını vaat etmemektedir.
Cevaplar da giriş seviyesi dağıtım olarak önerdiğimiz Ubuntu ve Pardus (R.I.P) üzerinden verilecektir.

NOT: Aslında yazalı baya olmuş ama gezegene göndermediğimi farkedince belki biri görmek ister diye düşündüm (29.11.2011)

Linux'un bu kadar çok sürümü var ? Zaten Ubuntu da Pardus da Linux değil mi ? Ne farkları var ? 

Kavram karmaşası şurada ortaya çıkıyor. Linux, Windows veya Mac OS gibi bir işletim sisteminin ismi değil. Sadece bir parçasının (çekirdeğinin) ismi ama artık markalaştığı için işletim sisteminin ismi gibi kullanılıyor. Bire bir paralel olmasa da bunu Chicago Bulls denince akla NBA takımından daha çok Michael Jordan'ın gelmesi gibi de düşünebiliriz. Dağıtımlar çok farklı ve çok benzer olabilir. Aralarındaki farkları şöyle açıklayabilirim. Benzer donanıma sahip iki laptop düşünün mesela biri Dell biri HP olsun. Sonuçta bunların ikisi de aşağı yukarı aynı işleri yapabilecekler.  Ama farklar için şöyle örnekler verebilirim. Mesela birinin ekranı daha iyi çözünürlük sağlayabilir. Ağ kartı daha iyi çekebilir. Diğerinin klavyesi daha rahat olabilir. Teknik servisi daha iyi olabilir. Sonuçta bunlar bilgisayarın işlevselleği ile ilgili değil. Kullanım tecrübesiyle ilgili farklardır. Dağıtımların aralarındaki farklar da buna benzer. Hepsi bir birlerinin yaptığı işleri yapabilirken bir iyi bir masaüstü deneyimi,yeni teknolojiler vs. sunarken diğeri daha fazla program desteği, daha iyi teknik destek sunabilir bir başkası daha iyi özelleştirebilirlik ve seçim şansı sunabilir. Dağıtımların arasındaki farklar tamamen bir dağıtımı hazırlayan insanların insiyatifine kalmıştır.. Bu farklar da aynı motoru kullanan Renault ve Audi marka arabaların arasındaki fark gibi olabileceği gibi Doğan ve Şahin arasındaki farklar gibi olabilir. 

Bir de GNU diye bir şeyden bahsediyorlar o nedir ?
GNU Linux'tan 9 yıl önce başlayan bir proje. Akademiden ticari yazılım sektörüne karşı başlayan bir tepki olarak da görülebilir. Özgür bir işletim sistemi yapmak amacıyla başlatıldı. Aynı zamanda bu proje özgür yazılımın teknik bir kavramdan ziyade felsefi ve etik bir kavram olarak şekillenmesini sağladı. Özgür yazılımın güvencesi diyebileceğimiz GPL'de bu proje çatısında yazıldı. Projenin başında ise özgür yazılımın babası kabul edilen Richard Stallman var. Kafa karışıklığını önlemek için ve(ya) marka değerinden dolayı Linux ismini kullansak da aslında belirtilmesi gereken doğru kavram GNU.  GNU hareketine atıfta bulunmak için GNU/Linux diye de adlandırıldığı olur.
Gene bir cümleyle karşılaştır derseniz. GNU Asi İttifakıysa , Linux Han Solo'dur.


Kurması zor diyorlar. Öyle midir gerçekten ?
Aslında bu biraz sizin dağıtım tercihinize bağlı olmakla  beraber mevzu bahis dağıtımlar 5-10 tık arasında kurabilmektedir. Yeni başlayanların canına okuyabilecek.Kullanıcının sistemi kendi istediği gibi gibi kurabilmesini sağlayan ve kullanıcıdan sistemi iyi derecede bilmesini gerektiren gelişmiş kurulumlar sunan dağıtımlar vardır. Ama hangi dağıtımı kurarsanız kurun o dağıtıma ait kurulum belgelerini okumayı ve olası sorunlara karşı verilerinizi yedeklemeyi unutmayın.

Peki mevcut işletim sistemime dokunmadan kurmanın bir yoku yok mudur ? 
Vardır. Mac OS hakkında bir bilgiye sahip olmasamda Linux dağıtımları Microsoft Windows ile aynı bilgisayarda farklı bölümler içerisinde bulunup kardeş kardeş geçinebilirler. Bilgisayar açılışına yüklenecek ufak bir önyükleyici yazılımı size BIOS'tan hemen sonra size bilgisayarı hangi işletim sistemiyle açmak istediğinizi soracak. Linux dağıtımları Windows dosya sistemine erişebilmesine rağmen tersi mümkün olmadığı için Windows üzerinden Linux dağıtımındaki verilerinize erişemeyeceğinizi unutmayın.

Tamam kurduk , kullanmaya başlayacağız da öncesinde söylemek istediğin bir şey var mı ?
Teşekkür ettim söylemek istediğim şeyler var. İnsanlar alışkanlıklarından dolayı tamamen farklı bir sistem çalıştıklarında zorlanıyor ve genellikle isyan ediyor. Ama burada yeni çalıştıkları sistemin eskisine benzemek gibi bir görevi veya amacı olmadığını ve bir alışma süreci gerektirdiğini hatırlatmam gerekiyor. Gerçi bu süreç kullanıcı aksini düşünmediği sürece zor değil. Zaten bu sürece yardımcı olacak  bazı cevapları aşağıda bulabileceğinizi düşünüyorum.

Bu KDE,GNOME,XFCE vs. dedikleri de ne ola ki ?
Bu arkadaşlara masaüstü yönetcileri diyoruz. Kendileri Linux dağıtımlarındaki grafik arayüzleri oluştururlar (Etkileşime geçtiğin bilgisayarı açınca karşına gelen masaüstü şekli). Aşağı yukarı 7-8 tane seçenek içerisinden bilgisayarımızın kapasitesine veya donanımımız yeterliyse keyfimize göre bir tanesini seçebiliriz. Masaüstü yöneticileri hakkında daha detaylı açıklama için http://yazlimciyim.blogspot.com/2010/09/masaustu-yoneticileri-ortamlar.html adresine de bakabilirsiniz.


Ha babam komut yazıyormuşuz bu Linux'ta doğru mudur ?
Aslında bu biraz sizin tercihinize bağlı. Sistemi tamamen grafik arayüzden hiç kod yazmadan kullanabilirsiniz. Bunun önünde hiç bir engel yok Ayrıca Komut satırı kullanmak tipik Windows kullanıcılarının düşündüğünün aksine eski kafalılık olmadığı gibi sistemin eski olduğunu falan da göstermiyor. Size sadece bilgisayarınıza bazı şeyleri yaptırabilmek için alternatif bir yol veriyor.
Zaten Linux terminali çok yetenekli bir araç olduğu için sistemi kod yazarak kullanmak zaman zaman daha rahat oluyor.  insanlara bir şey anlatmaya çalışırken orada x var ona tıkla şurada y var ona tıkla gibi anlatmak yerine konsola z yaz demek bence daha kolay. Zaten Windows'ta 5 yere tıklayıp yapılacak iş tek satırlık komutla yapabilirken konsolu "amele gibi kod ezberlemek " olarak gören Windows fanatiklerine aldanmayın. Şöyle özetlersem Konsol (a.k.a siyah ekran [gerçi rengini de değiştirebilirsiniz ubuntu'da mordu en son hatırladığımda] ) kullanmak zorunda değilsiniz (tekrar yazayım her şey Windows'taki gibi grafik arayüz ile yapılabilir) ama ondan korkmaz ve onu bağrınıza basarsanız Linux'taki en iyi arkadaşlarınızdan olacaktır.

Tamam anladık bu konsol komutları peşimi bırakacak gibi durmuyor. Bari konsol nasıl açılır onu söyle ?
Hay hay hatta yazının ilerisinde komut da kullandırabilirim bak çok şukela olur. Ubuntu için anlatayım önce o zaman. Konsol'u sol üst menüden Uygulamalar -> Donatılar -> Uçbirim veya Alt+F2 ve metin kutusuna gnome-terminal yazarak açabilirsiniz. Pardus için Alt+F2 ve metin kutusuna Konsole yazarak veya menüden Sistem -> Konsole şeklinde açabilirsiniz. Hatta ufak bir ipucu vereyim. Yakuake uygulamasını açarsanız (Menü'de Sistem sekmesinde bulanabilir) konsolu sadece F12 tuşuyla açabilirsiniz.

Peki diğer işletim sistemimdeki programlar çalışır mı bu merette ?
Programlar işletim sistemlerine özel derlendikleri için başka işletim sistemlerinde çalışmazlar. Yazılımın kaynak koduna sahipsek. Onu istediğimiz sistem için derleyebiliriz ama ne yazık ki Windows ve Mac OS programlarının bir çoğunda ayrıca oyunların neredeyse tamamında bu şansa sahip değiliz. Emülatör kullanmak veya sanal sistem üzerinde kullanmak seçeneklerimiz hala var ama her zaman işe yaramayabilir veya verimli olmayabilir. 

Ne programlarımı kullanamayacak mıyım ? O zaman ne işe yarar ki bu ?
Bazı istisnalar haricinde çoğu yazılımın muadillerine hatta bazılarının daha iyilerine sahibiz. Hatta bazılarını Windows üzerinde kullanıyor olabilirsiniz. Mesela 
İnternet Explorer -> Mozilla Firefox , Google Chrome (Chromium), Opera (Özgür yazılım değil)
Microsoft Office -> OpenOffice,LibreOffice,KOffice
Windows Media Player -> VLC Player,SMPlayer,Kaffeine,Totem Player
Windows Live Messenger ->aMSN,Emesene,Pidgin,Kopete
Winamp -> Amarok,Rythmbox,Clementine,JUK,Audacious
Paint -> KolourPaint
Nero -> K3B,Brasero

Program nasıl kurulur onu sorayım bari ?
Windows'taki .exe dosyalarının Linux'taki kabaca karşılığının paketler olduğunu söyleyebiliriz. Ancak paketler merkezi bir depoda durur. Bu Windows'a nazaran inanılmaz bir kurulum kolaylığı sağlar. Yalnız dağıtımların farklı paketleme sistemleri kullandığı konusunda uyarımı yapayım. Mesela Ubuntu paketlerinin uzantısı .deb ken Pardus paketlerinin uzantısı .pisi dir.  .rpm,.pkg.tar.gz gibi farklı paket uzantıları bulunduğunu da not düşeyim.
Windows'taki gibi program kurmak için gereken program ismini Google'da ara,üreticisinin sitesine git,programı indir, .exe dosyasını çalıştır, İleri,İleri,Kabul Ediyorum,İleri,İleri şeklindeki uzunca bir prosedür yok. Paket sistemine kurmak istediğiniz program ismini söylersiniz program depoda varsa kendiliğinden indirir,kurar,çalışmaya hazır hale getirir ve size program kuruldu diye haber verir.
Bunu Ubuntu'da Uygulamalar -> Ubuntu Yazılım Merkezi, Sistem->Yönetim->Synaptic Paket Yöneticisi veya konsoldan "sudo apt-get install program ismi" şeklinde
Pardus'ta sistem çekmecesinde Paket Yöneticisi simgesi oluyor yoksa Sistem ->Paket Yöneticisi veya konsoldan "sudo pisi it program ismi" şeklinde yapabilirsiniz


Peki ya bir yerde takılırsam veya bir hatayla karşılaşırsam ne olacak nasıl destek alacağım ?
 Eğer bir şey sormak isterseniz veya yardım almak isterseniz başvuracağınız belli mecralar var. Öncelikle İngilizce biliyorsanız daha rahat ve daha hızlı yardım alabileceğinizi unutmayın. Her şeyin Türkçe çevirisini bulmak bir yerden sonra pek mümkün olmayacaktır. Aşağı yukarı her dağıtımın bir wikisi olduğunu söyleyebilirim. Orayla başlamanız iyi olabilir. Eğer orada aradığınız sorunun cevabı yoksa forumlara, IRC kanallarına veya mail listelerine (kulağa ilkel geliyor olabilir biz seviyoruz.) başvurabilirsiniz. Ancak dikkat etmeniniz gereken bir şey var oranın davranış etiğine uymayan bir şey yaparsanız hoş karşılanmayabilirsiniz. Mesela internette büyük harfle yazmak nasıl hoş karşılanmazsa Linux forumlarında "İmdat", "Yardım edin" başlıklı konular açmak hoş karşılanmaz. Ben müneccim miyim nereden bileyim oranın etiğini derseniz sizi buraya alalım http://belgeler.org/howto/smart-questions.html




Anladığım kadarıyla bazı programlar paket depolarında olmayabiliyor peki o zaman ne yapacağım ?
Her dağıtımın paket sisteminde her program olmayabiliyor. Peki o zaman ne yapacağız:
İnternette bir çok dağıtım için gönüllüler tarafından sürdürülen gayrı-resmi depolar var. Öncelikle bu depolara bakacağız aradığımız paket var mı diye. Paket adını google'lamak faydalı bir deneme olur belki depodan bağımsız olarak paketi bulabiliriz. İşimiz acil değilse geliştiricilere paket isteğinde bulanabiliriz.
Eğer aradığımız paket kullandığımız dağıtımın mevcut sürümünde yok ancak eski sürümlerde vardı ise eski paketi doğrudan kullanamasak da inşa dosyalarını kendimiz derleyebiliriz. (Özellikle Pardus'ta çok işe yarıyor)
Yazılımı kaynak kodundan derlemek veya paketini oluşturmak teknik bilgi gerektirse de son çare olarak başvurulabilir.

Sürücülerime ne oldu bu harf ve rakamlarda ne böyle ?
Kısaca Linux'taki disk isimlendirme mantığını açıklayayım. Disk ismi üç harf ve bir sayıdan oluşur. "sda1" gibi. Disk isimi eğer disk IDE kanalından bağlı ise "hd" eğer disk SATA kanalından bağlıysa "sd" ile başlar. Diskin kaçıncı disk olduğunu belirten bir harf ile devam eder (birinci ise "a" ikinci ise "b" vs.) ve sonuna diskin kaçıncı olduğunu belirten bir sayı alır. Örneğin SATA ile bağlı 2.diskin ilk bölümü "sdb1" olarak adlandırılır. USB  hard disklerden sonraki harfi alır  Örneğin 2 hard disk bağlı bilgisayara bir flash disk bağlarsanız. "sdc1" olarak adlandıralacaktır. Optik sürücüler "sr" ve sürücü no ile adlandırılır.


Kök dizinde bir sürü klasör var bunlar ne işe yarar ?
Linux dosya sistemi hiyerarşisine göre temel dosyalar.
/bin   : Olması şart komut dosyalarını içerir
/boot   : Başlangıç için gerekli dosyaları bulundurur
/dev   : Donanım dosyaları vardır
/etc   :  Sistem ayarlarını barındırır
/lib     :  Kütüphane dosyaları ve kernel modülleri bulunur 

/home : Kullanıcının her türlü dosyasının bulunduğu kişisel alanı olan ev dizini.
/lost+found : Kötü bir sistem kapanmasından sonra, olması gereken bazı dosyaları bulamıyorsanız, bakmanız gereken dizindir.
/media   : Kaldırılabilir aygıtların (CD-Rom, Flash bellek vs...) sisteme eklendiği klasördür.
/mnt      : Bir dosya sistemini geçici olarak eklemek için kullanılır. 
/opt   : Ekstra programların kurulması içindir
/proc : S
istem durumuna dair bilgi içeren sanal dosyaları içerir

/sbin   : Sistemi yöneticisiyle ilgili çalıştırabilir dosyaları tutar.
/srv   : Sistemin sunduğu hizmetlerle alakalıdır
/tmp   : Geçici dosyaları tutmak içindir
/usr   : İkincil bir hiyerarşi
/var   : Değişken verileri saklar.

Ayrıntılı bahsetmek istediğim üç dizin var biri "/home" diğeri "/usr" ve sonuncusu "/media"
/home : Kullanıcının adı üzerinde evi diyebileceğimiz ve %99 ihtimalle sistemde en çok zamanı geçireceği dizin. Masaüstü,Belgeler,Resimler,Müzikler,İndirilenler vs. alt dizinleriyle beraber kullanıcının kişisel tüm dosyaları bu dizinde durur. Kullanıcıya özel ayar dosyaları da ev dizininde gizli dosyalar olarak bulundurulur.
/usr (unix system resources):  Windows'taki Program Files dizinine en yakın şey tahmin ettiğim kadarıyla /usr dizinidir. Paket yönetim sistemiyle kurulan programların dizinleri bu klasörde tutulacaktır. Ancak aralarında büyük bir fark var. /usr dizini Program Files dizinin aksine hiyerarşik bir yapısı vardır. Program dosyaları türlerine göre sınıflandırılmıştır. Çalıştırabilir dosyalar "/usr/bin"'e kütüphane dosyaları "/usr/lib"'e ayarlar ve belgeler "/usr/share"'e vs.
(/usr'ın açılımı eklemesi için ras0ir'e teşekkür ederim)
/media : Linux'ta Windows'un aksine sisteme bağlı bütün dosya sistemlerinin kendi bağımsız kök dizinleri yoktur. Bu dosya sistemlerine mevcut sistemin ana dosya sistemin kök dizinindeki /media dizini aracılığıyla erişiriz. Mesela disk ismi "ugurcan" olan bir flash diskim var. Ve bunu bilgisayara taktığımda içindeki dosyalara ulaşacağım dizin /media/ugurcan olacaktır. (Endişelenmeyin dosya yöneticileri bunu otomatik yapıyor zaten ben aklınızda bulunsun diye söyledim)

Niye sürekli şifre girmem gerekiyor ?
Aslında kendi ev dizininizde yapacağınız hiç bir değişiklik için şifre girmeniz gerekmez. Ama ev dizininiz dışında sistemin başka kısımlarını da etkileyecek bir değişiklik yapmak isterseniz. Bilgisayar sizde yönetici şifresini soracaktır. Bunu şöyle somutlaştırabiliriz. Kendi evinizinde istediğiniz herhangi bir şeyi değiştirip kafanıza estiği gibi düzenlemeler yapabilirsiniz. Ama eviniz dışarısında değişiklik yapabilmek için oranın yetkilisinden (Apartman için yönetimden, sokak için belediyeden, başka bir ev için sahibinden vs.) izin almanız gerekir. İlk görüşte biraz gereksizmiş gibi görünse de aslında  bu yöntem bilgisayarınız çok daha güvenli bir hale getirir.


Bir klasörü veya dosyayı nasıl gizlerim ?
Bir klasörü veya dosyayı gizlemek için yapılması gereken tek şey başına bir nokta koymak. Mesela "gizli dosyam" adlı dosyayı gizlemek için yeniden adlandır diyerek ismini ".gizli dosyam" olarak değiştirmek yeterli. Bu dosyaya daha sonra erişmek için dolphin ve nautilus adres çubuğuna .../.gizli dosyam yazmak yeterli


Kodları hangi programda yazacağım ?
Aslında basit işler için GNOME ve KDE masaüstlerinin varsayılan metin düzenleyicileri yeterli. Ama daha rahat çalışmak isteyenler için benim naçizane tavsiyem oldukça hafif,kullanışlı ve 40'ın üstü programlama,betik ve işaretleme dilini destekleyen Geany adlı geliştirme ortamı. Kendisi Ubuntu depolarında mevcutken Pardus'ta kullanmak için http://paketler.pardus-linux.org/P2011/ adresinden indirmek gerekiyor. Daha kompleks işler için Eclipse,Netbeans ve onların eklentileri emrinize amade. Alternatif araçlar olarak konsol tabanlı metin editörleri var öğrendiğiniz zaman hayran olabildiğiniz gibi öğrenene kadar amelelik gözükebilirler yalnız.

Nasıl C derleyeceğim ?
C derleme işlemi bir kaç yolla yapılabilir.Derleme editörler ve geliştirme ortamları aracılığıyla yapılabilir ama ben kendi geliştirme aracı bağımsız bir yöntem olan konsoldan derlemekten bahsedeyim. Ubuntu için herhangi bir paket kuruluma gerek olmasa da Pardus için gcc,glibc ve glibc-devel paketlerini kurmak gerekiyor.
(NOT: Pardus geliştiricileri hedef kitlelerinden dolayı geliştirme ile ilgili paketlerin çoğunu kurulum paketlerinin içine koymamayı tercih etmiş. Programlamayla alakalı ne var ne yok kurmak isterseniz sudo pisi it -c system.devel komutunu kullanabilirsiniz)
Derlemek için gcc /dizin/program.c -o cikis ismi -g komut taslağını kullanmanız yeterli.Programın kaynak kodu eğer terminalin mevcut çalışma dizininin altındaysa sadece program.c olarak girmek yeterli olacaktır. Derleme sonucu oluşacak çalıştırabilir ikili dosyanın ismini -o parametresinden sonra yazacağınız isim oluşturacak eğer bu parametre ve isim girilmezse varsayılan isim a.out olacaktır. -g parametresi de programın debug edilebilmesi için eklenmelidir.
Kaynak kodu çalıştırmak için yapmanız gereken konsolda ./cikis ismi yazmaktan ibaret


Nasıl Python çalıştıracağım ?
Konsoldan python isim.py komutu bir python betiği çalıştırmak için yeterlidir. Python Linux dağıtımlarının hemen hemen hepsinde kurulu olarak gelir.


Bu Qt mereti nasıl kurulur ?
Ubuntu için Python ile QT kullanabilmek için  python-qt4 qt4-dev-tools python-qt4-dev build-essential pyqt4-dev-tools paketlerini kurmak yeterli. Eğer zaten kurulmamışlarsa qt4-designer ve qt4-assistant paketlerini kurmanızı da öneririm. C++ için QT'nin zaten QT Creator adlı çok güzel bir idesi var ona bakmanızı da özellikle önerebilirim. 
Pardus için qt-devel python-qt-devel qt-designer qt-docs paketlerini kurmanız yeterli
(Atladığım bir şey olursa dürtün düzelteyim)

28 Nisan 2011

Posted In: Gezegen, gnu/linux, KOÜ Bilgisayar Müh.

WP Twitter Auto Publish Powered By : XYZScripts.com