IBM 시스템/38

**시스템/38**(System/38)은 IBM에서 제조 및 판매했던 단종된 미니컴퓨터이자 미드레인지 컴퓨터이다. 이 시스템은 1978년에 발표되었다. 시스템/38은 당시로서는 독특한 48비트 주소 지정 방식과 새로운 통합 데이터베이스 시스템을 갖추고 있었다. 이 시스템은 다중 사용자 시스템 환경에 맞춰져 있었다. 당시 일반적인 시스템은 십여 개에서 수십 개의 단말기를 처리했다. 시스템/38은 대체하려던 시스템들을 대체하지 못했지만, 그 아키텍처는 훨씬 더 성공적인 IBM AS/400의 기반이 되었다.

## 역사
시스템/38은 1978년 10월 24일에 발표되어 1980년에 출시되었다. "퍼시픽"이라는 코드명으로 개발되었으며, 1979년 8월에 상업적으로 출시되었다. 이 시스템은 프랭크 솔티스와 글렌 헨리를 포함한 여러 엔지니어들이 설계했으며, 여러 혁신적인 기능을 제공했다. 아키텍처는 실패한 IBM 퓨처 시스템 프로젝트의 설계와 많은 유사점을 공유했는데, 여기에는 단일 레벨 스토어, 운영 체제 기능을 구현하기 위한 마이크로코드 사용, 머신 인터페이스 추상화 등이 포함된다. 이 시스템은 IBM 로체스터의 미네소타주 로체스터에 있는 연구소에서 8년간 개발되었다. 당시 IBM 일반 시스템 부문(GSD) 사장은 "시스템/38은 우리가 GSD에서 출시한 프로그램 중 가장 큰 프로그램이며, IBM에서 출시된 상위 3~4개 프로그램 중 하나"라고 말했다.

이 시스템은 시스템/3의 후속작으로 설계되었지만, 해당 컴퓨터들과는 호환되지 않는다. 시스템/38의 이전 모델로는 시스템/3 (1969), 시스템/32 (1975), 시스템/34 (1977)가 있다. 1983년에는 시스템/38이 너무 비싸다고 생각하는 사용자를 위해 저가형 비즈니스 컴퓨터로 시스템/36이 출시되었다. 시스템/38은 1988년에 IBM AS/400 미드레인지 컴퓨터 제품군으로 대체되었으며, 초기에는 시스템/38과 유사한 프로세서 아키텍처를 사용하다가 1995년에 파워PC 기반 프로세서를 채택했다.

## 하드웨어 특징

IBM 5381 시스템 유닛에는 프로세서, 주 메모리, 디스크 스토리지, 디스켓 매거진 드라이브, 키보드와 디스플레이가 있는 시스템 콘솔이 포함된다. 5381은 모델 100과 모델 200으로 제공되었다.

IBM 5382 시스템 유닛은 물리적으로 5381과 동일하지만, 더 강력한 프로세서, 더 많은 메모리, 더 많은 디스크 스토리지를 갖추고 있다. 5382는 모델 300, 400, 500, 600, 700으로 제공되었다.

사용자는 일반적으로 IBM 5250 시리즈 단말기를 통해 시스템과 상호 작용했다. 1984년 IBM은 이전에 메인프레임이 필요했던 그래픽 지향 단말기를 연결할 수 있는 기능을 추가했다.

### 프로세싱 유닛
이 시스템에는 512K, 768K, 1024K, 1280K 또는 1536K 바이트의 주 저장소를 갖춘 중앙 처리 장치가 포함된다. 프로세서는 10x15인치 회로 보드에 장착된 29개의 쇼트키 TTL LSI 칩으로 구현된다. 여기에는 요구 페이징을 지원하는 메모리 관리 장치가 포함되어 있으며, 시스템 소프트웨어에서 단일 레벨 스토어 아키텍처를 구현하는 데 사용된다.

시스템/38 CPU는 48비트 주소 공간을 특징으로 하는데, 이는 일부 IBM 엔지니어들이 미래 대비를 위해 원했던 64비트 주소 지정과 다른 엔지니어들이 비용 절감을 위해 원했던 32비트 주소 지정 사이의 절충안으로 선택되었다.

### 시스템 콘솔 키보드/디스플레이
섬네일|IBM 시스템/38 콘솔
시스템/38 시스템 콘솔은 키보드와 16줄 64자 디스플레이 화면을 통합하고 있는데, 이는 모델에 따라 12x40 또는 24x80인 로컬 연결된 IBM 5250 단말기와는 일치하지 않는다. 키보드는 시스템 운영자가 제어 언어 명령을 입력하는 데 사용할 수 있다.

