Bilgisayar Donanım Notları

Bilgisayar Donanım Notları

Günümüzde en çok kullanılan bilgisayar çeşitleri Personel Computer adı verilen PC’ ler dir. Görünüm olarak PC adı verilen bilgisayar; monitör, kasa, klavye ve mouse’ tan oluşur. Bunun yanında Laptop adı verilen diz üstü, Palmtop adı verilen avuç içi bilgisayarlar da vardır. Bilgisayar donanım ve yazılım olarak ikiye ayırmak mümkün. Donanım (Hardware), bilgisayarın fiziksel boyutunu oluşturur. Tüm bu işlerin yapıldığı, bilgisayarların elle tutulabilen elektronik aygıtların tümüne Donanım (Hardware) adı verilir.

Donanım içerisinde temel olarak ;
1. İşlemci (Cpu),
2. Ram (Random access memory),
3. Disket sürücü (Floppy disk),
4. Sabit disk (Harddisk),
5. Ekran (grafik) kartı,
6. MultiMedia özelliği
a ) CD – ROM veya DvD
b ) Ses kartı (sound card),
7. Fax/Modem (external and internal),
8. TV/Tuner veya Radio kartı,
9. Yazıcı (Printer),
10. Tarayıcı (Scanner),
11. Çizici (Plotter),
12. Monitör,
13. Anakart (mainboard),
14. BIOS,
15. Kasa

Bunlardan Disk/Disket, Monitör, Printer, Klavye ve Mouse Çevre birimleri olarak yada temel girdi / çıktı birimleri olarak kabul edilir. Bunları günümüze uyarlayıp biraz açıklayalım. Daha önceleri multimedia’ sı bulunan bilgisayarlar ayrıcalıklı kabul edilirken bugün multimedia olmayan bilgisayar kalmamıştır.

1. CPU (Centeral Processing Unit):
Günümüzde Cpu’ lar yakın bir geçmişten günümüze ..., 286, 386, 486 ve grekçe de beş anlamına gelen Penta’ dan türetilen Pentium adı verilen bilgisayarlar üretildi. Bunlarda daha sonra Pentium, Pentium MMX, Pentium Celeron, Pentium II ve yeni çıkan Pentium III‘ ler üretildi. Mikro işlemcilerin ölçü birimi MegaHertz yani MHz olarak belirtilir. Örneğin; Pentium 50, 75, 100, ve 133 Mhz gibi. MMX’ lerin normal Pentiumlara göre farkı MultiMedia uygulamalarda daha güçlü olmasıydı. Bunlarda 166 Mhz den sonra 200 ve 233 olarak devam etti. Üretilen 266 işlemcilerde Pentium II olarak adlandırıldı. Sırası ile 300, 333, 366, 400, 433 ve 450 Mhz olarak adlandırıldı. Bu arada Pentium II’ lerin ortaya çıkmasıyla Celeron adı verilen Cpu’ u devride başlamış oldu. Celeron tipi Cpu’ ların diğerlerinden farkı cache belleklerinin (ön yada tampon bellek) olmamasıydı. Daha sonra çıkartılan Celeron A adı verilen işlemcilere 128 KB cache bellek eklendi. Bu normal Pentium II Cpu’ larda 256 veya 512 KB’ tır. Cache belleklerin önemi Cpu’ nun denetimi altında yüksek erişim gerektiren komutlar, veriler vb. işlevlerin saklanmasıydır. Diğer bir deyişle Ana bellek ile işletim sistemi arasında sığası küçük fakat erişim hızı yüksek olan bir tür bellek çeşididir de denebilir. Bu bellek normal Pentium Cpu ile Celeron Cpu arasında aynı Mhz’ de olsalar bile hız farkına ve fiyat farkına sebep olur. Pentium III’ lerinde Pentium II’ den farkı; 500, 550 Mhz büyüklüğünde olmalarından dolayı olan hız farkı ve mimari farklarıdır. Şu anda Piyasadaki işlemci çeşitlerine Intel, AMD, Cyrix gibi işlemcileri örnek olarak verebiliriz. Bunlar arasında en çok bilineni Intel işlemcilerdir.

2. RAM (Random Access Memory):
Rastgele erişimli bellek. Bu ismi taşımasının sebebi Okuma / Yazma işlemlerini diğer bellek bölgelerinden bağımsız gerçekleştirdiği içindir. Günümüzde Windows 95 işletim sistemi için en az 4 MB (tavsiye edilen 8MB ve yukarısı), Windows 98 işletim sistemi için en az 8 MB (tavsiye edilen 16 MB ve yukarısı) önerilir. Ram’ ler çeşitleri bakımından sayısı çok fazladır. Örnek olarak Pariteli, Paritesiz veya EDO, SDRAM gibi. Pariteli, Paritesiz veya EDO RAM’ ler 72 pin, SDRAM’ ler ise 168 pin’ lik tirler. Ram’ ler de Pin sayısı arttıkça bilgisayar hızlarına etkileri o ölçüde artar. SDRAM’ ler de kendi aralarında 100 Mhz olup olmaması bakımından ikiye ayrılır. Fakat, 100 Mhz Ram’ lar yanlızca BX anakartlar da çalışmaktadır.

3. DİSKET SÜRÜCÜ (Floppy Disk):
Disket sürücüler RAM üzerinde bulunan verilerin kayıt edildi alanlardan biridir. Kapasite bakımından biraz az yere sahiptir. Fakat rahatlıkla bir veya daha fazla dosyayı başka makinelere aktarmak için tercih edilir. Disket sürücülerde 5.25” ve 3.5” disketler olarak ikiye ayrılır. Günümüzde artık 5.25” lik disketler kullanılmamaktadır. 3.5” disket sürücüler kendi aralarında üçe ayrılır. DD olarak bilinen 720 KB kapasiteli olanlar. HD olarak bilinen 1,44 MB kapasiteli olanlar ve 2,88 MB olan disket sürücüler. Fakat 2,88 MB olan disketler pek tutulmadıkları için piyasada bulmak da zordur. Günümüzde 1,44 MB’ lık disket sürücüler kullanılmaktadır. Bu sürücüler de 720 KB’ lık disketlerde çalışabilmektedir. Bilgisayarlar otomatik olarak disket sürücülere alfabetik isimlendirme yaparlar. Tek bir disket sürücü varsa A: sürücüsü olarak görünür. İki tane olması durumunda A: ve B: sürücüsü olarak görünür.

3) SABİT DİSK (Harddisk):
Disket sürücülerin kapasiteleri düşük fakat istenen dosyaları başka makinelere aktarma işlemini kolaylıkla yapabilir. Harddisk’ ler de verilerimizi depoladığımız birim olarak tanımlanır. Disket sürücülere göre avantajı kapasitelerinin yüksek olmasıdır. Dezavantajı ise disketlerdeki gibi harddiskleri cebimize koyamayız. Bunlar kasanın içerisine vidalar vasıtasıyla monte edilir. Bu yüzden sabit disk adı verilmiştir. Kapasitesinin büyük olması daha fazla dosyanın bulunması anlamına gelir. Yani işletim sistemleri, uygulama programları, Ofis ürünleri, oyunlar gibi yüklediğimiz programlar burada bulunur. Günümüzde kapasiteleri 2.1, 3.2, 4.3, 6.4, 10 GB büyüklükte harddisk’ ler vardır. Sabit diskler arasında günümüz piyasasında en çok kullanılanları QUANTUM, WESTERN DIGITAL, SEAGATE ve MATROX gösterilebilir.

4) EKRAN KARTI (Graphics Card):
Ekran kartlarına, grafik veya VGA kart adı da verilir. Ekran Kartlarının görevi yapılan işlemleri monitöre aktarmaktır. Ekran Kartları üzerinde de daha hızlı verileri monitöre aktarması için ayrıca RAM bellek modülleri bulmaktadır. 1, 2, 4, 8, 16, 32 MB’ a kadar olanları bulunmaktadır. Günümüzde 3 Boyutlu görüntülerin bilhassa oyunların artmasıyla Ekran kartlarında 3D FX adı verilen özelliklerde bulunur. FX, 3D veya Voodoo isimleri ekran kartı üzerinde bulunan chiplere verilen isimlerdir. Özelliği de bu 3 boyutlu görüntülerin hızlı çalışmasını sağlar. Günümüzde ekran kartları oyunlara endeksli üretilmektedir.


6. MultiMedia Özelliği
Bu özellik bünyesinde iki farklı aygıtı barındırır. Biri CD-ROM veya DvD Rom diğeri ise Ses Kartı
A -) CD – ROM: CD – ROM orijinal programlar, oyunlar, müzik dinlemede, film seyretmede vb. alanlarda kullanırlar. CD – ROM’ lar ile DvD’ ler arasında kapasite farkı vardır. CD – ROM’ lar en fazla 650 MB iken DVD’ ler 6 GB veya daha fazla büyüklüklerde bulunurlar. CD – ROM’ lar ile CD-Writter’ lar arasındaki fark ise CD – ROM’ ların yalnızca ROM (Read Only Memory) sadece okunabilir bellek olması, CD-Writter’ lerin ise hem yazıp, hem okuyabilmesidir. CD – ROM’ lar 32x, 40x, 48x, 50x şeklinde ifade edilir. Buralardaki sayılar CD – ROM’ un saniyede aktarılan byte sayısını belirtir. 1x hızında bir CD – ROM 9600 pbs hızına eş değerdir.
B -) Ses Kartı: Bilgisayardan müzik CD’ leri, oyunlardan çıkan sesler veya filmlerden gelen sesleri duymak için ses kartı kullanılır. Ses kartları 16, 32, 64 Bit olarak çeşitlere ayrılır. Buradaki sayılar aynı anda çıkan enstrüman seslerini belirtir.

7) FAX/MODEM:
Internet bağlantısı düşünülürse bilgisayarda muhakkak Modem olması gerekir. Modemler dahili (internal) ve harici (external) olmak üzere ikiye ayrılır. Dahili modemler bilgisayarın içine uygun bir slota yerleştirilir. Harici modemler bilgisayarın dışından bir kablo bağlantısı ile bağlanan modemlerdir. Modemler 28.800, 33.600 ve 56K bps hızındadır. Bu aygıt üzerinde iki farklı özellik vardır. Modem özelliği ile dosyalar bir makineden diğerine aktarılır. Fax özelliği ile de fax makinelerine fax gönderme veya fax alma işlemi yapılır.

8. TV TUNER veya Radio Kartları:
Bilgisayarda televizyon seyredilmek istenirse TV TUNER kartı, Radio dinlenmek istenirse Radio kartı kullanılır.

9. Yazıcı (Printer):
Ekran üzerinde görünen yazıları kağıtlara yazdırmak için kullanılır. Genel olarak A4’ lere çıktı verirler fakat bazı modeller A3’ lere de yazdırabilmektedir. Yazıcılar üçe ayrılır.
A -) Nokta vuruşlu (Dot-Matrix) yazıcılar : Baskı kalitesinin en kötü olan yazıcı türüdür. Çünkü kağıt üzerine yazıcı kafasında bulunan iğneler vasıtasıyla yazılır. Bu yüzden nokta vuruşlu yazıcılar adı verilir. A4 veya Sürekli form kullanılırlar. Genelde muhasebe bürolarında kullanılır. Genellikle siyah çıktı verirler. Renkli çıktı veren modelleri de vardır.
B -) Laser (LaserJet) yazıcılar : Baskı kalitesinin en iyi olduğu yazıcılardır. Çünkü kağıt yazıcı içerisinde bulunan silindir üzerinden geçerken laser teknolojisi ile yakılarak harfler kağıda dökülür. Hız olarak da diğer modellere göre daha hızlı çalışmaktadır. Dakikada 8 sayfa çıkaran modeller vardır. Genellikle siyah çıktı verirler. Renkli çıktı veren modelleri de vardır.
C -) Mürekkep püskürtmeli (DeskJet) yazıcılar : Baskı kalitesi ne kötü nede çok iyidir. Çünkü kağıt üzerine mürekkep püskürtülerek yazılır. Ev kullanıcıları için üretilmiştir. Hem renkli hem de siyah çıktı verirler. Hızları nokta vuruşlu yazıcıdan daha iyidir. Dakikada 4 sayfa yazabilirler.

10. Tarayıcı (Scanner):
Herhangi bir kağıt üzerindeki resim, yazı veya şekli bilgisayara aktarmak istenirse tarayıcılar kullanılır. Ölçü birim dpi kullanılır. Tarayıcıların dpi sayıları ne kadar fazla olursa bilgisayara aktarılmak istenen görüntüler o kadar net görüntülenir. 600, 1200, 9600, dpi gibi.

11. Çiziciler (Plotter):
Yazıcı gibi fakat A4 yerine daha büyük olan A0 benzeri kağıt veya asetatlara çıktı verirler. Daha çok reklamcılar, mühendisler tarafından kullanılır. Boyutları yazıcıya göre bir hayli büyüktür.

12. Monitör:
Bilgisayar üzerinde yapılan bütün işlemleri ekran kartından gelen komutlara göre bize görüntüler. Boyut olarak 14”, 15”, 17”, 21” inç ve daha büyükleri bulunmaktadır. Büyük ekranlı monitörler genelde mühendisler tarafından kullanılır. 1” = 2,54 cm’ e karşılık gelir. Ekranın köşegen uzunluğu boyutunu belirler.
Buradaki uzaklık inç olarak belirtilir



13. Anakart (Mainboard):
Anakartlar ekran kartı, ses kartı, modem, ram, bios, gibi birimlerinin direkt, sabit disk, CD – ROM, disket sürücülerinin de güç ve veri kabloları ile üzerine yerleştirilmiş temel donanım birimidir. MMX cpu’ larda VX, TX, Pentium II’ lerde LX, BX, Pentium II Celeron’ larda EX adları verilen anakartlar vardır. Bunlar chiplere verilen isimlerdir. Pentium III ‘ler de şu anda BX chip seti bulunmaktadır.

14. BIOS (Basic Input Output System):
Temel giriş / çıkış sistemi adı verilir. Bilgisayarlara bağlı çevre birimleri denetleyen modül olarak adlandırılır. Bilgisayar için Tarih/Saat ayarlarının tutulduğu yerdir. Award, Phoneix, Ami bios çeşitlerinden bir kaçıdır. Bios’ lar Anakart üzerine yerleştirilmiş olarak bulunmaktadır.

