YAZILIM a. Bilş. 1. Bir veri işleme bütününün çalışmasına ilişkin programlar, yöntemler ve kurallar, ve gerektiğinde belgeler kümesi...
YAZILIM
a. Bilş.
1. Bir veri işleme bütününün çalışmasına ilişkin programlar, yöntemler ve kurallar, ve gerektiğinde belgeler kümesi, (Yazılım DONANIM'ın karşıtıdır.) [Eşanl. SOFTWARE.]
2. Yazılım mühendisliği, belirlenmelerinden, bakımlarına dek, yazılımların üretilmesi mevzusunda meydana getirilen bilişimsel ve yöntembilimsel katkı ve desteklerin tümü.
Ana yazılım, bir bilgisayarın iç çalışmasını sağlamakla yükümlü yazılım. (Bilgisayarda kullanılan elektronik düzeneklerin maliyetlerinin düşmesi sonucunda, yazıfımlar bir bilişim sisteminin en pahalı öğeleri haline gelmiştir.)
Uygulama yazılımı, bir bilişim sistemi kullanıcısının, hususi bir problemim çözmeye uyarlanmış yazılım.
Kaynak: Büyük Larousse
Lisanslı yazılım, demo yazılım, paylaşılan yazılım nedir?
Software hatasi aliyorum yardım edermisiniz?
Software ve Kalibrasyon nedir?
Yazılım Sanatı (Software Art)
Yazılım Sanatı (Software Art), sanatçılar tarafınca sanat eseri olarak sergilenmek amacıyla oluşturulmuş yazılım uygulamaları şeklinde, yazılımın ya da yazılımla ilgili kavramların mühim rol oynadığı sanat biçimlerine denir.
Yazılım sanatı 1990'ların sonlarından itibaren sanatla alakalı bir disiplin olarak yer edinmeye adım atmıştır. Yayımlanması ve tartışılması sık sık WWW üstünden yapıldığı için web sanatı ile de yakından bağlantılıdır. World Wide Web'deki bilgiye alternatif sunumlar getiren tarayıcı sanatı (browser art), hem web hem de yazılım sanatı kapsamına sokulabilecek bir örnektir.
2000 yılından sonrasında yazılım sanatına verilen ehemmiyet artmış, Transmediale (Berlin), Prix Ars Electronica (Linz) ve Readme (Helsinki) şeklinde internasyonal sanat festivallerinde kendine mühim bir yer bulmuştur. Böylelikle daha geniş bir eleştirmen ve akademisyen kitlesine ulaşmıştır. Bu gelişmelerin yanısıra, hemen hemen çok yeni olması sebebiyle, yazılım sanatının ayrı bir sanat dalı olarak geçici bir akım olup olmadığı münakaşa mevzusudur.
Mühim Sanatçılar ve Emekleri
- Londralı sanatçı grubu I/O/D 1998 tarihindeki Web Stalker projesinde siteleri ayrı ayrı sayfalar halinde göstermek yerine haritalarını çıkaran alternatif kolay bir web tarayıcısı yaratmıştır.
- Alexei Shulgin erken dönem yazılım sanatının önde gelen isimlerindendir.
- Amy Alexander yapmış olduğu çalışmalarda programcıların/hacker'ların doğasına ve toplumda oynadıkları yaratıcı role gönderme yapmaktadır.
- C.E.B. Reas, ekran tabanlı çizimler yaratmak için, üretken ve etkileşimli programlar yazmaktadır.
- Peter Luining'in ZNC browser emek harcaması, html kodunu renk ve seslere çevirmektedir.
- Auriea Harvey Michael Samyn
- Golan Levin
- Ubermorgen
- Jason Salavon
- Lisa Jevbratt
- Lia
- Marius Watz
- Jurg Lehni
- Burak Arıkan
- Ali Miharbi
- Düğümküme, yazılım ve web sanatı hakkında Türkçe makaleler yayınlar ve etkinlikler düzenler.
parasız / Özgür Yazılım (Freeware)
Freeware, kullanıcının belirli bir süre sonrasında yazılımı kullanmaya devam etmek için ücret ödemek durumunda olduğu sharewareden değişik olarak, parasız ve sınırsız kullanım imkânı tanıyan bir yazılım lisansıdır. Freeware yazılımların da telif hakları söz mevzusudur. Freeware yazımcıları çoğu zaman "topluma bir şey sunma" motivasyonuyla hareket eden, fakat bunu yaparken isimlerinin de bilinmesini ve yazılımları ile ilgili gelecekteki gelişmelerin kendi denetimleri altında olmasını isteyen programcılardır.
Tarihçe
Freeware terimi ilk kez, yarattığı PC-Talk ismindeki haberleşme-iletişim yazılımını geleneksel yollardan pazarlamayı pahalı bulmuş olduğu için alternatif pazarlama yolları arayan Andrew Fluegelman tarafınca kullanılmıştır. Fluegelman önceleri, bu terimi bir marka şeklinde kullanmıştı; fakat ondan sonra terimin bu anlamda kullanımı terkedilmiştir. Fluegelman aslında PC-Talk yazılımının dağıtımını bugün shareware olarak malum bir yolla yapmıştı.
Yazılım Tasarım Örüntüleri
Tasarım desenleri ya da tasarım örüntüleri, çok rastlanan, birbirine benzer sorunları çözmek için geliştirilmiş ve işlerliği kanıtlanmış genel çözüm önerileridir.
Yazılım Tasarım Desenleri
Yazılım tasarım örüntüleri, yazılım tasarımı sırasına sıkça karşılaşılan, birbirine benzer sorunları çözmek için geliştirilmiş ve işlerliği kanıtlanmış genel çözüm önerileridir. Genel olarak yazılım tasarım örüntüleri programlama dillerinden bağımsız olarak tanımlansalar da, nesneye yönelimli programlama dillerine uygun yazılım tasarım örüntüleri daha çok bilinir. Bu örüntüler, nesneler ve sınıflar arasındaki ilişkileri ve etkilişimleri gösterirler. Programcı bir tasarım örüntüsünü elindeki soruna bakarak özelleştirip kullanabilir.
Tarihçe
Tasarım örüntülerinin temelleri Mimar Christopher Alexander'ın 1970 sonlarında başlatığı çalışmalara dayanmaktadır. Alexander 1977'de "Desen Dili: Metropoller, Binalar, Yapılar" (A Pattern Language: Towns, Buildings, Construction ISBN 0-195-01919-9), 1979'da "Sonsuz Yapım Yöntemi" (A Timeless Way of Building ISBN 0-195-02402-8) kitaplarını yayınlamıştır. Bu kitaplarda mimari desen örnekleri yanı sıra, bu desenlerin iyi mi belgeleneceği de mevzu edilmiştir.
1987'deki internasyonal Nesneye Yönelik Programlama, Sistemler, Diller ve Uygulamalar (OOPSLA: Object Oriented Programming, Systems, Languages, and Applications) konferansına kadar desenlerle ilgili bir emek harcama ortaya çıkmamış, bu tarihten sonrasında ise Grady Booch, Richard Helm, Erich Gamma ve Şehir Beck başta olamak suretiyle örüntülerle ilgili yazı ve sunumlar yayınlamışlardır. 1994'de Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides tarafınca gösterilen "Tasarım Örüntüleri: Yeniden kullanılabilir Nesneye Yönelik Yazılımın Temelleri" (Design Patterns: Elements of Reusable Object-Oriented Software ISBN 0-201-63361-2) tasarım örüntülerinin yazılımda kullanılmasında dönüm noktası olmuştur.
Dörtlü Çete (Gang of Four, özetlemek gerekirse GoF) Yazılım Tasarım Örüntüleri
Yazılım tasarım örüntüleri 1994 tarihinde "Tasarım Örüntüleri: Yeniden kullanılabilir Nesneye Yönelik Yazılımın Temelleri" (Design Patterns: Elements of Reusable Object-Oriented Software ISBN 0-201-63361-2) adıyla gösterilen kitap ile yaygınlaşmaya başlamış, kitabın yazarları Erich Gamma, Richard Helm, Ralph Johnson ve John Vlissides bilgisayar bilimleri çevresinde Dörtlü Çete olarak anılır olmuştur. Dörtlü Çete adı, kitabın isminin uzun olmasından dolayı mevzuyla ilgili e-postalarda kısaltma yapılarak, yazarları kastederek, kitabın "Dörtlü Çetenin Kitabı" (Book of GoF) olarak anılmasıyla ortaya çıkmıştır.
Tasarım Desenleri Sınıfları
Gang of Four'un Tasarım Örüntüleri kitabı (ISBN 0201633612) tasarım örüntülerini üç sınıfa ayırır, fakat bu sınıfları birbirinden ayıran keskin kriterler yoktur:
1. Yaratım Örüntüleri
Yaratım örüntüleri, yazılım nesnelerinin (ya da başka bir değişle derslik örnekleri - class instances) iyi mi yaratılacağı hakkında tavsiyeler sunar. Anafikir, iyi bir yazılımın, içinde barındırdığı nesnelerin iyi mi yaratıldığından bağımsız olarak tasarlanması gerekliliğidir. Öteki bir deyişle, nesnelerin nereden ve iyi mi yaratıldığı, mensup oldukları yazılımın işleyişini etkilememeli; yeni özellikler eklenmesine ve değişikliklere karşı problem oluşturmamalıdır.
Yazılım sistemleri geliştikçe, nesnel bileşimler (object composition), derslik kalıtımına (class inheritence) nazaran daha çok ehemmiyet kazanır. Bunun sebebi, yazılım sistemleri için kolay temel davranış (behavior) şekillerinin tanımlanması üstüne kurulu tasarımların, durağan(durgun) davranışlara dayalı tasarımlara nazaran daha esnek olmasındandır. Öteki bir deyişle, nesnelere davranışların bileşim olarak eklenmesi, ondan sonra bu davranışların yazılımın gelişimine nazaran değiştirilmesine olanak sağlar. Bu durumda, geliştirilen yazılım için ihtiyaç duyulan temel davranış şekillerine dayalı bir tasarım, nesne arayüzleri (interface) değiştirmeden değişik ya da daha karmaşık davranışların kullanılabilmesini olanaklı kılar.
Sadece, nesnel bileşimler kanalıyla temel davranışları elde eden nesnelerin örneklenmesi, ana ya da kalıtım kanalıyla davranış değişikliğine uğratılarak türetilmiş sınıflardan nesne oluşturmak daha zor olsa gerek. Yaratım örüntüleri bu zorlukları aşmak amacıyla kullanılabilecek yazılım örüntüleri ihtiva eder.
Yaratım örüntüleri, hem hangi somut sınıfların (concrete class) nesne örneklemesinde kullanıldığını, hem de bu örneklerin iyi mi yaratılıp bir araya getirildiğini yazılım sisteminden saklarlar.
Soyut Yapınak (Abstract Factory)
Yapıcı (Builder)
Yapınak Yöntemi (Factory Method)
Örnek (Prototype)
Yegane (Singleton)
2. Yapısal Örüntüler
Yapısal örüntüler sınıfların ve nesnelerin bileştirilerek daha geniş yazılım yapılarının kurulmasına olanak elde eden tavsiyeler sunar. Derslik yapı örüntüleri ve nesne yapı örüntüleri olmak suretiyle ikiye ayrılır.
Derslik yapı örüntüleri kalıtım kullanarak derslik arayüzlerini ya da uygulamaları bileştirerek yapıları genişletir. Nesne yapı örüntüleri ise nesnelerin bileştirilerek yeni işlevler kazanma yollarını gösterir.
Uyumlayıcı (Adapter)
Köprü (Bridge)
Bileşik (Composite)
Dekoratör (Decorator)
Vitrin (Façade)
Sineksıklet (Flyweight)
Vekil (Proxy)
3. Davranış Örüntüleri
Davranış örüntüleri işlevsel sorumlulukların nesneler içinde iyi mi atanacağı ve yazılımın gerektirdiği çözüm şekillerinin nesnelerce iyi mi kullanılacağı hakkında tavsiyeler sunar. Davranış örüntüleri nesne ve derslik kalıpları yanısıra nesneler arasındaki haberleşme-iletişim ile ilgili örüntüler de sunar. Davranış örüntüleri tasarımcının nesneler arası haberleşme-iletişim ve haberleşme-iletişim yöntemlerine yoğunlaşmasını sağlar.
Aynen Yapısal örüntülerde olduğu şeklinde, davranış örüntüleri de ikiye ayrılır: derslik davranış örüntüleri ve nesne davranış örüntüleri.
Derslik davranış örüntüleri kalıtım kullanarak davranışların sınıflar içinde dağıtılmasını olanaklı kılar. Nesne davranış örüntüleri ise nesne bileştirme kanalıyla tek bir nesnenin kolayca sağlayamayacağı davranışların bir nesne grubu ile sağlanmasını olanaklı kılar.
Mesuliyet(-lar) Zinciri (Chain of Responsibility)
Komut (Command)
Yorumlayıcı (Interpreter)
Yineleyici (Iterator)
Arabulucu (Mediator)
Yadigar (Memento)
Gözlemci (Observer)
Durum (State)
Strateji (Strategy)
Kalıp Yordamı (Template Method)
Ziyaretçi (Visitor)
Yazılım Tasarım Örüntülerine Eleştiri
Bazı yazarlar, yazılım tasarım örüntülerinin sorunların çözümlerini negatif yönde etkilediği yönünde eleştirmektedir. Bazılarına nazaran de, yazılım örüntüleri programla dilinde ya da metodolojisindeki kısıtlamaları ve sorunları göstermektedir ve örüntüyü saptamak son aşama olmamalıdır. Yeni programla dillerinde bu örüntüleri gerektirecek durumları engelleyecek çözümler dilin kendisinden sağlanmalıdır. Mesela bu görüşün taraftarları nesne tabanlı programlama olarak malum kavramların, daha önceki programlama dillerinde tasarım örüntüsü olarak tavsiye edilen kavramlar olduklarını, fakat nesne tabanlı programlama dillerinini çıkmasıyla bu kavramların dil içinde belirsiz bir halde kullanıldığını ve artık bir örüntü olmadıklarını savunmaktadırlar.
Açık Kaynak Yazılım
Açık yazılım (İngilizce: Open-source software) ya da açık lı yazılım ya da membaı açık yazılım, kodu isteyen her insana açık olan yazılımlardır.
Faydası
Bu tür yazılımların ayırt edici özelliği kullanıcıya yazılımı değişiklik yapma özgürlüğü sağlamasıdır. Açık kodlu yazılımlar, uyarlanabilir, sağlam, süratli ve güvenlidir. Açık kod dünyası, yeni bir yazılım üretme biçimi, yeni iş modelleri sunmaktadır. Dünyanın her tarafınca bilişim uzmanlarınca imece yöntemi ile sanayi standartlarında geliştirilen açık kod yazılımları, insanlığın ortak malıdır.
Yazılımcılar yazılımları geliştirirken kullandıkları programlama dilleriyle dosyaları oluştururlar. Sonrasında derlemeli ve yorumlamalı dillerde (C, C++, Java, C#, Pascal, Python, Ruby) bu dosyayı derleyerek çalıştırılabilir hale çevirirler. Açık lı yazılım savunucuları her üretilen ve dağıtılan yazılımla beraber kodunun da dağıtılmasını savunurlar. Bu sayede geliştirme esnasında ve ilerde yeni sürümlerin ortaya çıkması esnasında daha çok sayıda gözün süzgecinden geçmiş daha kaliteli bir yazılım çıktığını düşünürler. Açık lı yazılımlar 2005 senesi itibariyle bir patlama yapmışlar ve on binlere varan yazılım ve varyanta ulaşmışlardır. En iyi bilinenler Linux, Open Office, GNU, Debian'dır.
Toplumda Yeri
Açık lı yazılımlar, en küçüğünden cep telefonu, saat şeklinde gömülü sistemlerden, en büyüğünden süper bilgisayarlara, ev kullanıcılarından KOBİ'lere, kamu kurumlarından her türden okullara, tüm kurum ve bireylerin rahatça kullanabileceği, gereksinimlere nazaran basitleştirilebilen, sağlamlaştırılabilen, güçlendirilebilen yazılımlardır. Açık kod yazılımlar, her alanda çözümler sunarak, yazılım tekellerine karşı tüketiciye seçenekler sunmaktadır. Almanya, İspanya, Meksika, Brezilya, Çin, Kore, Hindistan şeklinde birçok ülke, kamu kurumlarında açık kodlu yazılımlarının kullanımını benimsemiş ve bilgi toplumu stratejilerin bir parçası yapmışlardır. Avrupa Birliği, UNESCO, Dünya Bankası şeklinde kuruluşlar güvenlik ve tutum şeklinde gerekçelerle açık yazılımlarını önermektedir. Dünya üstündeki derhal her ülke kendi gereksinimlerine nazaran açık kodlu bir Linux dağıtımı geliştirmiştir. Türkiye'de TüBİTAK'ın girişimi ile bu yönde ULUDAĞ: Ulusal Dağıtım Projesi başlatılmış ve bir Linux dağıtımı olan Pardus Ulusal İşletim Sistemi hazırlanmıştır. Türkiye'de açık kod topluluğu 10 yılı aşkın bir süredir bulunmakta, Turkuaz, Gelecek Linux, İstanbulx, Boreas, Turkix, Truva Linux şeklinde dağıtımlar ve başka açık kodlu yazılımlar ve uygulamalar geliştirilmekte, açık şirketleri kurulmaktadır.
Açık kodlu yazılım toplulukları, şu görüşlerle açık ortamlarını desteklemektedir:
"Açık kodlu yazılımlar tutum ve güvenliğin ötesinde de bir ülke ekonomisi için önemlidir. Açık ortamları, teknoloji üretebilecek gençleri yetiştirmenin etkin yollarından biridir. İthal hazır çözümler yerine, ülke insanına güvenmek, ona yatırım anlama gelir. Açık , kendi okullarında gereksinimlerine nazaran uyarlanmış, güvenli, sağlam ve ucuz çözümler anlama gelir. Açık yazılımlar, mütevazı donanımları etkin kullanabilmek anlama gelir. Tüm üretim ve hizmet sektörlerinde bilişim maaliyeti gittikçe artmaktadır. Açık yazılımlar, en başta ruhsatlar sebebiyle bu maliyetleri düşürerek, yerli sanayici ve bilişimciye destek anlama gelir, ülkenin rekabet kabiliyeti çoğaltmak anlama gelir. Açık yazılımları, kapalı kod yazılımlarla kabiliyet ve verimde yarışacak konumdadır. Açık yazılımların tam rekabet ortamında kapalı yazılımlarla yarışması gerekir. Temel bilişim eğitimin marka bağımlılığı yaratmayacak, kullanıcıyı tüm alternatif düzlem (platform) ve ürünlerde çalışabilme kabiliyetini kazandıracak, ürünlere değil kavramlara ağırlık vermesi gerekir."
Açık yazılımları savunucularınca, bu tür yazılımların ülkelerin bilgi toplumu stratejisinde mühim rol oynaması gerektiği, ilgili tüm tarafların katkıları ile katılımcı bir süreçle bu stratejilerin belirlenmesi gerektiği, bilhassa yönetici düzeyinde çalışanların açık yazılımları seçeneğini maliyet ve verimlilik açısından değerlendirmeleri gerektiği belirtilmektedir.
Açık Kaynak Ekonomisi
Dünyada bir çok şirket daha önceleri gizli saklı tuttukları yazılım larını kısmen açmışlardır.
- Bir kısmı gizli saklı bir kısmı açık: IBM'in bir ürününden ortaya çıkan Eclipse entegre yazılım geliştirme ortamı buna çok güzel bir örnektir. Arada bir IBM Eclipse'in son halini alır kendi gizli saklı fazlasını ekler ve ayrı bir ürün ismiyle satar.
- Hepsi açık, kişisel kullanım özgür, ticari kullanım ücretli: Buna örnek olarak GPL/LGPL çift lisanslı yazılımlar gösterilebilir
- Hepsi gizli saklı, fakat açık lı bir temel uzerinde çalışır: Bu sonuncuya açık demek zor fakat yazılım üreticisinin açık hareketine uyum sağlamak zorunda kaldığını göstermesi bakımından garip. Buna örnek olarak Linux üstünde kullanılacak yazılım ya da Eclipse için plugin satan firmalar gösterilebilir.
- Tüketicinin kendisi hakkında pozitif yönde intiba edinmesi, parasız olan ürünün, yazılımcının teknik beceri seviyesi hakkında ve parasız olmayan öteki ürünleri hakkında reklam işlevi görmesi,
- Parasız olan sürümü kullananların gereksinimleri arttığında kullanıcı ara yüzü alışkanlığı sebebiyle seçimlerini ayni ürünün ücretli ve daha işlevli sürümü yönünde kullanma ihtimalinin artması,
- Açık kaynağin çok daha yüksek sayıda kullanıcı tarafınca denenmesi, hatalarının masrafsızca düzeltilmesi, hatta bazı eksiklerinin gönüllü yazılımcılarca yazılıp eklenmesi.
Yazılım (Software) Nedir?
Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik araçların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makina komutlarıdır. Yazılım, elektronik aygıtların belirli bir işi yapmasını elde eden programların tümüne verilen isimdir. Bir başka deyişle, mevcud bir problemi çözmek amacıyla bilgisayar dili kullanılarak oluşturulmuş anlamlı anlatımlar bütünüdür.
Yazılım Çeşitleri
Sistem Yazılımları
Sistem yazılımları bilgisayar kullanımı için lüzumlu ana fonksiyonları sağlar ve bilgisayar donanımına ve sistemin yürütülmesine destek verir. Şu kombinasyonları ihtiva eder:
- Aygıt sürücüleri
- İşletim sistemleri
- Sunucular
- Hizmet programları
- Pencere sistemleri
Bilgisayar BIOS'u ve aygıt yazılımı: Bilgisayara bağlı ya da bilgisayar içindeki donanımı çalıştırmak ve denetlemek için ihtiyaç duyulan temel işlevselliği sağlar.
İşletim sistemi: Bilgisayar parçalarının; bellek ile diskler içinde veri alışverişi ya da monitöre görüntü sağlamak şeklinde görevleri uygulayarak beraber çalışmasına olanak sağlar. Ek olarak üst düzey sistem yazılımı ve uygulama yazılımlarının çalıştırılması için bir platform oluşturur.
Destek yazılım:Bilgisayarın çözümleme edilmesine, yapılandırılmasına, yönetilmesine ve optimize edilmesine destek verir.
Yazılım Ölçümleri
Yazılım ölçümü, bir yazılımın herhangi bir niteliğinin, ya da o yazılımın teknik özelliklerinin (specification) bir ölçümüdür. Nicel (quantitative) yöntemlerin öteki bilim dallarındaki başarı göstermiş uygulamaları sebebiyle bilgisayar bilimleri pratisyenleri ve teorisyenleri aynı yaklaşımların yazılım geliştirme için de uygulanması mevzusunda uzun uğraşlar vermişlerdir. Bir Yazılım Mühendisliği profesyoneli olan Tom DeMarco, "Ölçülemeyen şeyler denetlenemezler" demiştir.
Yaygın Olarak Kullanılan Yazılım Ölçümleri
Yaygın olarak kullanılan yazılım ölçümlerinden bazıları şunlardır:
- Kod satır sayısı
- Siklomatik karmaşıklık (Cyclomatic complexity)
- Fonksiyon Noktası Analizi (Function Point Analysis)
- Kod satırına düşen hata sayısı
- Kod kapsama
- Alan kişi gereksinimlerinde bulunan satır sayısı
- Sınıfların ve arayüzlerin sayısı
- Robert Cecil Martin'in yazılım paketi ölçümleri
- Uyum (Cohesion)
- Bağlaşım (Coupling)
Eleştiriler
Ölçümlerde Hile Yapılması
Ölçümlerin Dengelenmesi
- Proje takvimi
- Boyut/Karmaşıklık
- Maliyet
- Kalite
Özgür yazılım nedir?
Özgür yazılım (İngilizcesi free software), kullanıcısına çalıştırma, kopyalama, dağıtma, araştırma, değişiklik yapma ve geliştirme özgürlükleri tanıyan yazılım türüdür. Tersi sahipli yazılımdır (İngilizcesi proprietary software).
Özgür yazılım ile kastedilen özgürlük, yazılımın kullanım hakları ile ilgilidir, ekonomik boyutu ile değil. Özgür yazılımlar çoğunlukla parasız olsalar da parasız olmak zorunda değildirler. İngilizce sözlükler "free" kelimesi için yirmiye yakın anlam sıralar. Bunlardan yalnız bir tanesi "parasız" iken geri kalanları özgürlük ve sınırlamaların olmaması (freedom) kavramlarına atıfta bulunur.
Tarihçesi
1950'lerden 1970'lerin başına kadar bilgisayar kullanıcılarının özgür yazılımla ilgili yazılım hürriyetlerine haiz olmaları normaldi. Yazılım çoğu zaman fertler içinde paylaşılır, kişilerin yazılım yaparak donanımlarını daha kullanışlı yapmalarını iyi karşılayan donanım üretilerinden dağıtılırdı. SHARE şeklinde kullananların ve satıcıların üye olduğu kuruluşlarla yazılım değiş dokuşu kolaylaştırmak hedeflenmişti. 1970'lerin ilk yıllarında durum değişti: yazılım harcamaları hızla yükselirken büyümekte olan yazılım endüstrisi, donanım üreticilerinin bilgisayar satışıyla birlikte verdikleri "yazılım demetleri", kiraya verilen bilgisayarların kâr getirmeyen yazılım desteğiyle rekabet başlamıştı. Bazı müşterilerin kendi gereksinimlerini daha iyi karşılamasıyla "özgür" yazılım masraflarının donanım harcamalarıyla bir araya gelmesini istemiyordu. 17 Ocak 1969'da gösterilen ABD Birleşik Devletleri IBM'ye karşı yazısında hükûmet, yazılım demetlerinin rekabet engelleyici olarak sıfatlandırdı. Bazı yazılım devamlı hürken sadece ödemeyle alınabilen yazılımlar artıyordu. 1970'ler ve 1980'lerde yazılım endüstrisi, bilgisayar programlarını yalnız kullananların kodu incelemesi ve değiştirmesini önleyen çalıştırılabilirler şeklinde dağıtmaya başlamasıyla teknik tedbirler almaya başladı. 1980'de copyright kanununun kapsamı bilgisayar programlarını içine aldı.
1983'te MIT Suni Zekâ Laboratuvurı'daki çökertici topluluğunun uzun soluklu üyesi Richard Stallman, bilgisayar endüstrisi ve kullanıcılarının kültürel değişiminden yıldığını açıklayarak GNU projesini îlan etti. GNU işletim sistemi için yazılım geliştirmesine Ocak 1984'te başlandı. Ekim 1985'te de Özgür Yazılım Vakfı kuruldu. Kendisi hür yazılımı tanımlayarak "copyleft" terimini yazılım hürriyeti garantilemek için çıkardı.
Bazı yazılımdışı endüstriler, kendi araştırma ve geliştirmeleri için özgür yazılım geliştirmeye benzer teknikler kullanmaya başladı. Sözgelişi bilim adamları, daha açık geliştirme süreçleri ararken mikroçip şeklinde donanımlar da copyleft lisanslarıyla geliştirilmeye başlandı (OpenCores projesi şeklinde). Creative Commons ve özgür kültür hareketi, özgür yazılım hareketinden çok etkilenmişlerdir.
Barındırdığı özgürlükler
Özgür Yazılım Vakfı'nın ifadesiyle özgür yazılım, belli başlı dört özgürlüğü barındırır:
- Özgürlük 0 : Her türlü amaç için yazılımı çalıştırma özgürlüğü.
- Özgürlük 1 : Yazılımın iyi mi çalıştığını araştırma ve kendi gereksinimleri doğrultusunda değişiklik yapma özgürlüğü. Yazılım koduna erişim bunun için bir ön şarttır.
- Özgürlük 2 : Kopyalarını dağıtma ve toplumla paylaşma özgürlüğü. Bir özgür yazılım herkesçe istenilen sayıda makineye kurulabilir, kopyası çıkarılabilir ve istenilen kimselere dağıtılabilir, hatta satılabilir.
- Özgürlük 3 : Yazılımı tüm toplumun yarar sağlayabileceği şekilde geliştirme ve geliştirilmiş haliyle yayınlama özgürlüğü. Yazılım koduna erişim bunun için de bir ön şarttır.
Genel kanının aksine özgür bir yazılım, parasız dağıtılabileceği şeklinde ücretli de dağıtılabilir. Bu yüzden ticari yazılım olarak satılmasına engel yoktur.
Özgür yazılım, bir çok vakit açık kodlu yazılım terimi (open source) ile karıştırılmaktadır. Tüm özgür yazılımlar açık kodludur sadece tüm açık kodlu yazılımlar özgür yazılım olmayabilir.
Özgür yazılımlar açık kodlu yapıları yardımıyla, bünyesinde zararı dokunan bir amaç barındıran (gizli saklı verileri çalma şeklinde) kodlara haiz olup olmadığı, programlama bilen hepimiz tarafınca denetlenebilir. Güvenli yapısı yardımıyla Dünya'da bir çok ülkede askeri kuruluşda Linux işletim sistemi tercih edilmektedir.
Bazı özgür yazılım lisansları (mesela GNU GPL), yazılım kodlarının gelecekte de özgürlüğünü sürdürmesini güvence altına alırken bazı özgür yazılım lisansları bunu güvence altına almamaktadır.
Bazı özgür yazılım lisansları
Belli başlı bazı özgür yazılım lisansları aşağıda alfabetik olarak listelenmiştir:
- Apache Lisansı
- Avrupa Birliği Kamu Lisansı (EUPL)
- BSD Lisansı
- Eclipse Kamu Lisansı (EPL)
- GNU Genel Kamu Lisansı (GPL)
- GNU Kısıtlı Genel Kamu Lisansı (LGPL)
- MIT Lisansı
- Mozilla Kamu Lisansı (MPL)
Yazılım
isim
Yazılım, elektronik cihazların belirli bir işi yapmasını elde eden programların tümüne verilen isimdir.
Bir başka deyişle mevcud bir problemi çözmek amacıyla bilgisayar dili kullanılarak oluşturulmuş anlamlı ifadeler bütünüdür.
isim
- Bir bilgisayarda donanıma yaşam veren ve bilgi işlemde kullanılan programlar, yordamlar, programlama dilleri ve belgelemelerin tümü.
- yazılım dizgesi
- yazılım paketi
- yazılım sistemi
Yazılım, elektronik cihazların belirli bir işi yapmasını elde eden programların tümüne verilen isimdir.
Bir başka deyişle mevcud bir problemi çözmek amacıyla bilgisayar dili kullanılarak oluşturulmuş anlamlı ifadeler bütünüdür.
yazılım sistemi
isim
Yazılım sistemi (İngilizce: Software system) bir bilgisayar sistemini (donanım ve yazılımın birleşimi) oluşturan yazılım tabanlı sistemdir. Yazılım mühendisliğindeki sistem kuramı yaklaşımlarıyla ile ilgilidir. Yazılım sistemleri alanı, büyük karmaşık yazılımların ana bilişenleri ve onlar arasındaki etkişimlerle uğraşır.
isim
- Bir bilgisayar sisteminde denetim işlerini gerçekleştirmek amacıyla geliştirilen yazılım, yazılım dizgesi.
Yazılım sistemi (İngilizce: Software system) bir bilgisayar sistemini (donanım ve yazılımın birleşimi) oluşturan yazılım tabanlı sistemdir. Yazılım mühendisliğindeki sistem kuramı yaklaşımlarıyla ile ilgilidir. Yazılım sistemleri alanı, büyük karmaşık yazılımların ana bilişenleri ve onlar arasındaki etkişimlerle uğraşır.
Lisanslı yazılım, demo yazılım, paylaşılan yazılım nedir?
Software hatasi aliyorum yardım edermisiniz?
Software ve Kalibrasyon nedir?
YORUMLAR