Home  Articles  Programs 

İşletim Sistemleri ve CP/M

Mikro bilgisayarınızın klavyesini kullanarak bir program yazmaya başladığınızda ya da bir programı kullanarak komutlar girdiğinizde, genelde bir işletim sistemi ile iletişim kurduğunuzu söyleyebiliriz. Hesaplama biçimleri için işletim sistemlerinin bir temel yapı oluşturduklarını belirtmek yanlış olmaz. İşletim sistemleri, bilgisayar sisteminin tümünü kullanıcılar için yararlanabilir ve erişilebilir kılarlar.


İşletim Sistemlerinin Yapısı

Bilgisayar kullanıcısı için yazılımın önemi herkesçe bilinmektedir. Donanım özellikleri ise, bir bilgisayarın kendine özgü potansiyel gücünü ve kapasitesini belirler. Kullanıcının donanım üzerindeki gerçek denetimini, işletim sistemi yardımıyla bilgisayar programları sağlar.

Bu başlık altında ”İşletim Sistemi", "İşletim Dalı" ya da "Monitör" (İng. Operating Systems) adı verilen özel sistem programlarını ele alacağız. Bir işletim sistemi, bir bilgisayarın doğru ve verimli çalışması için zorunlu yazılımlardan (program topluluklarından) biridir. Diğer yandan işletim sistemleri, bir bilgisayarda kullanılabilecek programlama dillerine destek sağlarlar. Ayrıca kullanıcının klavye aracılığıyla (daha genel olarak söylendiğinde terminal) yazdığı değişik komutları alır, yorumlar ve işlerler.

Bir işletim sistemi, değişik görevleri yerine getiren çok sayıda, küçük programlardan ve bunları birbirine bağlayan mantıksal düzenden oluşur. Bu programların her birinin işleyiş sırasında ayrı ayrı görevleri bulunmaktadır. Bu görevler, özel amaçlı uygulamalardan çok, bilgisayar sisteminin doğası ile ilgilidir. Sistemin genel yapısı içinde, bu programların düzenli ve ilişkili çalışması sağlanmıştır. İstenilen görevlerin yerine getirilebilmesi için işletim sisteminin kullanıcı tarafından uyarılması gerekir. Uyarı işlemi, farklı görevleri yerine getiren küçük programların çalışmasını sağlamak amacıyla yapılır. Bu amaca ulaşmak için gereken komutlar, iki farklı yoldan verilebilir:

1) Komutlar, terminalden (örneğin klavyeden) girilebilir;

2) Komutlar, programlama dillerinin deyimleri kullanılarak bilgisayarın içine (belleğe) yerleştirilebilir.

Kullanıcının istemi doğrultusunda değişik programları etkin (çalışır) hale getirecek olan komutlar, işletim sistemi tarafından yorumlanır ve işlenir.

Bu tür işleyişin örnekleri aşağıda listelenmiştir:

1) Terminalden (örneğin klavyeden) verilerin alınıp belleğe yerleştirilmesi,

2) Dış bellekten (örneğin diskten) bilgi okunması, dış belleğe bilgi yazılması,

3) Bellekten alınan bilginin dış ortama (örneğin bilgiyazara) aktarılması,

4) Dış belleğin bir bölümünden alınan bir kütüğün bir diğer bölüme aktarılması.

Yukarıda sözü edilen işlemlere benzeyen birçok işletim sistemi fonksiyonu bulunmaktadır. Bunların tümünün amacı, bilgisayarın kullanıcı tarafından daha etkin ve daha verimli kullanılabilmesi, bilgisayar sisteminin elektronik, elektromekanik ya da mekanik yapısı üzerinde kullanıcının egemenlik düzeyinin aktarılmasıdır.