15. Kasa:
Anakart da dahil olmak üzere bütün kartların derli toplu bulunduğu kutuya kasa adı verilir. Kullanılış biçimlerine göre isimler verilir. Monitörün altında olanlara Slim Case, bilgisayarın yanında dik olarak duranlara Tower Case adı verilir. Tower’ lar da büyüklüklerine göre Mini, Midi ve Big Tower olarak isimlendirilir.

16 yorum  

Perl'de Sabit ve Değişkenler

SABİT VE DEĞİŞKENLER

1.Sabitler

A)Sayısal Sabitler:

Sayısal sabitler,programın çalışması esnasında gereken sayısal sabit değerlerdir. Perl 8 ve 16 tabanlı

sayısal değerlerin kullanımını da sağlar.

1245

100.45

.000034

043

0x23 ...gibi





B)String Sabitler:



String sabitler,programın çalışması esnasında gereken alfasayısal sabit değerlerdir. Alfabetik ve

Alfabetik/sayısal/özelkarakter karışımı olabilirler. Tırnak içindeki ifadelerdir.

Perl stringlerde; Tek, çift, geri tırnak kullanır. Bunlar birlikte de kullanılabilirler.

Kurallarını göreceğiz.



Örnek:

'Ertan Türkmen'

"Ertan Türkmen"

"Dedi ki, \"O Ankara'dan geldi.\""

'Ahmet Trabzon\'ludur'

...gibi



stringlerde EscapeSequence denilen özel işlevli karakterlerde kullanılır.



Escape SequeNCe karakterlerinden bazıları ve anlamları:



\a Alarm

\b Backspace -geri-

\e Escape -çıkış-

\f Form Feed -form besleme -

\n Newline -yeni satır-

\r Carriage return -satır sonu-

\t Tab - x karakter atla -

\v Vertical Tab - dikey atla -



ilerleyen derslerde konuyla ilgili örnekler görecek ve daha iyi anlayacağız.



2.Değişkenler



a)Skalar değişkenler : İçersinde değişebilen değerler bulunduran birimlerdir. İlk karakteri $ işaretidir.Bu karakterden sonra en az 1

alfabetik karakter bulunmalıdır. Değişken adında kural olarak bu karakterlerden hemen sonra alfabetik, sayısal karakterler ve _

karakteri kullanılabilir. Değişken uzunluğu serbesttir.



Örneğin;



$ad, $ad_soyad, $a1 gibi değişken adlari geçerli olup aşağıdakiler geçersizdir.





ad # $ karakteri olmadığından

$ # $ dan sonra en az 1 alfabetik karakter gerektiğinden

$47x # 2.karakter sayısal olamaz

$_ad # 2.karakter alfabetik olmalı

$ad! # ! karakteri kullanılamaz



Not : Küçük ve büyük harf kullanımı önemlidir ve farklı değişkenleri temsil ederler. Bu demektir ki; $AD ile $Ad ve $ad farklı

değişkenlerdir.



Değişkenlere değer atama:

Eşitliğin bize göre sağındaki değer (sayısal/alfabetik/karışık olabilir) solundaki değişkenin içine konur. Aşağıdaki ifadeyi inceleyiniz.



$ADI_SOYADI = "Ertan TURKMEN";

$ADI_SOYADI değişkeni içindeki değer "Ertan TURKMEN" dir.

benzer şekilde,

$MAAS = 125000;

$MAAS değişkeni içeriği 125000 dir.



Not : Değişkenin içinde önceden bir değer varsa,önceki değer silinir, son atanan değer geçerli olur.



Aritmetik Operatörler:



Perl de kullanılan TEMEL aritmetik operatörler;

Toplama +

Çıkartma -

Çarpma *

Bölme / dir.



Örnek program : Verilen değerin Km ve Mil cinsinden çevirimini yapar.

Adı milkm.pl olsun.



#!/usr/local/bin/perl

print ("Mesafeyi giriniz: \n");

$mesafe = ;

chop ($mesafe);



# chop fonksiyonu giriş sonundaki karakteri atar

# programımızda son karakter Enter tuşuna bastığımız için

# yeni satır (\n) karakteri

# olduğundan onu atar(siler).



$mil = $mesafe * 0.6214;

$km = $mesafe * 1.609;

print ($mesafe, " km = ", $mil, " mil\n");

print ($mesafe, " mil = ", $km, " km\n");



Not : Program satırlarında kullanılan "\n" göstergesi alt satıra geçişi sağlayan yeni satır karakteridir.



Çalışması:

>milkm

>Mesafeyi giriniz:

>10

>10 km = 6.2139999999999995 mil

>10 mil = 16.09 km

>





a.1)Tamsayi (integer) Skalar değişkenler:



İçerisinde tamsayı sabit ve literal bulundurabilirler. integerlar kayar noktalı (floating-point--birazdan inceleyeceğiz--)değerler gibi

işlem görürler.



Örnek program: adı prg.pl olsun...



#!/usr/local/bin/perl

$deger = 1234567890;

print ("1.değer: ", $deger, "\n");

$deger = 1234567890123456;

print ("2.değer: ", $deger, "\n");

$deger = 12345678901234567890;

print ("3.değer: ", $deger, "\n");



Çalışması :

> prg

>1.değer: 1234567890

>2.değer: 1234567890123456

>3.değer: 12345678901234567168



çıktısı verir. Görüldüğü gibi ilk 2 değerde sorun yoktur.3.değer yanlış sonuç üretir. Çünkü tamsayı için fazla değer içermektedir.



a.1)Kayar Noktalı (floating-point) Skalar değişkenler:



En fazla 16 rakam kabul edebilirler. Bu değişkenler tamsayı, ondalıklı, exponent(e üzeri) ve -/+ işaretli değerleri saklayabilirler.



Örneğin, aşağıdaki değerlerle işlem yapabilirler.



11.4 , -275 , -0.3 , .3 , 3. , 5.47e+03 , ...v.b.



Örnek program : Adı prgsk1.pl olsun,



#!/usr/local/bin/perl

$deger = 34.0;

print ("1. deger ", $deger, "\n");

$deger = 114.6e-01;

print ("2. deger ", $deger, "\n");

$deger = 178.263e+19;

print ("3. deger ", $deger, "\n");

$deger = 123456789000000000000000000000;

print ("4. deger ", $deger, "\n");

$deger = 1.23e+999;

print ("5. deger ", $deger, "\n");

$deger = 1.23e-999;

print ("6. deger ", $deger, "\n");





Programın Çalışması :

> prgsk1.pl

> 1. deger 34

> 2. deger 11.460000000000001

> 3. deger 1.7826300000000001e+21

> 4. deger 1.2345678899999999e+29

> 5. deger Infinity

> 6. deger 0

>



b)String değişkenler:



String (karakter/karakterler içeren dizi) içerirler. Bu değerler alfabetik ve sayısal sabit veya değişken olabilirler.



Ör1: $AD_SOYAD = "Ertan TURKMEN";

komutuyla "Ertan TURKMEN" stringi $AD_SOYAD string değişkenine atanır.



Ör2: $number = 11;

$text = "Bu text sayı içerir.İçerdiği sayı $number.";



komutlarının icrası sonucu $number'a 11 sayısı atanır. $text değişkenine ise "Bu text sayı içerir. İçerdiği sayı $number." Stringi atanır.

Sonuçta $text'in içeriği şudur.



"Bu text sayı içerir.İçerdiği sayı 11."



Stringlerde de Escape Sequence karakterler kullanılır.



Bunlar aşağıdadır :



\a Zil sesi

\b Backspace

\cn Ctrl+n karakteri

\e Escape

\E \L, \U or \Q etkisini sonlandır

\f Form feed

\l Sonraki harfi küçüğe çevirir

\L Sonraki tüm harfleri küçüğe çevirir

\n newline - Yeni Satır

\r Carriage return

\Q Özel örnek karakterleri arama

\t Tab

\u Sonraki harfi büyüğe çevir

\U Sonraki tüm harfleri büyüğe çevir

\v vertical tab





Tek ve Çift tırnaklı string farkı:

Bunu örnekle inceleyelim.



Ör1:

$string = "Bir stringdir";

$text = "Bu $string";

# $text'in içeriği "Bu Bir stringdir"



Ör2:

$text = 'Bu bir $string';

#$text'in içeriği 'Bu bir $string'



İki örnek arasında fark açıkça görülmektedir. Tek tırnak içindeki string aynen saklanır. Değişken ve hatta \n gibi karakterlerde kendi

özelliklerini icra eder şekilde kullanılamaz. (sadece \ ve ' karakterleri hariç)



Ör3:

$text = 'Bu string.\n';

$text içeriği:

Bu string .\n şeklindedir.



Ör4:

$text = 'Burada \', tek tırnak karakteri var';

$text içeriği: Burada ', tek tırnak karakteri var



Ör5:

$text = 'Stringin son karakteri backslash \\';

$text içeriği:

Stringin son karakteri backslash \ şeklindedir.





String ve Sayısal değerlerde değiştirilebilirlik:



Örnekle inceleyelim.

$string = "43";

$Sayı = 28;

$result = $string + $Sayı;

$result içeriği 71 dir.



Bir de şu örneği inceleyelim:

$number = ; #klavyeden giriş bekler 22 girdik diyelim

# $number içeriği 22\n dir (\n enter tusu)

chop ($number); # $number içeriği su anda 22

$result = $number + 1; #$result içeriği 23



Şöyle bir atama sonucunda ise :

$result = "hello" * 5;

$result içeriği 0 dır.

çünkü hello sayısal olmadığı için sayısal değeri 0 dır



Eğer string ifadede sayısal ve alfabetik değer varsa, $result = "12o34"; gibi.. Bu durumda ortadaki o

harfi öncesi geçerlidir. $result içeriği 12’dir.



ALTERNATİF STRİNG AYRAÇLARI



Aşağıdaki örneğe bakalım;



$say = 5;

print ("$say\n"); # 5 basar

print ('$say\n'); # $var\n basar



örnekte ' ve " ayraçlarını görüyoruz. Perl başka ayraç elemanları da sunar.

Bu işlev için, q kullanıp sonraki ayraç elemanını belirleyebiliriz.



q!merhaba $kim! gibi...

bu ifade ile aşağıdaki ifade aynıdır.

'merhaba $kim'



String sınırlayıcı olarak qq kullanırız.



qq/This string contains $var./



Burada / karakteri stringi ayırır(sınırlar).



Stringi kelimelere ayırma-kesme- işlevini qw ile yaparız.



Aşağıdaki iki satır aynıdır.



@kelimeler = qw/Bu bir cümledir/;

@kelimeler = split(' ', q/Bu bir cümledir/);



her iki durumda da @kelimeler ' e şu liste atanır;



("Bu ", " bir ", " cümledir")



<< KULLANARAK STRİNG TANIMLAMA



<< işareti ile string başı tanımlanır. Bu string boş satır görene kadar devam eder.



Örnek:



$A = <<

here is the string

bu ikinci satır } $A içeriği yandaki ilk iki satırdır.



üçüncü satır

dördüncü satır

<< sonra konacak string, string sonunu belirler.



Örnek:



$str = <
bu birinci satır

bu ikinci satır

END (string sonu)





Şu da doğrudur.



$end = "END";

$str = <<"$end"

bu ilk satır

bu ikinci satır

END



Şu kullanıma bakın;





print <
Merhaba!

Iyi calışmalar!

END

çıktısı

Merhaba!

Iyi calışmalar!







print <
Merhaba!

END

Çıktısı

Merhaba!

Merhaba!







$satır = <
birinci kısım

END1

ikinci kısım

END2

$satır içeriği:

Birinci kısım

İkinci kısım



Not: \n dahildir.

Not2: << aralarında boşluk olmamalıdır.

0 yorum  

Perl Komutları Nasıl Yazılır?

Perl Komutları Nasıl Yazılır?

Beğendiğiniz bir editörle yazabilirsiniz. İlk satırda perl'un icra edilebilir dosyasının sistemdeki tam yolu

