짬뽕얼큰하게의 맨땅에 헤딩 :: '데니스 리치' 태그의 글 목록

'데니스 리치'에 해당되는 글 1건

1. 유닉스와 C의 간단한 역사

유닉스는 AT&T의 벨 연구소에서 켄 톰슨이 개발, 어셈블리로 작성

톰슨은 새로운 운영체제를 만들며 트리구조의 파일 시스템, 명령을 해석하는 셸, 파일은 구조화되지 않은 바이트의 흐름의 개념을 MULTICS로부터 끌어옴

 

조금 뒤에 톰슨의 벨 연구소 동료이자 유닉스 초기 공동 연구자인 데니스 리치가 C 프로그래밍 언어를 설계하고 구현

그 이후 C는 유닉스 커널을 거의 모두 새로운 언어로 재작성할 수 있을 정도로 발달

 

1판에서 6판까지 유닉스는 여러 차례 발표됐다.

AT&T는 미국 전화 시스템에 대한 정부의 독점 규제에 묶여있었다.

AT&T가 정부와 합의한 조건 때문에 소프트웨어를 팔 수 없었고, 유닉스도 제품으로 팔 수가 없었다.

6판이 나왔을때 AT&T는 최소한의 배포비용만 받고 대학에 사용권을 주었다.

대학은 유닉스를 수정하여 학생들에게 제공

 

BSD와 시스템 V의 탄생

1979년 유닉스 7판이 발표. 

이 시점부터 유닉스가 BSD와 시스템V라는 두가지 주요 변종으로 갈림

 

톰슨은 UC버클리에서 방문 교수로 지냄 (UC버클리 졸업 후 교수 된듯)

대학원생과 함께 여러 가지 새로운 기능을 유닉스에 추가

여러가지 새로운 도구와 기능이 버클리에서 개발되었음.

BSD(Berkeley Software Distribution)라는 이름으로, 이버전의 유닉스는 소스코드째 널리 배포

그 이후 4.1 ~ 4.4BSD 버전으로 널리 개발됨

 

그 사이에 AT&T가 분해됐고, 그 결과 전화 시스템에 대한 독점이 해소되어, 유닉스 판매가 가능

그 이후 시스템 V 발표, 시스템 V는 여러 회사에 사용권이 제공되었고, 여러 회사는 이를 기초로 각자의 유닉스를 구현

 

따라서 학계에 퍼진 다양한 BSD 배포판뿐만 아니라, 다양한 하드웨어상에 유닉스의 여러가지 상업적 구현이 존재

상업적 구현에는 나중에 솔라리스가 된 썬의 SunOS, IBM의 AIX, 애플 매킨토시의 A/UX, 마이크로소프트와 SCO의 XENIX가 포함

 

 

2. 리눅스의 간략한 역사

2.1 GNU 프로젝트

MIT에서 일하던 리처드 스톨만은 자유(FREE) 유닉스 구현을 만들기 시작

커널과 모든 관련 소프트웨어 패키지로 이뤄진, 완전하고 자유롭게 구할 수 있는 유닉스와 유사한 시스템을 개발하기 위해 GNU 프로젝트(GNU IS NOT UNIX)를 시작 (재귀적 의미)

GNU프로젝트의 중요 결과 중 하나는 자유 소프트웨어 개념을 법적으로 구체화한 GPL(General Public License)다.

GPL License: 반드시 소스 코드를 구할 수 있어야 하고, GPL에 따라 자유롭게 배포할 수 있어야한다.

초기의 GNU프로젝트는 동작하는 유닉스 커널을 만들지 못하고 여러가지 응용 프로그램을 만듦(Emacs 등)

1990년대 초 GNU프로젝트는 유닉스 커널을 제외한 거의 완전한 시스템을 만듦

 

2.2 리눅스 커널

1991년 핀란드 헬싱키 대학 학생 리누스 토발즈는 유닉스 커널을 만드는 프로젝트를 시작, 몇 달 뒤 토발즈는 여러 가지 GNU 프로그램을 컴파일 하고 실행하는 기본 커널을 개발

토발즈는 리눅스를 GNU GPL에 따라 배포하기 시작

여러 사람들이 함께 개발

 

3. 표준화

3.1 C 프로그래밍 언어

유닉스 구현의 다양성에 문제가 있었음

BSD에 기반한 유닉스 구현, 시스템 V에 기반한 구현, 어떤 구현은 짬뽕~

다양한 구현들 사이에 차이가 생김

이러한 요인으로 인해 ANSI(American National Standards Institute)의 승인으로 C의 표준화

이 표준은 ISO표준으로 채택

1999년 ISO에 의해 C 표준 개정(C99)

C표준은 운영체제와 독립적이다. 유닉스에 매여있지 않고, C를 제공하는 어떤 컴퓨터와 운영체제에도 이식이 가능

 

 

 

 

 

 

 

 

'시스템 프로그래밍' 카테고리의 다른 글

프로세스 간 통신(IPC) 개요  (0) 2020.04.18
블로그 이미지

짬뽕얼큰하게

,