Anlaşıldığı gibi işletim sistemi, bilgisayarı oluşturan fiziksel birimlerin doğrudan denetlenmesini sağlar. Donanımın donanım tarafından fiziksel olarak denetlenmesi ise bilgisayar yapımcısı tarafından belirlenir. Kısaca özetlemek gerekirse işletim sistemi, 1984'ü yazarı George Orwell'in deyimiyle bilgisayarın "büyük ağabeyi"dir. Tüm bilgisayar donanımı, işletim sisteminin denetimi altında çalışır.

Belirli bir mikro bilgisayar düzenlemesi için hazırlanmış bir işletim sistemi, farklı bir donanım ile birlikte çalışmayabilir. Örneğin yalnızca disk ortamı ile çalışmak üzere hazırlanmış bir işletim sistemi, manyetik şerit (kaset teyp) ortamına destek sağlamaz. Çünkü manyetik şerit ortamı adı geçen işletim sistemi için tanımlanmamıştır.

Gerçekte bir işletim sistemi, bir bilgisayar programından (daha doğrusu bir bilgisayar programları örgüsünden) başka bir şey değildir. Bu nedenle, her program için sözkonusu olduğu gibi, bir işletim sisteminin de genel kullanıma sunulmadan önce sağlıklı bir deneme sürecinden geçmiş olması gerekir. İşletim sistemleri genellikle, alt düzey diller grubuna giren "assembly dilleri" kullanılarak yazılırlar. Bu dillerin tercih edilmesindeki temel etken, işlem hızının yüksekliği ve minimum bellek alanının harcanmasıdır. Dolayısıyla bir işletim sistemini oluşturmanın ya da ona destek verici yeni programlar yazmanın, belirli. bir donanım-yazılım uzmanlığı düzeyini gerektirdiği kendiliğinden ortaya çıkmaktadır.

Birçok bilgisayarda (örneğin Commodore 64'te) işletim sistemi komutlarını yerine getiren programlar, ROM (salt-oku bellek, İng. Read Only Memory) adı verilen bellek üzerinde saklanırlar. Genellikle bu tür işletim sistemlerinde, sistemin özellikleri ve komutları, yüksek düzeyli bir programlama dili ile (örneğin C-64'te BASIC yorumlayıcı dili ile) içiçe geçmiş durumdadırlar. Deneyimsiz ya da amatör bir kullanıcı çoğu zaman bir ana programla karşı karşıya olduğunu kavrayamaz. Disk kullanan bilgisayar sistemlerinde ise genel eğilim, işletim sisteminin diskin özel alanlarına yazılarak saklanmasıdır. Bilgiler, genel olarak disk dediğimiz ortama manyetik olarak kaydedilirler. Kayıtlar (İng. records), iz (İng. track) denilen ve manyetik olarak belirlenmiş halkalar ve bunların bölünmesiyle oluşan iz parçaları, sektörler (İng. sector) üzerine yazılırlar. Disk özellikli işletim sistemlerinde, işletim sistemine ilişkin bilgileri depolamak amacıyla diskin (sert diskin ya da disketin) bazı izleri ayrılır. Kullanıcı bu izleri kendi bilgilerini koymak amacıyla (en azından olağan koşullarda) kullanamaz. Bu izlerde depolanmış işletim sistemine ilişkin bölümler, gerek duyulduğu zamanlarda diskten belleğe kopya edilerek kullanılır. Çoğu zaman işletim sistemi, ROM bellek ve disk üzerinde paylaştırılmış olarak bulunur. Disk üzerindeki sistem izleri, bu gibi durumlarda ROM'daki ve diskin üzerindeki diğer işletim sistemi programlarını etkin hale getirmek ya da işletim sistemini başlatmak (İng. boot) üzere kullanılır. Özetleyerek olursak:

Bir işletim sistemi, bilgisayarınızı açtığınızda ilk ve kapatırken son kullandığınız programdır.


İşletim Sistemlerinin Tarihsel Gelişimi