verilir. Satırın başına( #! ) özel karakterleri mutlaka yazılmalıdır.


Örnek : #!/usr/bin/perl gibi...


Kodlama bittikten sonra editörden çıkılır ve Unix ve benzeri sistemlerde o dosyaya icra hakkı vermeniz

gerekir. Varsayalım ki program adı deneme.pl olsun;



chmod +x deneme.pl komutu bu işlemi yerine getirir.



Program Nasıl Çalışır?



Komut satırından program adını girip Enter tuşuna basınız.



Örnek : deneme.pl



Örnek program : #!/usr/local/bin/perl

$girilensatir = ;

print($girilensatir);



Bu programın ilk satırında programın icrası için gereken dosyanın yeri belirtilmiştir. İkinci satırda

klavyeden girilen değer $girilensatir değişkenine aktarılır. (Burada klavyeden merhaba yazalım).

Üçüncü satırda ise bu değer ekrana yazdırılır.



Ekrandaki görüntü şu şekildedir:



> deneme.pl

> merhaba

> merhaba



Açıklama satırları nasıl belirtilir. Açıklama yapmak amacıyla kullanacağımız satırların başına # işareti

koyarız.



Örnek : # bu bir açıklama satırıdır

# perl tarafından dikkate alınmaz



Bu durumda önceki programımızı şu şekilde kodlayalım;



#!/usr/local/bin/perl

#Bu program klavyeden girileni

#ekrana yazar.

$girilensatir = ;

print($girilensatir);



Programın çalışması bir önceki ile tamamen aynıdır. # ile başlayan satırlar sadece bizi aydınlatmak,

not tutmak içindir. Perl bu satırları değerlendirmeden geçer.



Şimdi şu satırı ele alalım;

$girilensatir = ;



Bu satir bir perl ifadesidir(statement) her bir parçasına($girilensatir,=,,;) ise gösterge

(token) denir. $girilensatir bir skalar değişkeni belirtir. $ isareti değişkenin skalar olduğunu

girilensatir ise değişkenin adını belirler. = göstergesi kendisinin (bize göre) sağındaki ifadeyi

solundakine ata anlamı taşır. standart giriş elemanını yani klavyeden girişi ifade eder.

Son olarak ; göstergesi ise ifadenin bitişini gösterir ve ifade sonlarında mutlaka bulunmalıdır aksi

takdirde hata mesajı alırsınız.



Yukarıdaki açıklamalar tüm perl benzer ifadelerinde geçerlidir. Yazım sırasında istisnai durumlar

dışında karakter aralarında boşluk, tab v.b whitespaces karakterleri kullanılabilir.Aralardaki boşluk

sayısı önemli değildir.





Gelelim yazdırmaya;

Standart çıktı(ekran)ya yazdırma görevini print yapar. print($girilensatir); ifadesiyle $girilensatir

skalar değiskeninin içeriği ekrana yazdırılır. Aslında print fonksiyon olarak çalışır. $girilensatir 'ı ise

arguman olarak kullanır. Arguman 1 den fazlada olabilir. Print ($girilensatir, $girilensatir);

ifadesinde 2 arguman kullanılmıştır. Her ikisi de klavye girişini alan $girilensatir değişkenidir.

Bu durumda busatırın çalışması anında $girilensatir değeri, ekrana 2 defa yazdırılır.

0 yorum  

ASP Nedir?

ASP Nedir

ASP
ASP, Microsoft'un NT Server üzerinde çalışan IIS (Internet Information Server) için hazırladığı bir standart. Bir programlama dili demiyoruz çünkü ASP kendine özgü bir dil değil, bir Web programlama tarzı. ASP'de JavaScript veya Visual Basic Script kullanılabiliyor. İleride hem kullanımının kolay olmasından hem de daha fazla kişinin bilmesinden dolayı genellikle Visual Basic Script kullanacağız. Tabi gerektiği kadar VB Script te anlatılacak. Ama ASP yazım tekniğini öğrendikten sonra kendi bildiğiniz dille yazmak hiç sorun olmayacaktır.

ASP'NİN MANTIĞI
ASP bir Server Side Script olduğu için Web sayfası kullanıcının ekranında görüntülenmeden işlenir, gerekli işlemler yapıldıktan sonra html kodları oluşturulur ve kullanıcının bilgisayarına gönderilir. Yani eğer sayfada hepsi varsa önce server side scriptler(ASP,cgi gibi) sonra client side scriptler ve en son bunların işlenmesinden oluşan HTML kodları üretildikten sonra sizin yazdığınız diğer HTML kodları ile birlikte işlenir.

BİR WEB SAYFASINA ASP EKLEMEK
ASP komutları normal HTML komutlarından <%...%> taglari ile ayrılır. ASP'nin default dili VBScript'tir. Eğer JavaScript ile yazmak istiyorsanız sayfanın başına
<% LANGUAGE=JSCRIPT %>yazmanız gereklidir. Bundan sonra sayfada ASP kullanacağınız yerlere <%...%> yazmanız yeterlidir.

Form Kullanarak ASP'de Veri İşlemek

Kullanıcıdan verileri girmesini istediğiniz bir formunuz var ve siz bu verileri bir ASP dosyasında işlemek istiyorsunuz. Bunun için form verilerini ASP sayfasına göndermeniz gerekli. Formu tanımladığınız tag içinde göndereceğiniz ASP sayfasını ve gönderme metodunu belirtmeniz gereklidir. Bunun için formumuzu

şeklinde tanımlıyoruz. Burada bahsedilen metodlar iki tür olabilir.

GET: Bu metodda bir form kullanmak zorunlu değildir. Veriler ASP sayfasına adres barında yazılarak iletilir. Bu yüzden güvenlik açısından çok uygun değildir.

POST: Bu metod, form verilerini göndermek için en iyi yoldur.

Şimdi bir form oluşturalım. Kullanıcı bu forma yaşını girsin biz de oy kullanıp kullanamayacağını gösterelim.



Yaşınız:






Şimdi oy.asp dosyasında bu veriyi alıp işleyelim

<%

age=request.form("yas")

if age>=18 then

response.write("Oy kullanabilirsiniz")

else

response.write("Oy kullanamazsınız. ")

age=18-age

response.write("Ancak "&age&" yıl sonra oy kullanabilirsiniz")

end if

%>

Girilen yaş 18 veya daha büyükse "Oy kullanabilirsiniz" yazısı çıkacak eğer 18'den küçükse örneğin 13 girilmişse "Oy kullanamazsınız. Ancak 5 yıl sonra oy kullanabilirsiniz" yazısı çıkacaktır.
Dowload oy

Get metoduyla veri almak içinse yaş değerini gönderirken OY şeklinde bir link hazırladığımızda oy.asp dosyasına yas değeri olarak 20 gönderilir.

Değeri almak içinse <% yas=request.querystring("yas") %> komutunu kullanırız.

Serdar Kalaycı skalayci@programlama.com

0 yorum  

Paralel Port'tan DOS ortamında iki PC'nin veri alişverişi yapabilmesi

Paralel Port'tan DOS ortamında iki PC'nin veri alişverişi yapabilmesi

Özellikle Dizüstü Bilgisayarınızda bir problem oluşmuşsa ve makinanızı formatlayarak tekrardan kurmanız gerekiyorsa, üstüne üstlük dizüstü bilgisayarınızın bir CD-Rom sürücüsü de yoksa geriye pek fazla seçeneğiniz kalmıyor demektir. Yukarıda saydığımız durumlar ender karşılaşılabilecekmiş olaylar gibi görünsede gerçekte bu olaylarla sıkça karşılaşabiliriz. Çünkü günümüzde çoğu dizüstü Bilgisayar kullanıcısı Dizüstü bilgisayarını CD-Rom gibi öğelerden arındırarak hafifletme yoluna gitmektedir. Üzerlerinde Microsoft gibi bir işletim sistemi oluncada bazı istenmeyen durumlarla sıkça karşı karşıya kalmaktayız. Bu durumlarda Paralel Port üzerinden çalışan Laplink kablosu imdadımıza yetişmektedir. Her iki ucu 25 pinli olan bu kablo çoğu zaman kurtarıcımız olmakta, ama bağlantıyı sağlamak için gene de bir software e ihtiyaç duymaktayız. Laplink kablosu ile çalışan çesitli software olmasına rağmen en çok ihtiyaç duyduğunuz anda elinizin altında bir tanesi bulunmayabilir. Her zaman rahatça bulabileceğiniz DOS disketleriniz imdadınıza koşacaktır. DOS ta bu işlemi gerçekleştirmek aşağıdaki adımları izleyince oldukça basit olduğunu göreceksiniz. Bunun için dosya transferini gerçekleştireceğimiz her iki makinayıda DOS tan açmamız ve INTERLNK.EXE ve INTERSVR.EXE programlarini kullanmamız gerekmektedir. Bu iki programda DOS ile beraber gelmektedir. Ayrıca bir adet LAPLINK kablosuna ihtiyacımız olacaktır. Makinaların Paralel Printer Portlarına LAPLINK kablolarını taktıktan sonra makinalardan birinde DOS Prompta INTERSVR.EXE programını çalıştıralım. Diğer makinanın Config.sys dosyasında da şu değişikliği yapıp makinayı yeniden başlatalım.

DEVICE=C:\DOS\INTERLNK.EXE /LPT

otomatik olarak boot edilen makinada diğer makinanın Sürücüleri D: E: şeklinde map edilecektir daha sonra istediğimiz DOS komutunu çalıştırabiliriz. Ayrıca üzerinde INTERSVR.EXE progaramını çalıştırdığımız makina da CD-ROM sürücüsü var ise bunu da F: gibi bir sürücü olarak görebilir ve istenirse oradan direkt olarak gerekli dosyalarıda diger makinamıza alabiliriz.

0 yorum  

PL/I Ekodinamik Bir Alet.

PL/I EKODİNAMİK BİR ALET

Bazı programlama dillerinin sadece bilimsel, bazılarının ise sadece yaygın günlük problemlere yönelik olması, neden tüm sorunların çözümleyebilcek bir programlama dili yok sorusunu akıllara getirmiştir.
PL/I, herhangi bir uygulama alanında kullanılabilcek bir şekilde geliştirilerek bu soruna çözüm getirilmeye çalışılmıştır.
1960'ların ortasında IBM Corporation, bir komite toplayarak çok amaçlı bir dilin tasarımını yapmak istediğini bildirdi. İlk başta amaç, FORTRAN'ı veri yapıları ve çalışma ortamı yönünden çeşitlendirip geliştirmekti. Ancak komite bu binanın üzerine yapılacak yapının istenilen amaçları sağlayamayacağını görüp yeni bir dil tasarlamaya karar verdi.
PL/I, bu aşamadan sonra o yillardaki birçok programlama dilinin en önemli özelliklerini taşiyacak biçimde tasarlandi. Bunlar :
. FORTRAN'ın parametre geçirme mekanizması, kendi başına derlenir altprogramları, formatlı giriş-çıkış ve ortak blokları
. ALGOL'ün blok yapısı ve yapısal deyimleri
. COBOL'un tutanak tabanlı giriş cıkışı, PICTURE türü tanımları, çok türlü dizileri
PL/I, tüm bu noktaların ele alınıp daha gelişmiş noktalara götürülmüş şeklidir denilebilir. Günümüzde de özellikle IBM'in orta ve büyük boy sistemlerinde yaygın bir kullanım alanı vardır.
Bazı programlama dilleri sadece özel alanlara yöneliktir, LISP ve SNOBOL gibi. Böyle bir yaklaşımın eksik yönleri şunlardır :
. birçok dil bilmesi beklenen personelin eğitilmesi ya da daha çok sayıda personel bulundurulması,
. her alana yönelik parçalar taşiyan projelerin ele alinmasi için uygun programlama dili olmasi.
PL/I'ın felsefesi, sadece tek dilin bilinmesiyle çoğu problemlere çözüm bulmakla özetlenebilir.
Bir PL/I programı bağımsız olarak derlenebilir bölümlerden oluşur. Bu bölümler, içiçe bloklar olarak tanımlanabilir. Her blok kend, tanımlarını ve işletilebilir deyimlerini taşır.
PL/I çok geniş bir temel veri türü yapisi yelpazesine sahiptir. Karakter ve bit dizgileri, göstergeler ve etiketlerin yanisira tek türlü ve çok türlü diziler bunlarin içindedir. Tüm bu türler, programci tarafindan tanimlanacak veri türleri için çok kullanişlidir. Dil, ayrica kütüklerin özellikleriyle tanimlanmasina izin verir.
Dil, içinde çok sayıda ilkel işlemleri bulundurur. Bunların önemli bir bölümü aritmetik ve sayısal işlemler ile giriş-çıkış üzerinde yoğunlaşır. Otomaik tür uyumluluğunu sağlar. Bazı temel karakter dizgileri üzerine işlemler tanımlanmıştır.
PL/I ifadelerinin akış denetimi çok güçlü bir şekilde sağlanmıştır. Altprogram akış denetiminde koşul işlem yürütme, kesilmeli işlem yapmanın yanısıra özyineli altprogram çağrıları da desteklenmiştir.
Altprogram, FORTRAN'da olduğu gibi bağımsız olarak derlenebilir. Altprogramlara parametreler yer ile geçirilir. İstenirse altprogramın çağırıldığı yerdeki olarak geçirilen veriler ile altprogram parametrelerinin tür olarak uygunlaştırılması sağlanır.
Birçok özelliği içinde barındırmasından dolayı çok büyük bir standarta sahiptir. PL/I ile programlama yapan kişiler PL/I'in çoğu özelliğini zaman içinde kullanmama durumuna düşebilirler.
Programlama dilinin sözdizimi çok karmaşik ve programlarin okunup yazilmasi kolay degildir.
PL/I programlarının derleyicisi, dilin karmaşık yapısı ve etkin işletebilir kod elde edilmesinin amaç olması yüzünden çok emek ister.
PL/I programlarında bellek yönetiminden programcı sorumludur. Gösterge kullanımındaki denetim eksiklikleri nedeniyle belleğin şişmesi programcının kötü kodlamasından dolayı olasıdır.

0 yorum  

Bilgisayar Korsanlığının Tarihi

Bilgisayar sistemlerine izinsiz olarak giren ve bu sistemleri ellerine geçiren kimselere "hacker", bu tür olaylarada "hack" denir.
Hacker, bilgisayarlar hakkında üst düzey seviyede bilgisi olan ve bilgisayar programlarının açıklarını bulan, bu açıkları kendi emelleri doğrultusunda kullanan kişidir. Hackerlar genelde bilgisayar programcısı, sistem yöneticisi gibi bilgisayarlar ve bilgisayarlara erişimin konuları hakkında ileri düzey bilgdisi olan kişilerdir. Bu kişiler bilgisayar programlama dillerini bilir ve unix gibi işletim sistemleri üzerinde çalışırlar.
Hack ise, hackerların bilgisayar sistemlerini izinsiz olarak kontrolleri altına alıp, dosya çalma, silme gibi yaptıkları eylemedenir. Hackerlar, sebepsiz olarak bir bilgisayara girer ve gerekli bilgileri aldıkdan sonra ya sistemi kendi haline bırakır ya da sistemi silerler. Hack eylemleri günüzmde daha çok internet üzerinde gerçekleşiyor; hackerlar kişilerin veya kurumların internet sayfalarına girerek bu sayfaları değiştiriyorlar. Hackerlar internet üzerinde yaptıkları hack eylemlerinde bilgileri çalmakdan ziyade silmeyi veya sayfalar üzerinde değişiklikler yapmayı tercih ediyorlar. Örneğin ünlü birinin veya birilerinin "Spice Girl" internet sayfalarına girerek sayfanın içeriğini değiştiriyorlar "prono resimler koyuyor, küfürler yazıyorlar".
Bir çok insan (öğrenci) hacker olmak istiyor ve bunun için çaba gösteriyor. Bazılar hack i bir oyun olarak görürken bazıları da hack e profösyönel gözle bakıyor. Örneğin; günümüzde internet bağlantısı olan bir çok insan (14-21 yaş arası) hacker olmak için uğraşıyor. IRC serverlarda hack ile ilgili kanallar açıp bilgi alışverişi yapıyor, hackerların internet sayfalarından hack ile ilgili dökümanları alıp okuyor, haber gruplarında hack ile ilgili konularda mesajlaşıyor ve hackerların yeniliklerini takip ediyor. Hacker olmak için öncelikle programlama dili bilmek gerekir bunun başında C++ ve assemby gelir. Bu programlama dilleri sayesinde bilgisayarınıza istediğinizi yaptırabilirsiniz. Ayrıca unix veya uyumlu bir işletim sisteminde çalışmalı ve bu sistemi çok iyi kullanmalısınız. Bütün bunlar her ne kadar kolay gibi gözüksede büyük emekler isteyen işlerdir. Eğer hacker olucaksanız sistemi kullanmak yeterli değildir, sistemin açıklarını ve püf noktalarını bilmeniz lazım; bunun içinde sistemin çekirdek yapsını öğrenmelisiniz. Dosya sistemleri, dosya erişimleri, sistem erişimi hakkında üst düzey bilginiz olmalıdır. Bütün bunlar içinde edinilmesi uzun yıllar süren bir birikim gerekmekdedir.
Herşey ilk telefon şirketinin, (Bell-Telephone) kurulmasiyla başladi. O zamanlar acemi hacker'lar vardi. Tabi 1878'de daha onlara hacker denilmiyordu. Daha çok yerel santrallerde çalişmalari için tutulmuş muzip gençlerdi bunlar. Telefonlari yanliş yönlendirmek, sevmedikleri müşterilere inanilmaz faturalar saglamak gibi engel olamadiklari bir dürtüleri vardi (Santral, bu benim kuzenim Corc degil, beni kime bagladiniz,... Alooo aloo!). Santral operatörlügüne neden genç kizlarin konuldugu sorusu böylece cevaplanmiş oluyor... Ilk gerçek bilgisayar korsanlarinin zamanina hizli ileri alalim. Sene 1960'lar. MIT (Massachussets Institute of Technology) ögrencilerinin herşeyin nasil çaliştigina dair inanilmaz meraklari var. O zamanlarin milyon dolarlik bilgisayarlari sogutulmuş odalarda sakli kocaman dolaplardan oluşuyordu. Ve datalar da kartonlara delikler delerek saklaniyordu. Programcilarin dinazorlara erişimleri epey sinirliydi ve akilli olanlari "hack" denilen program kisayollari oluşturdular. Tek amaçlari yapilmasi gereken işi daha hizli yapmakti. "Hack" (dogramak) kelimesinin bilgisayarlarla alakali ilk kullanilişi bu tarihlere rastliyor. Belki de bütün zamanlarin en iyi Hack'i, 1969'da iki Bell Labs çalişani Dennis Ritchie ve Ken Thompson, tarafından bilgisayarı işletmek için önü açık bir kurallar kümesi şeklinde yaratıldı. İsmi UNIX'ti ve bir güzellik abidesiydi.
70'lerde sibertopraklar daha keşfedilme aşamasindaydi. Hacking kurcalamak ve kablolu dünyanin nasil çaliştigini çözmeye çalişmaktan ibaretti. 1971'de john Draper isimli bir Vietnam gazisi Cap'n Crunch mısır gevreği kutularından çıkan düdüğün tam 2600 mHz'lik bir ses çıkardığını keşfetti. Düdüğü telefon almacına öttürüp bedava konuşabiliyordunuz.
Karşi-kültür gurusu Abbie Hoffman, vietnam gazisinin keşfini "The Youth International Party Line" dergisiyle bütün ABD'ye yaydi. O zamanlar Phraking (beleş telefon etme) işlemi zararsiz olarak görülüyordu. Çünkü telefon şirketinden başka kimse zarar görmüyordu ve şirketin zarari da kardan zarardi. Hoffman'in ortagi Al Bell, derginin ismini TAP'a çevirdi (Technical Assistance Program) Dergiye kalpten baglanan koca bir güruh karişik teknik makalelerle yirmi yil boyunca ihya oldular.
Hacking piyasasında artık tek eksik iyi hacker'ların buluşup sosyal güdülerini doyurabilecekleri sanal bir kulüp ortamıydı. 1978'de Chicago'lu iki çocuk, Randy Seuss ve Ward Christiansen, kişisel bilgisayar üzerinde çalışan ilk BBS sistemini yarattılar. Bu BBS şu an hala çalışmakta.
1981'de IBM tamamen kişisel ilk bilgisayari piyasaya çikartti. Ismi PC kondu. Bu klasiklerle herşeyi yapabiliyordunuz. Ama gençler yavaş yavaş Commodor 64, Spectrum gibi mali yükü daha az makinalara kayiyorlardi.
1983'de "War Games" isimli film çıktı. Film bütün dünyayı korsanlığın gizli yüzüyle tanıştırıyor, ve hacker'ların her bilgisayara girebilecekleri konusunda uyarıyordu. Hacker'lar ise filmden bambaşka sonuçlar çıkarmışlardı: Hacking sayesinde kendinize bir sevgili bulabilirdiniz... hem de güzel bir sevgili.
Mekan yavaş yavaş degişiyordu. Online dünyanin, git gide daha çok sakini oluyor ARPANET yavaş yavaş Internet'e dönüşüyordu. BBS'lerin popülaritesi patlama noktasindaydi. Milwaukee'de kendilerine 414'ler (alan kodlari) diyen bir gurup hacker Los Alamos Labratuarlarindan Manhatten Kanser Enstitüsüne kadar bir çok resmi dairenin bilgisayarini kirdi. Sonra polis onlari yakaladi.
Hacker Savaşinin başi 1984'lere dayaniyor. Kendine Lex Luthor diyen bir korsan Legion of Doom grubunu kuruyor. Grup çok başarili ve her alanin en iyisini kendine çekmekle ünlü. Bir süre sonra Phiber Optik isimli genç gözdelerden biri eski LOD üyesi Erik Bloodaxe ile takışıyor ve gruptan atılıyor. Phiber ve arkadaşları Masters of Deception isimli bir karşı grup kurup savaşı başlatıyorlar. 1990'dan itibaren iki yıl boyunca LOD ve MOD grupları, telefon hatlarını karıştırma yüksek faturalar ödetme, telefon dinleme, birbirlerinin bilgisayarlarına girme, BBS çökertme gibi saldırılarla birbirlerini eritmeye çalışıyorlar. Korsanlık felsefesinin "gizli bilgiye ulaşma"dan "karşı tarafa zarar verme"ye dönmesi bu tarihlere rastlıyor. Ve hala kullanımda olan kötülük yapma repertuarı gitgide artıyor. 92'de FBI Phiber ve arkadaşlarını yakalıyor ve hapse tıkıyor. Ve bir dönem sona eriyor.
Hükümetin onlline olmasıyla eğlence sona erdi. Ciddi olduklarını göstermek için çıkardıkları Bilgisayarla dolandırıcılık ve kötüye kullanma kanunu caydırıcı unsur olarak kullanılacaktı. 1988'de Robert Morris ve Net Solucanı ortaya çıktı. Net' bağlı 6000 bilgisayarı aynı anda çökertmesi Morris'e yukardaki kanunun ilk kurbanı olma ayrıcalığını tattırdı. 10.000 dolar ve saatlerce sosyal hizmet cezasıyla kurtuldu. Tutuklamaların arkası çorap söküğü gibi geldi. Kevin Mitnick , Digital'in bilgisayarlarına girmekten yakalandı ve bir sene hapse ve bir daha bilgisayarlara dokunmama cezası aldı. Daha sonra Kevin#2 -Kevin Poulsen - telefon modifiye etmekle suçlandı ve hakkında tutuklama kararı çıkarıldı. Ama Kevin#2 kaçtı ve kurtuldu.
Hükümetin 90'daki hacker yakalama harekatının adı Operation SunDevil'di. Özellikle Legion of Doom üyelerinin üzerine fena halde gidildi ama başarısız oldular. tahminen LOD üyelerinden alınan tüyolarla 4 MOD üyesi yakalandı. Phiber Optik hapiste bir sene geçirdi.
1994 yazında Rus matematikçi Vladimir Levin tarafından yönetilen bir hacker grubu Citibank'ı 12 Milyon Dolar zarara uğrattı. Paranın hepsini çekemeden Vladimir Londra Heathrow havaalanında Interpol tarafından yakalandı. Citibank 400.000 doları hariç kaybettiği bütün parayı geri aldı. Ancak neler yapılabileceğinin öğrenilmesi Net'te bir korku dalgası yarattı ve caydırıcı olması için cezalar korkunç derecede arttı.
Bazıları hatalarından hiç ders almıyorlardı. Kevin Mitnick 1995 Şubat'ında 20.000 kredikartı numarası çalmaktan tekrar tutuklandı. Mahkemesi sürerken hapiste bir sene daha geçirdi ve sonunda suçlu bulundu. Şu anda hapiste.
Mitnick'in zincirler içinde hapse götürülmesini seyretmek halkın Hacker'lara bakış açısını iyice ekşitti. Net kullanıcılarını bir hacker fobisi sardı. Buna anarşinin sonu, amerikanın ikinci uyanışı (birincisi Jasse James gibi popüler kanun kaçakları yakalandığında olmuştu) gibi isimler takanlar oldu. Sonuçta hacker'lar artık romantik kanun kaçaklığı statüsünden sorunlu asalak başbelası konumuna indiler. Bunda kendine hacker diyen ve herkezin kullanabileceği programlar kullanarak sadece kötülük yapan şahısların çoğalmasının payı da büyük oldu (bkz. Nuke olayı) İş dünyasının da Net'e kayması Net'in ekstra güvenli bir ortam olmasını gerektiriyordu. Ve halkın bakış açısı da buna göre ustaca yontuldu.
Peki ya şimdi,.. Şu anda scene'de kimler var,.? Hacker'larin pek temkinli davranmalari üzerine söylemek zor... eskisi gibi efsaneleşmiş isimler çikmiyor, ama yine de hala hergün hummali çalişmalar sürüyor ve birileri illegal yollardan hayatlarini kazanmaya devam ediyorlar. Bilgisayar yeralti dünyasinda bir söz vardir: Iyi bir hacker'san herkez ismini bilir. Çok iyi bir hacker'san varligindan haberleri bile olmaz...
Dennis Ritchie and Ken Thompson. The driving creative force behind Bell Labs' legendary computer science operating group, Ritchie and Thompson created UNIX in 1969. An elegant, open operating system for minicomputers, UNIX helped users with general computing, word processing and networking, and soon became a standard language. Plan 9, the next-generation operating system created as the natural descendant of UNIX by Thompson and Bell Labs colleague Rob Pike. Although Ritchie is the author of the popular C programming language, his favorite language is Alef. Thompson, an amateur pilot, once traveled to Moscow to fly a MiG-29.
Richard Stallman, a hacker of the old school, Stallman walked in off the street and got a job at MIT's Artificial Intelligence Lab in 1971. He was an undergraduate at Harvard at the time. Disturbed that software was viewed as private property, Stallman later founded the Free Software Foundation. In 1969, at the IBM New York Scientific Center. He was 16 years old. In the 1980s Stallman left MIT's payroll but continued to work from an office at MIT. Here he created a new operating system called GNU -- short for GNU's Not Unix. Recipient of a $240,000 MacArthur Foundation genius grant
John Draper, Figured out how to make free phone calls using a plastic prize whistle he found in a cereal box. Cap'n Crunch introduced generations of hackers to the glorious concept of phone "phreaking." As a teenager, trying to convince pay phones to return his coin and put through his calls. The toy whistle from boxes of Cap'n Crunch cereal. The whistle reproduced the 2600 hertz tone necessary to authorize a call. Used in conjunction with a bluebox, it allowed users to make free phone calls. (Oscar Meyer weiner whistles also briefly gained a following among phone phreakers.) Honorably discharged from the U.S. Air Force in 1968 after a stint in Vietnam.
Mark Abene, as a founding member of the Masters of Deception, Phiber Optik inspired thousands of teenagers around the country to "study" the internal workings of our nation's phone system. A federal judge attempted to "send a message" to other hackers by sentencing Phiber to a year in federal prison, but the message got garbled: Hundreds of well-wishers attended a welcome-home party in Abene's honor at an elite Manhattan Club. Soon after, New York magazine dubbed him one of the city's 100 smartest people. Hanging out in the electronics department of the A&S department store in Queens, N.Y., where his mother worked. There he was introduced to the Apple II, the Timex Sinclair and the Commodore 64. The first computer he owned was a Radio Shack TRS-80 (Trash-80). Experimented by dialing patterns on a phone receiver. Abene used the receiver so frequently that it had to be bandaged with black electrical tape to keep its guts from falling out. Phiber Optik's favorite food: mashed potatoes from Kentucky Fried Chicken. Not real mashed potatoes. Real ones have lumps in them.
Robert Morris, the son of the chief scientist at the National Computer Security Center -- part of the National Security Agency (NSA) -- this Cornell University graduate student introduced the word "hacker" into the vernacular when he accidentally unleashed an Internet worm in 1988. Thousands of computers were infected and subsequently crashed. At home. Morris' father once brought home one of the original Enigma cryptographic machines from the NSA. It became a household conversation piece. As a teenager Morris had an account on the Bell Labs' computer network, where early hacking forays gave him super-user status. When the Secret Service raided the home of Legion of Doom member Erik Bloodaxe in 1990, they found a copy of the source code for Morris' Internet worm.
Kevin Mitnick, The first hacker to have his face immortalized on an FBI "Most Wanted" poster. His status as a repeat offender -- a teenage hacker who couldn't grow up -- earned Mitnick the nickname The Lost Boy of Cyberspace. As a teenager. Mitnick couldn't afford a computer, so he hung out in a Radio Shack store. He used the store's demo models and modem to dial other computers. During the three years he was on the lam, Mitnick used Internet Relay Chat (IRC) as a message drop and to communicate with his friends. Sentenced to a year in a residential treatment center, Mitnick enrolled in a 12-step program to rid himself of what a judge agreed was his "computer addiction." Hey, it's California
Kevin Poulsen, In 1990 Poulsen took over all telephone lines going into Los Angeles area radio station KIIS-FM, assuring that he would be the 102nd caller. Poulsen won a Porsche 944 S2 for his efforts. When his parents bought him a TRS-80 (better known as a "Trash-80"). A set of locksmith tools he used to break into phone company trailers. He was caught after a friend commemorated the break-ins with snapshots of Poulsen picking locks. Pleaded guilty to breaking into computers to get the names of undercover businesses operated by the FBI.
Johan Helsingius Operated the world's most popular anonymous remailer, called penet.fi, until he closed up shop in September 1996. Helsingius' troubles started when he was raided in 1995 by the Finnish police after the Church of Scientology complained that a penet.fi customer was posting the "church's" secrets on the Net. Helsingius mothballed the remailer after a Finnish court ruled he must reveal the customer's real e-mail address. Ran the world's busiest remailer on a run-of-the mill 486 with a 200-megabyte harddrive. Never felt the need himself to post anonymously.
Vladimir Levin, a graduate of St. Petersburg Tekhnologichesky University, this mathematician allegedly masterminded the Russian hacker gang that tricked Citibank's computers into spitting out $10 million. Arrested by Interpol at Heathrow Airport in 1995. Unknown. Accused of using his office computer at AO Saturn, a St. Petersburg, Russia, computer firm, to break into Citibank. Along with a computer, computer games and disks, Russian police confiscated a camcorder, music speakers and a TV set from Levin's apartment. Levin claimed that one of the lawyers assigned to defend him was actually an FBI agent.
Türkiye de hack, son günlerde gitdikçe ilgi görmeye başladi. Arasira haber programlarinda bile hack olaylarina yerveriliyor. Bunun üzerine bir çok yeni hacker çikdi ve bu hackerlar gruplaşarak hacker gruplarini oluşturdu. Bu yeni hackerlar eski hackerlara nazaran daha az bilgiye sahipler ve daha az eylem yapabiliyorlar. Çogu belli bir zaman sonra sikilip, hack i birakiyor. Bunun dişinda Türkiye de dünya çapinda ün salmiş bir çok hacker var.
Mr^Cha0s, Türk hackerlar arasında en iyi olan Mr^Cha0s 1990 dan beri hack ile uğraşıyor ve hacki "zevk için" yaptığını söylüyor. Mr^Cha0s ilk zamanlar bilgisayarla yeni tanışdığında programcılık yapmaya başlamış bir süre sonra kendini hack dünyasının içinde bulmuş. İlk zamanlar BBS ler üzerinde eylemler yapan Mr^Cha0s sonra bir kaç yıldır eylemlerini internet üzerine taşımış ve bir çok yerli sayfayı hack etmiş. Bunlar arasında devlet sayfaları, bakanlıklar ve üniversiteler ağırlıklı. Ayrıca Mr^Cha0s altı tane Yunanlılara ait sayfayı hack ederek Yunanlılara karşı bir savaş başlatmış; Mr^Cha0s yanında ki hacker arkadaşları ile yaklaşık altı ay kadar bir süre Yunanlı hack grupları ile çatışmalar girmiş. Bu sırada bir çok Yunanlı ve Türklere ait internet sayfası hack edilmiş.
AAAAAAAAnti, yine Türkiyedeki en iyi hackerlardan biri olarak bilinir. Anti bu işe yeni başlamiş bir hacker olmasina ragmen bir çok hack olayina imza atmiş. Anti nin gerkçekleştirdigi en büyük hack olaylarindan biri Turnet 'i(Türkiye Internet Servisi Saglayan Kuluş) hack ederek 24 saat süreyle Türkiyenin internet çikişini engellemek. Bu olay ile Anti kendini kanitlamiş ve iyi hackerlar arasinda yerini almiş.
Sonuç olarak, hackerlar ve hack eylemleri gün geçtikçe önem hazanıyor ve hackerlar her geçen gün daha çok tehlike işgal ediyorlar. Her ne kadar eylemleri zarasız gözüksede, eylemler insanlara gitdikçe daha çok zarar vermeye başlıyor. Benim düşüncem, hükümetin hack ile ilgili yasalarda daha katı yaptırımlar uygulaması ve bu tür eylemlerin önüne geçilmesi.

0 yorum  

COBOL, Programlama Dillerinde Bir Klasik

COBOL, Programlama Dillerinde Bir Klasik

Cobol en eski programlama dillerinden biri olmasına rağmen hala kullanılan bir dildir. COBOL, özellikle, ticari amaçlı veri işleme uygulamalarında kullanılır.
Cobol dili -Common Business Oriented Language- ilk kez 1959 yılında, çok miktarda veri ile daha verimli çalışmak amacıyla tasarlanmış üst düzeyli bir dildir. Bilgisatar donanımının ilk üretilmeye başlandığı yıllarda yaratılmış ve özellikle bilgisayarın verimli kullanımı amaçlanarak düzenlenmiştir.
Cobol dilinin geliştirilmesi ve devamliliginin saglanmasi gönüllü bir organizasyonun sorumlulugu altindadir (Conference On Data Systems Languages (CODASYL). Ilk Cobol standart tanimlamasi (COBOL 68) 1966 yilinda Amerikan Standartlar Enstirüsü tarafindan yapilmiştir. Bu, 1965 tarihli CODASYL yayinlarina dayanmaktaydi ama 1968'e kadar geçerliligini koruyabildi.
Günümüzün Cobol programcıları, bu dilin modern bilgisayarlara uyumlu yeni versiyonlarıyla geliştirilmiş ilave kolaylılara sahiptirler. Cobol dilinin en kullanışlı uygulamaları, ANSI-74 standartlarına yada gittikçe yaygınlaşan ANSI-85 Cobol'a bağlıdır. Bu standartlar daha önce çeşitli standart taslakları olmasına rağmen, sırasıyla 1974 ve 1985 yıllarında oluşturulmuştur.
Bir bilgisayar dilinin Cobol gibi geliştigi durumlarda, dilin yeni versiyonlari kaçinilmaz şekilde uzlaşmaya varirlar. Yeni versiyon üzerinde çalişan gruplar, pek çok sorunla karşi karşiya kalirlar. Geliştirdikleri versiyonlari, donanim özelliklerine ve degişikliklerine, ayni zamanda yeni problem çözme tekniklerine göre tasarlamalari gerekti. Diger yandan, eger bu yeni versiyon, bir öncekinin bir üst versiyonu ise, daha önceki versiyonda çalişan programlarin, yenisinde de çaliştirildigini garantilemeleri gerekir.
Yukarıda bahsettiğimiz, bir üst versiyonun, öncekiyle uyumu, yeni veriyonun yaygın olarak kabul edilmesi açısından çok önemlidir. Çünkü, bir derleyicinin yeni versiyonlarının fiyatı, bu derleyicilerin kullanılmasıyla yazılan programlara göre çok düşüktür. Bazı kullanıcılar, ek kolaylıklar sağlayan yeni versiyonları tercih ederken bazıları da yeniden programlama yapmak zorunda kalmamak için eski versiyonlarda çalışmayı tercih ederler. Bu durumda önemli olan maliyetin düşük tutulmasıdır. Bu da yeni gelişmelerin sağlanmasını zorlaştırmaktadır. Dolayısıyla bu işle uğraşanların köklü değişiklikler yapması engellenmektedir.
"Cobolu kim kullanır ?" sorusunun yanıtı 1970'lerin sonlarında sorulmuş olsaydı, yanıtı çok basitti. Çünkü, o yıllarda, veri işleme alanında Cobol henüz gerçek bir rakibe sahip değildi. Herhangi bir oragnizasyonda büyük ölçülerde veri işleme aktivitelerinde Cobol dili seçilirdi. Pek çok büyük firmanın veri işleme bölümlerinde, yeni uygulamalar ve yazılımlar geliştirmek için Cobol programcılarından olşan bir grup bulunurdu.
Bu durum, günümüzde daha farklı bir boyut kazanmıştır. Daya iyi değerlendirebilmek üç farklı firma grubuna ayrı ayrı göz atalım.
1. Geçmişte Cobol'u kullanmiş olanlar:
1960'larda ve 1970'lerde veri işleme alanina girmiş pekçok büyük firma vardir. Bu kullanicilar için, Cobol'un özellikleri, bu dili kullanmaya devam etmeleri için yeterliydi. Bu durum, daha önce de bahsettigimiz gibi yeni yazilimlarin ve yeni çalişma metodlarinin oluşturulmasina önemli bir bir engel oluşturmaktadir. Ayni zamanda Cobol'un rakipleriyle olan yarişini da kötü yönde etkilemektedir.
Günümüzde, veri işleme yöntemleriyle ugraşan firmalarin hepsi artik böyle düşünmüyor. Büyük firmalardan bazilari Cobol yerine alternatif dillerden biriyle çalişmayi tercih ediyorlar. Bazilari C'yi tercih etmiş, bazilarida geleneksel yöntemlerden uzaklaşmiş durumda. DBase ve SQL (Structured Query Language) gibi modern veri işleme uygulamalari için geliştirilmiş paket programlara adapte olmuşlar.
2. Veri işleme alanina yeni girenler:
Bu firmalar, veri işleme alanina girmekte geç kalan yada çalişmalarini Cobol'un kullanilmadigi küçük bilgisayarlara yogunlaştiran küçük firmalardir. Bu biraz Cobol'un büyük bir bilgisayar dili olmasindan, biraz da küçük bilgisayar kullanicilari için iyi bir alternarif olmamasindan kaynaklanmaktadir. Çünlü Cobol ya küçük bilgisayarlara uygulanamamakta, yada sinirli şekillerde uygulanabilmektedir. Sonuç olarak veri işleme yöntemlerini kullanan küçük firmalar, geçmişte diger programlama dilleriyle çalişan firmalardir.
Bu nedenle, bu grubun içinde, veri işleme için uygun olmayan Basic gibi dilleri kullanima önemli bir egilim vardir. Yada bu konuda daha başarili olan diger dilleri tercih etmektedirler.
3. Paket program kullanıcıları:
Veri işlemek için bilgisayar kullanmaya başlayan kişiler, günümüzde, problemlerini çözmek için daha önce yazlimiş ve test edilmiş programlari kullaniyorlar. Bu, bilgisayar firmalarinda yazilim sürekliligi ve geliştirilmesi için programcilardan oluşan çalişma gruplarinin kurulmasini engellemektedir.
Yukarıda belirttiğimiz gibi veri işleme piyasasında Cobol'un oluşturduğu baskı azalmıştır ama Cobol hala önemli bir dildir. Çünkü Cobol'a bağlı olan kullanıcıların varlığı, derleyicilere, kitaplıklara ve deneyimli Cobol programcılarına olan talepleri yazılım piyasasını hala etkilemektedir.
Cobol'u kim kullanır sorusunu yanıtlamaya çalışırken, ilk olarak bir veri işleme bölümü kurulduğunda Cobol'un yada alternatif başka bir dil mi düşüncesiyle birlikte daha güç sorularla karşı karşıya kalırız. Cobol'un programcıya sağladığı kolaylıklar özellikle veri işleme uygulamaları düşünüldüğünde, C ve Modula-2 gibi dillere kıyasla, Cobol programlama dili hala geçerliliğini korukmaktadır. Diğer yandan, programların modern bir yolla yazılması, programcının değişik anlarda çalışabilme esnekliği açısından daha genel amaçlı modern dillerin seçilmesi yararlı olacaktır. Aynı zamanda bu dillerle de veri işleme uygulamalarında çalışılabilir.

3 yorum  

Programlama Nedir?

PROGRAMLAMA NEDİR?

Bilgisayarlar, kendilerine verilen komutlara uyarlar. Komutlar, hem komutu veren kişinin, hemde komutu uygulayacak olan bilgisayarin anlayabilmesi için özel bir şekilde verilmelidir. Komut setleri ve komutlarin uygulanmalari sirasinda esas alinacak kurallar birlikte bir programlama dilinin temelini oluştururlar.
İlk bilgisayarlar ikilik tabanda programlanıyorlardı. Diğer bir deyişle, her komut birler ve sıfırlar dizisi şeklinde veriliyordu ve kesin bir anlamı vardı. Örneğin :
00010000100
dizisi bilgisayara, yeni bir hesaplamaya hazırlanması için hesaplamaların yapıldığı çalışma alanını temizlemesi anlamına gelebilir.

Bir bilgisayar programı, bilgisayara verilen ve belli bir görevin gerçekleştirilmesi için verildiği sırayla uygulanan komutlar dizisidir. İlk bilgisayarlar için bir program, ikilik tabanda verilmiş komut dizilerinden oluşmaktaydı.
Açıkça görüldüğü gibi, bilgisayara ikilik tabanda komutları girmek son derece özel bir işti. Verilebilen komutlar, iki sayıyı toplamak veya sayıları bir yerden bir yere taşımak gibi basit görevleri yapabiliyorlardı ve akılda kalıcı değillerdi. Bilgisayar programı yazmak, bir bilgisayar uzmanı için bile uzun bir işti ki, bunun sebebi de, komutların yapacakları görevin gözle görülür şekilde belli olmamasından dolayı programdaki bir hatayı bulmanın saatleri almasıydı.

Bu sorunlara çözüm olarak, assembly dili olarak bilinen, geliştirilmiş program yazim sistemi ortaya çikarildi. Assembly dili, programciya, daha önce ikilik kodlarla yaptigi işlemleri, daha akilda kalici makine koduyla yapma olanagini sunuyordu. Bu durumda, A ve B olan iki sayiyi toplamak için gereken;
TOPLA A, B
komutu oluyordu. Bununla birlikte, assembly dili ile programlamada bir sorun vardı. Assembly dilinde hazırlanmış bir programı insanların yazması, anlaması ve düzeltmesi daha kolaysada, ne yazık ki bilgisayar bunu anlamıyordu. O halde, bilgisayarın anlayamadığı bir dilde program yazmanın ne anlamı vardı ?
Assembly dili ile birlikte, assembler ortaya atılmıştı. assembler, makine dilinde yazılmış ve assembly komutlarının her birini makine dilindeki eşleniklerine çeviren bir programdır. Her bir assembly dili komutu, bir makine dili komutunun hemen hemen eşdeğeridir. Assembler programı, genelde assembly dili programının okunması ve buna karşılık gelen makine kodu komutlarının üretilmesinden oluşur.
1950'lerde assembly dilinin ortaya sürülmesindeki asıl amaç, bilgisayar programlamayı insanlar için daha kolay hale getirmekti. Fakat assembly dili, makine dilinde zaten varolan olanaklardan biraz fazlasını sağladığı için kısıtlıydı. Assembly dili programcısı, makine dili komutları ve makroları kullanabiliyordu. Bir makro ile birden çok makine dili komutu ve çok kullanılan değerleri tek bir komuta verebilir. Programcı için daha geniş olanaklar sağlayan bir dille çalışmak daha kolaydır. Bu komutların her birinin makine diline çevrilmesinin gerekli olması ilk "üst düzey" bilgisayar dillerinin doğmasına yol açmıştır.
Üst-düzey dil terimi, insanların öğrenip kullanmalarının kolay olması için tasarlanmış bir bilgisayar dili anlamındadır. Bazen bu dillere "insana yönelik diller" de denir. Karşıtı olarak "alt-düzey" bir programlama dili de, makine diline yakın, dolayısıyla kullanımı insanlar için genelde daha zor olan dilleri belirtir. Tipik olarak assembly ve makine dillerini "alt-düzey", veya makineye yönelik diller, ele alacağımız diğer dilleri de "üst-düzey" diller olarak inceleyeceğiz.
Bazı dilleri diğerlerinden "daha üst-düzey" olarak belirtmemiz doğaldır. Bunlar programlamayı insanlar için daha kolay hale getirmek amacıyla özel hazırlanmış program sistemleridir. Örneğin görsel diller bu "daha üst-düzey" diller gubuna girer.
Makine kodu dışında tüm diller, bilgisayarın işlemcisi tarafından uygulanmadan önce çevrilmek zorundadır. Assembly dili, yukarıda anlatıldığı gibi assembler ile çevrilir. Üst-düzey programlama dilleri bir "derleyici" veya "yorumlayıcı" ile çevrilir.
Buraya kadar programlama dillerini, bilgisayarın işlemcisine komut gönermenin bir yolu olarak tanımladık, ancak programlama dillerinin tek işlevi bu değildir. Bir ikinci ve çok önemli bir işlevleri de, dilin belleği işleyebilme ve programlar için kullanabilme yeteneğidir.
Yine, makine dili kullanan programcının yapması gerekenleri düşünürsek olanları daha iyi anlayabiliriz. Bilgisayar belleği, her birinin belli bir adresi olan kutular şeklinde düşünülebilir. Makine kodu kullanan programcının, her kutunun yapacağı işi kesin olarak belirlemesi ve belirtmesi gereklidir. Programcı, hangi kutulara komutların, hangi kutulara verilerin depolanacağına karar vermelidir. Hafızadaki her depolama birimi, önceden belirlenmiş uzunlukta bir ikil sayı tutabilir. Bu ikilik sayıların her biri program komutu veya veri olabilir. Makine dilinde program yazan programcı, verinin komutla aynı yerde olmasına dikkat etmek zorundadır. Bunun sebebi, işlemcinin herhangi bir bellek birimindeki ikilik sayıyı tipine bakmaksızın işlemesidir. Hafıza birimlerinin bu çift amaçlı kullanımının avantajı, aynı bellek alanının daha çok fazla veri isteyen küçük bir program veya çok az veri isteyen büyük bir program için kullanılabilmesidir. Bu düşünceye "Von Neuman'ın Depolanmış Program Kavramı" adı verilir.
Assembly dili programcıya, belli bir programın ve bu programa ait verilerin belleğin neresinden itibaren başladığını (yani kullanılan ilk bellek biriminin adresini) belirtme olanağı tanır. Bundan sora verilen her komut ve verinin belleğe yerleştirilmesi ile assembler ilgilenir. Programcı herhangi bir veri veya komutu, assembler tarafından gerçek adrese çeviren bir sembol ile verebilir. Bu, programcıyı, bellek üzerinde sürekli sıkı bir kontrol yapma zorluğundan kurtarır.
Üst düzey diller genelde programcıyı, bellekdeki veri ve komutların yerlerini takip etme zahmetinden kurtarır. Değişken isimlerinin kullanılması belirli verilere çabuk ulaşabilmeyi sağlar. Etiketler, isimli işlem dizileri, alt dögüler ve satır numaraları programın istenen kısımlarına erişimi kolaylaştırır. Erişim istemi derleyici veya yorumlayıcı tarafından veri veya komutun tutulduğu bellek adreslerine çevrilir. Üst düzey programlama dilleri ile daha karmaşık veri tipleri de kullanılabilir. Örneğin, benzer tipte verilerin liste veya dizilerini, veya yüksek hassasiyet gerektiren sayıları depolayabilir.
Programlama dilinin üçüncü fonksiyonu, programcıla bilgisayar sisteminin bir parçası olan donanım birimlerine erişim olanağı sağlamasıdır. Bir makine dili programcısı, belirli donanım birimlerini çalıştırabilmek için bu birimleri makine düzeyinde adreslemek zorundadır. Bu durumda, örneğin, ekrana bir mesaj yazdırmak için programcı, hangi bellek biriminin hangi ekran konumuna karşılık geldiğini bilmek zorunda kalacak ve bu konumlara gereken kodları girecekti. Benzer şekilde, yazıcıya çıktı göndermek için programcı, yazıcıyı donanım düzeyinde nasıl adresleyeceğini bilmek zornda kalacaktı. Bu işlem genelde "işletim sistemi" tarafından yazıcının bağlı olduğu kapıya veri göndermek ten ibarettir.
Üst düzey dil programcısı için, pek çok programlama dili yazıcı ve ekrana bilgi gönderme ve hatta bir kapıdan veri almak için özel komutlar sağladıklarından, bu konular pek tanıdık değildir. Bununla birlikte, dillerle birlikte gelen komutların bazıları yeterince esnek olmamakla ve alt düzey komutlarını doğrudan uygulamanın yolunu bulma işi yine programcıya kalmaktadır. Bazı programlar, programcıya bu alt düzey olanaklarını kullanma fırsatı sağlamaktadır. Bazı üst düzey diller ise kullanıcılarını bu zor alanlardan korumaktadırlar.

0 yorum  

Programcıların Çalışma Ortamı

Programcıların Çalışma Ortamı

Bu yazı seri olarak ilerleyecektir bu yazının birincisi genel olarak ortama bakıyor. İleriki serilerde ortamı dahada genişleticem.

Programcı, programların sisteme girilmesini, kaydedilmesini, yüklemesini, çevrilmesini ve uygulanmasını sağlayan komutları içeren bir çalışma ortamında çalışmak zorundadır. Bu çalışma ortamının tam şekli bilgisayara göre değişir.

En eski sistemlerde programcı işletim sistemi düzeyinde çalışırdı. İşletim sisteminden, programın girilmesini sağlayan ve daha çok bir kelime işlem programına benzeyen "editör" ü ve ardından kodu çeviren yorumlayıcı veya derleyiciyi çağırırdı. Eğer bir derleyici kullanılıyorsa, programcının çevrilmiş programı çalıştırmak için ayrıca bir komut vermesi gerekiyordu; yorumlayıcı kullanılması halinde ise bu işlem otomatik olarak yapılıyordu.

Bu eski sistemlerde yeni bir program yaratmak için izlenecek adımlar kabaca şöyleydi;
1) Porgramı yazmak üzere editörü çalıştırın
2) Editörden programı bir dosya olarak kaydedin ve çıkın
3) Çeviri programını çalıştırın ve belirtilen hataları not alın
4) Editörü programla birlikte yükleyin ve hataları giderecek düzeltmeleri yapın
5) Tüm hatalar giderilip çeviri işlemi başarili olana dek 3. ve 4. adimlari tekrarlayin
6) Çevrilmiş programi uygun bir şekilde çaliştirin

