IT/OracleLinux-1Z0460

리눅스 역사

알콩달콩아빠 2022. 5. 11. 12:51
728x90
반응형

안녕하세요.

 

뚱보 프로그래머 입니다.

 

오늘은 리눅스 역사에 대해서 간략하게 적어 보겠습니다.

 

 

1. UNIX의 탄생과 성장

 

1965 MIT, AT&T 벨 연구소, General Electric에서는 Multics라는 실험적인 운영체제를 공동으로 개발하는 프로젝트를 진행하였다. 이 프로젝트는 멀티태스킹(multitasking), 멀티 유저(multiuser)를 지원하는 초기 형태의 시분할(time sharing) 운영체제를 만들고자 했던 것이다. 그러나 Multics는 초기의 설계 목표와는 다르게 비대해지고 쓸모없는 운영체제로 개발이 진행되었고 프로젝트는 좌초되기에 이른다.

 

하지만 이 프로젝트에 참여했던 톰 캔슨과 몇 명의 연구원들은 프로그래밍에 관한 연구를 효과적으로 수행하기에 적합한 환경을 만들어 보자는 의도에서 계속하여 운영체제 개발에 몰두하였고 그 결과 탄생한 것이 초기 형태의 UNIX였다.

 

당시에는 하드웨어를 운영하는 프로그램을 그 하드웨어의 어셈블리어로 작성하여 사용했는데, 유닉스 역시 미니 컴퓨터인 PDP-7에서 작동되도록 만들어진 것이었으며 어셈블리어로 작성되어 있었다. 그러나 다른 기종에 이식하려면 그 기종에 맞는 어셈블리어로 다시 작성해야만 하는 불편이 있었다. 초기의 운영체제는 기계 의존적이며, 서로 다른 기종간에 호환성이 없는 운영체제였다. 그리고 UNIX를 운영체제로 사용하던 PDP-7 또한 많은 소프트웨어를 제공하지 못하는 상황이었다.

 

1973년 데니스 리치(Dennis Ritchie) C 언어를 개발함으로써, 어셈블리 언어로 되어있던 UNIX C 언어로 포팅되고 이때부터 UNIX는 이식성과 호환성있는 시스템으로서 사용자로부터 큰 반향을 일으켰고, 벨 연구소를 중심으로 유닉스 사용자 그룹이 형성되며 빠르게 업그레이드 되면서 배포되었다. UNIX는 주로 연구와 학습을 목적으로 대학이나 연구소 등에 무료로 배포되었고 이를 이용하는 프로그래머들 또한 자연스럽게 서로에게 필요한 프로그램을 공유하는 공동체 분위기가 조성되어 있었다. Source가 공개되어 있었던 UNIX는 많은 대학들과 연구원들에 의해 연구되어 마침내 상업적으로 이용되기 이르렀고, Berkeley Unix(BSD), SYSV와 같은 계열로 분리되고, SunOS, OSF/1, AIX, HP-UX, Solaris, IRIX, SCOUNIX 등과 같은 다양한 버전이 유닉스 운영체제를 탄생시키는 모체가 되었다.

 

1980년대 UNIX는 당시 가장 인기있는 기종인 DEC PDP-11 VAX를 주축으로 발전되고 있었다. 한편, MIT의 인공지능 연구소에서는 PDP-10에 탑재하기 위한 시분할(Time Sharing) 운영체제인 ITS를 개발하였는데, 연구 내용을 상업화하려는 움직임이 있었고, 이로 인해 분열의 조짐을 보이면서 몇몇 연구원들이 상업적으로 이용하기 위해 연구소를 떠났다. 마침 DEC VAX PDP-11을 주력제품으로 삼으면서 PDP-10을 단종시킴으로써 더 이상 ITS의 개발은 이루어질 수 없었다.

 

2. GNU 프로젝트의 시작

 

1984 MIT의 인공지능 연구소의 연구원으로 ITS 프로젝트에 참여하였던 리차드 스톨만(Richard Stollman)은 소스를 공개하지 못하도록 하는 분위기와 기술을 상업화하려는 조류에 반감을 갖게 되었다. 그래서 그는 새로운 시스템을 구상하였고 그 모델이 UNIX였다. 그는 C로 작성되고 모두에게 공개된 UNIX 시스템을 위해 GNU(GNU is not UNIX) 프로젝트를 시작하게 되었다. 그는 GNU 프로젝트의 결과물들이 자신이 몸담았던 MIT로부터 저작권과 관련한 어떤 제약을 받게 될 것을 우려하여 MIT 연구원직을 사직할 만큼 완전히 자유로운 운영체제를 원하고 있었다.

 

1985 GNU 프로젝트로 개발된 에디터인 Emacs에 대한 사용자들의 관심이 높아지면서 스톨만은 GNU 프로젝트 운영을 위해 FSF(Free Software Foundation, 자유 소프트웨어 재단)을 설립하였다. 개발이 진행된 프로그램들은 GNU 프로젝트의 배포 라이센스인 GPL (GNU Public License)하에서 판매되었으며 판매 수익은 프로젝트를 운영하는데 사용되었다. 모든 GNU 프로젝트는 FSF를 중심으로 진행되어 왔다.

 