İşletim sistemleri, öncelikle makro (büyük) ve mikro bilgisayar sistemlerinde kullanılmak üzere geliştirilmiştir. Bu tür bilgisayarlarda işletim sistemi, farklı amaçları olan çok sayıda kullanıcıya hizmet vermeyi amaçlar. Böylesi işletim sistemlerinin hazırlanması, uzun süreli takım çalışmasını gerektirir. Bu nedenle iyi hazırlanmış ve verimliliği genel kabul görmüş işletim sistemlerine sahip bilgisayarların tercih edilmesi şaşırtıcı değildir. Dolayısıyla işletim sisteminin bilgisayarın donanımıyla aynı düzeyde önemsenmesi yanlış olmayacaktır. Böylece yazımızın ilerki bölümlerinde ele alacağımız, 8-bit makineler için son derece gelişmiş bir işletim sistemi olan CP/M Plus (CP/M 3)'ın örneğin Commodore 128/128D'yi neden C-64'ten çok değişik bir düzeye, "ciddi" bir bilgisayar düzeyine yükselttiği kendiliğinden ortaya çıkmaktadır.

Bir işletim sisteminin hazırlanması, daha az deneyimli programcı-meraklılar için olanaksız bir iş olmamakla birlikte, herhangi bir uygulama programının yazılması kadar da kolay değildir. Bu nedenle mikro bilgisayarın fiyatı ile karşılaştırıldığında, işletim sistemine ödenen miktar önemli bir oran oluşturur. Fakat Commodore 128D gibi bir mikro bilgisayar aldığımızda, işletim sisteminin bedeli makine fiyatına eklenmiş olduğundan, ayrı bir ödeme yapmamız gerekmez.

