Misafir Yazar etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Misafir Yazar etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Linux Nedir? Ne Değildir?



linux nedir


Bu yazı Pc Maps için Ahmet Selim Ergin tarafından yazılmıştır.

İlk olarak UNİX den bahsetmek gerekir.Unix 1969 yılında ABD deki Bell laboratuvarlarında tasarlanmış bir sistemdir.Zamanla öğretim kurumlarından ev aletlerine kadar yayıldı.Avantajı çok işlemcili pahalı cihazlardan tutup tek işlemcili ucuz cihazlara varıcaya kadar bir çok yerde kullanılabilir olmasıdır.
Linux ise Unix'e atıfta bulunarak yapılmış GNU Lisansa sahip bir işletim sistemidir.Bir Unix sistem değildir, ancak Unixten ilham alınırak yapılmıştır.Gelelim GNU ya .Nedir bu GNU?
GNU bir kısaltmadır aslında :) . Açılmı da  "GNU's Not Unix" yani "GNU Unix Değildir".İlk Linux 5 Ekim 1991 de LİNUS TORVALDS tarafından geliştirlmiştir. Linux, hemen her bilgisayar platformunda sorunsuzca kullanılabilmektedir. Çok geniş bir donanım desteğine sahip olan Linux; netbook, dizüstü bilgisayar, sunucu bilgisayarlar, iş istasyonu, akıllı telefon, masaüstü bilgisayarlar gibi hemen her platformda tam bir uyum içerisinde çalışabilmektedir. Ağırlıklı olarak sunucu ve iş istasyonu platformlarında tercih edilse de taşınabilir ve masaüstü sistemlerde de kullanım oranını günden güne arttırmaktadır. Ayrıca Linux sunucu-işletim sistemlerinde ilk sırada tercih edilmekte ve dünyanın 10 hızlı süperbilgisayarında da kullanılmaktadır.
Gelişmesinin en büyük etmeni açık kaynak kodlu olmasıdır.Rakiplerine oranla sunucu sistemlerinde Linux sistemler araya mesefa koymuştur.Gel gelelim Linux sadece sunucu değil masaüstü ve laptop sistemlerde de kullanılmakta.En çok kullanılanlar arasında Ubuntu,Linux Mint,Fedora,Debian,Cent OS gibi sistemler vardır.Sistemi fazla yormaz ,driver uyumsuzluğu da yoktur.






Günümüzde bazı şirketler de Linux tarafına geçmeye başladı.En büyüklerinden STEAM,Samsung,Fujitsu,IBM,İntel,Qualcomm,Oracle gibi.Google tarafından geliştirilmiş olan Android de bir Liux işletim sistemidir.
Peki ben  Windows kullanıcısıyım Linux kullanabilir miyim?Belki bazı sistemler farklı gelebilir Windowsa oranla ancak Windowstan geçenler için de windowsa benzer sistemler vardır.Bunlardan bir tanesi de Zorin OS dur.Yine Windowsda yapabildiğiniz veya kullandığınız programların kesinlikle bir alternatifi Linux sistemlerde de vardır.Programcıların gözbebeğidir Linux.Ben oyun oynarım diyorsanız ise Bazıları Windowsda olduğu kadar iyi çalışmasa da Linuxta da emülatör ile oyunları oynayabiliyoruz.Ancak Steam'in desteği ile Linux sistemlerde de oyun oynmamak eziyet olmaktan çıktı artık.Linux anlat anlat bitmez ama şimdilik bu kadarı sempati duymanızı sağlayacak bir yazı olmuştur umarım.




Share:

Soket Programlamayla Vergi Miktarı Hesabı (Java)



Bu yazı Pc Maps için Amine Kaçmaz tarafından yazılmıştır.




soket programlama






Socket dendiği  zaman  birçok kişinin zihninde canlanan bilgisayarlarımızın üzerinde bulunan somut bir donanımsal parça oluyor. Aslında socket; bilgisayarların ağ üzerinden haberleşmesini sağlayan yapılardır. Tabi bunun için bazı adresler kullanmak zorundayız. Bunlardan ilki bilgisayarın IP adresi.

IP adresi yardımıyla hangi bilgisayarla haberleşeceğimizi belirleriz. Haberleşilecek bilgisayara ulaşıldığı zaman, bu bilgisayar üzerinde hangi programla iletişime geçeceğimizi belirtmemiz gerekiyor . İşte burada bilgisayarlarımızın portları devreye giriyor. Yani iki bilgisayar birbiriyle bu iki yapı vasıtasıyla haberleşir (IP adresi ve Port).Socket de bu iki kavramdan oluşuyor. Yani socket bilindiğinin aksine donanımsal bir parça değil IP adresi ve port numasından oluşmuş bir yapıdır.

