Pazartesi, Temmuz 27, 2009

WİNDOWS SERVER 2008 İŞLETİM SİSTEMİNİ EVDE KULLANIN

Bugün windows server 2008 işletim sistemi hakkında bir yazı yazmaya karar verdim. Bu yazıda anlatacaklarım Windows Server 2008 işletim sisteminin bir server olarak kullanılmadığı durumlardır. Windows Server 2008 işletim sistemi Vista SP1 ile aynı tarihte çıkmıştır ve kurulduğu anda işletim sistemi Microsoft Server 2008 .... SP1 olarak görünür. Vista ile Server 2008 işletim sisteminin kodlarının büyük bir kısmı aynıdır ve bir server 2008 vista sürümlerinin yapabileceği tüm işleri yapabilme kabiliyetinin de fazlasına sahiptir. Peki neden masaüstü ya da dizüstü bilgisayarımda server kullanayım derseniz bunun cevabı tabiki size bağlı. Eğer elinizde bir Vista Lisansı yok ve Server 2008 lisansı varsa bu geçerli bir mazerettir. Ya da Windows Server 2008 işletim sistemini kurcalamak istiyorsanız ve onunla zaman geçirmek istiyorsanız böyle bir durumda da işinize yarayacaktır. Tabiki bir geliştiriciyseniz server olarak kullanılan işletim sistemi üzerinde çalışmak bir workstation olarak size daha fazla kararlılık ve bileşen desteği sağlayacaktır.
Diğer dikkat çeken nokta ise sürücü yazılımları ve programlar. Vista SP1 ile neredeyse aynı bir işletim sistemi yapısı ile karşı karşıya olduğumuz için Vista için yazılmış tüm sürücüleri ve programları server 2008 üzerinde de kurup kullanabiliyoruz. Tema ve Aero desteğini açınca (hatta Turkçe Dil paketini de yükleyebilirsiniz) arkada çalışan işletim sisteminizin Server 2008 olduğunu bile unutuyorsunuz. Şimdi ben kendi dizüstü bilgisayarımda server 2008 kurulumunda ve ayarlamasında adım adım yaptıklarımı yazacağım.
1-) Windows Server 2008 DVD ve aktivasyon anahtarını hazırlayın. (Ben Server 2008 Standart sürümünün uygun olacağını düşündüm ve zaten lisansım da Standart sürüm içindi. )
2-)Sonraki aşamada sistemi kurmak ve gerekli ürün anahtarını girip arkanıza yaslanmanız yetiyor. 15 dakika gibi bir sürede sistem kuruluyor. Kurulumda server 2008 standart (Full Instalation) seçmelisiniz, server core seçerseniz konsolla başbaşa kalabilirsiniz :)
3-)Bu aşamadan sonra sistemimizde bir server 2008 kurulu fakat şu an hiçbir bileşeni etkinleştirilmediği için bir vistadan farkı yok hatta bazı konularda vistadan da eksikleri var.
4-) İlk olarak server 2008 de standart olarak giriş yapabilmek için CTRL+ALT+DEL kombinasyonunu uygulamanız gerekli. Her oturum için bunu uygulamak can sıkıcı olabiliyor. Bunu düzeltmek için:
Start-> Administrative Tools ->Local Security Policy ->Local Policies -> Security Options ->
Interactive logon: Do not require CTRL+ALT+DEL -> özelliklerinden Enabled olarak ayarlıyoruz.
5-) Kapanışta da normalde server olarak çalışan bir makine çok sık kapatılmadığı için kapatma butonuna bastığımızda bize bir event tracker neden kapattığımızı soruyor. Mazaretimizi yazıyoruz (uyuyacağım gibi :) ) ve kapatıyoruz. Tabi bu hiç gerekli bişey değil bizim için. Bu özelliği kapatmak için:
Start->Run->"gpedit.msc" -> Administrative templates->System-> Display Shutdown event tracked -> Disable ayarlıyoruz.
6-) Diğer bir önemli düzeltme ise Internet Explorer ile ilgili. Normalde bir server ile internete girip sörf yapılmaz :) Bunun için Server 2008 IE ile internete varsayılan ayarlarla ulaşılmasına izin vermez. Sadece izin verilen sitelere girilebilir. Bunu düzenlemek için:
Start->Server Manager->Configure IE Sec-> kısmında tüm kullanıcılar için ayarları OFF yapıyoruz.
7-) Wireless donanımı için öncelikle wireless Lan özelliğinin eklenmesi gerekli.
Start->Server Manager->Features->Add Feature->Wireless LAN Services seçeneğini işaretleyerek install ediyoruz. Bu menüde eklememiz gereken birkaç bileşen daha var. Yedekleme hizmetini kullanmak için Windows Server Backup Features ve sürücü şifrelemek için Bitlocker, .net ile yazılım geliştirme ortamını kurmak için .NET 3.0 Suppot gibi özellikleri de ekleyebiliriz.
8-) Server işletim sistemimizde ses özelliklerini açmak için :
Start->Run->"Service.msc"->Windows Audio -> Automatic
Start->Run->Services.msc"->Windows Audio Endpoint Builder->Automatic olarak değiştiriyoruz. Dikkat ederseniz şimdiye kadar sürücüleri kurmadım. Bu etkinleştirmeleri yaptıktan sonra sürücüleri kurmak daha sağlıklı olur diye düşünüyorum.
9-) Driverlar bu aşamada kurulabilir.
10-) Vista Aero & Media player gibi özellikleri kullanmak için
Start->Server Manager->Features->Add Feature->Desktop Experience
Start->Run->"Service.msc"->Themes->Automatic
11-) Dizin indisleme ve arama özelliklerini açmak için
Start->Server Manager->Roles->Add Roles->File Services->Windows Search
12-) Superfetch ile bilgisayarımızı hızlandırmak için
Start->Run->"regedit"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
Yeni DWORD ekleyelim. İsmi EnablePrefetcher ve değeri 3 olmalı.
Yeni DWORD ekleyelim. İsmi EnableSuperfetch ve değeri 3 olmalı.
Start->Run->"services.msc"->SuperFetch->Automatic
13-) Bazı internet sitelerinde belirtilenin aksine Live Messenger son sürümlerinde kolayca yükleyicisi tarafından indirilip kuruluyor.
14-) ASP.net ile yazılım geliştirenler için Cassini Development Server da internet explorer bulamıyor hatasını engellemek için Windows/System32/drivers/etc içindeki host dosyasını notepad ile açın ve
::1 localhost
yukarıdaki satırı aşağıdaki gibi değiştirin
#::1
15-) Server 2008 güvenli şifre seçimi için sizi zorlar. Bunu ayarlamak için:
Start ->Run-> "gpedit.msc"-> Local Group Policy Editor -> Computer Configuration -> Windows Settings -> Security Settings -> Account Policies ve Password Policy e tıklayın.
Password must meet complexity requirements anahtarını disabled olarak ayarlamalısınız.
Maximum password age 0 olarak ayarlanmalı.
16-) Windows Server 2008 i Türkçe Kullanmak için gerekli olan MUI paketini
bu adresten indirebilirsiniz.
Komut satırından lpksetup.exe yi çağırarak indirdiğiniz MIU DVD si içindeki tr paketinin adresini programa girdiğinizde sisteminizi tamamen türkçe olarak kullanabilirsiniz.