İşletim sistemleri kimi zaman bilgisayar yapımcısı firmalar tarafından hazırlanmakla birlikte, özel olarak bu iş üzerinde çalışan bazı yazılım firmaları da (örneğin MS-DOS'u yazan Microsoft gibi) vardır. Bu tür firmalar arasında ismi hemen akla gelenlerden biri de ABD kökenli Digital Research Inc. şirketidir. Bu şirket, Zilog Z80 ve Intel 8080, 8085 işlemcilerini kullanan mikro bilgisayarlar için CP/M hizmet dilini hazırladı. CP/M adı, İngilizce "Control Program ve Microprocessors" sözcüklerinin baş harflerinden oluşturulmuştur. Bugün CP/M işletim sisteminin pek çok versiyonu dünya üzerinde yaygın biçimde kullanılmaktadır. Esnek disk (disket) sistemlerine destek veren ilk işletim sistemlerinden biri CP/M'dir.

CP/M sisteminin geliştirilmeye başlandığı yıl 1973'tür. Digital Research firmasının kurucularından biri olan Gary Kildall, bu yıllarda Intel firmasında danışman-yazılımcı olarak çalışmaktaydı. CP/M'e ışık tutan ilk çalışmaların amacı, programcılar için yazılım kolaylığı sağlayacak bir servis programları (İng. utilities) paketinin oluşturulmasıydı. Bu paket, programlama dillerinden ve programları hatalarından arındıracak servis programlarından oluşmaktaydı. Esnek disk kullanımının ve Intel'in ürettiği 8080 mikro işlemcisinin giderek benimsenmesi, CP/M konusundaki çalışmaları hızlandırdı ve CP/M, en yaygın mikro bilgisayar işletim dillerinden biri oldu.

Etkin kullanımı olan çok sayıda farklı işletim sistemi varolmakla birlikte, CP/M'in gelişim perspektifi, iyi bir sistemin bilgisayarlar için ne denli önemli olduğunu açıkça ortaya koyar. Program geliştirmeyi amaçlayan özel CP/M programları bir yana bırakılırsa, bugün artık pek çok programcı uygulama yazılımlarını doğrudan CP/M altında çalışabilecek biçimde hazırlamaktadırlar.

80'li yılların hemen başlarında CP/M o denli ilgi gördü ki, işletme ve endüstri yönelimli bilgisayar kullanımı için bir standart işletim sistemi olarak kabul edildi. Fakat bu tür bilgisayar uygulamalarının doğası standartlar koymaya uygun olmadığından, bu kabul, aşırı bir önemseme olarak da değerlendirilebilir.

Diğer yandan, işletim sistemleri, belli mikroişlemciler ve mikro bilgisayarlar için özel olarak yazılmaktadırlar. Dolayısıyla programlama dilleri konusunda geliştirilen standardizasyon yaklaşımının işletim dilleri için gerekli olması beklenemez. Aşağıda bazı işletim sistemleri örnek olarak verilmektedir:

İşletim S. : Mikrobilgisayar     : Yazılımcı firma
NEWDOS     : Tandy TRS 80 (Z80)  : Apparat Inc.
APPLE DOS  : Apple II (6502)     : Apple Comp. Co. Inc.
SOS        : Apple III (6502)    : Apple Comp. Co. Inc.
CDOS       : Cromemco (Z80A)     : Cromemco Inc.
P/OS       : Professional (F-11) : Digital Equipment Corp.
CP/M       : (8080 ya da Z80)    : Digital Research
XENIX      : (Z80/Z8000/68000)   : Microsoft Inc.
OASIS      : (Z80/Z8000/8086)    : Phase One Systems Inc.
UCSD-P     : (değişik)           : Softech Microsystems
MS/DOS     : (8086/8088)         : Microsoft Inc.

CP/M işletim sistemi, zaman zaman değişikliklere uğramakla birlikte pek çok yapımcı firma tarafından üretilen bilgisayarlara uygulanmıştır. Örneğin Commodore Firması'nın ürettiği C-128 + disket sürücü veya C128D mikro bilgisayar sistemlerinde CP/M'in en son versiyonu olan CP/M Plus (CP/M 3) işletim sistemi kullanılabilmektedir. Diğer yandan başka firmalar da CP/M'i andıran farklı işletim sistemleri yazmışlardır.

İşletim sistemi üreten farklı yazılım firmaları, ürünlerinin, her biri farklı bir no ile adlandırılan versiyonlarını da üretmektedirler. Bugün CP/M'in, 1.4, 2.0, 2.2 ve Plus (3.0, 3.1) olarak adlandırılan farklı versiyonları kullanılmaktadır. Bu no.lar, genellikle programda yapılan önemli değişiklikleri ifade ederler. Yapılan bu değişiklikler bazen önemli boyutlara vardığından, yüksek no.lu versiyonlara uygun olarak yazılan kimi uygulama programları daha düşük düzeyli (no.lu) versiyonlarda çalışmayabilir. Örneğin CP/M Plus, daha önceki yaygın versiyon olan 2.2'ye oranla oldukça farklı bir görünüm vermektedir.

İncelememizde doğal olarak tüm işletim sistemlerinin tüm versiyonlarını ele almayacağız. Bu yazının amacı, işletim sistemlerinin genel bir tanıtımını yapmanın yanısıra CP/M sisteminin gelişmiş biçimlerinden biri olarak bugün yaygın bir kullanıma erişmiş olan CP/M Plus'ı tanımaktır. Gerçekten de bir işletim sisteminin iyi ve doğru kavranması, bu sistem altında çalışan bir programın diğer bir sisteme uygulanmasını son derece kolaylaştıracaktır.

Bir işletim sistemi kullanıcısı olarak bilmeniz gereken, sistemin ne yapabileceğidir; nasıl yaptığı değil... (Bu sözümüz, çoğu zaman bir uzmanın pabucunu dama attırabilecek ölçüde yetenekli bilgisayar ve işletim sistemi korsanlarına (!) değil). Kullandığınız bilgisayar sisteminde disk yoksa, bu, işletim sisteminin ROM bellek üzerine yerleştirildiği anlamına gelir. Diğer yandan bu sistemin nasıl kullanılacağı konusunda gereken bilgi, makine ile birlikte verilen yazılı döküman içinde bulunmaktadır. Daha sonraki dönem içinde bilgisayar sisteminize disk gibi önemli bir donanım eklendiğinde, gerekli ek yazılımı ve dökümanları birlikte alacaksınız.

Bu arada satır arasına şunları sıkıştırmadan geçmek istemiyorum: Eğer yukarıda sözünü ettiğimiz türden bir işletim sistemi ve disk korsanıysanız ve elinizin altında CP/M Plus çalışabileceğiniz bir Commodore 128 ya da Commodore 128D varsa, aşağıda belirttiğim dökümanları muhakkak edinin; CP/M Plus konusundaki ufkunuzun açıldığını hissedeceksiniz. Sıralayalım:

1) The Anatomy of the Commodore 128 First Publishing Ltd.

