CP/İYS - CP/CMS

CP/İYS
IBM logosu.svg
geliştirici IBM Cambridge Bilim Merkezi
Yazılmış Montajcı (F)
işletim sistemi ailesi sanal makine
çalışma durumu Tarihi
Kaynak modeli Kaynak kodu (detaylar için metne bakın)
İlk sürüm Mayıs 1968 ; 53 yıl önce ( 1968-05 )
En son sürüm 3.2 / 1972 ; 49 yıl önce ( 1972 )
Uygun ingilizce
Platformlar IBM Sistemi/360-67 ; ayrıca sanal bellek donanımına sahip System/370 (orijinal S/370 modellerinde mevcut değildir); deneysel donanımda da kullanılır
Varsayılan kullanıcı arayüzü Komut satırı arayüzü
Lisans IBM Type-III Kitaplığı (kaynak kodu biçiminde ücretsiz, IBM müşterilerine ücretsiz, desteksiz)

CP/CMS ( Kontrol Programı/Cambridge İzleme Sistemi ), 60'ların sonu ve 70'lerin başında, mükemmel performansı ve gelişmiş özellikleriyle tanınan, üretimi durdurulan bir zaman paylaşımlı işletim sistemidir . Üç farklı versiyonu vardı:

  • CP-40 /CMS, CP/CMS sanal makine mimarisini oluşturan önemli bir "tek seferlik" araştırma sistemi
  • CP-67 /CMS, IBM System/360-67 için CP-40/CMS'nin yeniden uygulaması ve bu makalenin ana odak noktası
  • CP-370 /CMS, System/370 için CP-67/CMS'nin yeniden uygulaması - hiçbir zaman bu şekilde yayınlanmadı, ancak 1972'de duyurulan IBM'in VM/370 işletim sisteminin temeli oldu .

Her uygulama, selefinin önemli bir yeniden tasarımı ve ileriye doğru evrimsel bir adımdı. CP-67/CMS, yaygın olarak kullanılan ilk sanal makine mimarisiydi. IBM, M44/44X ( kısmi sanallaştırmayı kullanan ) ve CP-40 ( tam sanallaştırmayı kullanan ) araştırma sistemleriyle bu fikre öncülük etti .

VM ailesinin öncüsü olma rolüne ek olarak CP/CMS, işletim sistemi (OS) teorisinin geliştirilmesinde, IBM'in System/370'inin tasarımında, zaman paylaşımlı endüstride ve bir sistemin yaratılmasında önemli bir rol oynadı . bugünün özgür yazılım hareketini öngören kendi kendini destekleyen kullanıcı topluluğu .

Tarih

Temel CP/CMS mimari ve stratejik parametreleri, 1967'nin başlarında IBM'in Cambridge Bilim Merkezi'nde üretimde kullanılmaya başlayan CP-40'ta oluşturuldu. Bu çaba, karmaşık bir siyasi ve teknik ortamda gerçekleşti , uzun uzadıya tartışıldı ve ilk elden alıntılarla desteklendi. Wikipedia makalesinde CP/CMS Tarihi .

