Linux란? (정의)
: 1991년 리누스 토발즈에 의해 오픈소스로 개발된 유닉스 호환 OS
- 개발 당시에는 리눅스 커널만을 의미했음.
- 현재는 FSF(Free Software Foundation, 자유 SW 재단)가 GNU프로젝트를 통해 리눅스 커널 기반의
다양한 라이브러리와 어플리케이션이 포함된 '리눅스 배포판'을 제공함 >> 이를 강조해 "GNU/Linux"라 부름
Linux가 왜 특별해? (특징)
① 이식성 (Portability)
- C언어로 작성(최소한 플랫폼에 종속적인 부분만 어셈블리어)되어 다양한 HW에 이식 가능
- 다양한 CPU 지원함 (초기 인텔 x86를 기본 지원했으나, 현재 다양한 인텔, ARM 등 다양한 CPU 아키텍처에 적용됨)
② 자유 소프트웨어 (Free sofrware)
- 리눅스 소스코드는 공개되어 자유롭게 사용,수정,배포 가능해 전세계 개발자 커뮤니티로 진화중
- 단, 수정 프로그램의 실행 복사본은 언제나 소스코드와 함께 배포되어야 함
- 리눅스 SW들은 대부분 GPL/LGPL 라이센스를 따름
③ 멀티 유저 (Multi-User)
- 다수의 사용자가 NW를 통해 하나의 시스템 자원(CPU, 메모리 저장소 등)에 접근 가능
④ 멀티프로그래밍 (Multi-programming)
- 다수 프로그램을 메모리에 적재하고 동시 실행 가능
⑤ 계층적 파일시스템 (Hierachical File System)
- 시스템과 사용자를 위한 표준화된 디렉터리 구조를 정의 ex) /dev : 장치 관련 파일, /usr : 사용자 위한 파일
[★추후 포스팅예정] : 리눅스는 디렉토리도 장치들도 모두 파일로 취급하므로 표준화 디렉터리 구조를 알아두는 것 필요!!
⑥ 셸 (Shell)
- 리눅스 기능 수행할 명령어 기반 프로그램
- 사용자가 셸에 명령어 입력 -> 셸은 명령어 해석 & 명령어 처리할 프로그램 실행 요청 -> 프로그램 실행되어 작업처리
- '명령어 해석 기능', '프로그래밍 기능', '사용자 환경 설정 기능'을 제공
⑦ 보안 (Security)
- 유닉스 보안 모델 따라 '임의접근제어(DAC, Discretionary Access Control)'나 이를 확장한 '확장 임의접근제어(Extended DAC)'를 제공
- SELinux(보안 강화 리눅스, Security Enhanced Linux) : '강제접근제어(MAC, Mandatory Acess Control)'을 강화한 리눅스
- 접근제어 (Access Control)
: 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것
- 객체(Object) : 접근 통제에서는 시스템 자원
- 주체(Subject) : 자원에 접근하는 사용자나 프로세스
ex1) /etc/passwd 파일은 객체, 이 파일에 접근해서 암호를 변경하는 passwd 라는 명령어는 주체
ex2) 객체 : 아파치 웹 서버의 설정 파일인 /etc/httpd/conf/httpd.conf
주체 : 웹 서버 프로그램인 /sbin/httpd
- 임의접근제어(DAC, Discretionary Access Control)
: 객체에 대한 접근을 사용자나 또는 그룹의 신분을 기준으로 제한하는 방법
- 사용자나 그룹이 객체의 소유자라면 다른 주체에 대해 이 객체에 대한 접근 권한을 설정 가능
- 강제접근제어(MAC, Mandatory Acess Control)
: 미리 정해진 정책과 보안 등급에 의거하여 주체에게 허용된 접근 권한과 객체에게 부여된 허용 등급을 비교하여 접근을 통제하는 모델
- 높은 보안을 요구하는 정보는 낮은 보안 수준의 주체가 접근할 수 없으며 소유자라고 할 지라도 정책에 어긋나면 객체에 접근할 수 없으므로 강력한 보안을 제공
- NW정책에 따라 노드나 라우터로 동작가능하며, NW 트래픽을 서버로 전달 가능
( ㄴ이를 위해 netfilter, iptables, ebtables, arptables등의 모듈 제공)
- IP통신 시 안전한 데이터 송수신을 위해 NW스택에서 IPSec¹을 제공
리눅스의 장점 :-)
- 오픈소스로 (상용 운영체제 대비) 라이선스 비용이 들지 않아 경제적
- 오픈소스로 전세게 개발자들에 의해 안정적 개선 및 보안성 강화됨
- 다양한 NW 환경(이더넷, SLIP, PPP 등)과 프로토콜(TCP/IP, IPX 등)을 지원함
- 다양한 배포판(서버, 개발용, PC용) 존재
- (임베디드 리눅스와 같이) 특정 HW에 맞게 커널 기능 커스터마이징 가능
리눅스의 단점 :-(
- (공개 커뮤니티로 발전중이지만) 이슈를 해결해 줄 수 있는 체계적인 기술지원 미존재
- (오픈소스 SW풍부하지만 MS오피스 같은) 리눅스용 상용 SW 부족
- 최신 HW 디바이스 드라이버 지원이 느림 (제조사에서 제공안하면 오픈소스 개발자들이 HW를 역분석(reverse enginering)하여 드라이버를 만들어내는데 오래걸림) << 와..0ㅁ0
[출처]
- 리눅스 파일 시스템 구조 : coding-factory.tistory.com/499
- 접근제어 완벽 설명 : www.lesstif.com/ws/access-control-dac-mac-43843837.html
- IPSec : ko.wikipedia.org/wiki/IPsec
- IPSec 상세설명 ; reakwon.tistory.com/108
- [책] 리눅스마스터 1급 기본서(2020) | 저자 김윤수, 최정현|영진닷컴 |2020.03.25
http://book.naver.com/bookdb/book_detail.nhn?bid=16317946