2) The Anatomy of the 1571 Disk Drive First Publishing Ltd.

3) CP/M Plus Operating System Digital Research Inc.

4) CP/M Operating System (Ver.2.2) Digital Research Inc.

5) The CP/M Software Bus Sigma Press

6) The 1571 Disk Drive User's Guide Commodore Ltd.

Hiç kuşkum yok, Teleteknik'teki dostlar bu yayınların sağlanmasında yardımcı olacaklardır.

Devam edelim. Disk temelli bir işletim sistemi, gerekli tablo ve programları yerleştirebilmek amacıyla yeterli miktarda RAM (Rasgele Erişimli Bellek, lng. Random Access Memory) belleğe gereksinim duyabilir. Zorunlu bellek miktarı, işletim sistemini tanımlayan ve açıklayan yazılı dökümanda belirtilmiştir. Unutulmaması gereken bir nokta, burada sözü edilen bellek gereksinmesinin, işletim sisteminin kendisine özgü olduğudur. Kullanıcı tarafından yazılan uygulama programlarının bellek gereksinimi bu miktarın dışındadır. Gelişmiş disk işletim sistemleri, genellikle 48 Kb RAM bellek üzerinde çalışabilirler. Daha küçük çaplı sistemler arasında 16 Kb RAM bellek ile yetinenler de vardır.


İşletim Sistemi Ne Yapar?

Bir işletim sistemi bellibaşlı altı ayrı fonksiyonu gerçekleştirir:

1) Giriş/çıkış denetimi (İng. Input/Output Control).

2) Birim (aygıt) bağımsızlığı (İng. Device independence),

3) Programlama dilleri ve program geliştirilmesi için destek,

4) Kütük (dosya) düzenleme işlemleri (İng. Filing system),

5) İş kuyruğu (İng. spooling) işlemleri,

6) Servis programları (İng. Utilities).

Çoğu durumda bilgisayar, bir dış donanım biriminden bilgiyi byte'lar halinde almak durumunda kalır, örneğin her seferinde bir byte. Eğer bu giriş işlemini işletim sisteminin özel program(cık)larını kullanmadan biz yapsaydık, dış donanım birimi ve bilgisayar arasındaki eşzamanlamayı (senkronizasyonu) da bizim gerçekleştirmemiz gerekecekti. Dolayısıyla uygulama programımız, dış birim ile bilgisayar arasında alışverişi sağlamayı amaçlayan bir sürü komutla dolacaktı. Bu sorunu ortadan kaldırmak ve giriş/çıkış işlemlerini kolaylaştırmak amacıyla işletim sisteminin içine giriş ve çıkışı denetleyen programlar eklenmiştir. (Eşzamanlama dediğimiz sorunun ne denli büyük bir sorun olduğunu, bilgisayarlararası haberleşme yapmayı deneyen ya da diski denetleyen denetim devresini sistem programları yazarak kurcalayan korsan dostlar pek iyi bilirler...)

Belirttiğimiz gibi bir dış donanım birimi ve bilgisayar arasındaki iletişim (arabağlantı, arabirim, İng. interface), işletim sistemi tarafından sağlanır. Sistem, destek verdiği değişik donanım birimlerinin özelliklerini kendisi değerlendirir. Örneğin bir BASIC programı yazdığımızda, bu program içinde geçen "print”, "input", "load", "save" gibi deyimlerin karşılıkları olan sistem programcıkları, gereken yerlere işletim sistemi tarafından yerleştirilir. Örneğin BASIC programlama dilindeki "print" deyiminin hangi programcık tarafından gerçekleştirildiği tümüyle sizin dışınızdadır ve bu desteğin sağlanması sistem özellikleri uyarınca işletim sisteminin görevidir. Program deyimlerinin fiziksel donanımdan bağımsızlığı, işletim sistemlerinin sağladığı temel yararlardan biridir.

