“Felicia” kod adlı Linux Mint 6, Clement Lefebvre tarafından duyuruldu. Ekiplerinin bunu duyurmaktan onur duyduğunu ifade eden Lefebvre, sistemin “Intrepid Ibex” kod adlı Ubuntu 8.10 tabanlı olduğunu, Linux 2.6.27 çekirdeğinin kullanıldığını, GNOME 2.24 masaüstü ortamı ve X.Org 7.4 ile yapılandırıldığını söyledi. Lefebvre, sistemin yeni bir yazılım yöneticisiyle geldiğini de sözlerine ekledi. Bunun bir de Windows yükleyicisi bulunuyor. Özellikle mint4win hakkında bilgi edinmek isteyenler bu sayfadan yararlanabilirler.
Archive | GNU/Linux
Disk Yazma Araçları (linux-ntfs, ntfs-3g, Ext2ifs)
GNU/Linux kullanıcıları gün geçtikçe artış göstermekte ve kullanıcıların çoğu sisteminde GNU/Linux’un yanı sıra Windows’a da yer vermektedir. GNU/Linux, FAT dosya sistemini okuyup yazmada sorun çıkarmazken, bu, NTFS için böyle degildir. NTFS dosya sisteminde, eskiden verileri yalnızca okuyabilirdiniz. Ancak şu an, GNU/Linux, ntfs ve ntfs-3g gibi projeler ile bu sorunu aşmıstır. Bu arada durum Windows için vahimdir. Çünkü bilindigi gibi Linux genel olarak ext2 ve ext3 dosya sistemini kullanır ve Windows’un bu dosya sistemleri ile biçimlenmis olan diskleri yazmak bir tarafa, okuması bile söz konusu degildir. Fakat bu sorun, yine özgür yazılımcılar tarafından geliştirilen Ext2ifs adlı bir proje sayesinde aşılmıştır.
Günümüzde Linux yükleyen ev kullanıcılarının büyük çoğunluğu, Windows’la birlikte çalıştırabileceği bir şekilde kurulum yapmayı tercih ediyor. Bilgisayar başlarken hangi işletim sisteminin devreye girmesini istediğinizi, Grub ya da LiLO programlarının “dual-boot” (yani ikili açılış) imkanıyla seçebiliyorsunuz. Dilediğiniz zaman Windows’la çalışmak, dilediğiniz zamansa Linux’a dönmek tamamen size bağlı. Farklı işletim sistemleri kurup, dual-boot ile istediğinizi açmak uzun süredir var olan bir özellik. Ancak dual-boot ile Linux kullananların bir takım sıkıntıları var; bunların başında da dosya taşımak geliyor.
Windows ailesinde bulunan işletim sistemleri (XP, 2000, ME, 98, vs…) FAT32 ya da NTFS dosya sistemi kullanmaktadır. Linux dağıtımlarıysa seçenekleriniz daha fazladır; ext2, ext3, ReiserFS, jfs, xfs ve daha birçok farklı dosya sistemini kullanabilirsiniz. Elbette bunca seçenek arasında, her iki işletim sisteminde de, ön plana çıkanlar olmuştur.
Linux tarafında en popüler dosya sistemleri, ext2 ve ext3 formatındadır. ext3 dosya sistemi, ext2’nin geliştirilmiş hâlidir ve journaling özelliğine sahiptir. Journalling desteği olan dosya sistemleri, disk üzerinde gerçekleştirdiğiniz işlemleri kayıt altında tutar. Gerek ext2, gerekse ext3’ten çeşitli yönlerle daha yetenekli dosya sistemleri elbette mevcut fakat yaygınlık konusunda henüz o kadar başarılı değiller.
Konunun Windows tarafına gelirsek; ilerleyen teknolojiye paralel FAT32 gözden düşüp, NTFS baskın konuma gelmiştir. Bu durumun arkasında basit teknolojik nedenler yatar. FAT32 sistemi, maksimum 32 GB’lik diskleri destekleyebilir ve bu rakam günümüz sabit disklerine bakınca oldukça komik denecek kadar yetersiz. Eğer FAT32 ile yetinmek zorunda kalsaydık, 200 GB’lik bir diskten 7 farklı sürücü (C harfinden, I’ye kadar) yaratmak gerekirdi. Bunun ne kadar can sıkıcı olacağını düşünmek bile yeter… Ayrıca NTFS dosya sistemi, dosya hakları ve güvenlik konusunda FAT32’nin sahip olmadığı özelliklere de sahiptir. Windows 2000’den başlayarak, XP ile süren süreçte FAT32 yavaş yavaş unutulmuştur.
Windows tarafındaki bu dönüşüm, Linux kullanıcılarına sıkıntı yaratmıştır. Linux, FAT32 dosya sistemini son derece rahat kullanabilirken, bu yeteneğini NTFS’te sürdüremez. Şayet Windows işletim sisteminizi FAT32 ile formatlanmış bir disk üzerine kurmuşsanız, Linux’tan bu sürücüleri okuyabilir, dosyaları değiştirebilir, yeni dosyalar yaratabilir ya da dosyaları bir yerden, başka bir yere taşıyabilirsiniz. Kısacası tam olarak okuma ve yazma hakkınız vardır. Ancak NTFS’te böyle bir imkanınız yok. Linux kullanırken, NTFS ile formatlanmış bir sürücüyle bütün yapabildiğiniz, onu okumaktan ibaret. NTFS diski okumanıza rağmen, içine hiçbir şey yazamazsınız. Bir işletim sisteminde oluşturduğunuz dosyayı, diğer işletim sistemine ne yazık ki taşıyamazsınız. Windows açısından bakarsak durum daha da beter… Windows ile Linux sürücülerinizi bırakın okumayı; görmeniz bile mümkün değildir. Ancak zamanla birlikte, bu sorunların üstesinden gelmeye yönelik çeşitli araçlar üretildi.
Linux-NTFS ve NTFS-3G Projeleri
Windows’tan vaz geçemeyen ancak Linux kullanmak isteyen kullanıcılar artık daha şanslı. Eskiden NTFS’e yazmamız mümkün değildi. Bu sorunu çözmeye yönelik ilk günlerde ortaya çıkan projeler de, pek başarılı sayılmazdı. Fakat geçen süre, oldukça başarılı çalışmaları ortaya çıkardı. Artık NTFS’e yazmak eskisi gibi imkansız değil!
NTFS disk sistemine yazmak amacıyla, birkaç yıl önce Captive isimli bir projeyi denemiş ve sonuçlarından memnun kalmamıştım. Son zamanlarda bu proje ne kadar ilerledi bilmiyorum; fakat alternatif olarak sunulan Linux-ntfs projesi beni oldukça etkiledi.
Projenin geçmişine bakarsak, bayağı eskiye gitmemiz gerekir. 1995 yılında Martin von Löwis isimli bir öğrenci, Linux için NTFS sürücüsünü ilk kez yazıyor. Linux çekirdeğine (sürüm: 2.1.74) 1997 yılında bu sürücü ekleniyor. Martin’e çalışmasına yardım eden birçok isim var ve bunlardan birisi de Anton Altaparmakov isimli bir yazılım mühendisi… 2000 yılında Anton Altaparmakov Linux-NTFS isimli bir proje başlatıyor ve 2001 yılında da sıfırdan başlayarak Linux için yeni bir NTFS sürücüsü yazıyor. Hazırlanan bu yeni sürücü, Nisan 2002’de Linux çekirdeğine (sürüm: 2.5.11) resmi olarak ekleniyor. Anton, hâlen geliştirdiği NTFS sürücünün baş yazılımcısı ve Linux-NTFS projesinin yöneticisi. İşte Linux-NTFS projesi böyle bir temele dayanıyor.
Linux-NTFS, hemen hemen her Linux dağıtımında çalışıyor. Ancak farklı dağıtımlar için farklı kurulum yöntemleri bulunuyor. Linux-NTFS’i nasıl kuracağınızı, NTFS yazma desteğine nasıl erişebileceğinizi anlatan birçok site mevcut. En başta proje resmi sitesinden (<!– m –>http://www.linux-ntfs.org<!– m –>) yararlanabilirsiniz. Forum bölümünde kafanıza takılan birçok konuda direkt proje geliştiricilerinden destek alabiliyorsunuz.
Şimdi gelelim, NTFS-3G projesine… Linux-NTFS projesinin çalışanlarından Szabolcs Szakacsits Temmuz 2006 tarihinde, yeni bir proje başlatıyor. Bu yeni açılım, NTFS diske yazma/okuma konusunda daha iyi performans, daha az sorun gibi iddialarla ortaya çıkıyor. Vaat ettiklerini yerine getirdiğini söyleyebilirim. Üstelik Linux-NTFS’e göre daha kolay bir kurulumu var. Farklı dağıtımlar için nasıl yükleyebileceğinizi proje sitesinin (<!– m –>http://www.ntfs-3g.org<!– m –>) ana sayfasından bulabiliyorsunuz ve yapmanız gerekenler 3-4 adımdan fazla olmuyor. Verilen linklerden, basit bir dille anlatılmış kurulum aşamalarını siz de görebilirsiniz. (Örneğin Ubuntu için <!– m –>http://wiki.ubuntu.com/ntfs-3g<!– m –> adresi verilmiş.)
Önemli bir not düşeyim; Ubuntu 7.10 sürümünden itibaren, NTFS-3G desteği ile geliyor. Mandriva gibi diğer dağıtımlarda da bu destek bulunuyor. Yani güncel bir dağıtımınız varsa, NTFS-3G yüklemenize bile gerek olmayabilir.
NTFS Yazma/Okuma Başarısı
NTFS disklerden veri okumak uzun süredir başarıyla yapılabilen bir şey. Bu projeler için de farklı bir durum söz konusu değil; okuma işlemi mükemmel denecek kadar iyi! Ancak sorun verinin yazılmasında…
NTFS disklere yazabilmek için Captive, Linux-NTFS, NTFS-3G ve bir iki çalışma daha bulunuyor. Captive, pek başarılı değildi; belki şimdilerde durum değişmiştir. Linux-NTFS gelince, oldukça iyi olduğu söylenebilir. Fakat zaman zaman ciddi sorunlar çıkabiliyor. Örneğin aynı anda toplam boyutu 1-2 GB olan 8-9 dosya kopyalamaya çalışırsanız, NTFS disk yapısında bozulma olabiliyor. Bu tarz bazı denemelerimde, boş klasörler içinde sonsuz boş klasörle karşılaştım. Klasör içine girdikçe aynı isimde bir klasör daha görüyordunuz ve bu siz pes edene ya da Windows adres adının çok uzun olduğunu söyleyene değin sürüyordu. İşin kötü tarafı, zaman zaman Windows Disk taraması (scandisk) bu sorunları çözebilse de, her zaman çözemiyordu ve bozuk bir disk yapısıyla kalıyordunuz. Bu dediklerim her zaman yaşanmıyor; az sayıda yazma işlemi yaptığınız sürece bu tarz bir sıkıntı yaşamazsınız. Ama ortaya böyle bir problem çıkarsa ve bozuk bir disk yapısına benim gibi tahammül edemiyorsanız, bu durum diski formatlamaya kadar gidebilir.
NTFS-3G ise emsallerinden çok daha başarılı! Linux-NTFS’te yaptığım testleri aynen NTFS-3G’de de sürdürdüm ve tek bir sorun çıkmadı. Ancak çok sayıda dosya yazdırırsanız, fark edilir bir yavaşlık sizi bekliyor. Elbette ki buna katlanmak, bozuk bir disk yapısıyla uğraşmaktan daha iyidir. Yavaş bile olsa, disk tutarlılığını etkileyecek bir durum ortaya çıkmıyor. Kısacası yavaş yazmaktan rahatsız olmadığınız sürece, bir sorun yok. Dosyaları silme işlemiyse oldukça hızlı.
Neden böyle diye merak edebilirsiniz; yani neden NTFS disklere yazmak başlı başına bir sorun… Yanıt çok basit, Microsoft’un kapalı yazılım politikaları. Microsoft NTFS’in iç yapısıyla ilgili tek bir doküman yayınlamıyor ve her şey “Reverse Engineering” ile çözülüyor. Bu o kadar zahmetli bir süreç ki, tahammül edebilmek için peygamber sabrı lâzım. Önce NTFS formatlı sabit diske bir HEX editörle bakılıyor. (Hex editörler, programları, dosyaları vs… onaltılık sayı sisteminde göstermeye yarar. Karşınıza A3 2F 2E… şeklinde yığınla rakam çıkartırlar.) Ardından NTFS disk üzerinde, dosya yaratma gibi bir işlem gerçekleştiriliyor. Diske tekrar Hex editörle bakılıyor ve ortaya çıkan farklar, sınıflandırılıp, dökümante ediliyor. Bu işlem bir kaşıkla, dağ delmeye benzer ve sonsuza kadar sürer. İşte bu güç koşullara rağmen, bu projeler önemli oranda başarılı. Yine de kat etmeleri gereken yollar var.
Türkçe Karakter Problemi
NTFS-3G ile ilgili karşılaştığım en önemli problem, Türkçe isim verdiğiniz klasörleri (Örneğin “Klasör_Adı” gibi) göremiyor oluşunuz. Ufak bir ayarla bunun da üstesinden gelebilirsiniz. Terminal’i açın aşağıdaki komutu root olarak verin:
root@desktop:~# localedef -i tr_TR -f UTF-8 tr_TR.utf8
Bu komutu girdikten sonra, “locale -a” komutunu verin. Eğer çıkan sonucun en alt kısmında, “tr_TR.utf8” yazıyorsa, işlemi doğru yaptınız demektir. Daha sonra, NTFS biçimli disklerinizi /etc/fstab dosyasına, aşağıdaki gibi kaydedin. (Elbette siz /dev/sda1 yazmayabilirsiniz; sabit diskinize göre bu değer değişecektir.)
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
...
/dev/sda1 /media/Windows ntfs-3g defaults,locale=tr_TR.utf8 0 0
...
Daha üst sürümlerinde, bu problemin aşılacağını düşünüyorum. Yine de daha fazla bilgi edinmek isterseniz; NTFS-3G'nin destek adresine bakabilirsiniz.
IFS Sürücüleri
Şimdiye kadar Linux üzerinden Windows NTFS sürücülerine erişimi inceledik. Bunun farklı bir boyutu da var: Windows üzerinden Linux disklerine erişim... Windows işletim sisteminin normalde desteklemediği dosya sistemlerini, sonradan yüklenen araçlarla desteklemek mümkündür. Bu tarz araçlara, IFS (Installable File System – Kurulabilir Dosya Sistemi) denir.
Windows işletim sistemine ext2, ext3 gibi dosya sistemlerinin desteğini vermek nispeten daha kolaydır. Çünkü bu yapılar, açık kaynak kodla sunulur ve neyin ne olduğunu bulmaca gibi çözmeniz gerekmez. Bu yüzden Windows için ext2/ext3 desteği sunan birçok programla karşılaşabilirsiniz. Benim denediğim en iyi program; Ext2IFS isimli bir projeydi.
Windows NT4.0/2000/XP ya da 2003 kullanıyorsanız, Ext2IFS'yi kullanabilirsiniz. Proje sitesinden (<!-- m -->http://www.fs-driver.org<!-- m -->) 400 KB civarındaki kurulum dosyasını indirin ve özel bir şey yapmadan kurulumu gerçekleştirin. İşlem o kadar basit ki, sadece "İleri" tuşuna basarak bile yükleme işlemini tamamlayabilirsiniz. Daha sonra bilgisayarınızı yeniden başlatmanız istenecektir. İşletim sisteminiz yeniden açıldığında, Bilgisayarım simgesine tıklayın. Eğer Linux dağıtımınızda, ext2 dosya sistemi kullanıyorsanız, bunlar otomatik olarak Windows'a eklenecektir. Eski sürücülerinize ilaveten, yeni sürücüleri, Bilgisayarım altında hemen görürsünüz. ext3 disklerinizi ise sizin eklemeniz gerekmektedir. Merak etmeyin, bu da oldukça kolay bir işlem...
ext3 Diskleri Windows'a Eklemek
ext2ifs'yi kurduktan sonra, Başlat-> Ayarlar-> Denetim Masası yolunu izleyerek Denetim Masası'nı açın. "IFS Drivers" ikonunu göreceksiniz, buna çift tıklayın.
Karşınıza çıkacak ekran, bilgisayarınızda bulunan diskleri ve bu diskler içindeki dosya sistemlerini, işletim sistemlerine göre göstermektedir.
Buradan istediğiniz bir ext3 sürücüsüne, dilediğiniz bir sürücü harfi (örneğin I:) verebilirsiniz.
Sürücüyü temsil etmesi için bir harf seçtikten sonra biraz beklemeniz gerekmektedir. Bu bekleme esnasında, ext3 dosya sisteminde bulunan dosyalar, Windows'tan erişim için hazırlanır. Yoğun bir disk trafiği yaşanıp, bittikten sonra, Bilgisayarım simgesine tıklayın. Eklemiş olduğunuz ext3 sürücü, karşınıza çıkacaktır.
Artık ext3 diskinizi, Windows'ta, diskinizi dilediğiniz gibi kullanabilirsiniz. Sürücü harfini ileride değiştirmek isterseniz, aynı işlemleri tekrar etmeniz gerekir. ext2 dosya sistemleri için bu işlemleri yapmanız gerekmez; otomatik olarak Windows diskleri ekler.
ext2/3 Yazma/Okuma Başarısı
Ext2IFS oldukça başarılı bir program. Hatta o kadar ki; ext2 dosya sistemini kullandığınızın farkına bile varmıyorsunuz. Yazma ve okuma işlemleri NTFS'e yakın derecede hızlı ve iyi. Üstelik ext2/3 sürücülerinizi kullanırken, hiçbir problem de çıkmıyor. Çıkan en büyük problem, karakter kodlamasıyla ilgili. Linux, UTF-8 kullanıyor ve bu nedenle dosya/klasör adları Windows'ta bozuk gözükebiliyor. Bu durum İngilizce karakterler için olmasa da, Türkçe karakter kullanan dosya ve klasör adlarında karşınıza çıkacaktır. Dosya isimlerindeki bozuk karakterler biraz can sıkıcı, ama çalışmanızı etkilemeyecektir.
Elbette ext2/3 ve NTFS dosya sistemlerinin birbirinden farklı olduğunu unutmamak gerekir. ext2IFS ile, ext2 diskleri, NTFS gibi kullanabiliyor olmamıza karşın, bazı özellikler bulunmuyor. Örneğin NTFS disklerde var olan güvenlik atamalarını burada yapamıyoruz. Ayrıca disk birleştirici programını ext2/3 disklerde kullanamıyoruz. Kısacası ext2ifs projesi, ext2/3 dosya formatındaki disklerin okunması ve yazması konusunda harika bir çözüm olsa da, NTFS disklerinizin yerini alması için üretilmemiş. Yani sistemdeki bütün diskleri ext2 formata çevirip, daha sonra Windows'tan çalışmak pek uygun değil.
Hangi Yolu Seçelim?
İki işletim sistemi arasında dosya transferine farklı açılardan baktık. Sonuç olarak bir işletim sisteminden diğerine dosya transfer etmek istiyorsak, ne yapmamız gerektiğine gelelim: Linux üzerinden NTFS disklere yazmak hâlen mükemmel değil; oldukça başarılı ama birçok kullanıcıya yeterli gelmeyecektir. Bu yüzden Windows üzerinden Linux disklere yazma seçeneğine ağırlık vermek yerinde olur.
Eğer Linux'tan Windows'a aktaracağınız birkaç küçük dosyadan bahsediyorsak, elbetteki NTFS-3G gibi çözümleri kullanabilirsiniz. Fakat Linux'ta indirdiğiniz 6-7 GB tutarındaki filmlerden, müziklerden ya da benzeri dosyalardan bahsediyorsak, işin rengi değişir. Bunları NTFS disklerinize aktarmanız gerekiyorsa, bilgisayarınızı yeniden başlatıp ext2ifs aracılığıyla kopyalamanız daha akıllıca olacaktır. (Gerçi çıkan yeni sürümlerde, bu sorunların kalacağını hiç sanmıyorum.) Yine de gerek Linux'tan Windows disklerine erişimi, gerekse tam tersini denemenizi tavsiye ederim. Her iki yolu da tecrübe edip, kararınızı ona göre vermeniz, daha uygun olur.
Çağatay ÇEBİ
cagataycebi.com
PCLinuxOS 2009 Beta 2
PCLinuxOS 2009’un ikinci beta sürümü olan PCLinuxOS 2009 Beta 2 yayınlandı. 2.6.26.8 Linux çekirdeği üzerine yapılandırılan sürümde, KDE 3.5.10 masaüstü ortamı bulunuyor. PCLinuxOS 2009 Beta 2; OpenOffice.org 2.4.1, Firefox 3.0.4, Thunderbird 2.0.0.17, Frostwire, KTorrent, Amarok, Flash, Java JRE, Compiz Fusion 3D ve daha pek çok yazılımla birlikte geliyor. Geliştiriciler; kullanıcıların deneyimlerini kendileriyle paylaşmalarını rica ediyorlar. Bunun bir beta sürüm olduğunu, yalnızca test için kurulup kullanılmasının uygun olacağını hatırlatalım.
Continue Reading →
- PCLinuxOS-N1PTT-TR5.iso (690MB, MD5)
Çekirdek (Kernel) Derleme
Çekirdek bir işletim sistemin kalbidir. Kabaca, kullanıcı seviyesindeki yazılımlarla donanım arasındaki köprü vazifesini görür. Yaygın inanışın aksine Linux bir işletim sistemi değil bir işletim sistemi çekirdeği projesidir. Dağıtım denilen şey teorik anlamda başlı başına bir işletim sistemidir. Fakat günlük kullandımda işletim sisteminin adı Linux olmuştur. Linux çekirdeği 1991 yılında Finlandiyalı bir üniversite öğrencisi olan Linux Torvalds tarafından geliştirilmeye başlanmıştır ve bugün dünyadaki en büyük özgür yazılım projesidir. GNU projesinin lokomotifi konumundadır.
Başlıyoruz
Öncelikle şunu belirtelim; Linux çekirdeğini derlemek buradan okuduğunuz kadar basit bir işlem olmayacaktır. Çünkü yaptığınız işin bir kıymeti olması için çekirdeği kendiniz ayarlamalısınız. Eğer bunu yapamazsanız ve sadece yeni bir sürüme geçmek istiyorsanız Pardus’un config dosyasını kullanabilirsiniz. İşe çekirdeğin kodlarını edinmekle başlıyoruz.
Eğer Linux çekirdek arşivinden tarball olarak indirdiyseniz öncelikle yerine kopyalayıp sembolik bağ oluşturmamız gerekiyor. Çekirdeği indirdiğiniz dizinde şu komutu verin. Linux-2.6.25 çekirdeğini kullandığınızı farzediyorum.
tar -xjvf linux-2.6.25.tar.bz2 -C /usr/src && ln -sfn linux-2.6.25 linux Ardından cd /usr/src/linux Komutu ile kaynak kodlar dizinine girin. Şimdi şu komutu verin, make menuconfig İşte bütün mesele burada... Bu komut ile çekirdeği ayarlayabileceğiniz bir menüler bütünü açılacak. Bundan sonrası tamamen sizin becerinize, kullandığınız PC'yi tanımanıza ve GNU/Linux bilginize bağlı. Burada yapacağınız hatalar bu çekirdeğin çalışmamasına, sistemin yeteneklerinin kısıtlanmasına ve bazı donanımlarınızın çalışmamasına neden olabilir. Tabii bu durum sadece bu çekirdek için geçerli. Sistemi başka bir çekirdekle başlattığınızda herşey normale dönenecektir. Eğer bu şartları sağlamıyorsanız Pardus'un /boot dizini altında bulunan .config dosyasını(gizlidir) /usr/src/linux dizinine taşıyın ve make menuconfig komutunu boşuna uygulamayın... Derleme işlemi Tüm bu adımları sorunsuz geçtiyseniz çekirdeğimizi derleyebiliriz. Şu komutla devam ediyoruz. make && make modules_install Bilgisayarınızın gücüne bağlı olarak değişecek derleme süresince bekledikten ve günlük PC yaşantınıza devam ettikten sonra şu komutu vererek yeni çekirdeği /boot dizinine gönderiyoruz. Kurulum cp arch/i386/boot/bzImage /boot/linux-2.6.25-ozel Tüm bu işlemlerin ardından sıra GRUB ayarlarına geliyor. Yeni çekirdeği GRUB'a eklemeliyiz. Grub ayarları title=Linux 2.6.25-ozel root (hd0,0) kernel /boot/kernel-2.6.25-ozel root=/dev/sda1 Yukarıda bir Grub girdisi örneği verdim. Bunu kendize göre düzenleyerek menu.lst dosyasını kaydedin. Mutlu son Şimdi sıra bilgisayarı yeniden başlatmakta. Sisteme yeni çekirdekle giriş yapın. INIT'e kadar olan süreci kazasız belasız atlatırsanız muhtemelen X'in açıldığı aşamada takılacaksınız. Çünkü kullandığınız kapalı kaynak kodlu ekran kartı sürücüleri yeni çekirdeğe göre derlenmedi ve artık çalışmıyorlar. Bu sorunu /etc/X11/xorg.conf dosyasında açık kaynak kodlu sürücüleri etkinleştirerek aşabilirsiniz. Grafik ortama giriş yaptıktan sonra ekran kartı sürücülerini elle kurmaktan başka bir çözüm öneremiyorum şu an... Aynı durum çekirdekle birlikte derlenmeyen ticari donanım modülleri içinde geçerli. pardus-linux.org
Kabuk (Shell)
Kabuk; Unix ve onun türevi sistemlerde, sistemin tüm özeliklerini kullanabilmemizi sağlayan ve bilgisayarımızda çekirdek (kernel) ile kullanıcı arasında kullanıcının verdiği komutları yorumlayarak iletişim kurmaya yarayan programa denir. Kabuk, yalnızca verilen komutları yorumlayıp yerine getirmez. Aynı zamanda gelişmiş, etkileşimli bir programlama ortamıdır. Linux açık kaynak kodlu bir sistem olduğundan, kullanıcı kabuk aracılığıyla işletim sisteminin çekirdeğine varıncaya kadar her tarafta etkilidir. Yine Linux’un açık kaynak kodlu olmasından dolayıdır ki Linux’ta pek çok farklı terminal (emulator) programları ve farklı kabuk çesitleri vardır.
Kabuk İşlemleri
Sisteme girdiğiniz anda kabuk programının çalıştırıldığından bahsetmiştik. Bu andan sonra yapacağınız tüm işlemler bu kabuk programı tarafından yönetilir ve denetlenir. Kabuk, klavyeden girilen komutları çalıştırarak bir arabirim görevi yapar. UNIX (ve Linux) altında geliştirilen sayısız kabuk çeşidi ve bunların herbirinin kendine ait özelliği vardır. Her programcı kendi zevkine hitap eden kabuğu seçebilir, sistemde yeralan kullanıcılar farklı kabuklar üzerinde çalışabilirler.
O an hangi kabuk üzerinde yeraldığınızı öğrenmek için echo $SHELL
yazın.
$ echo $SHELL /bin/bash
Sıkça kullanılan kabuklar,
sh (Shell ya da Bourne Shell): İlk UNIX kabuğu.
ksh (Korn Shell): sh uyumlu, birçok ek programlama özelliği içeren bir kabuk. Bu kabuk da yaygın bir kitle tarafından kullanılıyor.
bash(Bourne Again Shell): Kullanım kolaylığı bakımından en çok rağbet gören bash, GNU tarafından kaynak kodu olarak dağıtılıyor. bash sh ve ksh uyumluluğunu korurken, özellikle etkileşimli kullanıma yönelik (komut tamamlama, gibi) birçok yenilik de içerir. Bu yazının hazırlandığı 1997 Temmuz ayı başlarında Bash 2.0.1 sürümü çıkmıştı.
csh (C shell): Berkeley Üniversitesi’nde geliştirilen csh’in C diline benzer bir programlama yapısı vardır.
tcsh: csh’ın biraz geliştirilmiş hali.
Yukarıdaki kabuk programlarından sh, ksh ve bash
birbirleriyle uyumludur ve yukarıda en ilkelden en gelişmişe göre sıralanmışlardır. Aynı durum csh ve tcsh
için de geçerlidir. Kullanılan shell genellikle kişisel bir tercih nedeni olsa da, bütün sistem scriptleri sh
ile yazıldığından, sistem yöneticilerine sh
ailesinden bir kabuk kullanmaları önerilir.
Kabuk programları genellikle /bin
dizini altında yeralır. Kullanıcının sisteme girerken hangi kabuğu kullanacağı /etc/passwd
dosyasında yeralır. Bunu değiştirmek için chsh
(change shell) komutunu kullanabilirsiniz.
$ chsh Password: Changing the login shell for cagri Enter the new value, or press return for the default Login Shell [/bin/sh]: /bin/bash $
Sisteminizde NIS kullanılıyorsa chsh
yerine yppasswd -s
komutunu kullanmalısınız.
a- Yönlendirme
Kullanıcı, ekrana yazdığı bir komutun neler yaptığını en rahat şekilde komut tarafından ekrana yönlendirilen bilgilerden anlayabilir. Program, kullanıcıyı bilgilendirme amacıyla mümkün olduğu kadar çok, fakat ortalığı fazla karıştırmamak için de mümkün olduğu kadar az bilgiyi ekrana vermelidir.
b- Standart Girdi, Çıktı ve Hata
Linux’ta, programın ekrana yazılan bilgiyi iki sınıf altında toplayabiliriz. Birincisi, olağandışı bir durumu bildiren standart hata, diğeri de her türlü verinin yazıldığı standart çıktı. Program çalıştığı andan itibaren bu iki kanal üzerinden akan bilgiler, programın çalıştığı sanal terminale yazılırlar. Program girdilerini ise standart girdi aracı olan klavyeden alır.
Eğer bu bilgiler bir ekran boyundan (25 satır) fazla tutuyorsa bazı satırlar programcının gözünden kaçabilir. Bunu önlemek amacıyla standart çıktı ve hata bir dosyaya yazılacak şekilde ayarlanabilir. Yönlendirme olarak da bilinen bu işlem UNIX altında (DOS’ta olduğu gibi) >
karakteri ile gerçekleştirilir.
Örnek olarak o an bulunduğunuz dizinde yeralan dosyaları ekrana getirin :
$ ls -al
Bu komut, standart çıktı olarak dosyaların bilgilerini ekrana getirecektir. Bu çıktıyı, bir dosyaya yönlendirelim ve dosyanın içeriğine göz atalım:
linux:~$ ls -al > liste linux:~$ cat liste total 16 drwxr-xr-x 5 gorkem users 1024 Feb 13 13:10 . drwxr-xr-x 4 root root 1024 Jan 7 1980 .. -rw-r--r-- 1 gorkem users 390 Feb 13 12:56 .Xdefaults -rw-r--r-- 1 gorkem ftpadm 2016 Feb 13 13:09 .bash_history -rw-r--r-- 1 gorkem users 1 Feb 13 12:57 .bashrc -rw-r--r-- 1 gorkem users 163 Nov 24 1993 .kermrc -rw-r--r-- 1 gorkem users 34 Nov 24 1993 .less -rw-r--r-- 1 gorkem users 114 Nov 24 1993 .lessrc drwxr-xr-x 2 gorkem users 1024 Jan 7 1980 .term -rw-r--r-- 1 gorkem users 87 Feb 13 12:56 .xinitrc -rw-r--r-- 1 gorkem users 2795 Feb 13 13:06 adres -rw-r--r-- 1 gorkem users 0 Feb 13 13:10 liste drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 mail drwxr-xr-x 2 gorkem users 1024 Feb 13 12:54 perl -rw-r--r-- 1 gorkem users 0 Feb 13 13:10 typescript linux:~$
>
karakteri standart hatayı dosyaya yönlendirmez. Bu işlem için 2>
kullanılır. Ama hatayı görebilmek için, hata yaratan bir komut yazmalıyız, değil mi ?
$ ls /deneme /deneme : No such file or directory $ ls /deneme 2> hata $ cat hata /deneme : No such file or directory
Aşağıdaki komutun işletilmesinin ardından standart çıktı oku1
dosyasına, standart hata ise oku2
dosyasına yazılacaktır. Bu dosyaları komutu çalıştırdıktan sonra incelemek suretiyle neler olup bittiğini anlamak mümkün olur.
$ mkdir ~/deneme (deneme isimli bir dizin yarat) $ touch ~/deneme/gecici (gecici isimli bir dosya yarat) $ cat ~/deneme 2>oku2 >oku1
Kabuk, standart çıktı ve standart girdi için sırayla 2 ve 1 numaralarının kullanımına izin verir. Yukarıda yeralan son komutta, standart hata mesajları için 2 kullanılarak hataların oku2
dosyasına yazılmıştır. Aşağıda, çekirdek derlemek için sürekli kullandığım program yeralıyor. Yönlendirme sayesinde ekrana gelmesi gereken mesajlar kullanılmayan 9. sanal konsola yönlendiriliyor.
# make config # make dep > /dev/tty9 # make clean > /dev/tty9 # time make zImage > /dev/tty9
Son satırdaki time
komutu, kendinden sonra gelen komutun ne kadar zaman içinde çalıştırıldığını gösterir. Çekirdek derlemede geçen zaman, makinanın gücü hakkında bir fikir verebilir. Peki ne hata, ne de çıktıyı ekranda görmek istemiyorsam ne yapmalıyım ? Bunun için standart çıktı ve hatayı biraraya getirerek yönlendirilen her çıktının kaybolduğu “kara deliğe” atmak yeterlidir:
$ ls /deneme > /dev/null 2>&1
Yukarıdaki komutun yazılış sırasına dikkat edin.
Standart çıktı ya da standart hatayı yönlendirirken, >
işareti kullanırsanız: dosya yoksa, oluşturulur ve komutun çıktısı dosyaya yazılır. Dosya varsa, içeriği yok olur, ve komutun çıktısı dosyanın yeni içeriği olur. Var olan bir dosyayının eski içeriğini tamamen silmek değil de komutun çıktısını dosyaya eklemek istiyorsanız >>
kullanmalısınız. Bu durumda dosya varsa komutun çıktısı dosyanın eski içeriği korunarak sonuna eklenir, dosya yoksa oluşturulur ve komutun çıktısı dosyaya yazılır. Örneğin:
$ echo deneme1 >>deneme.txt $ cat deneme.txt deneme1 $ echo deneme2 >>deneme.txt $ cat deneme.txt deneme1 deneme2 $
Örnekte görüldügü gibi ilk komut deneme.txt
dosyasını oluşturdu. İkincisi ise oluşan dosyanın içeriğini koruyarak ikinci komutun çıktısını bu dosyanın sonuna ekliyor.
Standart hata ve çıktıya ek olarak UNIX’in desteklediği bir yönlendirme daha vardır: Standart girdi sayesinde bir dosyayı oluşturan satırlar, bir komut veya programa yönlendirilebilir. Daha önce bir metin editor kullanarak hazırlamış olduğumuz raporu patrona kısa yoldan göndermek için,
$ mail -s "rapor" patron < rapor.txt
Dosyanın içeriği, mail komutuna girdi olmuş ve rapor.txt
dosyası patron
kullanıcısına “rapor” konu başlığıyla e-posta ile gönderilmiştir.
c- Boru (pipe) İşlemleri
Bazı durumlarda, bir komutun çıktısı diğer bir komuta yönlendirilebilir. Başka bir deyişle, komutun standart çıktısını bir dosyaya değil, bu çıktıyı işleyecek başka bir komuta yönlendirmek istiyorsunuz. Bu amaçla UNIX altında (yine DOS’ta olduğu gibi) boru (|) karakteri kullanılır. Bu karakter, kendinden önce gelen komut veya komut serisinin çıktısını, kendinden sonra gelen komuta gönderir. Örneğin bir dizinde yeralan tüm dosyaları yazıcıya aktarmak için,
$ ls -al | lpr
komutları kullanılabilir. Artık ls -al
komutunun ekrana vermesi gereken tüm bilgiler, lpr
komutu aracılığıyla yazıcıya gönderilmiştir. İlk komutun standart çıktısı, ikinci komuta standart girdi olarak atanır. Diğer bir örnekte, README
dosyasında kaç satır olduğu bulunuyor. Bir dosyadaki veya komut çıktısındaki satır, karakter ve kelime sayılarını bulmak için wc
komutunu kullanabilirsiniz.
$ who | wc -l 40
Yönlendirme ve pipe işlemleri bazen insanın kafasını karıştırabilir. Yönlendirme, bir programdan bir dosyaya yapılabilir, fakat bir programdan başka bir programa yönlendirme yapamazsınız. Benzer şekilde, iki dosyanın arasında pipe işlemi uygulamak mümkün olmaz.
Şimdi de biraz karışık bir örnek:
# ps -aux | grep inetd | grep -v grep|awk '{print $2}' | xargs kill -1
Yukarıdaki örnek zorlama bir örnek değil, bir Linux sistem yöneticisinin her an kullanması gerekebilecek türden. Bu örneği burada ayrıntılı olarak açıklamayacağız, sadece pipe kullanarak ne kadar fazla sayıda komutun birbirine bağlanabildiğini göstemek amacıyla verdik. Bu ve benzeri komutların ayrıntılı açıklamaların kabuk programlamayla ilgili bölümde bulabilirsiniz.
d- Çokgörevlilik
UNIX’in en büyük silahlarından biri süreçlerdir. Her süreç sistemde bağımsız çalışan, birbirini etkilemeyen ve herbiri kendi kaynağını kullanan programdır. Süreçler arkaplanda veya kabuğun kontrolünde çalışabilir. Çekirdek, her sürecin kullandığı sistem kaynağından haberdar olur ve bu kaynakların süreçler arasında adilce paylaşılmasından sorumludur.
Bir süreç, aksi belirtilmedikçe çalıştığı süre içinde klavyeden bilgi alır ve ekrana bilgi verir.
Kullanıcıların haberi bile olmadan çalışan süreçler, Linux makinasındaki G/Ç işlemlerini gerçekleştirebilmek için sürekli faaliyet içinde bulunurlar. Onlarca süreçten bazıları kullanıcıların sisteme girmesini sağlarken (getty) bazıları da WWW ve FTP gibi İnternet tabanlı istekleri yerine getirir (httpd, ftpd).
Arkaplanda Çalıştırma
Bir komutu arkaplanda çalıştırmak için, komutun sonuna &
karakteri getirin. Komutu girdikten sonra tekrar kabuk istemcisine düşecek ve kaldığınız yerden devam edebileceksiniz. Program, arkaplanda diğer süreçlerle çakışmadan bir süre çalışır ve işi bittiğinde durur.
$ sort buyuk_dosya > buyuk_dosya.sirali & [1] 772
Komutun arkaplana atılmasından sonra ekranda yeralan 1 , sürecin sıra numarasını, 772 sayısı ise süreç kimliğini (Process ID) gösterir. Her program, sistem kaynaklarını biraz daha azalttığından Linux’çuların deyimiyle makina yavaşlar.
Çalışan programların listesini görmek için ps
komutunu kullanın. Hiç parametre vermeden yazılırsa sadece üzerinde çalışılan kullanıcının süreçleri ekrana gelir. Sık kullanılan bir başka parametre dizisi de uax
tir. Bu sayede sistemdeki o anda çalışan tüm programlar daha ayrıntılı bir şekilde ekrana listelenir.
$ ps PID TTY STAT TIME COMMAND 76 v02 S 0:00 -bash 111 v02 R 0:00 ps
$ ps -aux USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND bin 63 0.0 5.5 64 364 ? S 11:12 0:00 /usr/sbin/rpc.portmap gorkem 76 0.0 9.7 101 644 v02 S 11:12 0:00 -bash gorkem 112 0.0 5.0 59 332 v02 R 11:16 0:00 ps -aux root 1 0.0 5.0 56 332 ? S 11:12 0:00 init [5] root 6 0.0 4.2 35 284 ? S 11:12 0:00 bdflush (daemon) root 7 0.0 4.2 35 284 ? S 11:12 0:00 update (bdflush) root 48 0.0 5.1 45 340 ? S 11:12 0:00 /usr/sbin/crond -l10 root 59 0.0 5.5 53 364 ? S 11:12 0:00 /usr/sbin/syslogd root 61 0.0 5.0 44 336 ? S 11:12 0:00 /usr/sbin/klogd root 65 0.0 5.5 62 364 ? S 11:12 0:00 /usr/sbin/inetd root 67 0.0 5.8 79 388 ? S 11:12 0:00 /usr/sbin/rpc.mountd root 69 0.0 6.0 88 400 ? S 11:12 0:00 /usr/sbin/rpc.nfsd root 75 0.1 9.9 115 660 v01 S 11:12 0:00 -bash root 77 0.0 4.6 52 304 v03 S 11:12 0:00 /sbin/agetty 38400 tty3 root 78 0.0 4.6 52 304 v04 S 11:12 0:00 /sbin/agetty 38400 tty4 root 79 0.0 4.6 52 304 v05 S 11:12 0:00 /sbin/agetty 38400 tty5 root 80 0.0 4.6 52 304 v06 S 11:12 0:00 /sbin/agetty 38400 tty6 root 81 0.0 5.5 42 368 ? S 11:12 0:00 gpm -t ms
Burada yeralan bilgiler sırasıyla :
- PID: süreç numarası. Her sürecin farklı bir numara alması sistem tarafından düzenlenir.
- %CPU: İşlemcinin % olarak ne kadarı süreç tarafından kullanılıyor ?
- %MEM: % olarak hafızada kapladığı yer
- SIZE: Programın toplam kullandığı bellek alanı (kilobyte)
- RSS: Programın bellekte kapladığı gerçel alan. Bu değer paylaşılan sistem kütüphaneleri (shared library) nedeniyle genellikle
SIZE
değerinden küçüktür. - TTY: sürecin çalıştırıldığı (sanal) terminal
- STAT: süreç o sırada ne yapıyor ?
- S: Uyumakta, bu durum genellikle sürecin bir G/Ç işlemi (örneğin fare’nin hareketi ya da ağdan gelecek veriler) beklemesi sırasında olur.
- R: Çalışabilir. Çalışabilir süreçler, gereksinim duydukları bütün sistem kaynaklarına sahip olan süreclerdir. Çekirdek (tek işlemcili bir makinada) belirli aralıklarla bu süreçlerden sadece birini çalıştırır.
- T: Durmuş. Bu durum sürecin kullanıcı tarafından (örneğin
Control-Z
tuşlarına basılarak) durdurulmasında görülür. - Z: Zombie. Bu tür süreçler, kendisini çalıştıran sürece mesaj bırakamadıklarından takılmış süreçlerdir. Öldürülemezler ancak sitem kaynaklarını da kullanmazlar.
- D: Kesilemez uykuda. Bazı G/Ç işlemleri o sırada bu işlemi yapan sürecin kesilmemesini gerektirir. Böyle durumdaki süreçleri de ilgili G/Ç işlemi bitinceye kadar öldüremezsiniz.
- START: sürecin çalıştığı zaman
- COMMAND: komut satırından girilen programın ismi
ps
komutuna bilgisayar üzerinde çalıştığınız her an ihtiyaç duymanız mümkündür, bu yüzden çeşitli parametrelerle kullanmayı öğrenmelisiniz.
Klavye Üzerinden Kesinti
Linux (ve UNIX) altında, klavyeden bazı tuş kombinasyonları yardımıyla çalışmakta olan program kesintiye uğratılabilir.
Klavyeden kabuk komut satırına yazılan bir programın uzun sürmesi halinde, eğer daha önceden komutun arkasına &
işareti koyup arkaplanda çalışır halde bırakılmamışsa, klavyeden yapılan bir müdahele ile durdurulup arkaplanda çalışır hale getirilebilir. Örnek vermek gerekirse, uzun sürmesi beklenen bir komutu klavyeden yazalım ve ardından Control-Z
tuşlarına basalım:
linux:/etc/rc.d# find /usr -name "o*" -print /usr/bin/od /usr/lib/lilo/doc/other.fig /usr/lib/lilo/doc/other.tex /usr/man/man1/od.1.gz [1]+ Stopped find /usr -name "o*" -print linux:/etc/rc.d#
Bu esnada sürecin çalışmasına ara verilmiş, fakat program tamamen durmamıştır. Programın çalışmasını arkaplanda sürdürmek için bg
komutunu kullanın.
$ bg
Bu komutu tekrar komut satırında çalışacak ve klavyeden bilgi girilecek şekilde terminale bağlamak için fg
yazın:
$ fg
Bir programı çalıştırmaya başlattıktan sonra tamamen durdurmaya karar vermişseniz klavyeden Control-C
tuşlarına basın.
Durdurulup arkaplanda çalışmaya yönlendirilen süreçlere kısaca görev ismi verilir. Tüm görevleri görebilmek için
$ jobs
yazın. Görevler, birden fazla oldukları zaman sıra numarası ile belirtilirler.
Süreçlerin Sona Erdirilmesi
Her an çalışan süreçlerden biri veya birkaçı, beklenmedik döngüye girebilir. Bunun sonucu olarak sistemin kaynaklarını, özellikle hafızayı tüketici bir duruma gelebilir. Bu tür kısır döngüye giren süreçleri bulup, eğer hayati önem taşımıyorlarsa `öldürmek’ gerekir. Süreci öldürmekten kasıt, programı tamamen durdurarak sistemle ilişkisini kesmektir. Bu sayede programın hafızada kapladığı bölge serbest kalacak, çekirdek de hafıza düzenlemesini tekrar yaparak başka süreçlere daha fazla yer ayıracaktır. Bir süreci öldürmek için kill
komutu kullanılır. Yukarıdaki 67 numaralı sürece ait /usr/sbin/rpc.mountd
programını öldürmek için şunları yazın :
$ kill 67
Birçok süreç sizden bu mesajı aldıktan sonra, dosya sistemi üzerinde yarattığı geçici dosyaları, dosyalar üzerine koyduğu kilitleri temizlemek gibi yapması gereken işlemleri yaptiktan sonra çalışmasına son verecektir. Eğer öldürmeye çalıştığınız süreç herhangi bir nedenle takılmışsa ve bu komuta tepki vermiyorsa aşağıdakini deneyin:
$ kill -9 67
Artık programın sistemle ilişkisi tamamen kesilmiştir. Kill komutu, -9
seçeneğiyle sürece 9 numaralı sinyali gönderir. Bu sinyali alan sürecin yukarıda sözü edilen iki özel durum dışında çalışmayı sürdürmesi olanaksızdır. -9
seçeneğini özellikle sistem süreçleri üzerinde gerekmedikçe kullanmamalısınız. Diğer sinyaller ve anlamları yeri geldikçe diğer bölümlerde anlatılacaktır.
FreeBSD 6.4-RC2
FreeBSD 6.4’ün ikinci aday sürümü FreeBSD 6.4-RC2, Ken Smith tarafından duyuruldu. Smith, bu aşamaya çeşitli testlerle ulaştıklarını fakat özellikle kullanıcıların yaptıkları testlerde saptamış oldukları sorunları kendilerine rapor etmiş olmalarının onları çok yüreklendirdiğini söyledi. Bunun ikinci aday sürüm olduğunu ifade eden Smith; aday sürümü test etmek, herhangi bir sorunu rapor etmek konusunda yine titiz olunmasını rica etti. Sürüm hakkında ayrıntılı bilgi edinmek için sürüm duyurusu incelenebilir.
Kubuntu 8.10
Ubuntu’nun KDE masaüstü kullanılan varyantı olan Kubuntu 8.10, KDE masaüstü ortamının en son sürümü olan 4.1.2 ile geliyor. Kubuntu geliştiricileri, açık kaynak dünyasının en son ve en büyük yazılımlarını sunmak için çok çalıştıklarını ifade ediyorlar. Geliştiriciler, bu sürümün adı gibi (Intrepid: cesur) pek çok değişikliği içerdiğini sözlerine ekliyorlar. Ancak, henüz KDE4 için bazı şeylerin tamamlanmamış olduğunun da unutulmaması gerektiğinin altını çiziyorlar.
Continue Reading →