시작하며
과거부터 궁금해하던게 하나 있다. 도대체 유닉스계열이니 Linux계열이니.. 데비안 계열은 또 뭐고 AIX는 또 뭐고 다 비슷해 보이는데 말하는 사람마다 도무지 기준도 다 중구 난방이란 점이 더 미치게 만들었다. 이 포스트는 이걸 정리해보는 것을 목표로 작성하도록 하겠다.
커널이란?
[Applications] ─ [Kernel] ─ [CPU, Memory, Devices, ...]
컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램으로 사전적 의미로도 핵심을 뜻한다. 시스템의 모든 것을 완전히 제어하며 운영체제 또는 응용 프로그램 수행을 위한 여러가지 서비스를 제공한다.
- 보안: 하드웨어와 프로세스의 보안을 책임진다.
- 자원관리: 한정된 시스템 자원을 효율적으로 관리하여 프로그램의 실행을 원활히 한다. 프로세스 처리기를 할당하는 것을 스케줄링이라 한다.
- 추상화: 다양한 하드웨어를 일관성있게 수용할 수 있도록 인터페이스를 제공하는 하드웨어 추상화 계층이 있다. 이는 제조사마다 다른 하드웨어 명령어를 제공하는 이른바 하드웨어 드라이버에 의지한다.
초창기 커널은 필수적인 것이 아니었다. 직접 하드웨어를 연결하고 불러들인 다음 실행될 수 있었으며 이것이 컴퓨터라는 것들의 일반적인 운영 방식이었다. 다른 프로그램을 실행하려면 컴퓨터의 전원을 껐다가 켜서 입력을 다시 읽어들여야만 했다.
사람들은 이와 같은 과정을 통해 로더와 디버거같은 작은 프로그램들이 상주해 있는 것이 프로그램을 교체하거나 새로운 프로그램을 개발하는데 유리하다는 것을 알게 되었고 로더와 디버거들이 초기 운영체제 커널의 기초가 되었다.
그럼 로더란?
운영체제의 일부분으로 하드디스크와 같은 저장매체에 있는 특정 프로그램을 찾아서 메모리에 적재하고 그 프로그램이 실행되도록하는 역할을 담당한다.
유닉스? Linux? POSIX??? Debian??????? AIX????????????
사진: 위키피디아
모든 것에는 시작이 있다. 운영체제라고 뭐가 다르겠는가?
PDP-7, 1964년
사진: 위키피디아
PDP-7은 초창기 컴퓨터로 하드웨어에 맞춤 제작된 운영체제가 함께 제공되는 방식이었다.
~ 1970년대
AT&T는 20세기 과학기술에 많은 기여를 한 곳으로 우주배경복사, CCD (이미지센서), 트렌지스터, 레이저, 전파망원경 등 노벨상 수상자만해도 10명이 넘는다. 이름이 벨 연구소 AT&T 인데 여기서 벨은 전화기 할 때 그 벨 맞다. 벨 전화사의 연구소다.
이곳의 연구원이던 켄 톰프슨은 게임을 만들다가 선배한테 들키는 바람에 당시 기준으로 비교적 작은 미니컴퓨터 가지고 게임을 하려고 했다. 근데 이 미니컴퓨터가 너무 느린 탓에 운영체제를 수정하다가 유닉스의 기본 모델이 될 운영체제가 작성된 것이다.
Multics And Unics
사진: 위키피디아
멀틱스는 현대의 운영체제에 큰 영향을 준 초기 시분할 운영체제의 하나로 GE645 메인 프레임 컴퓨터의 입출력을 위한 목적으로 고안된 운영체제였다. 그러나 하드웨어 호환성이나 멀티 유저, 멀티 프로세싱 등 여러가지 문제점들이 있었고 멀틱스는 상업적으로 쫄딱 망했다.
사진: 위키피디아
켄 톰프슨과 데니스 리치1는 멀틱스 운영체제 개발에 함께 참여했었는데 둘은 멀틱스의 실패를 통하여 이후에 나올 유닉스에 여러가지 개선점을 적용하게 되었다. UNIX는 Multics의 계보를 잇는 운영체제로 초창기 Unics 라는 명칭을 사용하려고 했었으나 말 장난으로 UNIX로 최종 결정되었다.
AT&T가 진행하는 거대한 프로젝트들은 엄청난 연구비가 필요했고 당시 수억원에 달하는 컴퓨터의 가격을 생각해봐도 연구소가 연구비를 지원해줄 의미도 관심도 없었다. 전화시장을 독점하고 있던 AT&T는 반독점소송에서 패배하는 등 복잡한 일들이 있었으며 IBM처럼 컴퓨터 판매 사업을 할 수 없었다. 그래서 AT&T는 troff라고 하는 문서 포매팅 시스템을 저렴한 가격에 판매하였는데 이 유닉스 소스 코드를 포함한 형태로 배포하였고 전세계 프로그래머들의 관심을 받게 되었다. 유닉스는 중간에 C언어로 다시 고쳐써지게 되었는데 당시 고수준 언어였던 C언어로 작성됨에 따라서 이기종간 이식성이 높아져 유닉스는 더 빠른 속도로 퍼지게 된다.
BSD의 출현
수 많은 조직들이 무료인 유닉스를 쓰기 시작했고 그중에는 수정판이 나오기도 했다. 그중 버클리 대학에서 작성된 BSDBerkeley System Distribution가 대표적이다. BSD는 MacOS의 조상격이다.
GNU의 출현
80년대부터 AT&T는 유닉스 유저들에게 라이센스를 요청하기 시작했고 리차드 스톨만Richard Matthew Stallman은 유닉스와 비슷하지만 모든 것을 무료로 작성하여 1983년도에 발표했다. 1990년대까지 GNU는 필요한 OS 구성 요소를 만들어내는데 성공했지만 GNU가 원했던 완전모듈식 자체 커널 개발은 아직이었다.
사진: 위키피디아
GNU는 GNU's Not Unix 의 약자로 단어 자체가 재귀되는 재미있는 단어이다. 리처드 스톨만은 자유 소프트웨어 재단의 수장이자 지금 우리가 운영체제를 무료로 사용할 수 있게 해준2 사람이라해도 과언이 아니다.
무료 운영체제?
운영체제를 무료로 사용할 수 있다는 말이 컴퓨터산업과 관련이 없는 사람들은 와닿지 않을 수도 있다. 과거에는 PC를 구매할 때 완제품 가격에 운영체제와 기타 S/W가격을 포함시켜 판매하는 것이 일반적이었다. 때문에 당연히 설치되어 있는 것이라 생각하는 사람들이 여전히 많이 존재한다. 요즘은 OS 미포함과 같은 옵션이 있어 쉽게 알 수 있지만 예전에는 이런 사실들이 소비자가 알지 못하는 곳에서 이루어졌기 때문에끼워팔기 더 강하게 작용하였다.
대한민국도 예외는 아니었다. 2010년쯤 들어서야 국내에서도 이런 사실들이 보다 널리 알려지면서 운영체제 미포함이라고 하는 옵션도 생기고 조금 더 합리적인 가격으로 직접 조립해서 사용하는 사람들도 많이 생겼다.3
무료 운영체제로 가장 직접적인 혜택을 받은 것은 사업자들일 것이다. 서버용 운영체제의 경우 가정용보다는 훨씬 더 높은 가격으로 책정되기 마련인데 리눅스를 사용하면 한 마디로 무료이기 때문이다. 전세계에 수 많은 서비스들이 활성화되고 사용자들이 그 서비스를 사용하면서 편의를 누릴 수 있는데 지대한 영향력을 끼친것이다.
브라우저 시장
이맘때쯤 브라우저 시장도 파도가 한 번 들이쳤다. 윈도우즈 사용율이 압도적이었던 대한민국에서는 브라우저 또한 IE가 꽉 잡고 있었는데 알고보니 운영체제 가격에 끼워팔기를 시전하고 있었다는 것이다. 기능도 개떡같고 뻑하면 뒤져버리는 이 브라우저를 왜 돈내고 사야되냐는 소비자들의 원성은 점점 거세졌다. 당시 시장을 무서운 속도로 잠식해가고 있던 대체 브라우저 크롬의 등장은 이런 기세를 더욱 가속시켰고 IE브라우저는 그렇게 노병이되어 사라져 가는 듯 싶었다.
그러나 IE Edge로 다시 출시된 MS의 브라우저는 윈도우즈 10부터 기본 소프트웨어로 설치되어 있다. 무료라고 해도 요즘엔 태생이 전부 크로미엄이라 그럴거면 크롬쓰고 말지 왜 이거 지우지도 못하게 만들었냐4 또 원성을 사고 있지만 브라우저 시장을 포기하기에는 그 사업성이 너무 거대하기 때문에 IE Edge든 할애비든 앞으로도 계속 나올것은 분명해 보인다.사파리도 마찬가지고
국내상황
슬프게도 국내 상황은 조금 달랐다. 온갖 웹 서비스에 ActiveX라는 전가의 보도를 꾸득꾸득 처 발라놨기 때문에 죽은 자식 부랄을 잡아뜯는 한이 있어도 손에서 놓지 않았다. ActiveX 관련 사업으로 먹고 사는 사람들도 많았을 것이고 무엇보다 돈은 돈대로 빨아먹고 문제가 생기면 사용자에게 책임을 전가시킬 수 있는 프로그램을 서슴없이 구매하는 구매자들, 규제의 부제, 그냥 욕 한 번 하고 킹쩔 수 없이 설치하고 사용하는 사용자들 등 복합적인 문제가 많기 때문이었다.
None ActiveX가 기능적으로 포함되어 있는 국제 표준인 HTML5가 본격적으로 배포되기 시작하고 거기에 맞춰 개발되는 브라우저들이 득세하면서 국내에서도 좋은 영향을 기대했지만, 어림도 없지.
브라우저로 3D 게임도 돌리는 이 시대에 세계 1위 브라우저 따위로는 우리 갓한민국의 보안을 감당할 수 없으므로 브라우저 외부에 설치되고 동작하는 추가 보안 프로그램이라는 흉물을 만들고야 만다.
-펄럭- 애국심이 저절로 고취되어 가슴이 웅장해진다. 기어코 만들어진 입에 담기도 부아가 치미는 흉물은 공공기관, 금융권을 필두로 ActiveX를 자연스럽게 대체하며 사방팔방에 곰팡이처럼 피어났다. 사용자들은 여전히 고분고분 사용하며 일 터지면 빠져나가기 좋고 당한 놈만 병신되는 국내정서와 아주 잘 맞는다. 고객의 니즈를 정확히 파악한 프로그램이라고 평가하고 싶다.
전세계 1위 웹 서비스 업체인 구글조차 그 막대한 트래픽을 처리하면서도 어떠한 추가 프로그램이나 플러그인조차 요구하지 않지만 K-웹 서비스는 타의 추종을 불허하는 정말 엄청난 보안을 제공하려는 것이리라. 무식한 나는 이렇게 생각하려 한다. 물론 나는 이런 프로그램을 요구하는 서비스 사용자가 주변에 있다면 그날 바로 해지할 수 있도록 도시락 싸들고 쫓아다니며 강권하고 지원해준다. 하고 싶은 말은 많지만 더 하면 그냥 한탄이 되버리니 여기까지만 하자...
Linux의 출현 그리고 GNU/Linux의 탄생
사진: 위키피디아
1991년 리누스 토르발스는 GNU 구성 요소로만 빌드되는 단일체 커널을 발표했다. GNU가 제공하는 도구들은 성숙했고 모듈식으로 구성되어 있었으며, Linux 커널은 간단하고 쉽게 실행되며 확장할 수 있었다. 사람들은 Linux 커널위에 GNU 도구를 올려 사용하기 시작했다. 이것은 무료 운영체제가 탄생한 순간이었다. 그래서인지, 그냥 Linux가 아니라 GNU/Linux 라고 불러달라고 매번 이야기한다.
수 많은 배포판
무료라는 것은 사람들이 자신이 원하는 기능을 수정하거나 직접 만들어서 마음껏 사용할 수 있다는 말이다. 현재 그 수를 헤아리기도 힘들정도로 많은 배포판들이 존재한다.5 이런 많은 배포판계보 중에서도 사용자가 많고 대중적으로 많이 알려진 굵직한 배포판들이 있는데 대표적으로 데비안Debian이 그 커다란 계보중에 하나이다.
- 데비안 계열: Debian, Ubuntu, Linux Mint, etc
- 레드햇 계열: Red Hat, Fedora, CentOS, Scientific Linux
- 아치 계열: ArchLinux, Hyperbola, Frugalware, Deli Linux
- 수세 계열: openSUSE, SUSE Enterprise
POSIX (Portable Operating System Interface)
모든 것은 Unix로부터 시작했으나 상황이 이러다보니 이제 사촌인지 남남인지 구분하기 어려울만큼 달라보이는 것들이 생기기 시작했다. 그렇기에 IEEE전기전자공학자협회는 POSIX라고 불리우는 운영체제의 표준을 작성하여 다양한 형태의 운영체제라도 서로 호환이 가능하도록 할 수 있었다. 즉, 유닉스와 유닉스가 아닌 운영체제간의 호환성을 위해 만든 운영체제 인터페이스 정의서를 말한다. 이 표준에서 제시하는 기능들을 모두 지원할 수 있는 운영체제라면 POSIX 계열이라고 말하는 것이다. 실무에서 POSIX 계열을 가끔 Unix 계열과 혼용하는데 알고 보면 어차피 모든 것이 Unix에서 시작되었기에 틀린말은 아니다.