1. 리눅스 (Linux)
ㅇ 1991년 당시 핀란드 헬싱키대 대학생 Linus Torvalds가 인터넷에 소스코드를 공개한 후 급속도로
성장한 운영체제
ㅇ 그 어원은 `Linus Torvalds의 Linus`와 `Minix`의 합성어
- Minix(미닉스) : 앤드루 타넨바움이 만든 교육용 Unix 커널 버전
2. 리눅스 특징
ㅇ 공개 소프트웨어
- 사실 리눅스는 개발 및 테스트를 통제하는 회사 및 집단 등이 없다는 점에서
다른 운영체제와는 현저하게 다름
. 누구나 리눅스 커널 소스의 수정에 참여할 수 있음
- FSF(Free Software Foundation)의 GNU(Gnu's Not Unix) 선언문의 정신을 따름
. GPL (General Public License) 2.0에 의해 라이선스되어 있음
ㅇ 기존 유닉스와의 완벽한 호환이 가능
- 유닉스에 대한 POSIX, SUS 표준과의 호환을 지향
. 그러나, 유닉스 소스 코드를 직접 계승하지는 않았음
ㅇ 리눅스는 사실 커널 만을 의미하나,
- 리눅스 커널 주요 버전
. 0.1 (1991) : 최초 발표
. 1.0 (1994) : 네트워킹 기능 추가
. 2.0 (1996) : 멀티프로세서 지원, 2.4 (2001) : 엔터프라이즈 서버 환경 지원
. 2.6 (2003) : 임베디드 커널 등 거의 모든 플랫폼 지원
- 통상, 그 커널을 기반으로하는 운영체제 전반 즉 리눅스 배포판을 뜻하고 있음
. RedHat,Debian,Slackware 등과 같은 계열의 리눅스 배포판은,
커널과 여러 유용한 프로그램들을 함께 모아 소프트웨어 패키지 형태로 제공됨
ㅇ 상당히 많은 컴퓨터 아키텍처(CPU 등)를 지원하는 이식성이 좋은 운영체제
- 처음에는(1991년) 인텔 80386 AT 기종을 대상으로 개발 포팅하였으나,
- 후에, Alpha,MIPS,ARM 등 다양한 CPU들을 폭넓게 지원 함
ㅇ 다양한 파일시스템 지원
- ext2, ext3, ext4, DOS의 FAT, 윈도우즈(FAT3,NTFS), 네트워크파일시스템(SMB,CIFS,NFS) 등
- 실험적인 것들도 포함하여 40개도 넘는 파일시스템을 지원
ㅇ 다양한 리눅스 배포판 환경이 있음
- 데비안 계열 : 데비안(Debian), 우분투(Ubuntu), 리눅스 민트(Mint) 등
- 레드햇 계열 : 페도라(Fedora,무료), RHEL(유료), CentOS(무료) 등
- 슬랙웨어 계열 : 슬랙웨어(Slackware), SUSE 등
ㅇ 네트워크 지원을 기본으로 함
ㅇ 다중 사용자 및 다중 처리 시스템
- 여러 사용자 동시 접근 가능 및 여러 태스크 동시 실행 가능
- 또한, 선점형 멀티태스킹 임
ㅇ 관리 대상을 추상화시킨 객체로써 다룸
- 태스크 (프로세스) : CPU 활동 작업의 단위를 추상화시켜, 프로그램에게 실행 관점을 제공
- 파일 : 저장 공간을 추상화시켜, 프로그램에게 저장 장소를 제공
. 한편, 리눅스는 모든 자원을 파일로써 취급함
- 프로세스 : 운영체제 커널이 컴퓨팅 자원을 할당코자 정의하는 추상적인 존재
- 소켓 등
※ [참고사항]
- 리눅스 주요 디렉토리 구분 ☞ 리눅스 디렉토리 참조
- 주요 셸 : bash, csh, ksh 등
- 주요 프로그래밍 도구 : vi 에디터, gcc 컴파일러, make 유틸리티, 디버깅용 gdb 유틸리티 등