### 디스켓 매거진 드라이브
디스켓 매거진 드라이브는 모든 모델에서 표준이다.

## 소프트웨어 아키텍처

### 머신 인터페이스
시스템/38 및 그 후속 시스템들은 머신 인터페이스 아키텍처를 사용하여 응용 소프트웨어와 대부분의 운영 체제를 주소 크기, 레지스터 크기 등 하드웨어 종속성으로부터 격리한다.

시스템/38 및 그 후속 시스템용 컴파일러는 머신 인터페이스(MI)로 알려진 고급 명령어 세트로 코드를 생성한다. MI는 가상 명령어 세트이다. 이는 기본 CPU의 명령어 세트가 아니다. MI는 전통적인 메모리 주소나 레지스터 대신 객체에서 작동한다.

가상 명령어가 런타임에 해석되는 일부 다른 가상 머신 아키텍처와 달리(P-코드 머신 참조), MI 명령어는 절대로 해석되지 않는다. 이는 중간 컴파일 시간 단계이며, 최종 컴파일 단계에서 프로세서의 명령어 세트로 변환된다. MI 명령어는 실행 가능한 기계어 명령어 외에 최종 프로그램 객체 내에 저장된다. 프로그램이 한 네이티브 명령어 세트를 가진 프로세서에서 다른 네이티브 명령어 세트를 가진 프로세서로 이동되면, MI 명령어는 새 기계에서 프로그램이 처음 실행되기 전에 새 기계의 네이티브 명령어 세트로 다시 번역된다.

OS/400의 TIMI(기술 독립 머신 인터페이스)는 시스템/38 MI의 하위 호환 확장이다. 그 결과, 시스템/38에서 원래 개발된 프로그램은 다시 컴파일할 필요 없이 현재 IBM i 하드웨어에서 실행될 수 있다.

### 마이크로코드

IBM은 시스템/38 아키텍처의 머신 인터페이스 계층 아래에 있는 모든 코드를 마이크로코드로 지칭하며, 이를 하드웨어의 일부로 취급했다. 마이크로코드라는 용어는 전통적인 마이크로코드에서부터 일반적으로 다른 운영 체제의 커널과 관련된 기능, 그리고 통합 데이터베이스의 구현에 이르기까지 광범위한 저수준 코드를 포괄하는 데 사용되었다. 시스템/38에는 두 가지 수준의 마이크로코드가 있었다.

* 수평 마이크로코드(HMC)는 시스템/38 프로세서의 네이티브 마이크로코드를 사용하여 내부 마이크로프로그래밍(IMP) 명령어 세트 또는 내부 마이크로프로그래밍 인터페이스(IMPI)로 알려진 레지스터-메모리/메모리-메모리 명령어 집합을 구현했다. 태스크(즉, 프로세스) 스케줄링 및 메시지 전달과 같은 특정 저수준 및 성능에 민감한 기능은 수평 마이크로코드의 일부로 마이크로코드에서 직접 구현되었다. 수평 마이크로코드는 컨트롤 스토어에 상주했으며, 전통적인 마이크로코드에 해당했다.
* 수직 마이크로코드(VMC)는 IMPI 아키텍처 측면에서 머신 인터페이스를 구현했다. 이는 MI 코드를 IMPI 코드로 번역하고 실행함으로써 구현되었다. 또한 통합 데이터베이스와 MI 명령어 측면에서 구현될 수 없는 운영 체제의 다른 구성 요소도 구현했다. 이는 PL/MP와 IMPI 어셈블리의 혼합을 사용하여 구현되었다. 수직 마이크로코드는 주 메모리에 상주했다.

마이크로코드라는 용어의 사용은 IBM이 하드웨어 제품에서 소프트웨어를 번들 해제한(즉, 소프트웨어를 하드웨어와 별도로 구매해야 하는) 1969년 IBM에 대한 반독점 소송에서 비롯되었다. 시스템/38의 저수준 코드를 하드웨어의 일부로 취급함으로써 IBM은 MI를 시스템/38의 네이티브 명령어 세트로 취급할 수 있었고, 따라서 기본 하드웨어가 발전함에 따라 IMPI와 마이크로코드를 자유롭게 변경할 수 있었다. 초기 AS/400 시스템은 시스템/38 마이크로코드 구조를 계승했지만, 마이크로코드라는 용어는 삭제되어 IBM은 계층 이름을 수직 라이선스 내부 코드와 수평 라이선스 내부 코드로 변경했다.