17-) Son olarak da Administrator olarak sistemi kullanmak isteyebilirsiniz. Bu durumda yine de UAC bileşeninin etkinleşmiş olması sizi çoğu tehlikeden koruyacaktır.
Bunun için Start -> Secpol.msc -> Local Policies -> Security Options -> User Account Control: Admin Approval Mode for the Built-in Administrator anahtarının ayarını enabled olarak ayarlamalıyız.
Son olarak Windows Server 2008 performans bakımından vistadan sonra duyurulduğu için daha şanslı görünüyor. Özellikle size gerekli bileşenleri sonradan aktif etmenizden dolayı vistadan daha hızlı ve kararlı bulduğumu söyleyebilirim.
http://www.win2008workstation.com/ adresinden daha fazla bilgi alabilirsiniz. Ben sadece gereksinim duyduğum özellikleri anlatmaya çalıştım.

Pazar, Temmuz 19, 2009

WINDOWS- LINUX tartışması üzerine bir yazı

Geçenlerde internette dolaşırken blogumun yazılarının tümünün bir web sitesi tarafından kopyalanarak kullanıldığını gördüm. Blogdaki yazıların kopyalanması ve paylaşılması tabiki blog sahibi için güzel bir durumdur fakat yazının site yöneticisi tarafından yazılmışçasına kopyalanarak alıntı olduğuna dair bir not dahi düşülmemesi can sıkıcı olabilmektedir. Yazılar tümüyle kopyalanmış olduğundan ilk olarak o siteyi gören birisi için benim adresimde yazdığım yazılar o siteden çalıntıymış imajı bile doğurabilir.
Başlıkla ilk paragrafın ilgisini açıklamaya gelince. Az önce söz ettiğim adreste takip ettiğim, etmediğim daha birçok blog yazarının yazılarını gördüm.Blogumda yapı itibariyle değişik platformlardaki yazılara yer verdiğim için sorgularda da bloglarda Windows-Linux ayrışımındaki yazıların hepsi listelenmiş. Okuduğum yazılar içinde çok değişik fikirler vardı ve bu konu hakkında görüşlerimi söylemeye karar verdim.
Öncelikle belirtmeliyim ki bilişimciler olarak Windows-linux tartışması yaparken aslında karşılaştırdığımız şeyler açık kaynak ve bizi kısıtlayan lisanslar. Ben de bu yazı boyunca bol bol açık kaynaktan ve sınırlı lisanslardan bahsedeceğim.
Windows konusunda söyleyebileceğim ilk şey kim ne derse desin Bill Gates ve ekibi yapacağını yaptılar. Teknolojiye seneler boyunca yön verdiler ve önemli sermaye kaynaklarıyla içli dışlı çalıştılar, Amerika'nın düşük vergi sisteminden yararlandılar, herşey kendilerinden yanaydı, ve sonuç olarak hep 1 numara olmayı , çok kazanmayı başardılar.
Linux konusunda ise Richard Stallman ile başlayan hareket Linus Tolwards ın çekirdeği ile hayat buldu ve bu kişilerin amaçları gerçekten özgürlüktü. Para kazanmak onlar için sadece aç kalmamak ve gerekli ihtiyaçlarını karşılamak için bir gereksinimdi. Araştırırsanız Richard Stallmanın orta düzey bir yaşantısı olduğunu görürsünüz. Linux ile hayat bulan GNU kendi adında bir lisans da getirdi. GNU ve GPL ile yazılım dünyasında yeni bir lisanslama şekli ortaya çıkmış oldu. Burada para kazanan yok muydu. Tabiki vardı. En büyük örnek de Sun Microsystems oldu. Sanılanın aksine Sun bir özgür yazılım savunucusu değil özgür yazılımın meyvelerini yiyen bir şirketti. Microsoft tam ters istikamette başarılarını sürdürürken Sun da Java , MySql gibi büyük projelerle yazılımcılara kendini sevdirdi ve özellikle enterprise çözümlerde yer almayı hedefledi. Buradan çıkarabileceğiniz sonuç Sun işine geldiği için açık kaynağı destekledi ve Oracle ile birleşmesinden sonra bu tarafta değişen bazı konular olabilir.
Olayı biraz derinleştirir ve işletim sistemi savaşlarındaki yerlerine bakarsak aslında Windows ve Linux arasında çok fark yoktur. Yine farkları belirleyen firmaların ya da sistemlerin hedefleridir. Windows herzaman son kullanıcıyı düşünen bir işletim sistemi olmuştur. Sizi düşünür çünkü kolay arayüzler sunar, kullanımı çok basittir, çok yaygındır , hiçbişey bilmiyorsanız sisteminiz için destek alabilirsiniz. Ama sıradan bir kullanıcının sisteminde binlerce trojan olabilir, güvenlik açığı olabilir, dialer olabilir ve bir otomobil parası telefon ücreti gelebilir. Bunlar tabiki MS firmasının sorumluluğunda değildir. Linux ise çıktığı günden beri uzmanlara hitap eden bir sistem olmuştur çünkü Görev Yöneticisinde size prosesin hangi iş sıralama algoritmasıyla yürütülmesi gerektiğini sorabilir (! Bu seneye kadar ben de bilmiyordum. Ancak işletim sistemi dersi alınca anladım. bknz. Round Robin). Kolay kolay virüs bulaşmaz zaten ev kullanıcıları da linuxa bulaşmaz:) Tabi bu anlattıklarım 5 sene öncesini yansıtıyordu , şimdi teknolojinin gelişmesiyle işletim sistemlerinin konumu biraz daha değişmeye başladı. Artık dialer adsl teknolojisi sayesinde kullanıcıları etkilemiyor , trojan ve virüsler bilgisayarları artık daha farklı amaçlar için kullanıyor. Virüsler konusu basite alınmasın çünkü bazıları bu konuyu çok güzel suistimal edebiliyor. Kullanıcının kredi kartından daha değerli olan bir şey varsa o da bilgisayarıdır.Burada da aklımıza paralel işleme gelir.Bu konu için öncelikle bilgisayarlar hakkında ek bilgi verelim. Bilgisayarlar çok zaman alan işlemleri paralel işleme sayesinde yaparlar. Paralel işleme, bilgisayarların bir ağ içinde uygun olarak dağıtılan işlemleri birlikte yapması için programlanmasıdır. Bilgisayar çiftlikleri (computer farm) iyi ya da kötü amaçlara hizmet edebilir. Örneğin nükleer araştırmalarda, genetik araştırmalarda ve uzay matematiği ile ilgili 3 boyutlu modellemelerde işlemler tek bilgisayarla yıllar sürebildiği için paralel işleme kullanılır ve işlem süresi haftalara inebilir. Ağ basit laboratuvarlardan tüm internet ağı kadar değişik çaplarda olabilir. Yukarıdaki örnekler paralel işlemenin iyi amaşla kullanılan örneklerindendi. Kötü amaçla kullanımı ise bir web hizmetine aşırı yüklenerek o hizmeti engelleme, stratejik önem arz eden birimlere saldırı düzenleme ve spam mail gönderme gibi değişik konularda bilgisayarların kullanılmasıdır. İşte bir kullanıcının evinde sadece MSN konuşmaları yapmak ve internete bağlanmak için kullandığı bilgisayarı kaplumbağa kadar yavaş , işlemcisi ise bir o kadar çalışkandır. Sebebi bilgisarınızı sizden başka birinin daha çok kullanıyor olmasıdır. Son yıllarda özellikle spam mail alanındaki artış da bu yöntemden kaynaklanmaktadır.
İşletim sistemleri konusunda değişen bir diğer davranış biçimi ise KOBİ ve enterprise çözümler konusunda. Büyük çapta bir şirket için lisans ücretleri önemli bir masraf olabilir fakat bu üstesinden gelinebilir bir masraftır , bilgi işlem birimi istediği yazılımı lisansıyla birlikte kullanmakta zorluk çekmez. Küçük şirketler için bu durum farklı olabilir. Çünkü lisans ücretleri şirket büyüklüğüne göre değişmez ve bilgisayar başına ödenen lisans ücretleri küçük şirketler için can sıkıcı olabilir. Bu durumda Open Source konusunda bilgisi olan şirket bilgi işlem çalışanı özellikle server konumunda çalışan bilgisayarlara açık kaynak yazılımlar kurarak şirketin masraflarını azaltır ve kurduğu spesifik sistem sayesinde o noktada olmazsa olmaz eleman olabilir. Ayrıca elektronik ve bilgisayarın birlikte kullanıldığı büyük araştırma geliştirme projelerinde altyapıda çoğunlukla linux çekirdeği üzerine inşa edilmiş bir yapı bulunmaktadır.
Devletlerin de son yıllarda bilgisayar sistemlerine bir bakış açısı oluştu. Türkiye'de çoğu noktada olduğu gibi bu konuda da ne bir devlet politikası ne de bir görüş olmasa da stratejik önemdeki bilgilerin MS ellerine bırakılmaması gerekliliği değişmeyen bir gerçek. Ne de olsa MS profesyonel çalışmaktadır ve profesyoneller herhangi bir konuda gönül bağı kurmazlar, işlerine geldiği gibi kozlarını kullanmakta da hiç çekinmezler :) Bu konuda her ne kadar Pardus, Ulusal İşletim Sistemimiz olarak ön plana çıkıp birşeyler yapılmaya çalışılsa da bu kadar uzun sürede bu kadar kısa yol alınabilmesinde sistemin yetersizliği de ön plana çıkmaktadır. Özellikle bakanlıklarda ve güvenlik birimlerinde en basit olarak görülen Web Server/ Veri Tabanı konularında MS yerine açık kaynak ürünler kullanılabilir. Hem maliyet hem de güvenlik açısından mantıklı bir çözüm olacaktır.
Diğer önemli ve son nokta ise destek konusu. Az önce dediğim gibi Özgür Yazılımda destek önemli bir yere sahiptir. Program kodları açıktır. Programcınız kodları alıp değiştirebilir ve yaptığı iş için ücret ister. Aynı şekilde linux server kurduğunuzda mail ve web server da dahil hiçbir ücret ödemezsiniz fakat firmadan ya da herhangi bir kişiden destek almak ücretlidir. MS lisans ücretlerinde destek de dahildir. İnsanların özgür yazılımdan çekindikleri diğer bir nokta desteksiz kalmaktır. Sistem mühendisiniz yokolduğunda sistem de yokolur çünkü MS gibi standartlar yoktur bir işi yapmanın milyon türlü yolu vardır.
Sonuç olarak bu yazıyı yazarken amacım iki taraftan herhangi birini kötülemek ya da övmek değildi. Sadece gereken noktada taraflara hakkını vermekti. Bu konu üzerine öğrendiğim bir şey de kimsenin bu işi felsefi olarak yapmadığıdır. Herhangi bir tarafı savunanlar aslında o taraf gerçekten iyi olduğu için değil sadece kendi işi olduğu ve yaygınlaşmasının da kendi yararına olduğu için savunmaktadırlar. Arada gerçekten gittiği yolun doğruluğuna inanlar olabilir, onlara saygı duyuyorum. Önemli olan gereksinimlere göre en az maliyetle an kaliteli çözümün hangi sistem ya da yöntemle gerçeklenebileceğine karar verebilmektir. Zaten mühendislik eğitiminin temeli de budur.

