운영체제 정의
- 시스템의 효과적인 자원관리
- HW와 SW의 인터페이스 역할담당
운영체제 분류
- PC용 운영체제: Msdos, Window
- 네트워크 운영체제: Multi User, Multi Tasking 지원, 서버 역할을 담당 (Window NT, UNIX, LINUX)
리눅스 정의와 역사
- 네트워크 운영체제로써 오픈 소스 프로그램 (WINDOW는 상용 프로그램)
- UNIX와 같은 다중 사용자 및 다중처리 시스템
- UNIX: 고가의 플랫폼에서 작동, 쉽게 접근해 조작하기 어려움
- MINIX: 1987년 네덜란드 대학교수 앤드류 스튜어트 탄넨바움이 교육용 UNIX인 MINIX 개발
- LINUX: 1991년 핀란드의 리누스 로발즈가 MINIX 기능에 만족하지 못하고 새롭게 개발한 OS, FSF 리처드 스톨만, GNU 정신, 자유 SW 지향
FSF(Free Software Foundation) - 리처드 스톨만이 세운 비영리조직 GNU(GNU’s Not Unix) - Unix와 호환은 되지만 Unix와는 다른 OS를 의미 GNU 프로젝트: SW 상업화에 반대해 SW를 자유롭게 사용하는 데 목적이 있음. 누구나 자유롭게 실행, 복사, 수정, 배포할 수 있다. 많은 GNU 프로그램은 GCC로 컴파일 되어 있다. —
Linux License: FSF의 GPL(General Public License)을 따름
GPL에서 지정하는 의무
- 컴퓨터 프로그램은 어떤 목적으로든지 사용 가능. 단, 법에서 제한하는 행위는 불가.
- 컴퓨터 프로그램의 실행 복사본은 언제나 프로그램 소스 코드와 함께 판매하거나 무료 배포해야 함.
- 컴퓨터 프로그램의 소스 코드를 용도에 따라 변경 가능함.
- 위에서 변경된 프로그램 소스코드를 반드시 공개 배포해야 함.
- 변경된 컴퓨터 프로그램 역시 반드시 동일한 License인 GPL을 적용해야 함.
그 외 주요 License
- LGPL: GPL처럼 자유 SW뿐만 아니라 독점 SW에서도 사용 가능
- Apache: 아파치 SW 재단에서 자체적으로 만든 라이선스 규정
- BSD: 버클리 캘리포니아 대학에서 배포하는 공개 SW License, 변경된 프로그램 소스코드의 변경 여부는 스스로 결정 가능하다.
- MPL: 모질라 재단에서 규정하는 License, GPL + BSD
리눅스 특징
- 다양한 네트워크 환경을 지원
- 다양한 파일 시스템 지원
- 이식성과 확장성이 뛰어남
- 뛰어난 시스템 안정성과 보안성
- 다양한 응용프로그램 제공. 커널 + GNU + 공개
- 리눅스는 다양한 배포판이 존재 (동일한 리눅스 커널 + 차별화된 응용 프로그램)
- Unix, WINDOWS와 같은 계층적 파일 구조
- 장치의 파일화
- 대부분이 C언어로 작성, 약간의 어셈블리어
리눅스 취약점
- 리눅스 OS에서 사용되는 응용 프로그램의 기술지원이 부족
- 특정 HW에 대한 지원부족
- 사용자의 숙련된 기술 요구
하드디스크 일부를 메모리처럼 사용하는 기술: 스왑