Küçük ve ucuz mikro bilgisayar sistemleri, genellikle (donanım ve yazılım eklemeleri yapılmaksızın) bir ya da programlama dili için destek verir. Daha büyük sistemler ise yorumlayıcı (İng. interpreter) ve derleyici (İng. compiler) türlerinde olmak üzere alt (assembly) ve üst (BASIC, COBOL, PASCAL vb.) düzey dillerinin daha zengin kullanımına olanak tanırlar. Bu işletim sistemi tarafından destek sağlanan program dillerinin çokluğu, sözkonusu işletim dili için olumlu bir puandır. Örneğin CP/M işletim sistemi, CBASIC MBASIC, COBOL-80, CIS COBOL, FORTRAN-80, PASCAL 2, TURBO PASCAL, HISOFT C, ASM, M-80, MAC gibi programlara destek verir.

Yardımcı (dış) bellek kullanan her mikro bilgisayar sistemi, kütük işlemlerini gerçekleştirecek bir yazılım sistemine gereksinim duyar. Kütük işlemleri ile ilgili kurallar ve varsayımlar, işletim sistemi tarafından belirlenir. Dolayısıyla aynı işletim sistemini kullanan tüm kullanıcılar, aynı kütükleri farklı bilgisayar sistemleri içinde karşılıklı olarak aktarabilirler. Bir mikro bilgisayar sistemi içinde yapılan tüm kütük işlemleri, örneğin,

1) Bir kaynak programın (İng. source program) yazılması,

2) Bir programın derlenmesi (İng. compilation),

3) Sınama verilerinin üretilmesi,

4) Bir uygulama programının çalıştırılması,

5) Kütüklere bilgi yazılması ya da kütüklerden bilgi okunması ile ilgili işlemlerdir.

Her kullanıcının kendi kütük işleme programını yazması, açıktır ki, çok pahalı ve karmaşık bir iş olması nedeniyle tavsiye edilemez. Sağlıklı bir kütük işleme düzeni, ancak gelişmiş bir işletim sistemi tarafından sağlanmaktadır.

İngilizce "spooling" adı verilen "iş kuyruğu" olgusu, işletim sistemleri tarafından sağlanan fonksiyonlardan biridir. İş kuyruğu kavramının ortaya çıkması, dış donanım ya da çevresel gereçler olarak adlandırılan bazı birimlerin, hız yönünden mikro bilgisayara oranla çok yavaş kalmalarından kaynaklanmaktadır. Örneğin saniyede 300 karakter yazan bir noktamatris tipi bilgiyazar, 1 MHz hızında çalışan bir bilgisayara oranla olağanüstü yavaş sayılır. Dolayısıyla bilgisayar, bilgiyazar gibi hızı düşük birimlerle ortak çalışmanın verimini artırabilmek için bazı özel kütük işlemlerine gereksinim duyar. Bu kütük işlemlerinin tamamı, "iş kuyruğu" kavramı ile tanımlanmaktadır.

Pek çok amatör bilgisayar kullanıcısı için hız ve zaman aşırı derecede önemli olmamakla birlikte, özellikle işletmeye ve endüstriye yönelik uygulamalarda bunun önemli bir öge olduğu unutulmamalıdır. Kısacası birçok bilgisayar uygulaması için mikrosaniyelerin toplamı, oldukça uzun süreleri oluşturabilir. İyi bir işletim sistemi, mikro bilgisayarın ana ögesi olan mikroişlemcinin aynı anda değişik görevleri yerine getirebilmesine olanak tanır. Örneğin disk sistemi aracılığıyla bilgiyazarda bir kütük yazılırken, mikroişlemci aynı anda başka bir görevin gereğini yerine getirebilir. Böyle bir durum bilgisayar sisteminde iki işlemci olduğu izlenimini uyandırabilir. Bu nedenle iş kuyruğu yaklaşımı, eşzamanlı bilgisayar işletiminin bir örneği olarak belirtilebilir.