Cumartesi, Temmuz 18, 2009

LİNUX-3: DEBIAN PAKET YÖNETİMİ

"Debian paket yönetimi kullanışlı ve yaygın paket yönetim sistemlerindendir. Debian Linux için kullanıldığı gibi yaygın linux dağıtımı olan ve birçok yönüyle son yıllarda en yaygın dağıtım olan Ubuntu Linuxun da paket yönetim sistemi olarak kullanılmaktadır."
Genel Bilgi
Debian paket yönetim sistemi çok yönlü ve yönetimi kolay bir paket yönetim sistemidir. Debian linux dağıtımı çok güçlü bir dağıtımdır ve bunun sebepleri arasında paket yönetim sistemi de büyük role sahiptir. Aynı zamanda debian paket yönetim sistemi yaygın linux dağıtımı olan Ubuntu linuxun da paket yönetiminde kullanılmaktadır.
Her debian paketi ayar dosyalarından dökümantasyondan, bağımlılık notlarından ve programdan oluşur. Debian paketlerinin isimlendirilmesinde 3 element vardır.
Paket ismini versiyon numarası ve paket dağıtım numarası izler. .deb uzantılı olarak bulunurlar.

Paketleri Yönetmek
Orijinal debian paket yönetim aracı dpkg dir. Bu araç otomatikleştirilmiş kurulum ve bakım gibi özellikleriyle dikkat çeker. Aynı zamanda apt-get aracı da önceden tanımlanmış yerlerden (CD-ROM , FTP) paketleri alarak otomatik kurulum ve bakım işlemlerini yürütür. Ubuntu için synaptic paket yöneticisi aslında apt-get işlemi yapan basit bir programdır. Seçtiğimiz paketleri Ubuntu repository ya da CDRom dan çekerek kurar.
deselect komutu ise yönetimde interaktif bir kullanım sağlar. İstediğimiz paketleri ve versiyonları kurmak için kullanabiliriz. Ayrıca debian paket sistemi kullanan bir dağıtımımıza istersek Red-hat linux için hazırlanmış olan rpm paketlerini de kurabiliriz. alien komutu ile debian olmayan paketlerin yönetimi yapılabilir.
Şimdi özellikle yaygın olan ve sorumlu olduğumuz araç dpkg den bahsedelim.
Kullanım Şekli:
$dpkg [secenekler] islem
$dpkg -i paketismi
ile paketismi verilen program sisteme otomatik olarak kurulur.
$dpkg -r paketismi kuruma ait sadece ayar dosyaları dışındaki tüm dosyalar kaldırılır.
$dpkg -purge paketismi ile ise pakete ait herşey bilgisayardan kaldırılır.
$dpkg -configure paketismi kurulum öncesi paketin ayarlarını değiştirmek için kullanılır.