Kısaca:

  • 1960'ların başında, IBM, CTSS ve MIT'nin Project MAC gibi zaman paylaşımlı çabalarının odaklandığı bilimsel hesaplama üzerinde egemenliğini sürdürmeye çalıştı . Ancak IBM , şirketi farklı bir yöne götüren System/360 adlı devasa bir projeye girişmişti.
  • Zaman paylaşımı topluluğu, S/360'ın zaman paylaşımı yeteneklerinden yoksun olmasından dolayı hayal kırıklığına uğradı. Bu, Project MAC ve Bell Laboratories'de IBM'in önemli satış kayıplarına yol açtı . Başlangıçta Project MAC'i desteklemek için kurulan IBM'in Cambridge Bilimsel Merkezi (CSC), S/360 için bir zaman paylaşımlı işletim sistemi kurarak IBM'in zaman paylaşımlı güvenilirliğini yeniden kazanma çabasına başladı. Bu sistem sonunda CP/CMS olacaktır. Aynı ruhla IBM, zaman paylaşımlı özelliklere sahip bir S/360 modeli, IBM System/360-67 ve bir zaman paylaşımlı işletim sistemi TSS/360 tasarladı ve piyasaya sürdü . TSS başarısız oldu; ancak 360-67 ve CP/CMS, zaman paylaşımı konusundaki dahili siyasi çatışmalara ve IBM'in CP/CMS çabasını rafa kaldırmaya yönelik ortak çabalarına rağmen başarılı oldu.
  • 1967'de, CP/CMS üretim kullanımı, önce CSC'nin CP-40'ında, daha sonra Lincoln Laboratories'de ve diğer tesislerde CP-67'de başladı . 1968'de IBM Type-III Kitaplığı aracılığıyla kullanıma sunuldu. 1972'de CP/CMS birkaç sürümden geçmişti; 44 sistemde çalışan sağlam, kararlı bir sistemdi; bir S/360-67'de 60 zaman paylaşımlı kullanıcıyı destekleyebilir; ve en az iki ticari zaman paylaşımlı satıcı ( National CSS ve IDC ) CP/CMS teknolojisini kullanarak S/360-67 zamanını yeniden satıyordu.
  • 1972'de IBM, S/370 serisine VM/370 işletim sistemiyle birlikte sanal belleğin eklendiğini, S/370 için CP/CMS'nin yeniden uygulandığını duyurdu. Bu, sistem bir süre bağımsız varlığını sürdürmesine rağmen, CP/CMS sürümlerinin sonunu işaret etti. VM sürümleri, bir süre için kaynak kodunu içermeye devam etti ve VM topluluğunun üyeleri uzun süredir aktif katkıda bulunanlar olarak kaldı.

genel bakış

 CTSS 
> IBM M44/44X
>> CP-40/CMSCP[-67]/CMS  VM/370 → VM/SE sürümleri → VM/SP sürümleri → VM/XA sürümleri → VM/ESAz/VM
VP/CSS
> TSS/360
> TSO için MTV'nin → için OS / VS2 → için MVS → ... → için z / OS
>> MULTICS ve diğer birçok zaman paylaşım platformu

CP / CMS tarafından yaptırılmıştır IBM'in 'ın Cambridge Bilim Merkezi (CSC), bir araştırma ve geliştirme bağları olan laboratuvarda MIT öncülüğünde, Robert Creasy . Sistemin hedefleri, geliştirme süreci, sürümü ve çığır açan teknolojinin mirası, bu sistemi zamanının diğer işletim sistemlerinden ve diğer büyük IBM projelerinden ayırır. Bu bir oldu açık kaynak desteklenmeyen bir parçası olarak - hiçbir ücret ödemeden tüm IBM müşterilerine kaynak kodu biçiminde kullanılabilir hale, sistem IBM Type-III Kütüphanesi . CP/CMS kullanıcıları kendilerini ve birbirlerini desteklediler. Aşağıdaki Tarih bölümünde açıklanan olağandışı koşullar bu duruma yol açtı.