İngilizce "utilities" adı verilen servis programları, yapımcı firma tarafından işletim sistemi ile birlikte sağlanırlar. Bu programları, kullanıcı tarafından uygulama programlarının geliştirilmesi, denenmesi ve çalıştırılması amacıyla kullanılırlar. Bazı servis programları, doğrudan doğruya disk kullanımı ile ilgilidir. Örneğin yeni diskler, üzerlerinde herhangi bir bilgi taşımazlar. Bu nedenle yeni bir diskin üzerine bilgi yazılması ya da bu diskten bilgi okunmaya çalışılması, bir yazılım hatası ile sonuçlanır. Yani diskler üzerinde öncelikle bazı sistem alanlarının yaratılması gerekir. Bu işlemi ise servis programlarından biri olan "formatlama" programı sağlar. Bu ve benzeri servis programlarının sayısı ve becerileri, işletim sistemlerinin yeteneklerini belirleyen göstergeler arasındadır.

Bir işletim sistemi, kullanıcı tarafından yararlanılmak üzere birtakım komutlar sağlar. Her komut, işletim sistemini oluşturan bir program ile ilintilidir. Bir başka deyişle bu komutlar, sözkonusu işletim dilinin deyimleridir, anahtar sözcükleridir. Daha önce belirttiğimiz gibi, bazı bilgisayar sistemlerinde işletim sistemini oluşturan programlar ROM bellek üzerine yerleştirilmişlerdir. Sert (İng. hard) ve esnek (İng. floppy) olmak üzere disk kullanan sistemlerde ise işletim sistemi disk üzerinde bulunur ve gerek duyulan programlar RAM belleğe kopya edilerek kullanılırlar. Kopya işlemini, komutu algılayan işletim sistemi gerçekleştirir.


CP/M İşletim-Hizmet Sistemi

CP/M işletim sistemi, mantıksal olarak ayrılmış dört ana parçadan oluşur:

1) Temel G/Ç Sistemi (İng. BASIC I/O SYSTEM, BIOS)

2) Temel Disk İşletim Sistemi (İng. BASIC DISC OPERATING SYSTEM, BDOS)

3) Konsol Komut İşlemcisi (İng. Console Command Processor, CCP)

4) Geçici Program Alanı (İng. Transient Program Area, TPA)

CP/M'in en önemli özelliklerinden biri, makineye bağımlı olan bölümlerin "BIOS" başlığı altında toplanarak, genelde dilin (sisteminin) bilgisayar donanımından bağımsız kılınmasıdır. CP/M'in Intel 8080, 8085 ya da Zilog 80 kullanan ya da bunları simüle eden herhangi bir bilgisayarda kullanılabilmesi için yapılacak en önemli değişiklik, BIOS bölümünde gerçeklenecek donanım tanımlamalarıdır.

Diğer yandan CP/M, bir işletim sisteminden çok bir servis programları topluluğunu andırır. BIOS bölümü, donanım ile ilgili bağlantıyı sağlarken, kullanıcı ile iletişimi CCP bölümü gerçekleştirir. Giriş, çıkış ve uygulama programlarının denetimini ise BDOS sağlar.

CP/M'in gelişmiş biçimlerinden biri olan 2.2 versiyonunda, 27'si disk işlemleri ile ilgili olmak üzere toplam 40 fonksiyon bulunmaktadır. Her birinin çok değişik kullanım biçimleri ve fonksiyonları olmakla birlikte 8-bit bilgisayarlar için geliştirilmiş son CP/M versiyonu olan CP/M Plus'ın daha sonra ayrıntılarıyla ele alacağımız bellibaşlı komutları şunlardır:

