Python ile MySQL uygulaması

Python ile basit MySQL uygulaması,MySQL veritabanı ve tablo oluşturma

Python programlama diline yeni başlayanlar için(benim gibi) mysql veritabanı ve tablo oluşturma,ardından da bu veritabanını(tabloyu) yazdığım küçük python programımızda nasıl veri ekliyeceğimizi yada veritabanına nasıl sorgu gönderip veri çekeceğimizi anlatacağım.

İlk olarak Python ile MySQL veritabanını kullanabilmemiz için "mysqldb" kütüphanesine ihtiyacımız olacak.Debian ve türevi kullanıcıları için;

$aptitude install python-mysqldb #komutu ile sistemimize bu kütüphaneyi indirip kuruyoruz.

Şimdi gelelim programımızda kullanacağımız MySQL veritabanını ve tablomuzu oluşturmaya;

$mysql -u root -p #konsola komutu verip ve ardından şifremizi girdikten sonra mysql veritabanına erişelim.

Mysql'e giriş yaptıktan sonra yeni veritabanını oluşturalım;

mysql>create database ornek; (sizin verebiliceğiniz herhangi veritabanı adı)

Query OK ,cümlesi ile başlayan cevabı aldığımızda işlemimiz olumlu sonuçlanmış ve veritabanımız oluşturulmuştur.Hemen bu veritabanına geçip tablo oluşturalım.Burada tablo oluştururken sütun ve karakter sayısı sizin ihtiyacınıza kalmış.Aşağıdaki örneği inceleyelim;

mysql>use ornek ;# yeni oluşturduğumuz veritabanına geçiş yapalım.

mysql>create table kutuphane (kitap varchar(50), yazar varchar(50), yayin varchar(50), yil varchar(10));

Böylece veritabanımızda "kitap,yazar,yayin,yil" sütunları olan kutuphane adlı bir tablo oluşturduk.Şimdi tablo örnek bir veri girelim;

mysql>insert into kutuphane values ("Python Linux","Great TUX","Linux Yayinlari","2009");

Query OK,ile başlayan mesajı aldıysanız  veritabanına ilk  veri girişimiz başarıyla tamamlanmış demektir.Eklediğimiz verileri tabloda görmek için;

mysql>select * from kutuphane; #yazarak görebilirsiniz.

Böylece MySQL'de veritabanımızı,tablomuzu ve ilk örnek verimizi girmiş olduk.Sıra geldi yazacağımız Python  ile bu veritabanına veri ekleyeceğimiz küçük bir program yazmaya.Aşağıda örnek kodları mevcut dikkatle inceleyin.

#!/usr/bin/env python

-- coding:utf-8 --

import MySQLdb