1990 GNU 프로젝트는 거의 완성 단계에 이르렀으나, 운영체제의 핵심인 커널이 빠져있는 상태였다. 스톨만은 Mach를 기반으로 한 커널인 ‘Hurd’라는 이름의 커널을 개발하기 시작하였으나 이미 공개된 프로그램들에 대한 지원 등 여러 가지 이유로 GNU 커널 개발은 진척이 이루어지지 않았다.

 

1991년 핀란드 헬싱키 대학에서 한 대학생에 의해 GNU 프로젝트에 적합한 커널이 개발되고 있었는데, 이것이 바로 리누스 토발즈에 의해 개발된 리눅스였다. 당시 21살이의 대학생이었던 리누스는 앤디 테넌바움(Andy Tanebaum) 교수가 학생들의 학습을 위해 개발한 미닉스(Minix)를 사용하던 중 유닉스와 호환되는 공개된 운영체제의 개발 계획을 Minix 사용자 모임에 발표하였다. 그는 개발할 운영체제가 단지 취미이며 GNU처럼 거대하거나 전문적인 것은 아니다라고 프로젝트 초기의 의도를 밝혔다. 그래서 초기의 리눅스는 이식성이 고려되지 않은 단지 i386 계열에서 운영되는 유닉스 호환 운영체제를 목표로 하는 프로젝트였다. 초기 버전 0.01은 가장 기본적인 커널만을 포함하고 있었으며 실행조차 되지 않는 수준이었다. 얼마 후 리눅스 공식 버전인 0.02가 발표되었는데, bash(GNU Bourne Again Shell) gcc(GNU C 컴파일러) 정도가 실행될 수 있는 수준이었다.

 

3. GNU 리눅스

 

1992 3월 리눅스는 0.95로 버전업되었고, 인텔 x86 칩에서 사용할 수 있었고, 그래픽 사용자 인터페이스가 추가되었다. GNU 커널로 개발 중이던 “Hurd”의 개발이 순조롭지 않았던 스톨만과 FSF는 유닉스 커널과 호환 가능한 커널인 리눅스를 GNU 시스템의 커널로 채택하기로 하였다. 리눅스는 강력한 GNU C 컴파일러인 gcc로 컴파일된 많은 응용 프로그램들을 가지게 되어 GNU 시스템은 완전한 구조를 갖추게 되었다. 리눅스의 커널 부분은 리누스 주도하에 계속 개발되었는데, 리누스는 최대한 확장 가능한, 즉 사용자에게 제어권이 있으며, 어떤 인터페이스에도 종속되지 않도록 개발을 주도하였다.

 

1994 1 6개월 여만에 버전 1.0이 발표되었고 이 버전에는 네트워킹 기능이 추가되었다. 이 즈음 리눅스에 확실한 수익 모델이 있다고 판단한 밥 영과 마크 유잉은 레드햇사를 설립하고 최초로 자사에서 패키징한 레드햇의 최초 배포본을 발표하게 되었다.

 

1995년 리눅스는 더 이상 i386 계열에서 구동되는 학습용 운영체제가 아닌 인텔, 디지털, 썬 스팍 프로세서에도 포팅되면서 그 영역이 확대되었으며, 알파 프로세서용의 64비트 리눅스도 등장하였다.

 

그리고 1996년 버전 2.0이 발표되었는데 여러 프로세서를 한번에 사용할 수 있는 컴퓨팅 파워가 추가되었다. 1998년에 만 여명의 프로그래머가 뉴스 그룹에서 코드 향상과 테스팅에 참여하였다.

 

1999 SMP 기능의 공식 지원으로 최대 16개까지의 CPU 장착이 가능해지고, 최대 동시 접속 사용자수 2048명까지 지원하는 시스템이 되었다.

 

2000년 리눅스 커널 2.2.1x 안정 버전까지 버전업되었으며, 2.4버전대가 등장하였다. 초기의 i386 계열에서 돌아가는 것을 목표로 했던 것을 넘어서 팜파일럿으로부터 메인 프레임까지도 이식 가능한 PC상에서 운영되는 가장 이식성이 강한 운영체제로 자리매김하게 된 것이다. 클러스터링, 임베디드 시스템의 기반으로도 응용 분야가 확대되고 있다.

처음 접하시는 분들은 어려운 단어가 많을 수도 있습니다.

저도 자세하게 공부하지는 않아 대략적으로만 알고 있네요.

사실 모든 과목이 역사부터 시작이라는 생각이 듭니다.

그역사를 이해해야 현재까지에 내용 또한 이해가 빠르리라 생각이 드네요.

 

주변에 공부하고 싶다는 사람이 있어 자세하게 적었지만 저도 이글을 읽으면서 저도 모르는 부분이 많다는 생각이 듭니다.

 

화이팅..!!

 

 

 

 

728x90
반응형

'IT > OracleLinux-1Z0460' 카테고리의 다른 글

리눅스 지원 HardWare  (0) 2022.05.11
tcp 소켓 프로그래밍  (0) 2022.05.11
리눅스 특징  (0) 2022.05.11
ip 주소 클래스  (0) 2022.05.09
CentOS network 설정  (0) 2022.05.04