CP/CMS iki ana bileşenden oluşuyordu:

  • CP , Kontrol Programı , sanal makine ortamını yarattı. Yaygın olarak kullanılan sürüm CP-67 idi, S/360-67 üzerinde çalışıyordu. (Araştırma sistemi CP-40, mimariyi oluşturdu. Üçüncü bir sürüm olan CP-370, VM/370 oldu.) Geleneksel yaklaşım olan, bellek ve diğer kaynakları kullanıcılar arasında açıkça bölmek yerine, CP her kullanıcıya bir simüle edilmiş bağımsız Sistem/360 bilgisayar. Her sistem, çıplak makinede çalışan herhangi bir S/360 yazılımını çalıştırabildi ve aslında her kullanıcıya özel bir bilgisayar sistemi verdi.
  • CMS , Cambridge İzleme Sistemi (ve ayrıca Konsol İzleme Sistemi - ancak VM'de Konuşma İzleme Sistemi olarak yeniden adlandırıldı ), etkileşimli zaman paylaşımlı kullanım için hafif, tek kullanıcılı bir işletim sistemiydi. Büyük, geleneksel çok görevli işletim sisteminin birden çok kopyası yerine CMS'nin birçok kopyasını CP'nin sanal makinelerinde çalıştırarak, kullanıcı başına ek yük daha azdı. Bu, çok sayıda eşzamanlı kullanıcının tek bir S/360'ı paylaşmasına izin verdi.

CP/CMS sanal makine konsepti, işletim sistemi tasarımında önemli bir adımdı.

  • CP/CMS, kullanıcıları birbirinden ayırarak sistem güvenilirliğini ve güvenliğini büyük ölçüde geliştirdi.
  • CP/CMS, her kullanıcı için tam, bağımsız bir bilgisayarı simüle ederek, yalnızca zaman paylaşımı için özel olarak tasarlanmış uygulamaları değil, herhangi bir S/360 yazılımını zaman paylaşımlı bir ortamda çalıştırabilir .
  • CP/CMS, birincil kullanıcı arabirimi olarak hafif CMS'yi kullanarak, benzeri görülmemiş bir zaman paylaşımı performansı elde etti. Ayrıca, CMS'nin basitliği, kullanıcı arabirimi geliştirmelerini geleneksel işletim sistemlerinden daha kolay hale getirdi.

IBM, 1972'de S/370 serisine sanal bellek eklendiğinde piyasaya sürülen VM/370 ürün serisi olarak CP/CMS'yi yeniden uyguladı . VM/370'in halefleri ( z/VM gibi ) günümüzde yaygın olarak kullanılmaya devam etmektedir. ( IBM'nin CP-40'a sahip olduğu için CP-67'yi yeniden uyguladığını ve basitçe yeniden adlandırıp yeniden paketlemediğini belirtmek önemlidir. VM, CP/CMS ve ardılları ile uzun yıllar birlikte yaşadı. Bu nedenle CP/ VM ailesinden farklı, bağımsız bir işletim sistemi olarak CMS.)

Özgür yazılım olarak CP/CMS

CP/CMS, kaynak kodu biçiminde dağıtıldı ve birçok CP/CMS kullanıcısı, bu kaynak kodunun incelenmesine ve değiştirilmesine aktif olarak katıldı. Satıcı tarafından sağlanan bir işletim sistemiyle bu tür doğrudan kullanıcı katılımı olağandışıydı.

CP/CMS döneminde birçok satıcı, işletim sistemlerini makine tarafından okunabilen kaynak kodunda dağıttı. IBM, örneğin OS/360 , DOS/360 ve daha sonraki birkaç yaygın IBM işletim sistemi için isteğe bağlı kaynak kodu sağladı . Tüm bu sistemlerde, SYSGEN sürecine, modern sistemlerdeki bir çekirdek yapısıyla ve ayrıca bir Başlangıç ​​Seti kurulumuyla karşılaştırılabilir şekilde , sistem kaynak kodu hakkında bir miktar farkındalık da dahildi . (Kırk yıl sonra, Hercules öykünücüsü , artık kamu malı olarak kabul edilen kaynak koduna dayalı olarak, bu sistemlerin fosilleşmiş sürümlerini çalıştırmak için kullanılabilir .)

İşletim sistemi kaynak kodunun önemi zamanla değişti. 1969'da IBM yazılımları donanımdan ayırmadan önce , işletim sistemi (ve diğer yazılımların çoğu) donanımın maliyetine dahildi. Her satıcı, tüm sistem, donanım ve yazılım için tam sorumluluğa sahipti. Bu, dağıtım ortamını nispeten önemsiz hale getirdi. IBM'in ayrıştırılmasından sonra, işletim sistemi yazılımı IBM Sistem Kontrol Programı (SCP) yazılımı olarak ve sonunda yalnızca nesne kodu (OCO) biçiminde teslim edildi.