def ekle(): x=raw_input("Lütfen ekleyeceğiniz kitabın adını girin: ")  y=raw_input("Eklediğiniz kitabın yazarını girin: "  z=raw_input("Yayınevi : ") v=raw_input("Basım Yılı: ") db=MySQLdb.connect(host="localhost",user="root",passwd="123456",db="ornek") cursor=db.cursor() s="""insert into kutuphane (kitap,yazar,yayin,yil) values (%s,%s,%s,%s)""" cursor.executemany(s,[(x,y,z,v)])

ekle()

Bu kodları herhangi bir metin düzenliyici ile yazıp "ornek.py" olarak kaydedin.Konsoldan dosyanın bulunduğu dizine girip;

$python ornek.py #yazarak veritabanınıza veri ekleyin.(Kodlarda yanlışlık olabilir eğer varsa yorumlarda belirtin lütfen)

Kolay gelsin.

OpenDns dinamik ip updater

İlk önce eğer ağınızda veya evinizde "Opendns" kullanmıyorsanız hemen geçmenizi öneririm.OpenDns'e geçmek için dns adreslerinizi şöyle girmelisiniz:

208.67.222.222 208.67.220.220
Ev kullanıcılarının OpenDns'i daha sağlıklı kullanmaları için "ADSL modem"den DNS ayarlarından içindeki mevcut Telekom dnslerini silip Opendns serverın adresleri ile değiştirin.Böylece garanti bir şekilde her zaman dns adresinizi değiştirmek zorunda kalmayacaksınız.

Evinizde dinamik ip kullanıyorsanız ve OpenDns'in tüm nimetlerinden(istatistik,loglar,ve en önemlisi filtre gibi) faydalanmak istiyorsanız,değişen ip'mizi belli aralıklarla Opendns'e bildirmemiz gerekiyor.Opendns'in windows ve mac kullanıcıları için böyle bir "updater" programı hazırlamış ancak linux kullanıcıları için zaten var olan özelliklerinden olacaktır ki böyle bir şeye gerek duyulmamış.Şimdi gelelim Opendns'e ip'mizi belli aralıklarla göndermemize;

ilk olarak "ddclient" kuruyoruz.

$aptitude install ddclient (debian ve türevleri için)

Kurulumu tamamlandığında,hemen konfigurasyon dosyasını açıp editliyoruz.

$gedit /etc/ddclient.conf

Buraya aşağıdaki gibi kendi bilgilerinizi yazarak kaydediyoruz.

##

OpenDNS.com account-configuration

use=web, web=whatismyip.org server=updates.opendns.com protocol=dyndns2 login=user_name #Opendns'e kaydolduğunuz kullanıcı adınız password='123456' #Kullanıcı şifreniz newset  #Opendns'te oluşturduğunuz ağ adınız

ve ddclient'ın kaç saniye bir ip'mizi güncellemesini istiyorsak aşağıdaki komutu giriyoruz.

/usr/sbin/ddclient -daemon 300 -syslog #Buradaki 300 rakamı saniye sayısıdır.İstediğiniz saniye aralığı ile değiştirebilirsiniz.

Artık rahatça internette gezinebilirsiniz.

Freetalk - konsol tabanlı jabber client

  ,           ,
 /             \
((-^^-,-^^-))
 -_---'---_-'
  --|o 'o|--'
     \  `  /
      ): :(
      :o_o:
       "-"
Freetalk konsol tabanlı bir jabber client'tır.Konsoldan freetalk programı ile jabber'a bağlanıp özgürce iletişim kurabilirsiniz. Özgürce kullanabileceğiniz,konfigure edilebilen,isterseniz geliştirilebilen özgür bir yazılımdır.Son kararlı sürümü "freetalk-3.2"dir. Freetalk indirmek için buradan

Freetalk kullanımı:

freetalk  [seçenek] örnek [seçenek] : - j=Jabber id , -jid=jabber-id(Jabber kullanıcı id'si)

Script kullanımı ; -s=SCRIPT-FILE | –script=SCRIPT-FILE

-V  | -version = version numarasını gösterir.

-? | –help | –usage = yardım ekranını getirir.

Feetalk komutları :

connect

komut: /connect

Konfigure edilmiş servera bağlanır.

~\/~ /connect
Connecting...
~\/~
Eğer sunucu konfigure edilmemişse,hata mesajı verir ve durur;
~\/~ /connect
Server not set
~\/~

disconnect

komut : /disconnect

O an bağlı bulunan server ile bağlantısını keser.

~\/~ /disconnect
Disconnected from server. Reason (0): User request
~\/~

server

komut: /server [servername]

Bağlanmak istediğiniz herhangi biri servere bağlar ya da bağlı bulunduğunuz serverı size gösterir.

~\/~ /server
Current server:
~\/~ /server jabber.org
~\/~ /server
Current server: jabber.org
~\/~

jid

komut: /jid [kullanıcı_adı@domain[/kaynak]]

Kayıtlı olduğunuz kullanıcı adı ile bağlanmak için ya da bağlı bulunan kullanıcının adını ekrana yazdırır.

~\/~ /jid
Current JID:
~\/~ /jid avati@jabber.org
~\/~ /jid
Current JID: avati@jabber.org

add

komut: /add kullanıcı_adı@domain

Bu komut adresini yazdığınız adresi sizin buddy list'ize ekler.

~\/~ /add harshavardhanacool@gmail.com
~\/~

allow

komut : /allow kullanıcı_adı@domain

 
Adresini yazdığınız kullanıcının sizin durumunuzu görmesine izin verir.
~\/~ /allow haddock@marlinspike.org

deny

komut: /deny kullanıcı_adı@domain

Yazdığınız kişi sizin durumunuzu görmesini engellersiniz.

~\/~ /deny cacafonix@village.gl

quit

komut: /quit mesaj

Freetalk programından çıkmanızı sağlar.

~\/~ /quit
shell$

restart

komut: /restart

Bu komutla programı yeniden başlatırsınız.

~\/~ /restart
Loading dictionary [/usr/share/dict/words]... [38619] words
Jabber ID:

who

komut: /who

Bu komut listenizde bulunan kişileri durumları ile birlikte gösterir.

~\/~ /who
 * abindian@gmail.com (ab)
   twistedlogix@gmail.com
 * tejasvk@gmail.com -> [Away] (on metarnity leave)
   basavanagowda@gmail.com
   amarts@gmail.com (ts3)
~\/~

status

komut: /status [online|away|chat|xa|dnd] [Mesaj]

Bu komutla durumunuzu değiştirebilirsiniz.

~\/~ /status online Using Freetalk
~\/~ /status
Current status: online Using Freetalk
~\/~

whoami

komut: /whoami

O an hangi kimlikle giriş yaptığınızı gösterir.

~\/~ /whoami
~\/~ /whoami
Jabber ID: avati@zresearch.com
Jabber Server: jabber.org
Status: hacking
~\/~

version

komut: /version

Freetalk programının versiyonunu ekrana yazar.

~\/~ /version
freetalk (Freetalk) 3.2
Copyright (C) 2005, 2007 FreeTalk Core Team
…

~\/~

logout

komut: /logout

Bu komut /disconnect komutu ile aynıdır.

~\/~ /logout
Disconnected from server, reason(0): User request
~\/~

history

komut: /history [kullanıcı_adı]

Bu komutla geçmiş görüşmeleri ekrana yazdırabilirsin.Eğer kullanıcı adı girilmemişse o an ki açık olan oturumdaki geçmişi gösterir.

~\/~ /history emre.eryilmaz@jabber.org

Prints the history of messages with

emre.eryilmaz@jabber.org paginated by less.
~\/~ /history

Prints this history of messages of the current session.

~\/~

login

komut: /login

/disconnect ile çıkış yaptıktan daha sonra bu komutla normal giriş yapabilirsiniz.

~\/~ /login
Jabber ID: emre.eryilmaz@jabber.org
Password:
Enable TLS/SSL (Y/N)? [Y]: y
Port [5223]: 2401
Connecting...
~\/~

help

komut: /help [freetalk-komutu]

/help komutu yanına yazılan diğer komut hakkında bilgi gösterir.

~\/~ /help /history
/history - /history [BUDDY]
         Display history page by page
~\/~

freetalk

komut: /freetalk kullanıcı_adı

Bu komutla yazdığınız kullanıcının freetalk kullanıp kullanmadığını öğrenirsiniz.

~\/~ /freetalk emre.eryilmaz@jabber.org

Yes emre.eryilmaz@jabber.org is using freetalk.

~\/~

Şimdilik en önemli olan komutlardan bahsettik.

Eğer freetalk programının açıldığında otomatik olarak giriş yapmasını istiyorsak

"~/.freetalk/freetalk.scm"  yolundaki dosyayı aşağıdaki örnekteki gibi editleyebiliriz.

;; Sample ~/.freetalk/freetalk.scm
;; It sets connection parameters and tries to connect on
;; starting freetalk
(and (strings=? (ft-get-jid) "")
                (ft-set-jid! "emre.eryilmaz@jabber.org")
                (ft-set-password! "f00b4r")
                (ft-set-sslconn! 1)
                (ft-set-server! "jabber.org")
                ;; Proxy support
                (ft-set-proxyserver! "your.proxy.org")
                (ft-set-proxyport! "8080"))

GNU nedir?Linux ile GNU arasındaki ilişki

GNU nedir? Linux ile GNU arasındaki ilişki  -  GNU yazı dizisi I

GNU yazı dizimizin ilk konusuna "GNU nedir? ve Linux ile GNU arasındaki ilişki"den bahsedecez.Bu yazıdaki amaç GNU hakkında genel bir tanım ve kanı vermektir.İlk olarak GNU nedir sorusunun cevabı ile başlayalım:

"GNU not Unix (GNU Unix değildir) " GNU Projesi 1984 yılında tam anlamıyla UNIX benzeri özgür bir işletim sistemini, GNU sistemini, geliştirmek için başlatıldı.Yani Unix benzeri bir işletim sistemi çekirdeği oluştururken tamamen özgür bir işletim sistemi olmasını,içindeki sistem araçları, açıcıları, kütüphaneleri ve son kullanıcı programları dahil herşeyi ile özgür yazılımdan oluşmasını amaçlayan bir işletim sistemi projesidir.

GNU işletim sistemi planı 1983 yılında Richard Stallman tarafından oluşturulup duyurulmuş,1984 yılında işleyişe geçmesine rağmen halen çalışmalara devam edilmektedir.GNU projesinin başlamasından o kadar yıl geçmesine rağmen halen kararlı bir çekirdek sunulmamış,ve projenin resmi çekirdeğinin adı "GNU/HURD"dür."HURD"ün gecikmesindeki en büyük sebeb ise Linux çekirdeğinin giderek popülerleşmesi ,gelişen "GNU/HURD"ün yavaşlaşmasına sebeb olmuştur.

GNU hakkında daha fazla bilgi için buradan (Türkçe)

GNU/HURD hakkında daha fazla bilgi için buradan (İngilizce)

Debian GNU/HURD sayfası içinde buradan (İngilizce)

Linux ile GNU arasındaki ilişki

Linux ile GNU arasındaki ilişkiyi anlamak ve tanımlamak için size Richard Stallman ile başbaşa bırakıyorum.
Neden sistemi Linux olarak değil de GNU/Linux olarak adlandırıyorsunuz?
Çekirdek olarak Linux'u esas alan bir çok işletim sistemi dağıtımı, temel olarak GNU işletim sisteminin değiştirilmiş sürümleridir. Biz GNU'yu geliştirmeye, Linus Torvalds'ın çekirdeği yazmaya başlamasından yıllar önce, 1984 yılında başladık. Hedefimiz bütünüyle özgür bir işletim sistemi geliştirmekti. Tabii ki, bütün parçaları kendimiz geliştirmedik, ama geliştirilmesine öncülük ettik. Ana bileşenlerin çoğunu geliştirmek suretiyle, bütün sisteme tek taraflı en büyük katkıyı biz sağladık. Ayrıca temel bakış açısı da bize aitti.Adil olmak açısından, en azından bizden de eşit derecede bahsedilmeli.

Peki ad neden önemli?
Linux'un (yani çekirdeğin) geliştiricileri, özgür yazılım topluluğuna katkıda bulunsa da, çoğu özgürlüğü umursamıyor bile. Bütün sistemin Linux olduğunu düşünen insanlar yanılgıya düşüp bu geliştiricilere gerçekte topluluğumuzun tarihinde oynamadıkları bir rol atfetmeye meylediyorlar. Sonuçta da bu geliştiricilerin görüşlerine haddinden fazla itibar ediyorlar.Sistemi GNU/Linux olarak adlandırmak, topluluğumuzu inşa etmede, sahip olduğumuz idealizmin oynadığı rolün hakkını verir ve bu ideallerin pratik öneminin insanlar tarafından kavranmasına yardımcı olur.

Nasıl oldu da çoğu kimse sistemi “Linux” olarak adlandırmayı yeğledi?
Sistemin “Linux” olarak adlandırılması, kargaşanın düzeltici bilgiye kıyasla daha hızlı yayılmasına bir örnektir.Linux sözünü GNU sistemini de içerecek şekilde kullanan insanlar yaptıklarının neye malolduğunun farkında değillerdi. Dikkatlerini, sistemin Linux tarafına yoğunlaştırdılar ve bu bileşimin büyük kısmının aslında GNU olduğunu farketmediler. Verdikleri isim ellerindeki sistemi tarif etmeye uygun olmadığı halde, sistemi “Linux” olarak adlandırmaya başladılar. Sorunun mahiyetini kavramamız ve insanlardan bu alışkanlıklarını değiştirmelerini istemeye başlamamız birkaç yılımızı aldı. O zamana kadar da bu kargaşa iyiden iyiye yayılmıştı.

Sistemi “Linux” olarak adlandıran çoğu kimse, bunun neden doğru birşey olmadığını hiç duymamıştır. Onlar başkalarının bu ismi kullandığını görmüşler, bunun da doğru olduğunu varsaymışlar. “Linux” adı, aynı zamanda sistemin kökenine ilişkin de yanlış bir intiba yayıyor, çünkü insanlar sistemin geçmişinin bu ada uygun olduğunu zannediyor. Örneğin, bu insanlar sistemin gelişiminin 1991'de Linus Torvalds tarafından başlatıldığına inanıyorlar. Bu yanlış intiba, sistemin “Linux” olarak adlandırılması gerektiği düşüncesini de pekiştiriyor.

Bu dosyadaki soruların çoğu, insanların alışkın oldukları adı kullanmalarını haklı çıkarma girişimlerine işaret eder.

“Linux” yerine her zaman “GNU/Linux”u mu kullanmalıyız?
Her zaman değil, yalnızca bütün sistemden söz ederken. Eğer özellikle çekirdekten söz ediyorsanız, geliştiricisinin seçtiği “Linux” adını kullanabilirsiniz.İnsanlar bütün sistemi “Linux” olarak adlandırdığında, sonuç olarak bütün bir sisteme çekirdek ile aynı adı vermiş oluyorlar. Bu, birçok karmaşıklığa neden olmaktadır, çünkü böylesi bir kullanımda, biri bir şey söylediğinde, çekirdekten mi yoksa tüm sistemden mi bahsedildiğini yalnızca uzmanlar anlayabilir. Tüm sistemi “GNU/Linux”, çekirdeği de “Linux” olarak adlandırarak, anlam karmaşasını önlemiş olursunuz.

Eğer GNU diye bir şey olmasaydı Linux gene aynı başarıyı yakalayabilir miydi?
Bahsettiğiniz alternatif dünyada, GNU/Linux tarzı bir şey var olmayacağı gibi, herhalde özgür bir işletim sistemi de olmazdı. 1980'lerde GNU Projesi ve (sonrasında) Berkeley CSRG haricinde hiç kimse özgür bir işletim sistemi geliştirmeye kalkışmadı. (ki Berkeley CSRG'yi kodlarını özgürleştirmeye davet eden de özel olarak GNU Projesi olmuştur).Linus Torvalds, 1990 yılında Finlandiya'da GNU hakkındaki bir konuşmadan kısmen etkilenmişti. Linus Torvalds bu etki olmadan da belki Unix benzeri bir çekirdek yazabilirdi, ama muhtemelen bu özgür bir yazılım olmazdı. Linux, 1992 yılında Linus onu GNU GPL altında yeniden yayımlayınca özgür hale geldi. (0.12 versiyonunun sürüm notlarına bakınız.)

Torvalds, Linux'u başka bir özgür yazılım lisansı altında yayımlamış olsaydı bile, yalnız başına özgür bir çekirdek, dünya için çok da fazla bir anlam ifade etmeyecekti. Linux'un anlamlılığı, tamamen özgür bir işletim sistemi olan GNU/Linux gibi daha geniş bir çatıyla bütünleşmesinden ileri gelmektedir.

Topluluğu böyle bir istekle bölmeseniz topluluk için daha iyi olmaz mıydı?
İnsanlardan “GNU/Linux” demelerini istemekle onları bölmüş olmuyoruz. Biz insanlardan, GNU projesinin, GNU işletim sistemindeki emeğini takdir etmesini istiyoruz. Bu herhangi bir kimseyi eleştirmek veya dışlamak demek değildir.Fakat, bizim böyle dememizden hoşlanmayan insanlar var. Böyle dediğimizde bazen bu insanlardan aldığımız karşılık itilip kakılmak oluyor. Bazı hallerde o kadar kabalaşıyorlar ki, acaba bizi kasten sindirip susturmaya mı çalışıyorlar diye merak ediyor insan. Bu tavır bizi susturamaz, ama topluluğu bölebilir. Dolayısıyla umarız onları tavırlarından vazgeçmeye ikna edebilirsiniz.

Fakat bu, topluluğumuzdaki bölünme açısından ikincil bir nedendir. Topluluktaki en büyük bölünme; özgür yazılımı, toplumsal ve etik bir konu olarak değerlendirip sahipli yazılımları toplumsal bir sorun olarak görenler ile (özgür yazılım hareketinin destekçileri), yalnızca pratik yararlardan söz edip özgür yazılımı yalnızca verimli bir geliştirme modeli olarak sunanlar (açık kaynak hareketi) arasındadır.

Bu düşünce ayrılığı sırf bir ad sorunu değil, temel değerlerin birbirinden farklı olması sorunudur. Bu düşünce ayrılığını görüp, bunun hakkında kafa yormak topluluk için önemlidir. “Özgür yazılım” ve “açık kaynak” bu iki bakış açısının pankartıdır. Bkz. Açık Kaynak, Özgür Yazılım Ruhunu Neden Iskalıyor?.

GNU Projesi'nin topluluğumuz içindeki rolüne insanlarca gösterilen ilgi düzeyi ile değerler üzerindeki bu düşünce ayrılığı arasında kısmi bir paralellik vardır. Özgürlüğe değer veren insanlar, sistemi daha çok “GNU/Linux” olarak adlandırıyorlar ve sistemi “GNU/Linux” olarak öğrenmiş insanlar, özgürlük ve topluluk hakkındaki felsefi savlarımıza daha çok ilgi gösteriyorlar (Sistem için seçilen adın toplum açısından gerçekten de bir farklılık göstergesi olmasının nedeni de budur). Fakat, herkes sistemin gerçek kökenini ve doğru ismini bilse bile bu fikir ayrılığı var olacaktır, çünkü sorun gerçekten büyük. Bu fikir ayrılığı ancak ve ancak özgürlüğe değer veren bizler herkesi ikna edebilirsek (ki pek kolay olmayacaktır) ya da tamamen bozguna uğrarsak (böyle olmamasını ümit edelim) ortadan kalkacaktır.

GNU projesi; bir bireyin sistemlere kendi seçeceği herhangi bir ismi verebilme konusunda ifade özgürlüğünü desteklemiyor mu?
Elbette, işletim sistemini dilediğiniz şekilde adlandırmak konusunda ifade özgürlüğünüzün olduğuna inanıyoruz. Biz, insanlardan sistemi GNU/Linux olarak adlandırmalarını; GNU Projesi'ne adil davranılmasını sağlamak, GNU’nun dayandığı özgürlük değerlerini yaymak ve sistemi var edenin o özgürlük değerleri olduğundan başkalarını haberdar etmek için istiyoruz.
Herkes GNU'nun sistem gelişimindeki rolünü bildiğine göre, isimdeki “GNU/” kısmı atlansa olmaz mı?
Deneyimlerimize göre, sistemin kullanıcıları ve genel olarak bilgisayar kullanan insanlar, GNU sistemi hakkında çoğunlukla hiçbir şey bilmiyor. Sistem hakkındaki birçok makale de “GNU” adından ya da GNU'nun dayandığı ideallerden söz etmiyor. GNU'yu Hiç Duymamış GNU Kullanıcıları makalesinde bu durum ayrıntılı olarak açıklanmaktadır.Bunu söyleyen insanlar muhtemelen, bütün bilgisayar kurtlarını (geek) kendisi gibi zanneden bilgisayar kurtlarıdır. Genellikle bilgisayar kurtları GNU hakkında bir şeyler bilir, ama bunların çoğu GNU'nun ne olduğu hakkında tamamen yanlış fikirlere sahiptir. Örneğin çoğu, GNU'yu bir “araçlar” bütünü veya araç geliştirmeye yarayan bir proje zanneder.

Bu soruda kullanılan ifadeler, bilindik şekilde, yaygın bir yanlış anlamaya işaret etmektedir. Bir şeyi geliştirmede “GNU'nun rolü”'nden söz ettiğinizde GNU'nun bir grup insan olduğunu varsayıyorsunuz. Ama GNU bir işletim sistemidir. Bu veya başka bir faaliyette GNU'nun değil, ama GNU Projesi'nin rolünden söz etmek mantıklı olabilir.

GNU'nun bu sistemdeki rolünü bildiğime göre, hangi ismi kullandığımın ne önemi var?
Eğer kullandığınız kelimeler bilginizi yansıtmıyorsa, başkalarına da öğretemezsiniz. GNU/Linux sistemini duymuş olan çoğu kimse, sistemin “Linux” olduğunu, bunun Linus Torvalds tarafından ortaya çıkarıldığını ve bu sistemin “açık kaynaklı” olarak tasarlandığını zannediyorlar. Eğer doğrusunu onlara siz söylemezseniz kim söyleyecek?
“GNU/Linux”u “Linux” olarak kısaltmak, “Microsoft Windows”u “Windows” olarak kısaltmak gibi değil midir?
Sık kullanılan bir adı kısaltmak, eğer kısaltma yanıltıcı değilse, kullanışlıdır.Gelişmiş ülkelerde, insanların çoğu “Windows”un Microsoft tarafından yapılmış bir sistem olduğunu biliyor, bu yüzden “Microsoft Windows”u “Windows” olarak kısaltmak, kimseyi sistemin yapısı ve kökeni hakkında yanılgıya düşürmez. “GNU/Linux”u “Linux” olarak kısaltmak ise, sistemin nereden geldiği konusunda yanlış bir fikir verir.

Esasında sorunun kendisi de yanıltıcı, çünkü GNU ve Microsoft aynı şeyler değildir. Microsoft bir şirket, GNU ise bir işletim sistemidir.

GNU, Linux içinde yer alan bir dizi programlama aracı değil midir?
Linux'un başlıbaşına bir işletim sistemi olduğunu düşünen insanlar, GNU hakkında bir şeyler duyduklarında, genellikle GNU'nun ne olduğu ile ilgili yanlış fikirlere kapılıyorlar. Bazı programlama araçlarımız tek başlarına popüler olduklarından, insanlar GNU'nun bir programlar bütünü olduğunu (ki buna çoğunlukla “programlama araçları” diyorlar) zannedebiliyor. “GNU”nun bir işletim sistemi adı olduğu düşüncesini, “Linux” olarak etiketlendirilmiş bir işletim sistemi içinde kavramsal bir yapıya oturtmak zordur.GNU Projesi, ismini GNU işletim sisteminden almıştır. Yani GNU Projesi, GNU sistemini geliştirmek için kullanılan projedir. (Bakınız 1983 tarihli ilk duyuru.)

GCC, GNU Emacs, GAS, GLIBC, BASH, vs. programları geliştirdik, çünkü GNU işletim sistemi için bunlara gereksinimimiz vardı. GNU Derleyici Seti GCC; GNU işletim sistemi için yazdığımız bir derleyicidir. Bizler, yani GNU Projesi'nde çalışan pek çok insan, GNU sistemi için Ghostscript, GNUCash, GNU Chess ve GNOME'yi de geliştirdik.

Bir işletim sistemi ile bir çekirdek arasındaki fark nedir?
Bizim kavramı kullanış şeklimize göre bir işletim sistemi, geniş çaplı pek çok işin yapılabilmesi amacıyla bilgisayarı kullanabilmeyi sağlayan programlar bütünüdür. Genel amaçlı bir işletim sisteminin eksiksiz olabilmesi için, bu sistemin birçok kullanıcının yapmayı isteyebileceği bütün işleri kotarabilmesi gerekir.Çekirdek, işletim sistemi içerisindeki programlardan biridir (makinenin kaynaklarını, çalışan diğer programlara tahsis eden bir program). Çekirdek, aynı zamanda öteki programları başlatma ve durdurma işini de yürütür.

İşleri daha da karıştıracak şekilde, bazı insanlar, “çekirdeği” kast ederek “işletim sistemi” terimini kullanırlar. Terimin bu iki anlamda kullanımının geçmişi çok eskiye gider. “İşletim sistemi”nin “çekirdeği” kast edecek şekilde kullanıldığını ta 80'lerde yayımlanmış, sistem tasarımına ilişkin bazı kitaplarda görüyoruz. Aynı zamanda (80'lerde) “Unix işletim sistemi” bütün sistem programlarını kapsayacak şekilde kullanılıyordu. Berkeley'in Unix sürümü ise oyunları bile içeriyordu. GNU'nun, Unix benzeri bir işletim sistemi olmasını tasarladığımız için, “işletim sistemi” terimini biz de aynı şekilde kullanıyoruz.

Çoğu zaman insanlar, “Linux işletim sistemi”nden söz ettiklerinde “işletim sistemi” terimini bizim kullandığımız anlamıyla, eksiksiz bir programlar bütününü kastedecek şekilde kullanıyorlar. Eğer kastettiğiniz şey buysa, lütfen buna “GNU/Linux” deyin. Eğer yalnızca çekirdeği kastediyorsanız, o halde doğru ad “Linux”tur. Ayrıca yazılımın hangi kısmından söz ettiğinize ilişkin anlam karmaşasını gidermek için de lütfen “çekirdek” kelimesini kullanınız.

Eğer eksiksiz programlar bütünü için “işletim sistemi” yerine “sistem dağıtımı” gibi başka terimler kullanmayı tercih ediyorsanız, sakıncası yok. Sonrasında ise, GNU/Linux sistem dağıtımlarından söz etmek gerekiyor.

Richard Stallman ile daha fazla sohbet ve daha çok soru ve cevap için buradan devam edin.

Python Logolu duvar kağıtı

Python logosu ile 1600x1200 çözünürlüğünde yapmış olduğum duvar kağıtı çalışması.

python duvar kağıtı

duvar kağıtı download