hotchpotch/wikipedia-multilingual-ir-pairs huggingface dataset:
허수 역사
고대 그리스의 수학자 헤론은 거듭제곱하여 음수가 되는 수에 대한 개념을 기록한 바 있다. 1572년 이탈리아의 수학자 라파엘 봄벨리가 허수 단위를 정의하였다. 이후 르네 데카르트가 《방법서설》의 부록 〈기하〉(프랑스어: La Géométrie)에서 상상의 수(imaginary numbers)라고 부른 데에서 허수라는 이름이 정착되었다. 허수라는 이름은 레온하르트 오일러와 카를 프리드리히 가우스에 의해 널리 알려졌으며, 오일러는 허수 단위 기호로 를 도입하였다. 또한 오일러는 이것을 방정식 일 때 이 방정식을 만족하는 정수해는 없다는 것을 증명할 때 사용하였다. 1799년 카스파르 베셀이 복소수의 기하학적 표현을 완성하였다.
1843년 윌리엄 로언 해밀턴은 복소수를 확장하여 사원수 체계를 만들었다.
미국 수학에서 허수란  형태, 즉 순허수이다. 즉 실수에 허수단위 가 곱해진 형식을 가지고 있고, 따라서 제곱하면 음수가 된다.
허수 기하학적 해석
한 평면상에 데카르트 좌표계를 정하고 이에 대한 한 점 Z의 위치 (x, y)를 로 정하여 복소수를 평면상의 점으로 표시할 수 있다. 이 때, 좌표와 복소수는 일대일 대응을 이룬다. 또한, 이렇게 나타낸 점 Z(x,y)는 극좌표를 사용하여 원점에서부터 점 Z 사이의 반지름과 각도로서도 나타낼 수 있다. 즉,
가 된다.
한편, 왼쪽의 그림과 같이 실수부는 같고 허수부의 부호만 반대인  와 를 생각할 수 있다. 이를 켤레복소수(복소켤레)라고 한다. 켤레 복소수는 극좌표에서 반지름이 같고 x축에 대해 대칭인 점이 된다.
복소평면에서 허수의 위치를 극좌표를 사용하여 나타낼 수 있으므로, 임의의 단위 원을 그려 복소수와 삼각함수의 관계를 생각할 수 있다. 1714년 영국의 수학자 로저 코츠는 자연로그가 다음과 같은 삼각함수의 관계식으로 표현될 수 있다는 것을 발견하였다.
1740년 레온하르트 오일러는 이 식을 지수함수로 변형하여 다음과 같이 나타내었다.
이를 오일러의 공식이라 한다.
허수 수 체계
수 체계에서 허수는 복소수와 함께 다루어지는 것이 보통이다. 이를 복소수체라고 하며  로 나타낸다.
선형대수학
선형대수학(線型代數學, 영어: linear algebra)은 벡터 공간, 벡터, 선형 변환, 행렬, 연립 선형 방정식 등을 연구하는 대수학의 한 분야이다. 현대 선형대수학은 그중에서도 벡터 공간이 주 연구 대상이다. 추상대수학, 함수해석학에 널리 쓰이고 있다.
선형대수학은 자연과학과 공학에도 널리 활용된다. 선형 연립방정식을 푸는 좋은 방법으로는 소거법과 행렬식이 있다.
선형대수학 기초
선형대수학은 2차원 혹은 3차원의 데카르트 좌표계에 대한 연구로부터 시작되었다.
선형대수학에서 기본적인 정의는 다음과 같다.
보통 3차원까지의 벡터는 그림 등으로 시각적 표현이 가능하지만 그 이상의 벡터는 벡터의 각 구성요소를 괄호 안에 나열함으로써 표기한다.
여러 가지 문제를 수학으로 해결하는 데 있어 선형대수학의 개념은 매우 중요한데, 선형화 혹은 선형 근사를 통해, 복잡한 비선형 방정식 문제를 간단한 선형 방정식 문제로 변환해 문제를 해결할 수 있기 때문이다.
선형대수학 선형성
선형대수학의 선형성(영어: linearity)이라는 성질은 직관적으로는 아래와 같은 개념에서 시작되었다.
(는 상수를, 는 변수를 가리킨다)
이와 같이 선형성은 변수의 지수승()을 가리키는 것이 아니라 일차함수()와 같은 형태를 가리킨다. 선형과 대립되는 개념으로 비선형이 있는데,  등 일차함수와 같은 형태의 성질을 만족시키지 않는 함수들을 가리킨다. 선형의 직관적인 이해는 일차함수와 동일시해서 생각해도 좋다. 하지만 선형의 엄밀한 의미는 일차함수보다 더 확장된다. 수학적으로 정확한 선형의 설명은 다음과 같다.
(정의) 정의역 에서 임의의 원소 를 치역 에 대응시키는 연산 는 다음과 같은 성질을 만족시킬 때 "선형"이라고 한다. 여기서 c는 임의의 상수이다.
선형대수학 선형성
(1)
(2)
예를 들어 일차함수 를 생각해보자. 로 (1)번 조건을 만족시키고 로 (2)번조건을 만족시킨다. 그러므로 이 함수는 선형이다. 이차함수 의 경우에는 로 조건을 만족시키지 않는다. 다른 선형연산의 예로는 회전변환, 원점을 지나는 직선에 대한 대칭변환, 어떤 벡터 공간에 대한 수직입사 등이 있다.
"선형"이라는 성질은 행렬과 동전의 양면과 같은 관계를 가지고 있다. 어떤 연산이 선형이라면 그것은 행렬로 표현이 가능하며, 어떤 행렬은 반대로 어떤 선형연산으로 해석될 수 있다. 이 선형대수학의 행렬이론은 수학의 이론뿐만 아니라 물리학, 전자공학, 컴퓨터 그래픽, 기계공학 등에 널리 쓰이고 있다.
선형대수학 학부과정
학부과정에서 가르치는 선형대수학의 내용들은 다음과 같다. 다만 이 내용은 일반적으로 이와 같이 가르치는 내용이며 각 학교마다 비중있게 다루는 부분이 다를 수 있고 내용을 추가하거나 뛰어넘을 수 있다.
가우스-요르단 소거법: 가우스-요르단 소거법은 행렬의 행 간의 연산이다. 이 연산은 행렬로 구성된 방정식의 해를 구하는 방법을 제시한다. 또한 이 계산과정을 뒷받침하는 이론에 대해서도 공부하며, 소거법의 결과로 구해진 해를 해석하는 방법도 공부한다. 가우스-요르단 소거법은 방정식의 해를 보존할 수 있는 연산들로 이루어져 있으며, 세 가지가 존재한다.
1. 행렬의 행을 그 행의 상수배만큼으로 대체하여도 그 행렬 방정식의 해는 보존된다.
2. 행렬의 한 행의 상수배를 다른 행에 더하더라도 그 행렬 방정식의 해는 보존된다.
3. 행렬의 한 행과 다른 행을 교환하더라도 그 행렬 방정식의 해는 보존된다.
선형대수학 학부과정
벡터 공간: 벡터 공간을 행렬을 통해 해석하는 방법을 익힌다. 선형연산과 행렬 간의 상호성과 마찬가지로 벡터 공간과 행렬 사이에는 깊은 상호성이 있다. 중요한 개념들로는 다음과 같은 것들이 있다.
기저, 차원: 기저란, 어떤 벡터 공간을 이루는 벡터들을 말한다. 이 벡터들은 일차독립이여야 하며, 이 벡터들의 선형조합으로 그 벡터 공간의 모든 벡터를 표현할 수 있어야 한다. 직관적인 예를 들면 x축, y축, z축은 3차원공간의 기저이다. 차원이란 기저를 구성하는 벡터들의 숫자를 말한다.
기본공간, 차원 정리, 계수정리, 피봇정리: 기본공간은 행렬과 벡터 공간 사이의 다리와 같은 역할을 한다. 기본공간에는 영공간, 행공간, 열공간 등이 있다. 차원정리, 계수정리, 피봇정리는 이 기본공간들의 차원과 기저에 대해 유용한 알고리즘을 제공한다.
벡터의 직교화: 직교화된 벡터들에 대해 공부한다. 직교화된 벡터들이란 다른 벡터와의 내적값이 0인 벡터들을 의미한다.
상사성과 대각화: 상사성이란 두 행렬이 동일한 연산을 의미한다는 뜻이다. 즉, 두 행렬이 서로 다른 두 벡터 공간에서 동일한 연산을 처리하고 있다는 의미이다. 그러므로 상사성을 가진 두 행렬은 적당한 기저를 선택해서 서로를 표현할 수 있다. 대각화란 이 상사성을 계산 측면에서 응용한 것으로 특정 행렬을 대각행렬로 표현하는 과정이다.
선형대수학 역사
선형대수학에 관한 가장 오래된 기록은 고대 바빌로니아인들이 기원전 4세기 경에 선형연립방정식으로 이어지는 문제들을 연구한 기록이다. 현존하는 문헌 중에 가장 오래된 것은 한(漢)왕조 때인 BC 200년에서 BC 100년 사이에 쓰여진 <구장산술(九章算術)> 제8장「방정(方程)」장으로, 여기에 행렬에 관한 문제를 다루는 해법인 방정술(方程術)이 소개되어 있다. 이외에도 중국에서 다양한 기록이 있으며, 최소한 동양에서는 2세기 이전부터 선형대수학 연구가 시작되었다. 「방정」장 원본을 현대 선형대수학의 용어로 라이프니츠(G. W. Leibniz, 1646-1716),세키 고와(Seki Kowa, 関孝和, 1642-1708), 가우스(J. C. F. Gauss, 1777-1855)와 연결하여 구체적으로 서술한 논문에 따르면,이 책에서 방정장의 영부족(贏不足, excess and deficit)을 이용하는 두 개의 미지수를 갖는 두 개의 방정식의 해법과 방정장의 대부분을 정확하게 복원하였으며, n+1개의 미지수를 갖는 n개의 방정식을 복원하여 행렬식 계산(determinantal calculation)의 가장 오래된 기록임을 확인하였다.
선형대수학 역사
선형대수학의 기초가 되는 행렬과 행렬식에 대한 연구는 모두 선형연립방정식의 연구에서 비롯되었다. 흥미로운 것은 행렬의 개념이 행렬식의 개념보다 훨씬 나중에 소개되었다는 것이다. 행렬식의 개념은 일본인 세키 고와가 1683년에 처음 소개했으며, 2×2, 3×3, 4×4, 5×5행렬의행렬식을 구하는 방법을 찾아서 방정식의 해법을 구했다. 유럽에서는 행렬식의 개념이 1683년 라이프니츠에 의하여 소개된 것으로 알려져 있다. 더 나아가 그 이전에 가우스에 의하여 알려졌다고 주장하는 의견도 있다. 그러나 기록에 의하면 서양에서는 1693년 라이프니츠가 로피탈(L'Hôpital)에게 보낸 편지에 비로소 처음 소개되었다. 라이프니츠는 1700년과 1710년에 발표한 논문에서 소개한 계수행렬에 관한 연구를 통하여, 현재의 크래머(Cramer)공식에 이르는 기본 원리와 현대에서 라플라스(Laplace) 여인자 전개식이라 불리는 것의 기초를 닦았다.
선형대수학 역사
근대 선형대수학의 이론적 발전은 뫼비우스에 의하여 본격적으로 시작되었다. 뫼비우스는 1827년 자신의 책 ‘Barycentric Calculus’에서 기하학적 대상(점)들을 가지고 직접 연산을 하는 최초의 대수적 체계를 소개하였고 동일 직선상의 선분을 어떻게 더하는지 보였다. 그러나 이에 관한 여러 어려움이 있었다. 이에 대한 답을 처음으로 준 수학자가 바로 그라스만이다. 그라스만은 베를린에서 수학이 아니라 신학과 철학을 공부하고 귀향하여 교사가 되었다. 그라스만은 1830년대 초부터 수학기초론을 공부하며 선형대수학을 발견하게 되었다. 그라스만은 1844년 자신의 첫 번째 책 ‘lineale Ausdehnungslehre (Extension)’에서12쪽의 서문과 16쪽의 서론에 걸쳐 자신의 저술 의도에 대하여 철학적으로 자세히 설명했다. 여기서 보인 완전히 추상적인 접근은 ‘n차원 공간’과 ‘교환법칙이 성립하지 않는 곱셈’이라는 새로운 수학적인 아이디어를 제공했다. 1844년 그라스만은 또한‘벡터들 사이의 내적(inner product)’을 정의하여 ‘벡터대수(vector algebra)’를 연구하였다. 행렬 대수는 행렬곱셈을 곱셈 연산으로 하는 벡터대수의 일반화로 볼 수 있는데, 벡터의 내적은 행렬 중 특별한 경우인 1×n 행렬과 n×1 행렬의 곱셈으로 생각할 수 있기 때문이다. 따라서 벡터대수는 행렬대수의 특별한 경우임을 알 수 있다. 그러나 그라스만이 제시한 새로운 대수적 체계를 서술하는 혁명적인 아이디어와 난해한 기술방법은 큰 장애가 된다. 가우스는 1844년 12월에 그라스만에게 쓴 편지에서 “독자에게 익숙한 용어를 사용할 것”을 권고하고 있으며,뫼비우스가 1846년 1월에 아펠트(E. F. Appelt, 1812-1859)에게 쓴 편지에서는 “그라스만의 책은 이해하기 어려워서 한 페이지를 넘길 수가 없었다.”고 썼다. 또 엥겔(F. Engel, 1861-1941)은 18권의 ‘Gesammelte(전집) Werke, Band 3’에서 그라스만의 업적을 실으면서 그의 업적과 출판이 어디서도 주목받지 못했음을 서술하였다. 그럼에도 불구하고 그라스만은 자신의 방법에 확신을 가지고 책을 다시 쓰기 시작하여 1861년 10월에 수정을 마치고, 1862년 ‘The second Ausdehnungslehre’ 300 권을 모두 자신의 비용으로 인쇄했다. 이 책은 철학적 설명 없이 모두 정의-정리-증명(definition-theorem-proof)형식으로 썼는데(Fearnley-Sander, 1979), 여기서 제시한 내용 전체를 모두 그라스만이 처음으로 발견한 것은 아니지만 당시에 벌써 선형대수학의 거의 모든 주요 내용을 이해하고 정리한 그 완성도는 정말 놀랄 만하다. 그가 다룬 선형대수학의 내용을 현대적 용어로 쓰면 다음과 같다.
선형대수학 역사
‘일차독립, 차원, 부분공간, 정사영, 좌표변환, 내적과 외적, 선형연립방정식의 해법, 직교, 선형변환, 선형변환의 행렬표현, rank-nullity 정리, 고유값, 고유공간, 특성방정식, 행렬의 대각화, 행렬분해, law of inertia, 미분방정식에의 응용, … ’
선형대수학 역사
이후 1888년 페아노가 그라스만의 업적을 소개하고, 1918년 와일이 이를 한번 더 인용하면서 선형대수학에 대한 본격적인 연구가 시작되었다. 이 다음은 실베스터, 케일리 등 저명한 여러 수학자들의 연구를 거치면서 현대 선형대수학의 형태에 이르게 되었다.
커널 (컴퓨팅)
컴퓨터 과학에서 커널(kernel)은 컴퓨터 운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 제어(control)한다. 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공한다. 핵심(核心)이라고도 한다.
커널 (컴퓨팅) 커널의 역할
커널은 운영 체제의 핵심 부분이므로, 커널의 역할 역시 운영 체제의 핵심 역할이라 할 수 있다.
커널은 컴퓨터 하드웨어와 프로세스의 보안을 책임진다.
한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활하게 한다. 특히 프로세스에 처리기를 할당하는 것을 스케줄링이라 한다.
같은 종류의 부품에 대해 다양한 하드웨어를 설계할 수 있기 때문에 하드웨어에 직접 접근하는 것은 문제를 매우 복잡하게 만들 수 있다. 일반적으로 커널은 운영 체제의 복잡한 내부를 감추고 깔끔하고 일관성 있는 인터페이스를 하드웨어에 제공하기 위해 몇 가지 하드웨어 추상화(같은 종류의 장비에 대한 공통 명령어의 집합)들을 구현한다. 이 하드웨어 추상화는 프로그래머가 여러 장비에서 작동하는 프로그램을 개발하는 것을 돕는다. 하드웨어 추상화 계층(HAL)은 제조사의 장비 규격에 대한 특정한 명령어를 제공하는 소프트웨어 드라이버에 의지한다.
커널 (컴퓨팅) 역사
초창기의 컴퓨터에서 운영 체제 커널은 필수적인 것이 아니었다. 초기의 프로그램은 하드웨어 추상화나 운영 체제의 지원을 받지 않고도 컴퓨터만으로 불러들인 다음 실행될 수 있었으며, 이것은 초창기 컴퓨터들의 일반적인 운영 방식이었다. 다른 프로그램을 실행하기 위해서는 컴퓨터의 전원을 껐다가 켬으로써 다시 입력자료를 읽어들여야 하는 방식이었다. 이러한 과정이 반복되면서 사람들은 로더와 디버거 같은 작은 프로그램들이 상주해 있는 것이, 다른 프로그램으로 교체하거나 새로운 프로그램을 개발하는 데 유리하다는 사실을 알게 되었다. 이와 같은 로더, 디버거들이 초기 운영 체제 커널의 기초가 되었다.
커널 (컴퓨팅) 종류
단일형 커널은 하드웨어 위에 높은 수준의 가상 계층을 정의한다. 높은 수준의 가상 계층은 기본 연산 집합과 관리자 모드에 작동하는 모듈인 프로세스 관리, 동시성, 메모리 관리 등의 운영 체제 서비스를 구현하기 위한 시스템 콜으로 되어 있다.
이 연산들을 제공하는 모든 모듈이 전체로부터 분리되어 있더라도 모든 모듈이 같은 주소 공간에서 실행되기 때문에 코드의 집적도는 매우 조밀하며 수정하기 어렵고 한 모듈의 버그는 시스템 전반을 멈추게 할 수 있다. 그러나 구현이 신뢰할 수 있을 정도로 완성되면 구성 요소의 내부 집적이 내부의 시스템 이용을 효과적이게 하여 좋은 단일형 커널은 높은 효율을 보인다. 단일형 커널의 지지자들은 코드의 정확성 여부와 그런 코드(부정확한 코드)가 커널에 포함되었는지를 확인할 수 있고 그것은 마이크로커널에 비해 조금 더 우위에 있다고 주장한다.
리눅스, FreeBSD, 솔라리스와 같은 최신의 단일형 커널은 실행 모듈을 실시간으로 읽어들일 수 있다. 실시간으로 실행 모듈을 읽는 특징은 커널이 허용하는 범위 내에서 손쉽게 확장할 수 있게 커널 공간의 코드의 양을 최소한으로 유지시켜 준다.
커널 (컴퓨팅) 종류
마이크로소프트 윈도우 NT 제품군(NT, 2000, XP, 2003, 비스타,7,8,8.1,10)은 처음에는 혼합형 커널이었으나 나중에 나온 것들은 단일형 커널로 바뀌었다. 윈도우 NT 시리즈는 상위의 서비스들을 NT executive이라는 서버로 구현하였다. Win32 특성은 처음에는 사용자 모드의 서버 형태로 구현되었으나, 최근 버전에서는 관리자 주소 영역으로 이동하였다. 다양한 서버들이 로컬 프로시저 콜(LPC: Local Procedure Call)이라 불리는 주소 영역간 매커니즘을 통해 통신하며, 성능을 최적화하기 위해 공유 메모리를 이용한다.
주로 다음 운영 체제들의 커널이 단일형 커널인 것으로 알려져 있다.
마이크로커널은 하드웨어 위에 매우 간결한 추상화를 정의한다. 기본 연산 집합과 운영 체제 서비스를 구현한 스레드 관리, 주소 공간, 프로세스간 통신의 작은 시스템 콜으로 이루어져 있다. 일반적으로 커널이 제공하는 네트워킹과 같은 다른 서비스들은 사용자 공간 프로그램인 서버로 구현한다.
커널 (컴퓨팅) 종류
운영 체제는 서버를 다른 일반적인 프로그램처럼 간단히 시작하고 끌 수 있다. 이를테면 네트워킹 지원이 필요 없는 작은 시스템에서는 간단히 서버를 끄면 된다. 이 경우 전통적인 시스템에서는 재컴파일이 필요했고 일반 사용자의 능력 밖의 일이다. 이론적으로 마이크로커널에서 시스템은 더 안정적이다. 서버가 중단될 때 커널의 충돌이 아니기 때문에 단 하나의 프로그램만 내려버리면 된다.
그러나 서버가 실패한 후 시스템 상태도 잃어버릴 경우 응용 프로그램이 계속 수행되는 것은 그 응용 프로그램이 막 복사된 다른 서버를 이용하게 되더라도 보통은 매우 힘들다. 예를 들어 TCP/IP 연결을 요구하는 (이론적인) 서버가 다시 시작되면 응용 소프트웨어는 연결이 "끊어졌습니다."라고 말하고 서버의 새 인스턴스를 찾아서 다시 연결한다. 그러나 파일과 같은 다른 시스템 객체는 이렇게 편리한 의미론이 없다. 이러한 편리가 믿음직스럽지 못하고 마음대로 이용할 수 없다. 기록할 정보들은 모두 미리 보관해 두어야 한다. 서버 간의 하나의 서버를 다시 시작할 때 중요 상태를 보호하기 위해 트랜잭션, 복제, 대조점의 데이터베이스 기술이 요구된다.
커널 (컴퓨팅) 종류
일반적으로 마이크로커널은 전통적인 디자인의 수행을 잘못하고 때로는 극적이다. 이유는 응용과 서버 간의 자료 교환을 위해 커널을 출입하는 문맥 교환 때문이다. 주의 깊은 조율이 오버헤드를 극적으로 줄여줄 것으로 믿어져 왔으나 90년대 중반부터 대부분의 연구원들은 시도를 포기했다. 최근에 새 마이크로커널은 성능을 최우선으로 설계하며 이 문제를 넓은 부분에서 다루었다. 그러나 현재 운영 체제 시장은 자기 몸 사리며 마이크로커널 설계에 소극적이다.
마이크로커널과 마이크로커널에 기반한 운영 체제의 예
혼합형 커널은 본질적으로 마이크로커널을 따르나, 일부 커널의 비(非)본질적 기능이더라도 사용자 레벨에서 수행될 때 성능상 느린 코드들을 커널 레벨에서 수행하도록 수정한 것을 말한다. 이는 다양한 운영 체제 개발자들이 마이크로커널 기반의 설계를 받아들이던 시점에 순수한 마이크로커널의 성능상의 한계를 인식하고 타협한 결과이다.
커널 (컴퓨팅) 종류
예를 들어, macOS의 커널인 XNU는 Mach 커널 3.0 마이크로커널에 기반을 두고 있지만, 전통적인 마이크로커널 설계의 지연 현상을 줄이기 위해 BSD 커널의 일부 코드들을 들여와 동일한 주소 영역에서 실행하고 있다.
DragonFly BSD는 첫 번째 비 Mach 기반의 BSD OS로 혼합형 커널 구성을 적용한 예이다.
하이브리드 커널로는 다음과 같은 것들도 포함된다.
혼합형 커널이라는 말을 부팅 후에 모듈을 읽어들일 수 있는 단일형 커널과 혼용하는 사람들이 있다. 이것은 사실이 아니다. 혼합형 커널은 단일형 커널과 마이크로커널 설계 양쪽의 구조적 개념과 작동방법에 대한 특히 메시지 전달과 어떤 중요하지 않은 코드는 사용자 공간에 들어가는 반면 어떤 코드는 성능의 이유로 커널 공간에 포함해야 하는지에 대한 문제의식을 가진다.
커널 (컴퓨팅) 종류
엑소커널은 운영 체제 설계에 대한 급진적인 신개념으로 말단 이론을 따르는 수직 구조의 운영 체제이다. 엑소커널의 구상은 개발자에게 강제적인 추상화를 줄여 하드웨어 추상화에 대해 선택지를 다양하게 하는 것이다. 엑소커널은 기능이 보호를 보장하는 것과 자원을 분배하는 것만 하기에 매우 작아 편익보다 단순함을 제공한다. 이런 특성은 오히려 모든 사용자가 각기 실제 호스트 컴퓨터의 자원을 모방한 컴퓨터를 받는 VM/370 운영 체제와 비슷하다. 반면에 모놀리식 커널이든 마이크로 커널이든 전통적인 커널 설계는 하드웨어 추상화 계층(HAL)이나 장치 드라이버 아래 자원을 숨김으로써 하드웨어를 추상화한다. 한 예로 전통적인 시스템에서 물리 메모리가 할당할 때 실제 위치를 알려주지 않기 때문에 오프셋과 기억 관리 장치를 통해서만 문제를 해결할 수 있다.
TUNES Project 와 UnununiumOS 는 노커널 실험이다. 노커널 소프트웨어는 단일 중앙 입구의 제약이 없다.
커널 (컴퓨팅) 모놀리식 커널 대 마이크로 커널 논쟁
1990년대 초기 모놀리식 커널은 진부한 것으로 여겨졌다. 리누스 토르발스와 앤드류 타넨바움간에 일어난 리눅스의 설계인 모놀리식 커널과 마이크로커널에 대한 프레임 워는 유명했다.
타넨바움과 토르발스의 토론에 제시된 두 진영의 의견은 일장일단이 있다.
두 진영의 성공 사례가 있다. 모놀리식 커널은 정확한 설계가 쉽고 마이크로커널 기반 시스템보다 빨리 성장할 수 있다. 반대로, 마이크로커널은 종종 임베디드 로봇 산업이나 의료 컴퓨터 등에 이용될 수 있다. 운영 체제의 컴포넌트를 개인적으로 가지고 있고 메모리 공간을 보호하기 때문이다. 근대의 모듈을 읽어오는 모놀리식 커널에서도 이런 것은 불가능하다.
Mach는 일반적인 용도의 마이크로커널로 알려졌지만 특별한 용도로 설계된 마이크로커널도 있다. L3는 마이크로커널이 느리지 않다는 것을 보여주기 위해 만들어졌다. L4는 L3의 후예로 Fiasco 구현으로 대중적인데 L4 프로세스들과 별도의 공간에서 리눅스 구동이 가능하다. 이런 특성의 스크린샷은 freshmeat.net에서 구할 수 있다. Pistachio라 불리는 새 버전도 역시 가능하다.
커널 (컴퓨팅) 모놀리식 커널 대 마이크로 커널 논쟁
QNX는 1980년 초에 나타난 운영 체제로 극 최소주의 마이크로커널 설계로 이루어졌다. 이 시스템은 Mach가 목표로 했던 마이크로커널 이념을 더 성공적으로 이루었다. QNX는 우주 왕복선의 로봇 팔과 (작은 실수가 수십억의 손실을 입히는 허블 우주망원경의 거울 등의) 오차에 민감한 유리를 닦는 기계에도 적용되었다.
도스
도스(영어: disk operating system, 디스크 오퍼레이팅 시스템, DOS)는 디스크 운영 체제의 일종으로서 디스크에 읽고 쓰기 등의 명령을 수행하는 프로그램이다. 명령어를 직접 입력하는 명령 줄 기반이다.
1981년부터 1995년까지, 또 부분적으로 MS-DOS 기반인 마이크로소프트 윈도우(95, 98, 미)를 포함한 2000년까지는 MS-DOS가 IBM PC 호환기종 시장을 장악하였다. 도스는 MS-DOS, PC DOS, DR-DOS, 프리도스, ROM-DOS, PTS-DOS를 포함한 비슷한 명령 줄 시스템의 계열이다.
이 시스템들 중 어느 것도 간단히 "도스"라고 불리진 않았다. (1960년대의 이와 관련이 없는 IBM 메인프레임 운영 체제에만 사용되었음) 이와 무관한 수많은 비x86 마이크로컴퓨터 디스크 운영 체제는 "도스"라는 이름을 그대로 사용하였으며 이들을 사용하는 컴퓨터에 대해 논할 때 단순히 "도스"라고 부르곤 했다. (아미가도스, AMSDOS, 애플 도스, 아타리 도스, 코모도어 도스, CSI-DOS, 프로도스, TRSDOS)
도스 역사
디지털 리서치의 CP/M이 가장 대표적인 도스의 원형이다. 8비트 개인용 컴퓨터에는 CP/M이 널리 사용되었으나 애플 II는 독자적인 애플 도스(정식 명칭은 그냥 DOS)를, MSX는 MSX-DOS를 썼다. 이들 컴퓨터도 나중에 CP/M을 지원하지만 디스크의 포맷이 달라서 서로 바꾸어 쓸 수는 없었다. IBM-PC에서는 이를 모방한 QDOS로부터 PC-DOS와 MS-DOS가 나왔으며, 나중에 CP/M은 16비트 버전인 CP/M-86 바탕으로 DR-DOS로 나왔다.
현재는 DR-DOS의 후기작인 오픈도스와, NTFS 등을 지원하는 공개 도스 프로젝트인 프리도스가 있다. MS-DOS는 마이크로소프트가 만든 가장 보편적으로 쓰인 도스이다. PC-DOS는 IBM의 도스이다. 버전 5.0까지는 사실상 MS-DOS와 같은 제품이었으나 그 이후 추가된 내용이 달라졌다. DR-DOS는 디지털 리서치사에서 만든 도스이다. 이것은 나중에 노벨 도스(Novell DOS)로 바뀌었다가 다시 칼데라 오픈 도스(Caldera OpenDOS)로 바뀐다.
도스 역사
윈도우 3.1 이하의 버전과 같이 초기 버전의 마이크로소프트 윈도우는 별도 버전의 도스 위에서 실행되었다. 1990년대 초에 윈도우의 그래픽 셸은 도스 시스템에서 많이 이용되었다. 1995년에 윈도우 95가 별도의 도스 라이선스를 요구하지 않은 독립형 운영 체제로 번들되었다. 윈도우 95(및 이를 따랐던 윈도우 95과 ME)는 기본 OS 커널을 인계 받았지만 MS-DOS 구성 요소는 호환성을 위해 그대로 남겨두었다. 윈도우 미를 제외한 윈도우 95, 98과 더불어 MS-DOS 구성 요소는 윈도우를 시작하지 않고도 구동이 가능하였다. 윈도우 NT 계열 운영 체제가 널리 사용되면서, 윈도우 사용을 위해 더 이상 도스가 필요없게 되자 PC 사용자들 다수가 도스를 직접 사용하는 일은 중단되었다.
2012년 기준으로, 프리도스, DR-DOS, ROM-DOS, PTS-DOS, RxDOS, REAL/32와 같은 도스 운영 체제를 이용할 수 있다. 델, HP를 포함한 일부 컴퓨터 제조업체들은 FreeDOS를 OEM 운영 체제를 포함한 컴퓨터들을 판매한다.
도스 역사
하드웨어에 직접 접근하는 도스 구조는 임베디드 장치에서 이용할 때 매우 이상적이다. 최신 판의 DR-DOS가 현재에도 이 시장에 초점을 두고 있다. ROM-DOS가 캐논 파워샷 프로 70의 임베디드 시스템에 사용되었다.
리눅스 하에서 도스 프로그램들을 거의 네이티브 속도로 구동할 수 있는 DOSEMU라는 리눅스 네이티브 가상 머신을 이용하여 여러 도스 사본들을 실행할 수 있다. 도스박스를 포함하여 여러 버전의 유닉스에서 도스를 구동하기 위한 다른 수많은 에뮬레이터들이 있다.
도스 에뮬레이터들은 마이크로소프트 윈도우 하에서 게임이나 다른 도스용 소프트웨어를 구동하기에 적절한 방법인데, 현대 버전은 도스와의 완전한 호환성이 결여되어 있기 때문이다. 현대의 운영 체제에서 오래된 게임을 즐기도록 고안된 도스박스가 대표적인 예이다. 다른 대안으로는 PC 에뮬레이터 상에서 도스 운영 체제의 사본으로 도스 응용 프로그램들을 구동하는 것이다. 이러한 접근은 오버헤드는 증가되지만 더 나은 호환성을 제공한다.
도스 설계
모든 MS-DOS형 운영 체제들은 인텔 x86 호환 CPU를 갖춘 컴퓨터, 주로 IBM-PC 및 호환기종에서 동작한다. 특정 기계에 의존적인 MS-DOS 버전들은 수많은 비 IBM 호환 x86 기반 컴퓨터용으로 개발되었으며, 여기에는 제조업체 이름을 딴 마이크로소프트의 배포판에서부터 비 IBM-PC 호환 하드웨어와 동작하도록 설계된 버전에 이르기까지 다양하다. 응용 프로그램들이 직접 하드웨어 접근 대신 도스 API를 사용하는 한 IBM-PC 비호환 머신들에서도 실행이 가능하다. 1985년, 디지털 리서치는 또한 모토로라 68000 CPU용 컨커런트 도스 68K 버전 및 1990년대 초에 모토로라 CPU용 DOS/NT 파생 오리지널 프리도스 커널 DOS-C가 있었다. 이 시스템들이 도스 구조와 유사하긴 했지만, 응용 프로그램들은 이러한 x86이 아닌 CPU의 비호환 명령 집합으로 인해 이진 호환성이 없었다. 그러나 고급 언어로 작성된 응용 프로그램들은 쉽게 포팅이 가능했다.
도스 설계
도스는 재진입성이 없는 기본 커널 기능들을 갖춘 단일 사용자, 싱글태스킹 운영 체제이다. 즉, 한 번에 하나의 프로그램 해당 커널 기능들을 사용할 수 있으며 도스 스스로는 하나 이상의 프로그램을 한 번에 실행할 수 있게 하는 기능이 없다. 도스 커널은 문자 입출력, 파일 관리, 메모리 관리, 프로그램 적재 및 종료와 같이 프로그램을 위한 다양한 함수를 제공한다.
도스는 기본적으로 배치 파일(파일 확장자는 .BAT)을 통해 셸 스크립트를 위한 기능을 제공한다. 이것들은 텍스트 파일로서, 문서 편집기를 이용해서 작성이 가능하다. 컴파일된 프로그램과 동일한 방식으로 실행되며, 배치 파일의 각 줄을 명령 단위로 실행한다. 배치 파일은 또한 여러 내부 명령을 이용할 수 있는데, 이를테면 GOTO와 조건문을 들 수 있다. GOSUB 및 단순 산술은 DR-DOS COMMAND.COM 및 4DOS와 같은 일부 서드 파티 셸을 통해 지원되지만, 실질적인 형태의 프로그래밍이 지원되는 것은 아니다.
도스 설계
이 운영 체제는 문자 기반 응용 프로그램의 개발을 허용하는 API를 제공하지만 그래픽 카드, 프린터, 마우스와 같은 하드웨어 대부분의 접근을 위한 것은 아니다. 프로그래머들이 직접 하드웨어에 접근하게 하려면 각 프로그램이 개별 하드웨어 주변기기에 맞는 자체 장치 드라이버를 갖추어야 했다. 하드웨어 제조업체들은 사양을 공개하여 대중화된 응용 프로그램들을 위한 장치 드라이버들을 사용할 수 있도록 보증해야 했다.
도스는 8.3 파일 이름을 지원하는 파일 시스템을 사용하며, 여기에서 파일 이름이 8자, 확장자의 경우 3자를 사용한다는 뜻이다. 도스 2를 기점으로 계층적 디렉터리가 지원된다. 또, 각 디렉터리는 8.3 형식이지만 최대 디렉터리 경로 길이는 64자인데, 이는 도스가 관리하는 내부적인 현재 디렉터리 구조(CDs) 테이블 때문이다. 드라이브 이름을 포함하여, 도스가 온전히 지원하는 최대 길이는 마지막의 널 바이트를 포함, "드라이브:\경로\파일명.확장자"를 이용하여 80자이다.
도스 설계
도스는 파일 할당 테이블(FAT) 파일 시스템을 사용한다. 본래 드라이브 당 최대 4078개의 클러스터를 지원하는 FAT12였다. 도스 3.0에는 16비트 할당 엔트리를 사용하여 드라이브 당 최대 65517개의 클러스터를 지원하는 FAT16 지원을 추가하였다. 도스 3.31은 32 MB 드라이브 제한을 제거하고 최대 2 GB까지 지원하는 FAT16B의 지원을 추가하였다. 마지막으로 MS-DOS 7.1(윈도우 9x의 도스 구성 요소)은 32비트 할당 엔트리를 사용하는 FAT32의 지원을 추가함으로써 하드 드라이브를 최대 137 GB 이상 지원할 수 있게 되었다.
도스 3.1을 시작으로 파일 리다이렉터 지원이 도스에 추가되었다. 초기에 네트워킹 지원을 위해 사용되었으나 나중에는 MSCDEX를 이용한 CD-ROM 드라이브 지원에 사용되었다. IBM PC DOS 4.0 또한 IFS(installable file system)를 지원했으나 사용되지 않아 도스 5.0에서 제거되었다.
도스 설계
도스에서 드라이브들은 식별 가능한 문자들을 가리킨다. 표준화된 관습으로, "A'와 "B"는 플로피 드라이브를 위해 할당한다. 오직 하나의 플로피 드라이브를 가진 시스템에서 도스는 이 드라이브에 두 개의 문자를 할당하며, 프로그램들이 이들을 교체할 때 사용자에게 디스크를 스왑할 것인지 묻게 된다. 플로피에서 플로피로 복사하거나 다른 곳에서 데이터를 접근하는 동안 특정 플로피로부터 프로그램을 실행하고자 할 때 이용된다. 하드 드라이브들은 본래 문자 "C"와 "D'로 할당되었다. 도스는 드라이브 당 하나의 활성 파티션만 지원할 수 있었다.
도스에는 내부 문자 장치로 점유하고 있는 까닭에 파일 이름을 사용할 수 없는 예약 장치명이 있다. 또, 이러한 제한은 여러 윈도우 버전에도 영향을 미치면서 어떠한 경우에는 충돌이나 보안 취약성을 야기하기도 한다.
예약어는 다음과 같다:
도스는 원래 인텔 8086/8088 프로세서용으로 설계되었으므로 최대 1 MB의 램에만 직접 접근할 수 있었다. PC 아키텍처로 인해 최대 640 KB만 사용 가능하며(기본 메모리) 그 중 상위 384KB가 예약된다.
도스 사용자 인터페이스
도스 시스템들은 명령 줄 인터페이스를 이용한다. 프로그램들은 명령 프롬프트에서 파일 이름을 입력하여 시작할 수 있다. 도스 운영 체제들은 시스템 유틸리티와 같은 몇 가지 프로그램들을 포함하고 있으며, 이러한 프로그램들과 관련되지 않는 내부 명령어라 불리는 추가 프로그램들도 제공한다.
사용자에 더욱 친숙한 환경을 제공하려는 시도 속에, 수많은 소프트웨어 제조업체들은 메뉴나 아이콘 기반 인터페이스를 제공하는 파일 관리 프로그램들을 작성하였다. 마이크로소프트 윈도우가 잘 알려진 예인데, 마이크로소프트 윈도우 9x가 프로그램 로더를 기본 내장하면서 가장 흔히 쓰이는 PC 호환 프로그램 로더로서 도스를 대체하였다. 텍스트 사용자 인터페이스 프로그램들에는 Mdir, 노턴 커맨더, 도스 내비게이터, 볼코프 커맨더, 쿼터데스크 DESQview, 사이드킥이 있다. 그래픽 사용자 인터페이스 프로그램에는 디지털 리서치의 그래픽 인바이런먼트 매니저(본래 CP/M용으로 작성됨)와 GEOS가 있다.
도스 사용자 인터페이스
마침내, 주요 도스 시스템 제조업체들이 자신들만의 환경 관리자를 포함하기 시작하였다. MS-DOS/IBM DOS 4는 도스 셸을 포함하였다. 이듬해에 출시된 DR DOS 5.0은 GEM 기반의 뷰맥스를 포함하였다.
도스는 멀티태스킹 운영 체제가 아니다. 그러나 도스는 종료 후 상주 프로그램(Terminate and Stay Resident, TSR)을 제공하여 여러 프로그램들이 메모리에 상주할 수 있게 도와준다.
이러한 프로그램들은 시스템 타이머나 키보드 인터럽트를 후킹하여 이들이 백그라운드에서 작업을 수행하게끔 하거나 현재 실행 중인 프로그램을 적시에 호출할 수 있게 한다. PRINT 명령어는 이를 수행하여 백그라운드 인쇄 스풀링을 구현하였다. 볼랜드 사이드킥도 이 기법을 사용한다.
종료 후 상주 프로그램들은 기본적으로 이용할 수 없는 기능을 제공하는 데에도 사용되었다. CED와 도스키와 같은 프로그램들은 COMMAND.COM에서 사용할 수 있는 기능 이상으로 명령 줄 편집 기능을 제공하였다. 마이크로소프트 CD-ROM 확장 (MSCDEX)과 같은 프로그램들은 CD-ROM 디스크의 파일을 접근할 수 있게 하였다.
일부 TSR들은 초기 수준의 태스크 전환을 수행할 수 있었다. 이를테면, 셰어웨어 프로그램 백 앤드 포스 (1990년)은 단축키를 이용하여 현재 실행 중인 프로그램의 상태를 디스크로 저장하고, 다른 프로그램을 불러와 전환할 수 있었다.
도스 소프트웨어
도스는 지배적인 PC 호환 플랫폼이었으며 수많은 유명한 프로그램들이 도스를 위해 작성되었다. 여기에는 다음을 포함한다:
라플라스 변환
라플라스 변환(Laplace transform)은 어떠한 함수 에서 다른 함수로의 변환으로, 선형 동역학계와 같은 미분 방정식을 풀 때 유용하게 사용된다. 피에르시몽 라플라스의 이름을 따 붙여졌다.
라플라스 변환을 이용하면, 미분 방정식을 계수방정식으로 변환하여, 문제들을 쉽게 해결할 수 있는 장점이 있다. 초기값 문제의 경우 일차적으로 일반해를 구하는 단계가 필요없게 되고, 비제차 미분방정식의 경우에는 대응하는 제차미분방정식을 먼저 풀 필요가 없다. 라플라스 변환은 주어진 식을 간단한 식으로 변환한 뒤, 변형된 식을 푼다. 그리고 그렇게 풀어진 해를 다시 원식으로 변환한다.
라플라스 변환 정의
함수 의 라플라스 변환은 모든 실수 t ≥ 0 에 대해, 다음과 같은 함수 로 정의된다.
여기서 는 를 간단히 나타낸 것이고 복소수 , σ와 ω는 실수이다.
실제 사용시에는 엄밀히 정확하지는 않지만 로 표기하기도 한다.
라플라스 변환 역변환
함수 의 라플라스 변환을 라 하면 다음 식을 통해 로부터 를 구할 수 있다.
하지만 보통 위의 계산을 직접 하기 보다는 이미 알려져 있는 라플라스 변환들을 이용해 역변환을 구하는 것이 쉽다. 예를 들어
로 가 주어져 있는 경우 부분분수 분해를 통해
를 얻게되고 라플라스 변환의 선형성으로부터 는 다음과 같다.
라플라스 변환 미분방정식의 풀이
다음과 같은 차 연립 상미분 방정식을 고려하자
양변에 라플라스 변환을 취하면
이고 이를 에 관해 정리하면
이다. 따라서, 는 다음과 같다.
IBM
국제 사무기기 회사(國際事務機器會社, International Business Machines Corporation; IBM)는 뉴욕 아몽크에 본사를 두고 있으며 175개국 이상에 진출해 있는 미국의 다국적 기술 회사이다. 별칭은 빅 블루(Big Blue)이다.  IBM은 12개국에 19개 연구 시설을 보유한 세계 최대의 산업 연구 기관으로, 1993년부터 2021년까지 29년 연속 기업이 창출한 연간 미국 특허 최다 기록을 보유하고 있다.
IBM은 1911년 기록 관리 및 측정 시스템 제조업체의 지주 회사인 전산제표기록회사(CTR, Computing-Tablating-Recording Company)로 설립되었다. 1924년에 "International Business Machines"로 이름이 바뀌었고 곧 펀치 카드 도표 작성 시스템의 선두 제조업체가 되었다. 1960년대와 1970년대에 시스템/360으로 대표되는 IBM 메인프레임은 미국 내 컴퓨터의 80%, 전 세계 컴퓨터의 70%를 생산하는 세계 최고의 컴퓨팅 플랫폼이었다.
IBM
IBM은 1980년대에 IBM PC를 통해 마이크로컴퓨터 시장에 진출했다. IBM PC는 곧 IBM의 베스트셀러 제품 중 하나인 PC로 알려지게 되었다. IBM의 통찰력 부족으로 인해 PC는 지식 재산권법에 의해 제대로 보호되지 않았다. 결과적으로 IBM은 PC 시장에서 신흥 경쟁자에게 시장 지배력을 빠르게 잃기 시작했으며 동시에 PC 플랫폼의 개방성은 가장 인기 있는 마이크로컴퓨터 표준으로서 PC의 수명을 보장했다.
1990년대부터 회사는 운영을 축소하고 상품 생산을 중단하기 시작했으며, 특히 2005년에 개인용 컴퓨터 부문을 레노버 그룹에 매각했다. 이후 IBM은 컴퓨터 서비스, 소프트웨어, 슈퍼컴퓨터 및 과학 연구에 집중해 왔다. 2000년부터 당사의 슈퍼컴퓨터는 지속적으로 세계 최고 수준으로 평가되어 왔으며, 2001년에는 1년에 3,000개 이상의 특허를 생성한 최초의 회사가 되었다. 이는 2008년 4,000개 이상의 특허로 이 기록을 깨뜨린 것이다. 2022년 기준으로 회사는 150,000개의 특허를 보유하고 있다.
IBM
세계에서 가장 오래되고 규모가 큰 기술 기업 중 하나인 IBM은 ATM(현금 자동 입출금기), DRAM(동적 랜덤 액세스 메모리), 플로피 디스크, 하드 디스크 드라이브, 자기 스트라이프 카드, 관계형 데이터베이스, SQL 프로그래밍 언어 및 UPC 바코드 등 여러 기술 혁신을 담당해 왔다. 이 회사는 고급 컴퓨터 칩, 양자 컴퓨팅, 인공 지능 및 데이터 인프라 분야에 진출했다. IBM 직원과 졸업생은 6개의 노벨상과 6개의 튜링상을 포함하여 과학 연구 및 발명에 대한 다양한 표창을 받았다.
IBM은 상장 회사이며 다우 존스 산업평균지수의 30개 회사 중 하나이다. IBM은 2022년 전 세계적으로 297,900명 이상의 직원을 고용하는 세계 최대 고용주 중 하나이다. 기술 부문 내에서의 상대적인 감소에도 불구하고 IBM은 매출 기준으로 7번째로 큰 기술 회사로 남아 있으며, 미국에서 전체 매출 기준으로 67번째로 큰 회사이다. 또한 세계에서 가장 인지도 있고 가치 있는 브랜드 중 지속적으로 순위를 차지하고 있다.
IBM 역사
IBM은 19세기 후반에 개발되고 상용화된 여러 기술 혁신에서 시작되었다. 줄리어스 E. 피트랩은 1885년에 컴퓨팅 규모에 대한 특허를 받았다. 알렉산더 데이(Alexander Dey)가 다이얼 레코더(1888)를 발명했다. 허먼 홀러리스는 전기표 작성기(1889년)에 대한 특허를 받았다. 윌러드 번디는 근로자의 도착 및 출발 시간을 종이 테이프에 기록하는 타임 클럭(1889년)을 발명했다. 1911년 6월 16일, 4개 회사가 찰스 랜렛 플린트에 의해 뉴욕주에서 합병되어 뉴욕 엔디콧에 본사를 둔 다섯 번째 회사인 전산제표기록회사(CTR, Computing-Tablating-Recording Company)가 탄생했다. 5개 회사는 뉴욕주 엔디콧(Endicott)과 빙엄턴(Binghamton)에 1,300명의 직원과 사무실, 공장을 두고 있었다. (오하이오주 데이턴, 미시간주 디트로이트, 워싱턴 D.C., 캐나다 토론토)
IBM 역사
전체적으로 두 회사는 상업용 저울과 산업용 시간 기록기, 고기 및 치즈 슬라이서부터 도표 작성기 및 천공 카드에 이르기까지 다양한 판매 및 임대용 기계를 제조했다. 토머스 J. 왓슨 시니어는 존 헨리 패터슨에 의해 내셔널 캐시 레지스터 컴퍼니에서 해고되었고 플린트를 불러 1914년 CTR에 자리를 제안했다. 왓슨은 총괄 관리자로 CTR에 합류했으며, 11개월 후 NCR 재직 기간과 관련된 독점금지 사건이 해결되면서 사장이 되었다. 패터슨의 선구적인 비즈니스 관행을 배운 왓슨은 계속해서 CTR 회사에 NCR의 도장을 찍었다. 그는 "관대 한 판매 인센티브, 고객 서비스에 중점, 단정하고 검은 옷을 입은 판매원에 대한 고집, 모든 직원에게 회사 자부심과 충성심을 심어주기위한 복음주의적인 열정"이라는 판매 관례를 구현했다. 그가 가장 좋아하는 슬로건인 "THINK"는 각 회사 직원들의 만트라가 되었다. 왓슨의 첫 4년 동안 수익은 900만 달러(현재 1억 5,800만 달러)에 이르렀고 회사 운영은 유럽, 남미, 아시아 및 호주로 확장되었다. 왓슨은 서투른 하이픈으로 연결된 이름인 "Computing-Tablating-Recording Company"를 결코 좋아하지 않았으며 이전에 CTR의 캐나다 부서 이름으로 사용되었던 보다 광범위한 제목인 "International Business Machines"로 대체하기로 결정했다. 이름은 1924년 2월 14일에 변경되었다. 1933년까지 대부분의 자회사는 IBM이라는 하나의 회사로 합병되었다.
IBM 역사
나치는 홀러리스 펀치 카드와 알파벳순 회계 장비를 광범위하게 사용했으며 IBM이 최대 지분을 소유한 독일 자회사인 도이치 홀레리스 마쉬넨(Deutsche Hollerith Maschinen GmbH, Dehomag)은 1930년대 초부터 이 장비를 공급했다. 이 장비는 진행 중인 인구 조사를 통해 독일과 나치 통제 하에 있는 다른 국가의 시민을 분류하려는 나치의 노력에 매우 중요했다. 이러한 인구 조사 데이터는 유태인 및 기타 표적 집단의 검거를 촉진하고 강제 수용소 수용을 포함하여 홀로코스트 기계를 통한 이들의 이동을 목록화하는 데 사용되었다. 나치 강제 수용소는 계산 및 분류 기계를 포함한 IBM 기계를 갖춘 홀러리스 부서를 운영했다.
IBM은 1943년 8월부터 5월 사이에 제2차 세계대전에 사용된 M1 카빈총의 6%(약 346,500정)를 생산했다. IBM은 민간 판매용으로 총을 생산한 적이 없으며 군용으로만 총을 생산했다.
IBM 역사
IBM은 제2차 세계 대전 중에 전자 기계 컴퓨터인 자동 시퀀스 제어 계산기를 제작했다. IBM은 1952년에 최초의 상용 프로그램 저장 컴퓨터인 진공관 기반 IBM 701을 출시했다. IBM 305 RAMAC는 1956년에 하드 디스크 드라이브를 출시했다. 회사는 1958년부터 7000 및 1400 시리즈를 통해 트랜지스터형 설계로 전환했다.
1956년 뉴욕에 있는 IBM 포킵시 연구실의 아서 L. 새뮤얼이 IBM 704를 프로그래밍하여 체커 게임뿐만 아니라 자체 경험을 통해 "학습"함으로써 인공 지능의 첫 번째 실제 사례를 시연했다. 1957년에는 포트란 과학 프로그래밍 언어가 개발되었다. 1961년 IBM은 아메리칸 항공을 위한 SABRE 예약 시스템을 개발하고 큰 성공을 거둔 셀렉트릭 타자기를 출시했다.
IBM 역사
1963년에 IBM 직원과 컴퓨터는 NASA가 수성 우주비행사의 궤도 비행을 추적하는 데 도움을 주었다. 1년 후, 본사를 뉴욕에서 뉴욕 아몽크로 이전했다. 1960년대 후반에도 IBM은 1965년 제미니 비행, 1966년 토성 비행, 1969년 달 탐사에 참여하면서 우주 탐사 지원을 계속했다. IBM은 또한 새턴 V의 계기 장치와 아폴로 우주선 유도 컴퓨터를 개발 및 제조했다.
IBM 역사
1964년 4월 7일, IBM은 최초의 컴퓨터 시스템 제품군인 IBM 시스템/360을 출시했다. 이는 대규모에서 소규모까지 전체 범위의 상업 및 과학 응용 프로그램을 포괄하므로 기업은 응용 프로그램을 다시 작성하지 않고도 처음으로 더 뛰어난 컴퓨팅 기능을 갖춘 모델로 업그레이드할 수 있다. 그 뒤를 이어 1970년에 IBM 시스템/370이 출시되었다. 360과 370을 함께 사용하면 IBM 메인프레임이 이 기간과 1980년대 초반까지 업계에서 지배적인 메인프레임 컴퓨터이자 지배적인 컴퓨팅 플랫폼이 되었다. 이들과 이를 실행하는 OS/VS1, MVS 등의 운영 체제와 그 위에 구축된 CICS 트랜잭션 처리 모니터 등의 미들웨어는 이 기간 동안 거의 독점 수준의 시장 점유율을 차지했으며 IBM이 가장 잘 알려진 브랜드가 되었다.
IBM 역사
1969년 미국은 IBM이 범용 전자 디지털 컴퓨터 시스템 시장, 특히 업무용으로 설계된 컴퓨터를 독점하거나 독점하려 하여 셔먼 반독점법을 위반했다고 주장했으며, 이후 IBM이 IBM의 독점금지법을 위반했다고 주장했다. 임대 회사 및 플러그 호환 주변 장치 제조업체를 대상으로 한 조치. 얼마 지나지 않아 IBM은 많은 관찰자들이 소송의 직접적인 결과라고 믿었던 소프트웨어와 서비스를 분리하여 소프트웨어에 대한 경쟁적인 시장을 창출했다. 1982년에 법무부는 이 사건을 "가치 없음"으로 기각했다.
IBM 역사
또한 1969년에 IBM 엔지니어인 포리스트 패리는 신용/직불/ATM 카드, 운전 면허증, 고속 교통 카드 및 기타 다양한 ID 및 액세스 제어 애플리케이션에 널리 사용되는 자기 스트라이프 카드를 발명했다. IBM은 이러한 카드 제조를 개척했으며 1970년대 대부분의 경우 이러한 애플리케이션을 위한 데이터 처리 시스템과 소프트웨어는 IBM 컴퓨터에서만 실행되었다. 1974년 IBM 엔지니어 조지 J. 로러는 범용 상품 부호(Universal Product Code)를 개발했다. IBM과 세계은행은 1981년 스왑 계약을 체결하면서 대중에게 처음으로 금융 스왑을 도입했다. 원래 IBM 5150으로 명명된 IBM PC는 1981년에 출시되었으며 곧 업계 표준이 되었다.
IBM 역사
1991년 IBM은 회사를 더욱 관리하기 쉽게 만들고 다른 투자자가 해당 회사에 자금을 조달하도록 하여 IBM을 간소화하기 위해 여러 부서를 자율 자회사(소위 "Baby Blues")로 분리하기 시작했다. 여기에는 디스크 드라이브 및 기타 데이터 스토리지 제품 전용인 애드스타, 중급 컴퓨터 전용 IBM 애플리케이션 비즈니스 시스템스, 메인프레임 전용 IBM 엔터프라이즈 시스템스, 중급 및 대형 프린터 전용 페넨트 시스템스, 소형 프린터 전용 렉스마크 등이 포함되었다. 렉스마크는 설립 직후 차입매수를 통해 클레이튼 앤드 더빌리에(Clayton & Dubilier)에 인수되었다.
IBM 역사
1992년 9월, IBM은 다양한 비메인프레임 및 비미드레인지 개인용 컴퓨터 제조 부문을 분사하여 IBM 퍼스널 컴퓨터 컴퍼니(Personal Computer Company, IBM PC Co.)라는 자율적인 완전 소유 자회사로 통합했다. 이러한 기업 구조 조정은 IBM이 1992년 회계연도 2분기에 이익 마진이 급격하게 하락했다고 보고한 후에 이루어졌다. 시장 분석가들은 이러한 하락을 1992년 여름 개인용 컴퓨터 시장의 치열한 가격 전쟁 때문이라고 생각했다. 기업 구조 조정은 그 시점까지 역사상 가장 크고 비용이 많이 드는 것 중 하나였다. 1993년 여름까지 IBM PC 컴퍼니는 앰브라 컴퓨터 코퍼레이션(Ambra Computer Corporation)과 IBM 파워 퍼스널 시스템스 그룹(IBM Power Personal Systems Group)을 포함한 여러 사업부로 나뉘었다. 전자는 IBM 자체 아키텍처의 "복제" 컴퓨터를 설계하고 판매하려는 시도였고 후자는 IBM의 파워PC 기반 워크스테이션을 담당하고 있다.
IBM 역사
1993년 IBM은 80억 달러의 손실을 기록했는데, 이는 당시 미국 기업 역사상 최대 규모의 손실이었다. 회사를 회생시키기 위해 루 거스너가 RJR 나비스코의 CEO로 고용되었다. 2002년 IBM은 PwC의 컨설팅 부문인 PwC 컨설팅을 인수하여 IBM 글로벌 서비시스로 합병되었다.
1998년 IBM은 IBM PC 코퍼레이션의 기업 중심 개인 시스템 그룹을 IBM의 자체 글로벌 서비스 개인용 컴퓨터 컨설팅 및 고객 서비스 부서로 합병했다. 그 결과 합병된 사업부는 간단히 IBM 퍼스널 시스템스 그룹으로 알려지게 되었다. 1년 후, IBM은 이 분야의 시장 점유율이 경쟁사인 컴팩과 델에 비해 상당히 떨어진 후 소매점에서 컴퓨터 판매를 중단했다. 그 직후 IBM PC 코퍼레이션는 해체되어 IBM 퍼스널 시스템스 그룹에 합병되었다.
2004년 9월 14일, LG와 IBM은 대한민국 시장에서의 사업 제휴가 그 해 말에 종료될 것이라고 발표했다. 두 회사 모두 그해 초 뇌물수수 혐의와는 관련이 없다고 밝혔다. 엑스노트는 원래 합작 투자의 일부였으며 2012년 LG에 매각되었다.