Örnek olarak :
# dpkg -i ./opera_9.06-2.deb opera sisteme kurulur.
#apt-get install apache2 apache2 web sunucusu sisteme kurulur.
#dpkg –purge apache2 apache2 tamamen kaldırılır.
Gördüğümüz gibi aslında dpkg ile paket yönetimi oldukça basit.
Şimdi de apt-get aracı ile ilgili bazı noktaları inceleyelim.
Genel yazım şekli :
#apt-get [seçenek] [komut] [paketadi] şeklindedir.
Sıkça kullanılan seçenekler
-d dosyaları indir fakat kurma
-s paket değişikliklerini göster fakat gerçekte işlem yapma
-y paket değişikliklerindeki tüm sorulara evet cevabını otomatik olarak ver.
Sıkça kullanılan komutlar:
dist-upgrade Debian linuxu eğer varsa bir üst sürümüne yükselt.
install bir ya da daha fazla paketi kur
remove paketi kaldır
update Şu anda yüklü olan tüm paketleri çek.
upgrade Sistemdeki paketlerin şu an depodaki son versiyonlarunu kur
#sudo apt-get install xubuntu-desktop komutu ile X ortamı kurulabilir.
Debian paket sistemine kısa bir giriş yapmış olduk. Sonraki yazılarda görüşmek üzere.

