<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Çağdaş&#039;ın Günlüğü &#187; hack</title>
	<atom:link href="http://www.cagdastopcu.com/tag/hack/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cagdastopcu.com</link>
	<description>THE GNU HARDWARE DEVELOPER</description>
	<lastBuildDate>Tue, 04 Oct 2011 14:50:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Linux BackTrack 5 Kitabı Çıktı</title>
		<link>http://www.cagdastopcu.com/linux-backtrack-5-kitabi-cikti.html</link>
		<comments>http://www.cagdastopcu.com/linux-backtrack-5-kitabi-cikti.html#comments</comments>
		<pubDate>Tue, 04 Oct 2011 14:50:51 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[backtrack]]></category>
		<category><![CDATA[güvenlik]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[inceleme]]></category>
		<category><![CDATA[kitap]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[metasploit]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[penetration]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=486</guid>
		<description><![CDATA[Kemal Demirez&#8217;in yeni kitabı Linux BackTrack 5 çıktı. Bugün aldım çok merak ettiğim konular var içerisinde. Fiyatı kitapçılarda 20 lira. Ancak yazarına ulaşarak incelemek için ücretsiz olarak temin eden ubuntu-tr kullanıcısı da var. Kitap daha çok nereden başlayacağını bilmeyen güvenlikle alakalı konuları merak eden insanlar için yazılmış. Bölüm bölüm içindekileri aktarmaya çalışacağım: 1- Tanımlar Güvenlik &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/linux-backtrack-5-kitabi-cikti.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p><img class="alignnone" title="BackTrack Logo" src="http://upload.wikimedia.org/wikipedia/commons/0/09/Backtrack_logo.png" alt="" width="647" height="152" /></p>
<p>Kemal Demirez&#8217;in yeni kitabı Linux BackTrack 5 çıktı. Bugün aldım çok merak ettiğim konular var içerisinde. Fiyatı kitapçılarda 20 lira. Ancak yazarına ulaşarak incelemek için ücretsiz olarak temin eden ubuntu-tr kullanıcısı da var. Kitap daha çok nereden başlayacağını bilmeyen güvenlikle alakalı konuları merak eden insanlar için yazılmış.</p>
<p>Bölüm bölüm içindekileri aktarmaya çalışacağım:<br />
<strong><br />
1- Tanımlar</strong></p>
<p>Güvenlik ve internetle ilgili temel tanımlar var. Porttan Buffer Overflow&#8217;a kadar bir çok terim kısa kısa açıklanmış.</p>
<p><strong>2- BackTrack 5 Kurulumu</strong></p>
<p>Vmware üzerine kurulumu anlatılmış ve genel olarak BackTrack 5 dağıtımı hakkında bilgiler verilmiş.</p>
<p><strong>3- Linux Shell ve Konsol</strong></p>
<p>Basit shell komutları, genel olarak penetrasyon ve test methodları ile izlenen yollar anlatılmış.</p>
<p><strong>4- BackTrack Araçları<br />
</strong></p>
<p>En güzel bölüm bu sanırım. WireShark&#8217;tan Metasploit&#8217;e bir çok program giriş seviyesinde anlatılmış.</p>
<p><strong>5- Forensics</strong></p>
<p><strong>6- Raporlama Araçları</strong></p>
<p>Güvenlikle alakalı konuları merak edenler için güzel bir giriş kaynağı. Okudukça yorumlarımı paylaşacağım.</p>
<div class="shr-publisher-486"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/linux-backtrack-5-kitabi-cikti.html&via=cagdastopcucom&text=Linux BackTrack 5 Kitabı Çıktı&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/linux-backtrack-5-kitabi-cikti.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>USB&#8217;den BackTrack Linux Kurulumu</title>
		<link>http://www.cagdastopcu.com/usbden-backtrack-linux-kurulumu.html</link>
		<comments>http://www.cagdastopcu.com/usbden-backtrack-linux-kurulumu.html#comments</comments>
		<pubDate>Mon, 27 Sep 2010 17:36:26 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[backtrack]]></category>
		<category><![CDATA[güvenlik]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[kurulum]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=274</guid>
		<description><![CDATA[Merhaba uzun zamandır yazamadım günlüğüme. Geçenlerde eski toshiba notebookuma usb üzerinden kurulum yaptım. Hemen anlatıma geçmeden önce kuracağımız işletim sistemine ait ilk izlenimlerimi anlatayım: BackTrack Linux nedir? BackTrack Linux bir kısım offensive security seven insanın başlattığı eski bir linux dağıtımı projesidir. Diğer dağıtımlardan farkı bir çok hack aracını içinde barındırmasıdır. Videolardan izlediğime göre kolayca wpa &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/usbden-backtrack-linux-kurulumu.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/09/backtrack1.png"><img class="aligncenter size-full wp-image-276" title="backtrack" src="http://www.cagdastopcu.com/wp-content/uploads/2010/09/backtrack1.png" alt="" width="450" height="358" /></a></p>
<p>Merhaba uzun zamandır yazamadım günlüğüme. Geçenlerde eski toshiba notebookuma usb üzerinden kurulum yaptım. Hemen anlatıma geçmeden önce kuracağımız işletim sistemine ait ilk izlenimlerimi anlatayım:</p>
<p><strong>BackTrack Linux nedir?</strong></p>
<p>BackTrack Linux bir kısım offensive security seven insanın başlattığı eski bir linux dağıtımı projesidir. Diğer dağıtımlardan farkı bir çok hack aracını içinde barındırmasıdır. Videolardan izlediğime göre kolayca wpa crackler yapılmaktadır. Onun dışında basit elemanlar da olsa reverse engineering için de yararlı sayılabilecek ideleri koymuşlar. Network analizinden exploit araçlarına herşeyi barındırıyor neredeyse. Ancak en güzel yanı (benim için) debianla birlikte ortaya çıkan ve ubuntuda da bulunan apt paket yöneticisini barındırması. Böylece ubuntuda kulalnılan birçok program burada da hemen kurulabilir şekilde elimizin altında. Sanırım bütün hepsi ve son versiyonları olmasa da birçok program mevcut. Ayrıca sıradan kullanıcı yazılımlarının da güvenlik testleri için kullanılabilinecek eklentileri de hazır olarak gelmektedir. Gerçi bu firefox&#8217;un her siteye sanki oradan saldırı gelebilirmiş gibi ön yargılı girmesine neden olsa ve biraz can sıksa da bilinçli bir kullanıcı olmanın ve ne kullandığını bilmenin keyfini yaşatıyor insana <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em><strong>Ben neden kuruyorum böyle tehlikeli ve eğlenceli bir oyuncağı?</strong></em></p>
<p>Aslında debian kuracaktım ancak debianın network installerı herhalde olabilecek en standart şey olan ethernet kartımı görmedi ve bir sinirle zaten indirmiş bulunduğum bt4r1 isomu yani BackTrack Linux 4 r1&#8242;i kurdum <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Kurulum:</strong></p>
<p>Burada anlattığım kurulum windows üzerinden bir BackTrack Live USB&#8217;nin hazırlanması ve ardından kurulmasıdır.</p>
<p>bash yorum ifadesi olan # işareti olan satırlar genelde kurulumla alakası olmayan saçma yorumlarımdır <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bize ilk önce çalıştırılabilir bir iso lazım. Hemen kendi sitesine gidip buluyoruz.</p>
<p><a title="BackTrack downloads" href="http://www.backtrack-linux.org/downloads/" target="_blank">http://www.backtrack-linux.org/downloads/</a></p>
<p>Buradan istediğimiz iso çekilebilir. En üstte olan genelde son kararlı sürümdür. Onu indirin. Eğer sanal makineye kurmayacaksak wm için olan versiyonları indirmeye gerek yok.</p>
<p>#Ayrıca daha önceden normal isosunu Sun/Oracle VirtualBox sanal makinesine kurmaya çalıştım ve hüsrana uğradım.</p>
<p>Ardından kurulum-live usbsini oluşturmak için kullanacağımız basit programı Unebootin&#8217;i indirelim:</p>
<p><a title="unebootin download" href="http://unetbootin.sourceforge.net/" target="_blank">http://unetbootin.sourceforge.net/</a></p>
<p>Bize lazım olan 2 Gb&#8217;lık usb flash diskimizi usb soketine sokalım. Bilgisayarım&#8217;ın içindeki usb biriminin üzerine gelip sağ tık ile format sekmesini seçelim. Ardından FAT32 dosya sistemiyle biçimlendirelim. Biçimlendirme işlemi bittikten sonra indirdiğimiz unebootin programını çalıştıralım. Kurmak istediğimiz linuxu ve versiyonunu seçelim. Bizim için burada BackTrack ve BackTrack4 seçenekleri uygundur. Bu seçimden sonra isomuzu nereye kaydetmişsek onu browse seçeneği ile bulup seçelim. Kerneli ayrıca bildirmemize gerek yok çünkü farklı bir kernel kullanmak istemiyoruz ve hazır olarak isomuzun içinde zaten bir kernel var. Ardından işlemimizi başlatalım. İşlem bitince done der ve biter.</p>
<p>Artık BackTrack USB&#8217;miz hazırdır. Kurmak istediğimiz bilgisayara takalım ve bilgisayarı açalım. Bios yüklenirken boot menüsüne girelim ve oradan USB üzerinden boot ol seçeneğini seçelim. Eğer sorarsa kullanıcı adınız root ve şifreniz de toor. Masaüstüne geldiğiniz zaman install.sh adında bir dosya göreceksiniz. Onu tıklayarak harddiskinizden boot olabilecek bir işletim sisteminizin kurulumuna başlayacaktır. Kurulum kısmı çok eğlenceli her linux dağıtımında olduğu gibi ve bu kısımları okuyucuya bırakıyorum.</p>
<p>#İşin eğlencesi zaten eğer hiç kurmamışsanız bir linuxun kurulmasında <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>En sonunda sizden USB&#8217;yi çıkarıp yeniden başlatmanızı isteyecektir. Bunu yaptıktan sonra sistemimiz açılır. root/toor ikilisiyle yine kullanıcıadı/şifre kısmı doldurulur. Ardından wirelessınızla internete bağlanmak için en sol alttaki backtrack amblemi tıklanıp internet &gt;&gt; vicd network manager programı ile wireless ağınıza bağlanabilirsiniz.</p>
<p>Temel Gereksinim Ayarları:</p>
<p>Bunları burada anlatmayacağım ama ilk olarak root olmayan bir kullanıcı oluşturmamız gerekir. Neden yapmamız gerektiği ve nasıl yapılacağı aşağıdaki linkte çok güzel açıklanmıştır:</p>
<p><a title="BackTrack kullanıcı adı oluşturmak" href="http://www.backtrack-linux.org/forums/backtrack-howtos/1741-howto-create-unprivileged-non-root-user-backtrack.html" target="_blank" class="broken_link">root olmayan kullanıcı adı oluşturulması backtrack/forum</a></p>
<p>bunu yaptıktan sonra network ayarları da yapılmalıdır:</p>
<p><a title="BackTrack Network Ayarları" href="http://www.backtrack-linux.org/forums/backtrack-howtos/209-how-start-networking-backtrack.html" target="_blank" class="broken_link">BackTrack Network Ayarları</a></p>
<p>Bunları yaptıktan sonra gönül rahatlığıyla yeni işletim sisteminizi kullanabilirsiniz. Hata alıyorsanız kurulum sırasında sorabilirsiniz.</p>
<div class="shr-publisher-274"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/usbden-backtrack-linux-kurulumu.html&via=cagdastopcucom&text=USB'den BackTrack Linux Kurulumu&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/usbden-backtrack-linux-kurulumu.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Linux Driver Geliştirme ve Kernel Hack Dökümanları</title>
		<link>http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html</link>
		<comments>http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html#comments</comments>
		<pubDate>Sun, 10 Jan 2010 06:17:05 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[döküman]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[geliştirme]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[sürücü]]></category>
		<category><![CDATA[yazılım]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=246</guid>
		<description><![CDATA[Son günlerde sınavlarım ve kurslarım dolayısıyla pek vakit bulamasam da donanım driveri geliştirme üzerine işe yarayabilecek olan dökümanları yazmak istedim. Finallerimden sonra geri bu dökümanlara geri dönüp bazı örnek projeler geliştirmeye çalışacağım. USB cihazların sürücüleri oldukça güzel bir alan ve bununla ilgili Greg Kroah-Hartman&#8217;ın Writing a Simple USB Driver makalesi oldukça açıcı olmuş. USB&#8217; ye &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><div id="attachment_249" class="wp-caption alignright" style="width: 260px"><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/imaginative-lego-clever-advertisement.jpg"><img class="size-full wp-image-249 " title="lego" src="http://www.cagdastopcu.com/wp-content/uploads/2010/01/imaginative-lego-clever-advertisement.jpg" alt="lego" width="250" height="242" /></a><p class="wp-caption-text">lego</p></div>
<p>Son günlerde sınavlarım ve kurslarım dolayısıyla pek vakit bulamasam da donanım driveri geliştirme üzerine işe yarayabilecek olan dökümanları yazmak istedim. Finallerimden sonra geri bu dökümanlara geri dönüp bazı örnek projeler geliştirmeye çalışacağım. USB cihazların sürücüleri oldukça güzel bir alan ve bununla ilgili Greg Kroah-Hartman&#8217;ın <a href="http://www.linuxjournal.com/article/7353">Writing a Simple USB Driver</a> makalesi oldukça açıcı olmuş. USB&#8217; ye bağlanabilen bir RGB ledinin kontrolü için driver örneğini çok güzel anlatmış. Dökümanların ve kod örnekleri için <a href="http://www.kernel.org/pub/linux/kernel/people/mochel/doc/">http://www.kernel.org/pub/linux/kernel/people/mochel/doc/</a> sitesine bakabilirsiniz bunun dışında bütün kernel.org daki kernel geliştiricilerinin listesine şurdan ulaşabilirsiniz :</p>
<p><a href="http://www.kernel.org/pub/linux/kernel/people/">http://www.kernel.org/pub/linux/kernel/people/</a></p>
<p>IBM Developerda daha önceden yayınlanmış yazı dizisi de giriş aşamasında oldukça faydalı olacaktır:</p>
<ol>
<li><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/l-kernelhack1-pdf.pdf">Hacking the Linux 2.6 kernel, Part 1: Getting ready</a></li>
<li><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/l-kernelhack2-pdf.pdf">Hacking the Linux 2.6 kernel, Part 2: Making your first hack</a></li>
</ol>
<p>Elimde hiç usb cihaz yok diye üzülüyordum. Hani gidip bir rgb led seti alsam hem parama hem zamanıma yazık olurdu ki zaten yapılmış bir projeyi yapmak eğlenceli gelmiyor pek. Evde aranırken usrobotics marka skype telefonunu buldum. Skype üzerinde kontrol yapabiliyordunuz hem de 1.1 mb&#8217;lık bir kurulum dosyasıyla. Linux desteklemiyor olması oldukça kötüydü. Ancak tuş takımının olması ve mikrofon hoparlör setiyle beraber bir de ışığının olması önümüzdeki günlerde projelerimde kullanabileceğim demek <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Bütün bunların dışında daha inceleme fırsatı bulamadığım Linux Driver Development Kit&#8217;ini en kısa zamanda ubuntumda deneyeceğim <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Onunda bağlantısını verelim:</p>
<p><a href="http://kernel.org/pub/linux/kernel/people/gregkh/ddk/">http://kernel.org/pub/linux/kernel/people/gregkh/ddk/</a></p>
<p>Bu yazı kendim için de kaynaklar kısmı olucak ve yeni dökümanlar buldukça buraya ekleyeceğim.</p>
<div class="shr-publisher-246"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html&via=cagdastopcucom&text=Linux Driver Geliştirme ve Kernel Hack Dökümanları&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/linux-driver-gelistirm-ve-kernel-hack-dokumanlari.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kernel Modül Programlama &#8211; Giriş</title>
		<link>http://www.cagdastopcu.com/kernel-modul-programlama-giris.html</link>
		<comments>http://www.cagdastopcu.com/kernel-modul-programlama-giris.html#comments</comments>
		<pubDate>Mon, 04 Jan 2010 02:22:05 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[GNU]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[derleme]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[makefile]]></category>
		<category><![CDATA[modül]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=197</guid>
		<description><![CDATA[Kernel modülü programlamak sürekli korktuğum ancak merak ettiğim bir konuydu. Eğer mobile programlama yaparak yaşamımı devam ettireceksem bunu da öğrenmem gerekiyordu Java ME&#8217; nin yanında. Kernel işletim sisteminin çekirdeğidir ve Ubuntu dağıtımının (distro) kerneli Linux&#8217;tur. Kernel bütün programların trafiğini sağlar ve donanımla yazılım arasında bağ kurar. Basit bir kernel modülünü ekleyip çıkarmayı anlatıyorum bu yazımda. &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/kernel-modul-programlama-giris.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><div id="attachment_198" class="wp-caption aligncenter" style="width: 577px"><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/kernelhello1.png"><img class="size-full wp-image-198" title="kernel, hack, linux, ubuntu, modül, module, programlama" src="http://www.cagdastopcu.com/wp-content/uploads/2010/01/kernelhello1.png" alt="kernel ilk modülü programlama" width="567" height="348" /></a><p class="wp-caption-text">ilk kernel modülü programlama</p></div>
<p>Kernel modülü programlamak sürekli korktuğum ancak merak ettiğim bir konuydu. Eğer mobile programlama yaparak yaşamımı devam ettireceksem bunu da öğrenmem gerekiyordu Java ME&#8217; nin yanında. Kernel işletim sisteminin çekirdeğidir ve Ubuntu dağıtımının (distro) kerneli Linux&#8217;tur. Kernel bütün programların trafiğini sağlar ve donanımla yazılım arasında bağ kurar. Basit bir kernel modülünü ekleyip çıkarmayı anlatıyorum bu yazımda.</p>
<h3><strong>Kernel Modülü Nedir?</strong></h3>
<p>Kernel (isteyen çekirdek diyebilir ancak uzayın kernelından aklımda hep kernel olarak kalacaktır <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) modülleri kernele ekleyip çıkarabildiğimiz kod parçalarıdır. Kernelin fonksiyonelliğini sistemi reboot etmeden, yani yeniden başlatmamıza gerek kalmadan modüller sayesinde geliştirebiliriz. Örnek olarak bir donanımın driverını gösterebiliriz, bu driverle kernelimiz sistem ve donanımımızın arasındaki bağlantıyı gerçekleştirebilecektir. Modülleri kullanmıyor olsaydık her fonksiyonelliği geliştirişimizde kernele eklenti yapmamız gerekecekti. Bu ise büyük kernele sahip sistemlerde her yeni geliştirmede kernelin yeniden derlenmesi ve sistemin reboot edilmesi gerçekten de kötü bir durumdur.</p>
<p><span id="more-197"></span></p>
<p>Kernelimizde kurulu olan modülleri <span style="color: #3366ff;">lsmod</span> komutuyla görebiliriz.</p>
<p><span style="color: #3366ff;">cagdas@cagdas:~$ lsmod<br />
Module                  Size  Used by<br />
msdos                  15744  0<br />
fat                    58272  1 msdos<br />
isofs                  39844  1<br />
udf                    87716  0 </span></p>
<p>gibi bir sürü kernel modülümüz görünecektir.</p>
<p>Eğer buradaki örnekler çalışmazsa büyük bir ihtimalle kernelinizin <span style="color: #3366ff;">CONFIG_MODVERSIONS</span> u aktif hale getirilmiştir. Eğer versiyon hataları alıyorsanız kernelinizdeki modversioning özelliğini off hale getirerek derlemeniz gerekmektedir.</p>
<p>Gelelim ilk kernel modülümüze. Elebette ki <span style="color: #3366ff;">&#8220;Hello World!&#8221;</span> uygulaması olucak. Başka türlü olsaydı şaşardım <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="color: #3366ff;">/*<br />
*  hello-1.c &#8211; The simplest kernel module.<br />
*/<br />
#include &lt;linux/module.h&gt;    /* Needed by all modules */<br />
#include &lt;linux/kernel.h&gt;    /* Needed for KERN_INFO */</span></p>
<p><span style="color: #3366ff;">int init_module(void)<br />
{<br />
printk(KERN_INFO &#8220;Hello world 1.\n&#8221;);</span></p>
<p><span style="color: #3366ff;">/*<br />
* A non 0 return means init_module failed; module can&#8217;t be loaded.<br />
*/<br />
return 0;<br />
}</span></p>
<p><span style="color: #3366ff;">void cleanup_module(void)<br />
{<br />
printk(KERN_INFO &#8220;Goodbye world 1.\n&#8221;);<br />
}</span></p>
<p>Kernel modülleri en az iki fonksiyondan oluşmaktadır. Bunlar başla ve bitir fonksiyonlarıdır. Genellikle <span style="color: #3366ff;">init_module()</span> başla ve <span style="color: #3366ff;">cleanup_module()</span> bitir (temizle) isimlendirmeleriyle kullanılırlar ancak kafamıza göre de isimler verebilirdik.</p>
<p>init_module() yapacağımız işi veya asıl fonksiyonu kernelin içine koyarak çağırmamızı veya kerneli denetlemizi sağlar. cleanup_module() kısmı ise init_module() ün yaptıklarını geri alarak modülümüzün güvenli bir şekilde kaldırılmasını sağlar.</p>
<p>linux/module.h kütüphanesi bütün kernel modüllerde kullanılır.</p>
<p>linux/kernel.h kütüphanesini ise printk() uyarısını kullanabilmek için çağırdık. Bu uyarı syslogd ve klogd programları çalışıyorsa /var/log/messages dosyasına çıktımızı loglamaya yarar.</p>
<p>Ardından Makefile&#8217;ımızı kodu koyduğumuz dizinin içine koyalım. Dosyanın adı <span style="color: #3366ff;">Makefile</span> olacak.</p>
<p><span style="color: #3366ff;">obj-m += hello-1.o</span></p>
<p>all:<br />
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules</p>
<p>clean:<br />
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean</p>
<p>make komutu ile modülümüzü derleyelim.</p>
<p><span style="color: #3366ff;">cagdas@cagdas:~/Belgeler$ make<br />
make -C /lib/modules/2.6.28-16-generic/build M=/home/cagdas/Belgeler modules<br />
make[1]:`/usr/src/linux-headers-2.6.28-16-generic&#8217; dizinine giriliyor<br />
CC [M]  /home/cagdas/Belgeler/hello-1.o<br />
Building modules, stage 2.<br />
MODPOST 1 modules<br />
CC      /home/cagdas/Belgeler/hello-1.mod.o<br />
LD [M]  /home/cagdas/Belgeler/hello-1.ko<br />
make[1]: `/usr/src/linux-headers-2.6.28-16-generic&#8217; dizininden çıkılıyor</span></p>
<p>Evet ilk kernel modülümüzü derledik. Ardından modinfo komudu ile kernel modülümüz hakkında bazı bilgilere erişebiliriz.</p>
<p><span style="color: #3366ff;">cagdas@cagdas:~/Belgeler$ modinfo hello-1.ko<br />
filename:       hello-1.ko<br />
srcversion:     140276773A3090F6F33891F<br />
depends:<br />
vermagic:       2.6.28-16-generic SMP mod_unload modversions 586 </span></p>
<p>Ve en sonunda kernelimizin içine modülümüzü koyalım. Bunun için root kullanıcı olmamız gerekiyor. <span style="color: #3366ff;">sudo -s -H</span> komutuyla bildiğiniz gibi root oluyoruz. <span style="color: #3366ff;">insmod ./hello-1.ko</span> ile kernelimize modülümüzü ekledik ve /var/log/messages logunun son satırlarına bakalım <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="color: #3366ff;">Jan  4 03:22:17 cagdas kernel: [37145.098506] hello_1: module license &#8216;unspecified&#8217; taints kernel.<br />
Jan  4 03:22:17 cagdas kernel: [37145.098594] Hello world 1.</span></p>
<p>Evet mutlu son <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Eğer modülümüzü kernelimizden silmek istiyorsak <span style="color: #3366ff;">rmmod hello-1</span> komutunu kullanacağız.</p>
<p>Not: Bu yazı dizisi <a href="http://tldp.org/LDP/lkmpg/2.6/html/index.html">The Linux Kernel Module Programming Guide</a> belgesinin soft hali olucaktır. Kernelin 2.4 ve 2.6 sürümünlerine uygundur. Kernelinizin versiyonunu uname -a komutuyla öğrenebilirsiniz.</p>
<p>C kodu:</p>
<p><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/01/hello-1.c">hello-1.c</a></p>
<div class="shr-publisher-197"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/kernel-modul-programlama-giris.html&via=cagdastopcucom&text=Kernel Modül Programlama - Giriş&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/kernel-modul-programlama-giris.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.464 seconds -->