COPYSYS, DATE, DEVICE, DIR, DUMP, ED, ERASE, GENCOM, GET, HELP, HEXCOM, INITDIR, LIB, LINK, MAC, PATCH, PIP, PUT, RENAME, RMAC, SAVE, SET, SETDEF, SHOW, SID, SUBMIT, TYPE, USER, XREF.

Dolayısıyla CP/M Plus, 200'den fazla servis programı olan Western Electric kökenli UNIX sistemine oranla daha küçük görünümlüdür. CP/M'in 2.2 versiyonu, yer artırımı nedeniyle yalnız 6 yerleşik (İng. built-in) komut kullanır. Bunlar, DIR, ERA, REN, SAVE, TYPE ve USER fonksiyonlarıdır. Diğer CP/M 2.2 servis programlarının (örneğin DDT, PIP, STAT, ED vb.nin) diskten RAM bellek üzerine kopya edilerek kullanılması gerekir. CP/M 2.2'nin yerleşik komutlarından DIR, ERA, TYPE, REN ve USER, bu özelliklerini CP/M Plus versiyonunda da devam ettirmektedirler.

CP/M, küçük görünümlü bir hizmet dili (işletim sistemi) olmasına karşın, komutları oldukça beceriklidir. Diğer yandan yazım (İng. syntax) ve sözdizim kurallarının öğrenilmesi yeterince kolaydır.

Bugün CP/M'in iki versiyonu yaygın olarak kullanılmaktadır: 2.2 ve Plus. Diğer versiyonlara örnek olarak, çok görevli ve çok kullanıcılı (İng. Multi-task/multi-user) sistemler için MP/M-86, 16-bit işlemlerle tek görevli tek kullanıcılı (İng. singletask/singleuser) sistemler için CP/M-86, yine 16bit işlemcilerle çok görevli tek kullanıcılı (İng. multi-task/single-user) sistemler için Concurrent CP/M-86 sayılabilir.


CP/M'in destek verdiği ve yaygın olarak bilinen kullanıcı programlama dilleri ve yardımcı yazılım şunlardır:

1) ASM (Intel 8080 Assembly dili, Digital Research)

2) M-80 (Intel 8080 ve Zilog 80 Assembly dili, Microsoft Inc.)

3) MAC (Intel 8080, 8085 Assembly dili, Digital Research)

4) BASIC-80 (Yorumlayıcı ve derleyici BASIC, Microsoft Inc.)

5) CBASIC (Ara-derleyici BASIC, Digital Research)

6) HISOFT C (derleyici, Hisoft)

7) TURBO PASCAL (derleyici, Borland)

8) CIS COBOL (derleyici COBOL, Micro Focus Ltd.)

9) COBOL-80 (derleyici COBOL, Microsoft Inc.)

10) FORTRAN-80 (FORTRAN derleyicisi, Microsoft Inc.)

11) PASCAL Z (derleyici PASCAL, Ithaca Intersystems)

12) AZTEC C (derleyici)

13) SMALL C (derleyici)

14) BDS C (derleyici)

15) ALGOL/M (ara-kod derleyici, CP/M User's Group)

16) PASCAL MT + (derleyici, Digital Research)

17) Wordstar (Metin işlem programı, MicroPRO)

18) dBASE II (veri tabanı programı)

19) SuperCALC (hesap tablosu programı, Sorcim)

20) DR.GRAPH (çizim programı, Digital Research)

.

kaynak: Teleteknik Commodore Dergisi, Sayı 11, Ocak 1987, sayfa 19-23

CP/M için kaynak web sitesi: http://www.cpm.z80.de/

CP/M Nedir yazısı: http://cbm.ficicilar.name.tr/commodore/cp-m-nedir

Teleteknik
01.01.1987

Keywords: Commodore Dergisi, C64, Commodore, CP/M, Yazılım, İşletim Sistemleri


C64 Projects Twitter Page

İlker Fıçıcılar's CBM Page