LPIC Ağırlığı: 8/8

Perşembe, Temmuz 09, 2009

LINUX -2 : MAKE AND INSTALL FROM SOURCE CODE

“Linux dağıtımlarının paket arşivleri her ne kadar geniş olsa da özgür yazılımın avantajlarından birisi de programları kaynak kodundan derleyerek kullanmaktır. Kendi linux dağıtımınız için bulamadığınız bir programı kaynak kodundan derleyerek kullanabilirsiniz. ”

Linux dağıtımlarının etkili kullanılmasında kaynak kodundan derleme işlemi çok önem arzeder. Bir programın derlenmiş ve kaynak kodu dağıtımınız için bulunabilir fakat dağıtım için derlenmiş bir paket yoksa o zaman make install yapmak için kolları sıvamanız gerekir.

Tarbal nedir?

Programcılar program dosyalarını hiyerarşik yapıda tutabilmek ve dağıtmak için tarbal şeklinde bir paketleme kullanırlar. Tarbal bir arşivdir ama sıkıştırma işlemi yapmaz. Tarbal şeklinde paketlenen bir yazılım kodu yazilim.adi.tar şeklinde tek dosya haline gelecektir. İstersek bzip ya da gzip algoritmalarını kullanarak bu dosyayı sıkıştırabiliriz. Gzip ile sıkıştırılmış bir tarbal tar.gz yada tgz uzantısını bzip il sıkıştırılmış tarbal ise tar.bz2 uzantılarını alacaktır.(bzip daha fazla sıkıştırma sağlar.)