Karmaşık nedenlerle, CP/CMS normal şekilde yayınlanmadı. IBM tarafından desteklenmiyordu, ancak IBM personelinin katkıda bulunduğu bir yazılım koleksiyonu olan desteklenmeyen IBM Type-III Kitaplığı'nın bir parçası haline getirildi (benzer şekilde müşteriler tarafından sağlanan yazılımlar, Type-IV Kitaplığı'nı oluşturdu). IBM, bu kitaplığı müşterilerine 'olduğu gibi' kullanmaları için dağıttı. Bu tür ürünler için doğrudan IBM desteğinin olmaması, aktif kullanıcıları kendilerini desteklemeye zorladı ve değişiklikleri ve karşılıklı desteği teşvik etti. CP/CMS ve diğer Tip-III ürünleri, özgür yazılımın ilk biçimleriydi .

Diğer IBM işletim sistemlerinin kaynak kodu dağıtımı bir süre daha devam etmiş olabilir (örneğin OS/360 , DOS/360 , DOS/VSE , MVS , ve hatta TSS/370 , bunların hepsi bugün genel olarak kamu malı olarak kabul edilmektedir ) beri. 1978'den önce telif hakkı bildirimi olmadan yayınlandıkları tartışılabilir. Ancak, CP/CMS'nin desteklenmeyen durumu, kullanıcı topluluğu üzerinde farklı baskılar oluşturdu ve kaynak kodu dağıtımına duyulan ihtiyacı yarattı.

İlginçtir ki, CP / CMS MIT'nin tarafından Type-III Kütüphanesi katkıda edildi Lincoln Laboratuvarı ve olmayan sistem IBM'in tarafından yaptırılmıştır olmasına rağmen IBM tarafından Cambridge Bilim Merkezi . Bu şaşırtıcı karar, zaman paylaşımına karşı olan IBM siyasi güçlerini alt etmek için bir gizli anlaşma biçimi olarak tanımlandı. CP-40, S/360-67, CP-67 ve CMS'nin tasarımına ve uygulanmasına katkıda bulunan MIT ve Union Carbide'ın resmi ve gayri resmi girdi miktarını da yansıtabilir . Bkz / CMS (tarihsel notlar) CP Tarihi Bu konuyla ilgili daha fazla anlayış ve referanslar için.

Birçok CP/CMS kullanıcısı, kaynak kodunun kendi kopyalarında kapsamlı değişiklikler yaptı. Bu çalışmanın çoğu siteler arasında paylaşıldı ve önemli değişiklikler çekirdek sisteme geri döndü. National CSS ve bazı akademik siteler gibi diğer kullanıcılar, kullanıma sunulduğunda VM/370'e geçmek yerine CP/CMS'yi bağımsız olarak geliştirmeye devam ettiler. Bu çabalar, bugün bir yazılım çatalı olarak adlandırılacak olan topluluktan ayrıldı .