Bilgisayarlarımız üzerinde bir çok socket bulunur. Her socket tabanlı program için bilgisayar üzerinde ayrı port açılmıştır. Örneğin ftp sunucuları 21. portta, telnet ise 23. portta çalışmaktadır.

Yaptığımız program, client'ın server‘a gönderdiği TC no,vergi matrahı,vergi yılı,vergi tipi gibi string değerleri alıp, bunlardan vergi matrahı,vergi yılı,vergi tipi string değerlerini double'a çevirdikten sonra  vergi miktarını hesaplıyor.Hesaplanan vergi miktarı double bir değer olduğundan vergi miktarını stringe çevirip client'a dönüyor.Burada karşımıza client ve server terimleri çıktı. Bu iki kavramdan da kısa bir şekilde bahsedelim;

Client’ı  socket programlarda hizmet isteyen istemci olarak adlandırabiliriz. İstediği zaman server’a bağlanıp istekte bulunur ve serverdan dönen cevabı alır. Yine istediği zaman bağlantıyı koparabilir.

Server da bu durumda socket programlarda hizmet veren sunucu oluyor. Client istediği zaman sunucuya bağlanabileceği için serverın sürekli açık olup, Clientın bağlanacağı portu dinliyor olması gerekmektedir.


 socket = new Socket (“localhost”,5555) olarak yazmamın sebebi projemi localde çalıştırıyor olmamdır. Yine localhost yerine 127.0.0.1 de yazabilirdik. Ama  bu kısıma bağlanmak istediğimiz bilgisayarın (yani serverın) IP adresini yazabilirsiniz.

Server 5555 portunu client’ ın bağlanması için dinliyor. Port açarken dikkat etmemiz gereken önemli bir konuda portun 1 ile 1024 arasında  olmamasıdır. Çünkü bu değer aralıklarındaki portlar spesifik portlardır ve root tarafından kullanılır. Eğer 1-1024 arasında bir portu kullanmaya çalışırsak programımız “bind permission” hatası verecektir.

Client'ta kullanıcıdan veri almak için BufferedReader sınıfını kullanıyoruz.



Ayrıca Server'da client'tan gelen verileri dosyaya yazdırıyoruz.

İstemci kısmı kodları:


import java.io.*;
import java.net.*;


public class Client {

public static void main(String[] args) throws IOException {

Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
String tcNo;
String vergiMatrah,vergiYılı,vergiTipi;

try {
socket = new Socket("localhost", 5555); // "localhost" ya da sunucu IP adresi
// input stream ve output stream oluşturuluyor...
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Sunucu bulunamadı");
System.exit(1);
} catch (IOException e) {
System.err.println("I/O exception:" + e.getMessage());
System.exit(1);
}
System.out.println("Sunucuya baglanildi.");
// klavyeden girdi: stdIn
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));

System.out.println("TC Kimlik no giriniz:");
tcNo = stdIn.readLine();
out.println("TC kimlik no:");
out.println(tcNo);

System.out.println("Vergi matrahı giriniz:");
vergiMatrah =stdIn.readLine();
out.println("Vergi Matrahi:");
out.println(vergiMatrah);


System.out.println("Vergi yılını giriniz:");
vergiYılı =stdIn.readLine();
out.println("Vergi Yili:");
out.println(vergiYılı);


System.out.println("Vergi tipini giriniz:");

System.out.println("Lütfen vergi tipini seçiniz:");
System.out.println("1-Taşıt");
System.out.println("2-Emlak");
System.out.println("3-Özel Tüketim");
System.out.println("4-Gümrük");

vergiTipi =stdIn.readLine();
out.println("Vergi Tipi:");
if(Integer.parseInt(vergiTipi)>4){
System.out.println("Lütfen 1 ile 4 arasında bir değer giriniz:");
out.println(0);
out.println("");
}
out.println(vergiTipi);
out.println("");
System.out.println("Vergi miktarı: " + in.readLine());

System.out.println("Baglanti kesiliyor...");

out.close();
in.close();
stdIn.close();
socket.close();
}

}

Sunucu kısmı kodları:


import java.net.*;
import java.util.ArrayList;
import java.util.List;
import java.io.*;