Kaynak koddan program derlemek istediğimizde internetten indirdiğimiz paketlerin tar ya da tar.gz şeklinde dağıtılacağınız tahmin edebiliriz. Programı derlemek için önce arşivi çıkarmalıyız .

Tarbal açmak

İki adımda gerçekleşir.

$ gzip -d tarbar.tar.gz (-d modu decompress mode olduğunu belirtir.)

$ tar xvf tarbal.tar

Tek adımda gzip çıktısını tar a pipe(boru) yardımıyla aktarabiliriz .

$ gzip -dc tarbal.tar.gz | tar xv

Ayrıca eski tar ın aksine GNU tar tek adımda bu işi yapabilmektedir.

$ tar zxvf tarbal.tar.gz

bzip2 ile sıkıştırılmış dosyalar için de aynı şekilde

$ bzip2 -dc tarbal.tar.bz2 | tar xv

GNU tar ile tek adımda

$ tar jxvf tarbal.tar.bz2 olarak gerçeklenir.

(Açık) Kaynak Kodundan Derlemek ve Kurmak

“kaynak kodu derleyebildiğinize göre açıktır:)”

Kaynak kodu derleme işlemi en fazla 3 adımda gerçekleşir.

  1. Configure: Çoğu kaynak kod en üst dizinde bir configure dosyası içinde configure script I bulundurur. Bu script programcılar tarafından autoconf aracı kullanarak gerçekleştirilir.

    $ ./configure ile sistemimizde paylaşılan kütüphaneler ve araçlar test edilir.

  2. Make : make yazılım derleme aşamasını kontrol eden bir araçtır. Yazılım birçok dosyadan oluştuğunda her build işlemi için bu dosyaların compile edilmesi gerekmez. Make makefile dosyasında geçen sistem dizinlerine göre ve bağımlılıklara göre çalışır. Örnek olarak çoğu yazılımın çalıştırılabilir dosyası /usr/local/bin dizinine atılır.

  3. Son işlem ise dosyaların sistem dizinlerine atılmasıdır ki bu işlem için root erişim haklarının alınması gerekir.

    # make install komutu ile sistemimize dosyalar kopyalanır. Genellikle yazılımın executable dosyası /usr/local/bin içindedir.