### 컨트롤 프로그램 퍼실리티

시스템/38의 운영체제는 컨트롤 프로그램 퍼실리티(CPF)이다. CPF는 IBM 시스템/34 및 시스템/36의 시스템 서포트 프로그램 운영 체제와는 관련이 없다. CPF 객체는 파일, 프로그램, 메시지 큐, 사용자 프로필 및 라이브러리이다. CPF는 시스템/38의 운영 체제로 간주되지만, 시스템/38 머신 인터페이스 계층 위에 있으며, 결과적으로 플랫폼의 전통적인 운영 체제 기능의 대부분은 수평 및 수직 마이크로코드에서 구현된다.

시스템/38은 또한 데이터베이스 관리 시스템 (DBMS)이 운영 체제에 통합된 최초의 상업적으로 이용 가능한 IBM 미드레인지 컴퓨터라는 특징을 가지고 있다.

시스템/38의 운영 제어 언어는 CL(Control Language)이다. 셸 스크립트와 개념이 유사한 CL 프로그램은 컴파일되어 네이티브로 실행될 수 있다.

시스템/38은 아키텍처의 일부로 보안 기능이 내장되도록 설계되었다. 각 객체 또는 라이브러리는 사용자별로 액세스 제어를 할 수 있다. 이러한 기능은 AS/400 및 iSeries 컴퓨터 라인 전체에 걸쳐 계속 확장되었다.

## 후속 시스템

시스템/38은 AS/400으로 대체되었으며, AS/400은 시스템/36 데이터 및 소프트웨어와의 호환성도 제공했다. '관찰 가능성(observability)'이 손상되지 않은 S/38 프로그램, 즉 컴파일된 이진 실행 파일 내에 소스 코드가 포함되어 컴파일된 객체 크기가 더 커지는 단점이 있지만, 복원 옵션에 당시의 이전 버전 소스에 대한 재컴파일 기능이 포함되어 있으므로 AS/400 및 후속 시스템에서도 계속 실행할 수 있다. 그러나 대부분의 독점 공급업체 응용 프로그램 객체 라이브러리는 그러한 '관찰 가능성' 없이 컴파일되었으므로 AS/400으로 업그레이드할 때 원래 공급업체의 교체 및 그에 따른 비용이 필요하다. 당시 가격은 계층화되어 있었으며, 동일한 소프트웨어라도 설치될 시스템의 모델, 속도 및 용량에 따라 가격이 책정되었다.

## 판매
업계 잡지 NEWS 34/38 및 Midrange Computing에 발표된 기사에 따르면, IBM은 출시 후 5년 이내에 약 20,000대의 시스템/38을 판매했다. S/38은 미니컴퓨터로 홍보되었지만, IBM의 기존 베스트셀러 시스템/34 및 그 후속 모델인 시스템/36보다 훨씬 비쌌다. 시스템/34에서 S/38로 업그레이드하기 어렵다는 점도 중요했다. IBM은 S/38 출시 후 업그레이드된 시스템/34인 시스템/36을 출시함으로써 이를 암묵적으로 인정했다. 시스템/38은 대량으로 판매되지는 않았지만, IBM의 다른 미드레인지 시스템보다 더 높은 수익 마진을 기록하여 IBM에게 수익성 있는 제품 라인이었다.

시장에서는 IBM이 세 가지 중복되지만 호환되지 않는 제품군을 가지고 있었다. 시스템/34, 시스템/38, 그리고 메인프레임 시스템/370 아키텍처. 당시 IBM의 주요 경쟁사 중 하나였던 디지털 이큅먼트 코퍼레이션은 단일 아키텍처, 특히 VAX 아키텍처를 기반으로 하는 광범위한 제품을 제공함으로써 이를 활용할 수 있었다. IBM의 이에 대한 대책인 IBM 9370은 상업적으로 실패했으며, 당시 뉴욕 타임스는 시스템/36 및 시스템/38의 판매가 "부진하다"고 보도했다.

## 각주

## 더 읽어보기
* 
* 
* 
** 
** 
** 
** 
** 
** 
** 
** 
** 
* 
* 
* 
* 
* 
* 

## 외부 링크

* 
* 

분류:IBM 미니컴퓨터