public class Server {
public static void main(String[] args) throws IOException {
String tcNo ;
String vergiMatrah ,vergiYılı ,vergiTipi = null;
double vergiMiktarı=0.0;
List<String> liste=new ArrayList<String>();

ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(5555);
} catch (IOException e) {
System.err.println("I/O exception: " + e.getMessage());
System.exit(1);
}
System.out.println("");
System.out.println("Sunucu baslatildi. Baglanti bekleniyor...");
System.out.println("");
Socket clientSocket = null;
try {
clientSocket = serverSocket.accept(); // bağlantı gelene kadar burada bekler
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}

System.out.println(clientSocket.getLocalAddress() + " baglandi.");
System.out.println("");

// input stream ve output stream oluşturuluyor...
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

String inputLine, outputLine;
System.out.println("İstemciden girdi bekleniyor...");
System.out.println("");

while (!(inputLine = in.readLine()).equals("")) { // istemciden gelen string okunuyor...
System.out.print( inputLine);

liste.add(inputLine);
if(liste.size()%2==0)
System.out.println("\n");
}

vergiMiktarı = (Double.parseDouble(liste.get(3)) *Double.parseDouble(liste.get(5))* Double.parseDouble(liste.get(7))) / (double)100000 ;
String v=String.valueOf(vergiMiktarı);
out.println(v);

//dosyaya yazma
try {
FileWriter dosyaYazıcı = new FileWriter("C:\\Users\\User\\workspace\\SocketExample\\bin\\test.txt");
BufferedWriter dosyaOutput = new BufferedWriter(dosyaYazıcı);
for(int i=0;i<liste.size();i++){
dosyaOutput.write(liste.get(i));
if(i%2==1)
dosyaOutput.newLine();
}
dosyaOutput.write("Vergi miktari:");
dosyaOutput.write(v);
dosyaOutput.close();
dosyaYazıcı.close();

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
System.out.println("Hata: " + e.getMessage());
}

System.out.println(clientSocket.getLocalSocketAddress() + " baglantisi kesildi.");
// stream ve socketleri kapat.
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}



İstemci kısmının ekran çıktısı aşağıdaki gibidir:





Sunucu kısmının ekran çıktısı aşağıdaki gibidir:




Dosyaya yazdırma ekran çıktısı aşağıdaki gibidir:












Share:

Linux Türevleri ve Konsol




Linux sistemler Red Hat ve Debian sistemler olmak üzere ikiye ayrılırlar.Diğer sistemler bu iki temel sistemden türeyerek çoğalmıştır.Şimdi isterseniz bu sistemlerden biraz bahsedelim.


Debian Sistemler


Bu sistemeler ilk linux sistemlerden olan Debian adlı sistemi temel alırlar.Bilenler için Ubuntu Debian sisteminin üzerine kuruludur.Bu sistemler program uzantısı olarak “.deb” uzantısını kullanır.Bu uzantıya sahip olan uygulamaları ister internetten harici olarak isterseniz de yazılım merkezlerinden çok kolay bir şekilde indirebilirsiniz.En ünlü sistemler arasında Ubuntu ,Mint gibi sistemler vardır.



RedHat Sistemler




Bu sistemelerde Red Hat Enterprise adlı şirket taradından geliştirilimiştir.Şu anda resmi olarak bu şirket Fedora adlı Redhat tabanlı sisteme destek olmaktadır.Bu sistemlerde dosya uzantısı olarak “.rpm” kullanılır.Her öğrenciye bir bilgisayar gibi projelerin de öncülerindendir.








Şimdi gelelim Linux can damarı kadar önemli olan bir noktasına.AND Oscar goes to CONSOLE :) .
Evet konsol veya diğer adıyla terminal de diyebiliriz.Bu siyahımsı ekranla ne yapabiliriz.Sisteminizin herşeyine buradan erişebilir,erişimi kısıtlayabilir,kopyalayıp ,açar  ve silebilirsiniz.

Örneğin :

Debian sistemlerde bir uygulama yüklemek için
sudo apt-get install vlc
dersek sistemimize direk olarak vlc player yüklenecektir.

Redhat sistemlerde uygulama yükleyelim isterseniz

yum install gedit
dersek Gedit(metin düzenleme programı) yüklemiş oluruz.

Bunlar en basidinden bir kaç tane konsol koduydu.Daha bir çok konsol kodunu internette bulabilirsiniz.



Bu yazı Pc Maps için Ahmet Selim Ergin(Sakarya Üniversitesi Bilgisayar Mühendisliği Öğrencisi) tarafından yazılmıştır.

Share:

Bunlara Göz Atmalısın

Stats

Bu Blogda Ara

Arşiv

Hakkında

Teknoloji manyağı

Latest Posts

Featured

İletişim Formu

Ad

E-posta *

Mesaj *

Mutlaka Okumanız Gerekenler

AD BANNER

Etiketler

Blog Arşivi