Bu işlemler sonucunda yazılımı derleyip kurmuş olduk. Gelecek yazımızda en yaygın iki dağıtım olan debian (.deb) ve red hat (.rpm) linux dağıtımlarının paket yönetimine bakacağız. Kolay gelsin.

Bu yazı için LPIC ağırlığı: 5/8




Çarşamba, Temmuz 08, 2009

Linux -1 : Paylaşılan Kütüphaneler

Linux üzerindeki deneyimlerimi anlatmak için yazılarımı yayınlamaya karar verdim. Zaman buldukça yazılara blogda yer vermeye çalışacağım. Bu makalelerden yararlanmak için hayatınızda birkez linux kurmuş ve konsoldan birkaç script yazmış, linux dosya sisteminin nasıl olduğunu biraz kavramış olmanız yeterlidir. LPIC exam 101 ve 102 konuları temel alınmıştır. Konuların ağırlıkları her makale sonunda verilecektir.

LINUX SHARED LIBRARIES
“Bu yazı linux paylaşılan kütüphaneleri üzerine yazılmıştır”
Linux altında bir programı derlediğinizde C dili için düşünürsek programcı printf() komutunu kullandığı zaman ekrana bir çıktı sağlanır ve bu printf fonksiyonunun yaptığı işi programcı yazmak zorıunda değildir. Çünkü programcı stdio.h kütüphanesini programına ekleyerek bazı alt seviye işlemleri bu kütüphane yardımıyla yaptırır, zamandan ve iş gücünden tasarruf eder. Aynı şekilde linux sistemimizde kullandığımız programlar da bu işleve benzer şekilde bazı kütüphaneleri kullanırlar.
Eğer çalıştırılabilir programlarımız bu tür fonksiyonları ya da yapıları içeren kütüphaneleri sistemden kopyalayıp çalıştırılabilir dosya içerisine ekliyorsa bu tür programlar static olarak bağlanmıştır deriz. Çünkü programımız tek başınadır ve çalışma zamanında ek bir bağlanma işlemine gereksinim duymaz. Bu tür bağlanmanın bazı dezavantajları vardır . En önemlisi programlarımız çok yer kaplar ve aynı tür programlar çalıştırıldığında aynı tür kütüphaneleri içereceklerinden hafızada aynı kütüphane birkaç defa yer alacaktır ve bu da bilgisayarımızın kaynaklarının verimsiz kullanımına yol açar.
Bu tür sorunlardan kaçınmak için programlar dinamik olarak bağlanırlar ve sadece çalışma zamanında belirli kütüphanelere bağlanırlar. Farklı programlar çalışma zamanında aynı kütüphanelere bağlandıkları için bu kütüphanelere paylaşılan kütüphaneler adı verilir.