Bazı diller, özellikle BASIC, ilk uyarlamalarından beri programcıları sürekli editör - derleyici arasında gidip gelmekten kurtarmak amacı ile daha dostça bir geliştirme ortamı sağlamaya çalışmışlardır. Bu, genelikle işletim sistemi komutları, editör ve yorumlayıcının birlikte paket olarak sunulmasıyla sağlanmıştır.
Bazı üst düzey dil üreticileri, kullanıcılardan gelen hem daha kolay kullanılır, hem de editör ve derleyici arasında geçişi daha hızlı olan programlama dili isteklerine son zamanlarda cevap vermişlerdir. Bu tümleşik geliştirme ortamları giderek popüler olmaktadır ve mikrobilgisayar kullanıcıları bunları kolayca temin edebilirler. Bu tip sistemlerin tek sorunu editör ve derleyiciyi aynı anda bellekte yer tuttukları için yazılacak olan programın kaynak ve nesne kodlarına ayrılan alanın sınırlanmasıdır (kaynak kodu programın çevrilmeden önceki, nesne kodu ise derleyicinin ürettiği, çeviri işleminden çıkmış kütüktür. İyi programcılar, bindirmeli kütükler yardımıyla sistemin belli parçalarını bellek ile disk arasında aktararak bu bellek sınırlamasının üstesinden gelebilmektedirler.

0 yorum  

BASIC'in YAPISI ve TARİHİ

BASIC'in YAPISI ve TARİHİ

BASIC (Beginners' All purpose Symbolic Instruction Code) (Yeni Başlayanlar Için Çok Amaçli Sembolik Komut Kodu) programlama dili, 1964'de Hanover, New Hampshire, ABD'de Dartmouth Koleji'inde geliştirilmiştir. Hazirlanmasindaki amaç, FORTRAN'dan daha kolay kullanilan ve ayni zamanda ögrencileri daha sonra FORTRAN kullanimini ögrenmeye hazirlayacak bir dil istegiydi.

BASIC'in ilk kullanılışı eğitim amacıyla oldu. Fakat, insanlar BASIC'in yalnızca başka bir dili öğrenmeye hazırlamak için değil, aynı zamanda uygulama programları yazmak için kullanılabildiğini farkedince kullanım alanları hızla genişledi. BASIC kısa zamanda programcılara basit programların yazımında FORTRAN'ın sağladığı olanakları, daha kolay program geliştirme avantajı ve daha kullanıcı dostu bir ortamla birlikte sağlayan bir dil olarak görüldü. Aslında BASIC, FORTRAN'ın karşısında yalnızca FORTAN'ın daha gelişmiş özellerine ihtiyaç duyulduğu durumlarda zayıf kalır. Matematikçiler ve bazı bilim adamları için pek çok uygulama programı bu gelişmiş özelliklere ihtiyaç duyar. Fakat pek çok kullanıcı için, BASIC yeterlidir.

Piyasaya sürüldüğü ilk dönemlerde pek kullanılmadığı, ancak son zamanlarda yaygın olarak kullanılmaya başlandığı için BASIC'in tarihçesi ilginçtir. 1960 ve 1970'li yılların 'ciddi' uygulama programları BASIC ile yazılmamıştır. Yazılım üreticileri, o andaki uygulama için daha uygun olan daha büyük ve gelişmiş dilleri tercih etmişlerdir. Sonuç olarak, BASIC kullanıcılarının sayısı uzun bir süre için diğer dilleri kullananların sayısından daha az olmuştur.
Bilgisayarın yaygınlaşması, küçük sistem üreticilerinin yeni başlayanların kullanabilecekleri ve küçük sistemlere uyarlanması kolay olacak bir dil istemeleri, BASIC'in tercih edilmesine sebep olmuştur. Mikrobilgisayarların kullanımının artması genelde bilgisayar dillerinin, ve genellikle bilgisayarla birlikte kullanıcıya verildiği için, özellikle BASIC'in kullanımı artmıştır.

Bu noktada "Donanımları için üst düzey bir dil arayan üreticilere niçin BASIC çekici bir seçim olarak geldi ?" sorusunu sormak ilginç olacaktır.

1. BASIC yorumlamalı bir dildir.
BASIC dilinin hemen tüm sürümleri derleyici yerine bir yorumlayıcı kullaırlar. Dil öyle bir şekilde hazırlanmıştır ki, özellikle belleğin sınırlı olduğu ve derleyici yerine yorumlayıcı kullanımın uygun olacağı küçük bilgisayar sistemlerine uygun şekildedir.
Bunun sebebi gayet açıktır. Derlemeli bir dil kullanıldığında, tüm kaynak kod alınır ve çalışabilir nesne kodu haline geldikden sonra çalıştırılır. Diğer yanda ise, yorumlamalı bir dilde bir seferde kaynak kodun yalnızca bir satırı çevrilir ve bu yüzden yalnızca bir satırın kaynak ve çevrisini bellekde tutmak gerekir. Bu şekilde, bellekden tasarruf edilmektedir.

2. BASIC (TEMEL), pek çok kişiyi bilgisayar almaya sevkedebilecek, çekici bir isimdir.
Bilgisayar üreticilerinin elinde, gerekli olduğunda bir yorumlayıcı ile piyasaya sürebilecekleri çeşitli diller vardır. Fakat bilgisayar dilinin yeni başlayanlar için yazılmış olması ve basit oluşu, bilgisayarı için büyük pazarlar bulmayı amaçlayan üreticilere her zaman çekici gelmiştir.

3. BASIC yalnızca bir dil değil, aynı zamanda bir sistemdir.
Program yazmak isteyen bilgisayar kullanıcısı iki komut setini öğrenme zorundadır. Bilgisayarın işletim sistemi, donanım ile iletşim olanağı sağlar. Bir dosyayı belleğe yükleme, bellekdekileri diske kaydetme ve editörü çalıştırma işlemlerinin tümü işletim sistemi komutlarıdır. Bu işlemler, bilgisayara program çalışırken yapması gerekenleri bildiren dil komutlarından ayrıdır.
Pek çok bilgisayar dili kullanıcı için, sistemin komut satırından girilmesi gereken sistem komutları ile programlama dili komutları arasında kesin bir ayrım vardır. Bu yeni başlayanlar için oldukça sorun yaratır. Değişik zamanlarda değişik komut tipleri gerekir. Program yazarken işletim sistemi komutları kullanılamaz ve aynı şekilde programlama dili komutları da işletim sistemine verilemez.
BASIC dilini tasarlayanlar, BASIC ortamını yalnızca bir dil ortamı olarak değil aynı zamanda bir sistem olarak tasarlayarak bu sorunun üstesinden gelmeye çalışmışlardır. BASIC sistemi kendi editörüne ve işletim sistemi komutlarına sahiptir. Bu komutlar dilin bir parçasıdır ve istenirse programlarda kullanılabilirler. Bunun tersi olarak programlama dili komutlarıda program dışında hemen uygulanmak üzere verilebilir.
Bu yaklaşimin sonucu olarak BASIC programcisi işine BASIC ortamina girerek başlar (ki bu işlem özellikle küçük mikrobilgisayarlarda otomatik olabilir) ve BASIC işletim sistemi komutlari da dahil olmak üzere BASIC komutlarini vererek işini sürdürür
Küçük mikrobilgisayar tasarımcıları için BASIC'in kullanımı işletim sistemi komutlarını dil komutları ile aynı ortama yerleştirme kolaylığı sağlar. Bu tür sistemlerde ayrı ayrı işletim sistemi, editör ve çalışma ortamları gereksizdir. Bunlar birleştirilerek çalışma alanında tasarruf sağlanır ve pek çok durumda hem işletim sistemi hem de dil komutların tek bir ROM yongası ile kontrolu mümkün olur.


4. BASIC Esnektir.
a. Donanım Esnekliği
Bazı açılardan, "BASIC esnektir" ifadesi, BASIC standart dışıdır ifadesinin olumlu yönüdür. Donanımdaki değişikliklerden etkilenmeden uzun süre kullanılabilirliğini sürdüren eski bir dil olan BASIC'in en eski şeklinden bazı izler taşıdığını görmek şaşırtıcı olmaz. Ne yazık ki, benzer değişimlere maruz kalan diğer dillere göre, BASIC 'in kontrolsuz değişimine izin verilmiştir. Bu yüzden değişik BASIC sürümleri araında büyük farklılıklar vardır. Hemen tüm BASIC sürümlerinde ortak görülen bazı özellikler varsa da bunlar çok azdır.
BASIC'in standart olmayışının olumlu yönleri yanında olumsuz yönleri de vardır. Katı bir standart konulduğunda, yeni durumlara uyum sağlaması için standardın gözden geçirilmesi gereklidir ve bu da zaman alır. Üreticiler, BASIC kullanılırsa bu gibi standart eskimelerinden etkilenmezler ve bazı komutlar ekleyerek dili rahatlıkla duruma uydururlar. Doğal olarak, BASIC'in değişik sürümleriyle yazılmış programların (ve bunları kullanan programcıların!) bilgisayarlar arasındaki taşınırlığı bu standart eksikliği yüzünden tehlikededir. Fakat, BASIC'in değişik sürümleri arasında işletim sistemi komutlarının göreli standartlaşması durumunda biraz da olsa çözüm getirmektedir.
BASIC dilinin standartlaşmasi konusunda bazi girişimlerde bulunulmuş fakat pek çogu, tüm BASIC'lerin içermesi gereken komutlar listesi ile yetinmişlerdir. Bu durumda, taşinabilir bir program yazmak isteyen programcilar, bu sinirli sayida komutu kullanarak programlarini yazmalidirlar.
b. Yazılım Esnekliği
BASIC genel amaçlı bir dildir ve bu yüzden oldukça geniş bir uygulama alanı yelpazesi için program üretimine uygundur. Bir üreticinin, bir bilgisayar için belli bir dili uygun görebilmesi için, dilin kullanıcılar tarafından istenilen tüm uygulamaların geliştirilebilmesi için yeterince esnek olduğuna ikna olması gerekmektedir. Bu durumda, BASIC, esnek olduğu ve genelde uygulamalarda makine dili işlemlerine erişmeye hazır bir şekilde tasarlandığı için genelde iyi bir seçimdir.
Tüm bu avantajlarına rağmen, BASIC endüstride iyi bir dil olarak tanınmaz. Endüstriye girenlerin çoğu tarafından ilk dil olarak kullanılan BASIC'in içine düştüğü bu durumun sebeplerini araştırmak öğretici olabilir.

1. BASIC standart dışıdır.
Bu kişinin BASIC programlama üzerine bilgisi tamdir ifadesi anlamsizdir. BASIC uygulamalarinin sagladiklari olanaklar arasindaki fark birbirlerine göre birkaç kati buldugu için, tam bilgi ifadesi ile neyin kastedildigini anlamak imkansizdir.

2. BASIC genelde yapısal değildir.
BASIC, yapısal programlamanın kabul edilen yöntem olmasından çok önce tasarlanmıştır. Sonuç olarak, bazı yeni sürümler REPEAT... UNTIL veya WHILE gibi yapılara izin verseler de bu tüm sürümler için geçerli değildir. Dilin öğretilmesinde kullanılan pek çok kitap eski kötü yapılı yaklaşımı kullanmakta ve kullanıcıya, bugünkü piyasada başarılı olmasını engelleyen kötü alışkanlıklar kazandırmaktadır.

3. BASIC kendine özgüdür.
Bugün kullanılan dillerin hemen hemen tamamı bir derleyici kullanmaktadır.Bu yüzden bu dilleri kullananlar, bilgisayarın işletim sistemi komutlarına ve kaynak kod hazırlamak üzere editör komutlarına alışmaktadırlar. Diğer bir dile geçmek için gerekli adımlar, yeni dilin yazım kurallarını öğrenmekten başlamaktadır. Ne yazık ki bu noktadan bakıldığında, BASIC programcısı daha önce editör, derleyici ve işletim sistemi komutları ile ayrı ayrı uğraşmak zorunda kalmadığı için, derlemeli bir dil kullanmaya başladığında tamamen yeni teknikler öğrenmek zorunda kalacaktır. Aynı zamanda pek çok BASIC programcısının karşılaştığı bir diğer sorun, işletim sistemi ve dil komutları arasındaki farkı kavrayamamalarıdır. Yeni bir dil öğrenirken bu durum sorunlara yol açabilir.
Bir zorluk da çözülecek problemin büyüklüğüdür. Küçük problemler için BASIC kolay ve tatminkar bir çözüm yoludur. Fakat büyük ölçekde problemler BASIC ile kolay çözülemez. Bu yüzden, orta düzey programcılar için BASIC iyi bir seçim olmakla birlikte, ciddi programcılar için pek iyi bir seçim olmayabilir.
Bazı akademisyenler, Pascal gibi bir dilin programcılğa girişte BASIC'den daha iyi olduğunu bununla birlikte BASIC ile olduğu kadar Pascal ile de kötü program yazılabileceği görüşünde birleşmektedirler. Bunun tersi olarak, iyi yazılmış BASIC programları, pek çok Pascal programı ile karşılaştırılabilir. Asıl sorun, kullanılan olanaklardan çok, olanakların kullanılma şeklidir. BASIC programlarının büyük çoğunluğunun Pascal programlarından daha kötü yazıldığı doğrudur. Fakat doğru yöntem seçimi ve BASIC'in yeni, iyi yapılandırılmış bir uyarlaması kullanılarak iyi BASIC programları yazılabilir.








BASIC ile çalışan değişik programcı tipleri vardır.

1. Hobi Olarak Program Yazanlar
Şimdiye dek BASIC kullanan en büyük programci grubu, aldigi bilgisayarla birlikte bedava bir BASIC sistemi alan hobi programcilari oluşturur. Bu kullanicilar bazen diger dillerin varliginin fakinda degillerdir ya da BASIC ile işlerini rahatça görebildikleri için başka bir dil kullanmak için sebep görmezler.
Bu tip kullanıcılar tarafından ele alınan program projelerinin çeşitleri, kullanıcıların ilgi alanları kadar çeşitlidir ve bir dizi soru ile kullanıcıyla ilişki kuran basit programlardan büyük veritabanı paketlerine, ağırlıklı olarak grafiklerikullanan oyun programlarına kadar uzanabilmektedir. Piyasaya sürülen BASIC sürümlerinin çeşitliliği, bu kullanıcılar için dilin başarısının ölçüsüdür. Bu kullanıcılar değişik diller kullanmayı düşünmezler, çünkü kullandıkları BASIC ihtiyaç duydukları tüm işlem gücünü onlara sağlamaktadır. Makine diline kolay ulaşım da doğabilecek boşlukları kapatmaktadır.
Hobi olarak program yazan kullanıcıları çeken ve rakip dillerin çoğunun zayıf kaldığı bir özellik de grafiktir. Pek çok hobi programcısı güzel görünümlü programlar ve özellikle oyun programları yazmak ister. Daha sonra inceleyeceğimiz Pascal ve C gibi diller, kaçınılmaz bir şekilde makineye bağımlı olan grafik sistemlerini dikkate almayan bir standarda uymaya çalışırlar. Bu sebeple bu dillerin üreticileri için hem dil standartlarına uymak, hem de iyi grafik sağlamak zordur. BASIC uyarlayıcıları genelde piyasada yaygın olan grafik sistemlerinin tüm olanaklarını kullanır ve deneyimsiz programcılar için oyun yazmayı kolaylaştırırlar. Modern mikrobilgisayarlar, özellikle 16 bitlik makineler gelişmiş müzik yeteneklerine sahiptirler. Bu da aynı şekilde makineye bağlıdır ve BASIC bu tür
uygulamalar için son derece uygundur.

2. Ara Sıra Bilgisayar Kullananlar
Yalnızca arada sırada bilgisayar kullanan ve çok amaçlı bir dilin esnekliğini isteyenler için, BASIC ideal bir seçimdir. Dili öğrenmek için harcanan çaba rakiplerine göre çok daha azdır ve uygulama çok fazla işlem gücü gerektirmiyorsa yorumlayıcı kullanımdan doğan yavaşıl farkedilmez.

3. Ticari Amaçlı Kullanıcılar
BASIC'i ticari amaçla kullananların sayısı insanı şaşırtacak kadar çoktur. Bu kişiler, bir şekilde BASIC ile yaratılmış programları kullanmaya devam etmek amacıyla ve BASIC'de deneyimli programcı sayısının fazlalığına güvenerek bu şekilde davranmışlardır. BASIC aynı zamanda programların hızla geliştirilebilmesine ve, özellikle yeni uyarlamalarında oldukça hızlı program işletimine olanak sağlar. Bu faktörler, BASIC programcıları çalıştırmanın maliyetini, karşılaştırılabilir alanlarda diğer dilleri kullanan programcıları çalıştırma maliyetinden daha düşük tutmaktadır. Bununla birlikte, daha önce saydığımız nedenlerden dolayı BASIC programcıları işlerine, diğer dilleri kullanan programcılardan daha yavaş uyum sağlayabilir ve daha kötü yalışmış programlar yazabilirler.

4. Eğitim Amacı ile Kullananlar
Okullarda ilk kullanılan bilgisayarların çoğu en iyi şekilde BASIC kullanılarak programlanabiliyordu. Bu yüzden 1980'lerde geliştirilen eğitim yazılımlarının çoğu, ya tamamen BASIC ile ya da BASIC ile makine dili birlikte kullanılarak yazılmıştır. Yeni bilgisayarların belki başka bir dil kullanarak programlanması daha doğru olacaktır, fakat hem bbilgisayar programlama konusunda ders veren öğretmenler, hem de eğitim programları yazan kişiler arasında çok fazla BASIC programcısı vardır.
Daha öncede belirtdiğimiz gibi BASIC'in asıl kısıtlamaları piyasaya erken sürülmesinden, genel amaçlı yapısından ve yorumlamalı bir dil olmasından kaynaklanmaktadır.

1. Piyasaya Erken Sürülmesi
BASIC, GOTO komutu ile programın uygulanmasının program içinde satır numarası belli herhangi bir ifadeye aktarılabilmesini sağlar. Bazı durumlarda, bu, programcıların spagetti programlar yazmasına yol açmıştır. Bir spagetti program, uygulanışı belli bir yapıya sahip olmayan fakat sürekli dalgalanmalarla işleyen bir programdır. Bu durumda programın izlediği yol bir tabak spagettiye benzer.
BASIC'in yeni uyarlamaları, işlemler, fonksiyon tanımlamaları ve REPEAT... UNTIL veya WHILE gibi daha gelişmiş döngü yapıları içermekle bu kötü şöhretten kurtulmaya çalışmaktadırlar.

2. Genel Amaçlılık
Genel amaçlı dillerden, genelde belli uygulamalar için, özel amaçlı dillerden daha az uygun oldukları konusunda şikayetler vardır. BASIC'te veri işleme uygulamalarının yazılması COBOL gibi iş amaçlı dilde olduğundan daha zordur ve bu durumdan hem programcı hem de kullanıcı etkilenir. Diğer yandan tek bir programlama dili ile değişik uygulamalar yaratabilmeyi isteyen programcı kesinlikle genel amaçlı bir dil seçmelidir. Bu durumda BASIC bir seçenek olarak görülebilir. Fakat yazılan programların çalışma hızının önemli bir faktör olduğu durumlarda diğer genel amaçlı diller seçilebilir.


3. Yorumlayıcı Kullanımı
Yorumlamalı bir dilin kullanıldığı durumlarda özellikle geniş çapta döngü tekrarı yapılan programların çalışma hızı önemli ölçüde düşer. Bunun sebebi kodun her uygulanışta tekrar çevrilmei gereğidir ve döngü içinde aynı kodun tekrar tekrar çevrilmesi işlemi son derece anlamsızdır.

0 yorum  

Unix

UNIX TARİHİ

İşletim sistemi, bilgisayarın ana ve yan belleklerinin en verimli biçimde kullanılması, çevre donanımla bilgisayar arasındaki iletişimin sağlanması, işlemlerin ve iş akışının yönetilmesi, dosya sistemlerinin oluşturulması ve yönetilmesi, çeşitli hizmet ve uygulama programlarının çalıştırılmasını sağlayan bir programlar topluluğu olarak tanımlanabilir.
Her işletim sisteminin dogal olarak bir tarihçesi var. Fakat hiçbiri UNIX işletim sistemininki kadar ilgi toplamamiştir. Çünkü diger işletim sistemleri, büyük çogunlukla tek bir model bilgisayar sistemine bagimli olarak geliştirilmiştir. Donanim ömrünü tamamladiginda dogal olarak işletim işletim sistemi de devreden çikiyordu. Bazi firmalarin farkli modelleri arasinda yani işletim sisteminin devam ettigi görülmesine karşilik, farkli firmalarin donanimlarinda, kişisel bilgisayarlar hariç, ayni işletim sisteminin kullanildigina rastlanmamiştir. UNIX işletim sisteminin bu denli tercih edilmesinin temel nedeni olarak, donanima bagli kalmamasi ve bilgisayarlar arasinda taşinabilir özelliklere sahip olmasi gösterilebilir.
UNIX işletim sistemi, başlangiçta bir grup araştirmacinin sadece belirli bir amaci içim geliştirilmeye başlanmiştir. Bu amaç, yazilim geliştirilmesi için daha uygun ve daha iyi çevre koşullarinin saglanmasi idi. Aranilan işletim sistemi, özellikle çok karmaşik yapili yazilimlarda, programcinin gereksinimlerine yanit verebilecek tüm özellikleri kapsamaliydi.
UNIX'in tarihçesi 1960'lı yılların sonunda Bell laboratuvarı programcılarından Ken Thompson'un çalışmalarıyla başlamıştır. Thompson ve arkadaşları işletim sistemi Multics olan GE645 bilgisayarlarını kullanıyorlardı. UNIX işletim sisteminin ilk tasarımı 1961 yılında Ken Thompson, Dennis Ritchie ve R.H. Canaday tarafından geliştirilmeye başlandı. Thompson daha çok kütük sistemi, Ritchie ise aygıt kütükleri ile uğraştı. Bu aşamada işletim sistemi bir kaç kez denendi. Fakat kullanılmakta olan GE645 bilgisayarının laboratuvarda ömrünün tükenmesi üzerine çalışmalara son verildi.
1969' da Thompson uzay yolculuğu isimli bir proje geliştirdi. Projeyi önce Multics'de yazdı daha sonra GECOS işletim sistemi için fortran diline çevirdi. Bu program güneş sisteminin hareketi, gezegenler ve ayın görüntüsünün elde edilmesi gibi birçok işlemi yapabiliyordu.
Buna rağmen, donanımın yeterince uygun olmaması ve yüksek maliyetler nedeniyle programın GECOS modeli başarısız olmuştur. Bunun üzerine Thompson, o günün koşullarında görüntüleme işlemlerinin kusursuz sayıldığı PDP-7 bilgisayarını kullanmaya başladı. Üzerinde çalışılan bilgisayar sistemi uzay yolculuğu programı için ugun bir donanım olmasına karşılık, gelişmiş programları destekleyebilcek güçte bir işletim sistemine sahip değildi. Thompson bu eksikliği gidermek üzere PDP-7 assemblerinde bir işletim sistemi yazmaya koyuldu. Ortaya çıkan işletim sistemi çoklu değildi ve bu nedenle de 1970 yılında Brian Kernighan tarafıbdab UNIX olarak adlandırıldı.
PDP-7'nin UNIX işletim sisteminin günümüzdekilerden en önemli farki, tanimlarinin olmamasi ve çalişan dizin'e göre basit isimlerle her kütük isminin sisteme degişlen olarak tanitilmasidir. Buna ragmen yapisal olarak günümüz UNIX'inde oldukça yakin oldugu söylenebilir.
UNIX işletim sistemi bu kez 1971'de Ritchie tarafindan PDP-11 model bilgisayari üzerinde geliştirildi. UNIX'in bu modeli, öncesine oronla daha kullanişli idi.
UNIX'in başarisi, C programlama dilinin gelişimi ile oldukça yakin ilişkilidir. UNIX'in sonraki modelleri hep bu programlama dili ile yazilmiştir. UNIX işletim sistemi başlangiçta assembler ile yazilmasina karşilik, daha sonra Thompson'un B (imla hatasi yok :) ) dilinde ve 1973'de Ritchie tarafindan C dilinde yeniden yazilmiştir.
Bu işletim sisteminin assebler dili dişinda C ile yazilmasi, kuşkusuz UNIX'e ana karakteristigini oluşturan bazi özellikler kazandirmiştir. C programlama dili herhangi bir donanima bagli olmadigina göre, C ile yazilan UNIX işletim sisteminin de donanima bagli olmayacagi olgusu ortaya çikti. O halde UNIX sistemden sisteme taşinabilirdi.
1977'de PDP-11'e donanım olarak hiç benzemeyen Interdata 8/32 bilgisayar sistemlerinde UNIX denendi ve başarılı sonuçlar elde edildi.
UNIX 1977 yılına dek öncelikle üniversiteler ve araştırma kurumlarında kullanıldı. Ticari çevrelerde ise bir boşluk sözkonusuydu. Bu dönemlerde Bell laboratuvarlarına sahip AT&T firmasının lisans kullanımı konusundaki tutumu ticari gelişmeleri engellemiştir. AT&T 1981 yılından itibaren yeni lisans koşullarını duyurduktan sonra UNIX, ticari alana da girmeye başladı. UNIX'in bir ticari işletim sistemi olarak kabul edilmesi ancak 1983 yılından sonra olmuştur.

0 yorum  

Mikroişlemciler

Mikroişlemciler

Bir mikroişlemci programlari çaliştiran herhangi bir yongadir. Mikroişlemciler ayrica aritmetik işlemleri, karşilaştirma işlemlerini ve veri transferi gibi işlemleri de gerçekleştirirler.
Mikroişlemcilerin tarihi entegre devrelerle başlar.
İlk entegre devre (Integrated Circuit) 1960'lı yılların başında geliştirilmiştir. Baskılı devre teknolojisinin ilerlemesiyle kısa zamaniçinde çok sayıda devre elemanlarının tekbir yonga üzerinde yeralması sağlanmış ve 1970'li yılların başında 8008 mikroişlemci geliştirilmiştir. Mikroişlemcilerin (microprocessor) geliştirdiği bu teknolojiye büyük çapta tümleşme (VLSI-Very Large Scale Integration) denir.
Mikroişlemcilerin ardindan ROM ve RAM bellek devrelerinin de tekbir yonga üzerinde üretilmeleri mikrobilgisayarlarin diger bir degişle kişisel bilgisayarlarin geliştirilmesine yol açmiştir.
1974 yılında ise daha gelişmiş 8080 mikroişlemci geliştirilmiştir. Bu arada genişleyen pazara Z-80 mikroişlemcisi de girmiş ve mikrobilgisayarların geliştirilmesi için rekabeti de olan bir ortam hazırlamıştır.
Daha sonraki yıllarda; 1978 yılında 8086 mikroişlemci geliştirilmiştir. Ardında yeni değişikliklerle 8088 ortaya çıkmıştır. 8088 mikroişlemcisi 1980'li yıllarda bir çok kişisel bilgisayar üreticisi tarafından kullanılmış çok yaygın kabul görmüştür. 8088 mikroişlemcisine yardımcı olarak 8087 yardımcı işlemci geliştirilmiş böylece ana işlemcinin yanısıra yardımcı işlemci ile özel uygulamalarda daha başarılı olunmuştur.
Intel firmasının geliştirdiği bu mikroişlemciler 80 serili mikroişlemciler ailesini oluşturmuştur. Aile böyle kalmamış, 1984 yılında daha gelişmiş bir işlemci olan 80286 mikroişlemci geliştirilmiştir. 80286 mikroişlemci 8086 ve 8888 mikroişlemcilerle uyumlu olmakla birlikte bellek koruma, birçok işin yönetimi ve sanal bellek kullanımı gibi yeni olanaklara da sahiptir.
Kişisel Bilgisayar Modeli Mikroişlemci
PC 8088
PC/XT 8088
PC/AT 80286
Daha sonra 80386 ve 80486 mikroişlemcileri geliştirilmiştir. Şuanda en son 80586 Pentium işlemciler geliştirilmiştir.
Mikroişlemciler yalnizca belli aritmetik/mantik ve denetim işlemlerini yaparlar. Bilgisayarin karmaşik olarak gerçekleştirdigi bütün uygulamalar aslinda bu temel işlemlerle yapilir. Mikroişlemci ayni zamanda sinyaller göndererek ana bellegi de kontrol eder. Mikroişlemci ana bellek ile diger elemanlar arasinda taşitlar araciligiyla veri alişverişi yapar. Bir mikroişlemcinin temel özelliklerinden birisi de onun sözcük uzunlugu ve hizidir. Kişisel bilgisayarlarda kullanilan 8086 ya da 8088, 80286, 80386 ya da 80486 mikroişlemcilerin degişik sözcük uzunluklari ve hizlari vardir.
8088 ve 80286 mikroişlemcileri 16bit uzunlugunda sözcükler halinde verileri işlerken 80386 ve 80486 mikroişlemciler 32bit uzunlugunda sözcük işler. Bu nedenle 80386 ve 80486 mikroişlemcileri digerlerine göre çok daha hizlidirlar. Bunun dişinda 80286 ve gelişmiş diger mikroişlemciler sanal bellek alanlarini kullanimini olanakli kilarlar. Ayrica korumali mod (protected mod) denilen olanakla da çok-kullanicili ya da çok-iş düzeni olan işletim sistemlerinin ana bellekte bir çok işi ayni anda yapmalarini olanakli kilinmaktadir. Bu ifadelerin işigi altinda mikroişlemci gereksiniminin biraz da işletim sistemi ve uygulama alanina göre uyumlu yapilmasi gerektigini söyleyebiliriz.
Bir mikroişlemci herhangi bir işlemi yaparken onu kendi dilinde ve kendi komut setinde yeralan komutlarla belli sayida adimla yapar. Bu temel komutlar makine dili komutlari denirlir. Bu komutlar ayni zamanda Assembly dilininin komutlarina da eşdegerdir.
Bir mikroişlemcinin belli bir hizi vardir. Bu hiz Mhz olarak ölçülür. 8088 mikroişlemcinin 1 saniyede yaptigi işlemleri söyle sayabiliriz.
. 1 milyon kez iki sayıyı birbiriyle toplayabilir.
. Ortalama yarım milyon sayıda motu yürütür.
Aşagidaki tabloda adi geçen mikroişlemcilerin hiz, sözcük uzunlugu ve adresleyebildikleri ana bellek kapasiteleri yeralmaktadir:
80xxx Mikroişlemci Ailesi:
Özellik 8086/8088 80286 80386 80486
Hız (Mhz) 4.77 - 12 8 - 16 16 - 33 25 - 50
Yazmaç (bit) 16 16 32 32
Kullanabildiği 1 MB 16 MB 4 GB 4 GB
bellek
Mikroişlemciler işlemlerinde geçici bellek alani olarak ya da ara toplam alanlari olarak üzerlerinde yeralan yazmaçlari (register) kullanirlar.
Mikroişlemciler belli sayisal formattaki verilerle işlem yaparlar. Işaretli sayilari işleyebilir ve verileri bellekte yanyana yerleştirebilirler.
Aşagidaki tabloda 8080 ile 809386 işlemci ile işlenen veri formatlari yeralmaktadir :
Bit İşaret Onlu Onaltılı
8 Yok 0 - 255 OHH - FFH
8 Var -128 - +128 80H - 7FH
16 Yok 0 - 65,535 0000H - FFFFH
16 Var -32,768 - +32,767 8000H - 7FFFH
32 Yok 0 - 4,294,967,295 00000000H - FFFFFFFFH
32 Var -1147483468 +2147483647 00000000H - 7FFFFFFFH
80286 mikroişlemci PC/AT, PS/2 serisi ve diger uyumlu kişisel bilgisayarlarda yaygin olarak kullanilan 16-bitlik bir işlemcidir. 80286 mikroişlemcisi 8088 göre çok hizlidir.
80286 mikroişlemcisinin en önemli özelligi çok görevli (multi-tasking) olmasidir. Bu özellik 80286'nin ayni anda birçok işi yerine getirebilcegi ve çok kullanicili olarak kullanilabilecegi anlamina gelir. 80286 mikroişlemcisinin bu özelliginin kişisel bilgisayara yükleme işletim sistemi ile de ilgisi vardir. Örnegin MS-DOS işletim sistemi tek kullanicili bir bir işletim sistemidir. Dolayisiyla programcilar 80286'nin çok-görevlilik özelliginden yararlanarak uygulama geliştirmezler. Ancak UNIX ve XENIX gibi, kişisel bilgisayarlarda 80286 işlemci ile çalişan çok -kullanicili (mult-user) işletim sistemi vardir.
80286 mikroişlemci çok-kullanicili işletim sistemlerine de uyum saglayan üstün özelliklere sahip bir mikroişlemcidir. 80286 mikroişlemci özünden bellek-koruma (mermory-protection) özelligine sahiptir; işletim sistemi, işleri ve verileri bellekte korur. 8088 mikroişlemci de çok görevliligi başarabilir ancak bu çok karmaşik programlarla yerine getirilebilir.
80286 mikroişlemcinin iki tür çalişma biçimi vardir:
1. Gerçek mod (real mod)
2. Korumalı mod (protected mod)
Gerçek modda çalışan 80286, 8088 gibi 1 Megabyte bellek alanına aynı şekilde ulaşır. Korumalı modda ise 80286 ana belleğin belli kısımlarını çalışmakta olan program için ayırır (atar). Böylece programlar ana bellekte kendileri için ayrılmış ve korunmuş ana bellek alanlarında birbirine karışmadan çalışır.
80286 mikroişlemci 10Mhz. hizinda çalişir. Bu hiz 5Mhz. hizinda çalişan 8086 mikroişlemcisinin 6 kat daha hizli anlamindadir. 80286 mikroişlemci, 8086 ve 8088 işlemcilerle çalişan bütün programlari çaliştirir.
80386 mikroişlemci 80286 ve 8088N e göre daha güçlü bir mikroişlemcidir. 8088'in özelliklerini ve 80286'nin koruma özelliklerinin tümünü içerir.
80386, 32-bitlik bir mikroişlemcidir. 32-bit uzunlugunda yazmaçlara sahiptir. 80386 mikroişlemci 80286 ve 8088'e göre daha geniş bir ana bellek alanini adresler.
80486 Mikroişlemci kendinden önce gelen 80386 ve 80286 mikroişlemcilerinden oldukça farklidir. 80286'dan sonra geliştirilen 80386 mikroişlemci 80286'nin yani kendinden önce gelenin gelişmişi olarak ortaya çikdi. Oysa 80486 mikroişlemci 80386'nin gelişmiş hali degildir.
80486 mikroişlemci 32-bitlik bir sözcük uzunluguna ve 32-bitlik iç ve diş veri yollarina sahiptir. 80486 mikroişlemci üzerinde 1.2 milyon transistör taşir. 80486 mikroişlemcinin en önemli özelliklerinden birisi aritmetik işlemci ya da yardimci işlemci olarak (coprocessor) adlandirilan ek işlevleri olan bu işlemciyi de içermesidir. Yani 80486 için bir 80487 yoktur.
80486 mikroişlemcinin sundugu diger bir özellik ilse 8 Kilobayt'lik önbellek (cache memory) dir. Bu ön bellek sayesinde 80486 ana bellek ile olan veri alişverişini daha hizli yapar. 80386 mikroişlemcide oldugu gibi 80486 da 80486 SX modeline sahiptir. 80486 SX hizi daha yavaş ve yardimci işlemcisi içinde bulunmayan bir 80486 dir. Gerçek 80486 bu işlemci 80486 DX olarak adlandirilir.
Matematik işlemci ya da aritmetik işlemci olarak adlandirilirlar. Adil mikroişlemciye bagli olarak çalişan bu işlemcilere yardimci işlemci (coprocessor) de denir. Asil işlemcinin 100 komut ile gerçekleştirdigini yardimci işlemciler 1 komutta gerçekleştirebilir.
8088, 80286 ve 80386 mikroişlemciler tamsayilarla (integers) işlem yaparlar. Bu işlemcilere sahip bilgisayarlarda bazi programlar kendi kayan-noktali (floating-point) işlemlerini bir dizi tamsayi ile işlem yaparak yerine getirirler. Dolayisiyla bu işlem zaman alir.
Yardımcı işlemciler kayan-noktalı aritmetik işlemleri hızlandırmak için bir çözümdür.
Yardımcı işlemciler kayan-noktalı sayıların kullanımı ile trigonometri, logaritma ve üslü aritmetik gibi matematiksel işlemleri daha az işlemle yapılmasını sağlar. Bu olanakları ile yardımcı işlemciler çalışma tablolarında, veri tabanlarında, grafik uygulamalarında, çizimlerde ve CAD uygulamalarında, masaüstü yayıncılık uygulamalarında çeşitli gereksinimlerinde kullanılır.

0 yorum