IBM, VM/370'i piyasaya sürdükten sonra, birkaç yayın için VM'nin kaynak kodu dağıtımı devam etti. (VM projesi, karşılaştırılabilir birçok projede IBM içinde kullanılması zorunlu kılınan bir dahili sistem programlama dili olan PL/S'nin kullanımını benimsemedi. PL/S'nin kullanılması kaynak kodu dağıtımını imkansız hale getirebilirdi. IBM, montajdan uzaklaşmaya çalıştı. 1965 gibi erken bir tarihte daha yüksek seviyeli dillere çevrildi ve 1969'da PL/S'yi önemli ölçüde kullanıyordu , örneğin MVS'de PL/S o zamanlar ticari bir sır olarak kabul edildi ve müşteriler tarafından kullanılamadı. politika çok daha sonra.) VM kullanıcı topluluğu, CP/CMS Tip-III döneminde olduğu gibi, yazılıma önemli katkılarda bulunmaya devam etti. Birkaç işletim sistemi veya DOS sitesi, derin işletim sistemi dahili bileşenlerinde aktif kullanıcı katılımı sergiledi, ancak bu, birçok VM sitesinde bulundu. Bu ters destek, VM'nin IBM'deki ikinci sınıf vatandaş statüsüne rağmen CP/CMS kavramlarının hayatta kalmasına ve gelişmesine yardımcı oldu.

Mimari

CP/CMS mimarisi, zamanı için devrim niteliğindeydi. Sistem, birden çok bağımsız sanal makine (VM) oluşturan bir sanallaştırma kontrol programından (CP) oluşuyordu. IBM System/360-67'nin iki öğesi sayesinde platform sanallaştırması mümkün oldu:

  • Ayrıcalıklı 'denetleyici devlet' talimatlarının normal 'sorunlu durum' talimatlarından ayrılması
  • Adres çeviri donanımı

Bir program 'sorunlu durumda' çalışırken, ayrıcalıklı bir talimat veya geçersiz bir bellek adresi kullanmak, donanımın bir istisna koşulu oluşturmasına neden olur. Bu koşulları yakalayarak, CP uygun davranışı simüle edebilir, örneğin G/Ç veya sayfalama işlemleri gerçekleştirme. Çıplak bir makinede 'denetleyici durumda' çalışacak bir konuk işletim sistemi, CP altında 'sorunlu durumda' çalıştırıldı.

Sonuç, tamamen sanallaştırılmış bir ortamdı. Her sanal makinenin, sistemin gerçek donanım ortamından eşlenen kendi sanal aygıtları vardı. Böylece, belirli bir çevirmeli teletip, sanal konsolu olarak VM örneğine sunuldu .

CP-67'de, belirli modele bağlı ve tanılama talimatlarının, özellikle DIAG talimatının sanallaştırılmadığına dikkat edin. Nihayetinde, IBM'deki ve başka yerlerdeki sonraki geliştirmelerde, hipervizör olarak adlandırılan şeye sanallaştırılmamış bir arabirim oluşturmak için DIAG yönergeleri kullanıldı . İstemci işletim sistemleri, bu mekanizmayı doğrudan kontrol programıyla iletişim kurmak için kullanabilir; bu, çarpıcı performans iyileştirmeleri sağladı.

Herhangi bir S/360 işletim sistemi aslında CP altında çalıştırılabilir, ancak normal kullanıcılar basit, tek kullanıcılı bir işletim sistemi olan Cambridge Monitor System'ı (CMS) çalıştırırdı. CMS, kullanıcıların programları çalıştırmalarına ve sanal cihazlarını yönetmelerine izin verdi. CP-67 sürüm 1 ve 2, bir sanal makine içindeki sanal belleği desteklemiyordu. Bu, sürüm 3'e eklenmiştir. Bu noktada, CP/CMS'nin tam bir kopyasını tek bir sanal makine içinde çalıştırarak CP'nin kendisi test edilebilir ve geliştirilebilir. CP-370 geliştirme ve MVS testi gibi bazı CP/CMS işletim sistemi çalışmaları, dört veya beş seviyeli derin donanım yığınları ve işletim sistemi simülasyonları çalıştırdı.

CP/CMS tasarımı, IBM'in önceki monolitik işletim sistemlerinden farklıdır, karmaşık "büyük sistemi" (gönderme, donanım yönetimi, yığın depolama) "küçük sistemden" (uygulama programı yürütme, dosya G/Ç, konsol giriş/çıkış) ayırır. . Her iki sistemin de kendi varlıklarına göre yeniden sınıflandırılması, bir kullanıcının sistemindeki bir hatanın her ikisini de etkilemesini önler. Bu, mikro çekirdekli işletim sistemlerinde bir model özelliğidir .

IBM'in sonraki S/370 tasarımında (ilk S/370 serisinde eksik olmasına rağmen) sanallaştırma ve sanal bellek özelliklerini uygulama kararı , en azından kısmen CP/CMS yaklaşımının başarısını yansıtıyor. IBM'in VM işletim sistemi ailesinin ve genel olarak sanallaştırma teknolojisinin hayatta kalması ve başarısı, S/360-67'ye çok şey borçludur.

Birçok açıdan, IBM'in CP-67 ve CP/CMS ürünleri , VMware Workstation, Xen ve Microsoft Virtual PC gibi çağdaş sanallaştırma yazılımlarını öngördü (ve büyük ölçüde etkiledi) .

İlgili terminoloji

  • CP : Kontrol Programı . CP-40 ve CP-67, sırasıyla CSC'nin özelleştirilmiş S/360-40 ve standart S/360-67'si için uygulamalardı.
  • CMS : Cambridge İzleme Sistemi . CP/CMS sisteminin bu kısmı, IBM VM/370'i piyasaya sürdüğünde Konuşma İzleme Sistemi olarak yeniden adlandırıldı . Ancak bir yeniden uygulama olan CP'den VM'ye geçişten farklı olarak, CMS'nin çoğu değişiklik yapılmadan CP/CMS'den VM/370'e taşındı.
  • VM : Sanal Makine , başlangıçta sözde makine terimi kullanıldı, ancak kısa süre sonra IBM M44/44X projesinden sanal makine ödünç alındı . IBM, VM/370'i piyasaya sürdüğünde CP/CMS'de iyi bir şekilde yerleşmişti.
  • hiper yönetici : paravirtualization için bir mekanizma . Bu terim, IBM'in CP-67'yi VM/370 olarak yeniden uygulamasıyla ortaya çıktı.

Ayrıca bakınız

Dipnotlar

alıntılar

Birincil CP/CMS kaynakları

Ek CP/CMS kaynakları

  • RJ Adair, RU Bayles, LW Comeau ve RJ Creasy, A Virtual Machine System for the 360/40, IBM Corporation, Cambridge Scientific Center Report No. 320‐2007 (Mayıs 1966)
    - sanal makine konseptinin uygulanmasını açıklayan ufuk açıcı bir makale, özelleştirilmiş CSC S/360-40 ve CP-40 tasarımının açıklamaları ile
  • International Business Machines Corporation, CP-67/CMS , Program 360D-05.2.005, IBM Program Bilgi Departmanı (Haziran 1969)
    ― IBM'in başvuru kılavuzu
  • RA Meyer ve LH Seawright, "Bir sanal makine zaman paylaşım sistemi", IBM Systems Journal, Cilt. 9, No. 3, pp. 199–218 (Eylül 1970)
    ― CP-67/CMS sistemini açıklar, özellikleri ve uygulamaları özetler
  • RP Parmelee, TI Peterson, CC Tillman ve DJ Hatfield, "Sanal depolama ve sanal makine kavramları", IBM Systems Journal, Vol. 11, No. 2 (Haziran 1972)

Arka plan CP/CMS kaynakları

  • FJ Corbató ve diğerleri, Uyumlu Zaman Paylaşım Sistemi, Bir Programcı Kılavuzu, MIT Press, 1963
  • FJ Corbató, M. Merwin-Daggett ve RC Daley, "An Experimental Time-sharing System", Proc. Spring Joint Computer Conference (AFIPS) 21, s. 335–44 (1962) — CTSS'nin tanımı
  • FJ Corbató ve VA Vyssotsky, "MULTICS Sistemine Giriş ve Genel Bakış", Proc. Güz Ortak Bilgisayar Konferansı (AFIPS) 27, s. 185–96 (1965)
  • PJ Denning, "Sanal Bellek", Computing Surveys Vol. 2, s. 153–89 (1970)
  • JB Dennis, "Segmentation and the Design of Multi-Programmed Computer Systems", JACM Vol. 12, pp. 589-602 (1965)
    GE 645'e yönelik Project MAC için sanal bellek gereksinimleri
  • CAR Hoare ve RH Perrott, Eds., İşletim Sistemleri Teknikleri , Academic Press, Inc., New York (1972)
  • T. Kilburn, DBG Edwards, MJ Lanigan ve FH Sumner, "One-Level Storage System", IRE Trans. Elektron. Bilgisayarlar EC-11, s. 223–35 (1962)
    ― Manchester/Ferranti Atlas
  • RA Nelson, "Mapping Devices and the M44 Data Processing System", Araştırma Raporu RC 1303 , IBM Thomas J. Watson Araştırma Merkezi (1964)
    - IBM M44/44X hakkında
  • RP Parmelee, TI Peterson, CC Tillman ve DJ Hatfield, "Virtual Storage and Virtual Machine Concepts", IBM Systems Journal , Cilt. 11, s. 99–130 (1972)

Ek çevrimiçi CP/CMS kaynakları

Bu makalede yapılan noktalar için ayrıntılı alıntılar CP/CMS Tarihinde bulunabilir .

Dış bağlantılar