Paylaşılan Kütüphaneye Bağımlılıklar
Bir program dinamik olarak bağlanmışsa en az birkaç paylaşılan kütüphaneye ihtiyaç duyacak demektir. Eğer program çalışma zamanında gerekli olan kütüphaneyi bulamazsa programda hata oluşur ve çöker. “ldd” aracı bu tür bağımlılıkları tesbit etmek için kullanılır. Syntax:
ldd program
şeklindedir.
Örnek olarak
$ ldd /bin/bash scripti ile bash shelinin bağımlılıklarını görebiliriz.
Paylaşılan Kütüphanelerin Bağlanması
Program yüklenirken dinamik paylaşılan nesne bağlayıcısı çalışır ve programın kullanacağı sl(shared library) varsa bunların bulunması ve bulunamayanlar için bir uyarı gösterilmesini ve programın çalışmamasını sağlar. Bu ld.so aracıdır. ld.so nun bakacağı yerler ise /usr/local/lib dizinidir. Biz kendi dizinlerimizi eklemek istersek shell değişkeni LD_LIBRARY_PATH a bu dizinleri eklememiz yeterlidir. Bir başka yol ise bu dizinlerin tutulduğu dosyaya ekleme yapmaktır. Bu dosya ikili dosyadır ve hızlı olarak okunur ld.so tarafından.
$ ldconfig [secenek] libdirs komutu ile bu dosyaya yeni dizinler ekleyebiliriz.
$ ldconfig -p scripti ile o anki kütüphaneleri görebiliriz. Sonucu filtrelemek için
$ ldconfig -p | grep Thread scriptine benzer şekilde sadece thread geçen kütüphaneleri görebiliriz.
Dinamik kütüphane önbelleğini yenilemek için ise
# ldconfid scriptini çalıştırırız.

LPI Weight : 3/8

***Önemli Not: Scriptlerin başında yer alan $ ve # işaretleri konsolu simgeler. Scriptleri denerken bu simgeleri yazmamalısınız. $ normal kullanıcıyı # ise süper user mod kullanıcıyı göstermektedir. Yani $ ile başlayan kodları direk yazabilirken # ile başlayan kodlar için yönetici haklarının alınması gerekmektedir(sudo komutunuz ya da su komutu ile konsolda süper user  oturumu açılabilir. Daha fazla bilgi için $man sudo ve $man su komutlarını deneyin.)

Salı, Temmuz 07, 2009

linux komutları

bu bağlantıdan bazı kullanışlı linux komutlarına ulaşabilirsiniz. Kodlar ve açıklamaları bulabilirsiniz.

Pazar, Temmuz 05, 2009

Paketlerinizi yedekleyin!

Blogumda genellikle windows üstüne kazandığım deneyimleri aktarıyordum fakat artık linux komutları ve linux deneyimlerimi ve kısayollarımı da anlatmaya karar verdim. Linux paketlerimizin herzaman bir  $ sudo apt-get  paketismi kadar  yakın olması çok hoşumuza gidiyor aslında ama bazen de sistemimizde yaşadığımız sorunlardan ya da daha farklı sebeplerden kaynaklanan tüm hard diskimizin silinmesi durumlarında tüm paketlerimizi tekrar internetten indirmek sıkıcı olabiliyor. Hem kaynak tasarrufu hem de zamandan kazanç sağlayan bir çözüm olark Apt-On cd yazılımı ile paket kurulumları çok kısa sürede tamamlanabiliyor.  Apt-On cd nin yaptığı işlem sistemimizdeki o ana kadar kurulu olan tüm paketleri kopyalayarak bize bir cd/dvd imajı sağlıyor.Apt-On  için dağıtımınızın paket yöneticisi kullanarak ya da debian /ubuntu için $ sudo apt-get install aptoncd  komutunu kullanabilirsiniz.  imaj dosyasını saklayarak sonraki linux kurulumumuzda imaj içerisindeki  packages  klasörü içeriğini /var/cache/apt/archives/ klasörü içerisine kopyaladığımızda artık apt-get  ile ya da synaptic gibi paket kurulumları gerçekleştiren araçlar localdeki yazılım kaynaklarını kullanıyor ve daha hızlı bir paket kurulumu gerçekleştiriyoruz.