리눅스(linux)는 리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영체제이다.혹은 커널을 뜻하기도 한다. 리눅스는 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본으로 들 수 있다. 리눅스는 다중 사용자, 다중작업(멀티태스킹), 다중 스레드를 지원하는 네트워크 운영체제(NOS)이다.
여기서 운영체제는 윈도우즈와 같은 것이다. 컴퓨터를 켜면 윈도우즈가 반겨주는데 우리한테 프로그램도 설치하게 해주고, 마우스로 클릭도 하게 해주고, 키보드로 글씨도 입력하게 해주는 운영체제라고 생각하면 된다.
소프트웨어라는 말은 사용자가 소프트웨어를 자유롭게 이용(열람, 수정, 배포 등)할 수 있는 권리와 라이센스를 의미하기도 한다. 오픈소스는 소스(Source)가 오픈(Open)되어 있다라는 이야기로 누구라도 소스를 확인할 수 있음을 이야기한다.
이러한 운영체제들은 벽돌인 컴퓨터 기계 장치에 생명을 불어넣는 역할을 한다. 우리도 윈도우즈가 제공하는 사용성 안에서 엑셀도 사용하고, 포토샵도 사용한다. 리눅스는 웹서버, 데이터베이스 프로그램 등을 사용한다. 홈페이지를 응답해주고, 데이터를 저장해주는 프로그램들을 사용한다.
다중 사용자 및 다중 처리 시스템
완전히 공개된 시스템
운영체제의 핵심인 커널(Kernel) 뿐만 아니라, 운영체제 프로그램에 내장되어 배포되는 대부분의 모든 응용 프로그램들의 소스가 공개된 오픈소스 프로그램이다.
뛰어난 네트워크 환경
가장 널리 쓰이는 이더넷(Ethernet)을 포험하여 SLIP, PPP, ATM 등의 다양한 네트워크 환경을 지원하여 TCP/IP, NetBEUI, IPX, AppleTalk 등 대부분의 네트워크 프로그램을 지원한다.
다양한 파일 시스템 지원
뛰어난 이식성
리눅스는 약간의 어셈블리어와 대부분의 C언어로 작성되어 있다. C를 컴파일할 수 있으며, 어셈블리어 부분만 새롭게 만들고 C부분을 다시 컴파일 함으로써 쉽게 다른 시스템이나 환경 등에 이식하여 사용할 수 있다.
유연성과 확장성
리눅스는 상업용 유닉스(UNIX)의 모든 특성을 가지며 유닉스의 표준인 포직스(POSIX)를 준수하고 있으며 커널, 장치 드라이버, 라이브러리, 응용 프로그램, 개발도구 등 리눅스의 소스코드를 쉽게 접할 수 있다.
강령하고 뛰어난 안정성과 보안성
리눅스는 커널 소스가 공개되어 있어 Windows 운영체제와 같은 폐쇄형 운영체제에 비해 보안상의 보안 취약점이 쉽게 노출될 가능성이 있으나, 공개용 소프트웨어를 지지하는 수많은 전문 프로그래머들이 상용 운영체제보다 빠르게 오류 수정과 보안 관련된 패치에 대응하여 안정성을 확보한 버전을 발표하고 있다.
우수한 가격대 성능비
기업환경에서 서버로 사용되는 유닉스를 x86 시스템에 최적화시켜 효율적읜 방식으로 설계하였기 때문에 PC급 서버에서도 엔터프라이즈(Enterprise) 서버와 유사한 성능을 발휘할 수 있다.
다양한 응용 프로그램 제공
쉘(Shell)과 기본 명령어, X Window 시스템, 편집기, 서버 및 클라이언트 프로그램, 개발도구, 보안도구, 게임 등을 포함하여 베포하고 있다.
다양한 베포한의 존재
리눅스는 서버, 개발용, PC용 등 다양한 목적으로 사용 가능하고 이에 따른 다양한 배포판이 존재한다.
기술 지원의 부족
리눅스에서 사용되는 대부분의 응용 프로그램은 비상업적인 제품인데 전 세계에 흩어져 있는 개발자들이 일일이 기술지원을 하는 것이 불가능하다.
특정 하드웨어에 대한 지원이 부족
리눅스가 다른 운영체제에 비해 이식성, 확장성 등이 뛰어나지만 여전히 특정한 하드웨어에 대한 설치가 어렵고 모든 플랫폼에서 작동하는 만능 운영체제는 아니다.
사용자의 숙련된 기술 요구
현재 리눅스에서는 X-Window 기반 환경이 보편화되면서 초기 텍스트 기반의 명령어를 입력하는 환경에 비해 쉬워졌지만, 아직도 중요한 설정은 명령어를 입력하거나 관련 환경설정 파일을 편집기를 사용해서 수정이 필요하여 지식이 없는 일반 사용자들은 사용에 어려움이 있다.
Linux | Windows | |
---|---|---|
비용 | 무료 | 비쌈 |
오픈 소스 | O | X |
맞춤 설정 가능 | O | X |
보안 | 더욱 안전함 | 바이러스 및 맬웨어 공격에 취약 |
부팅 | 기본 또는 논리 파티션 | 주 파티션만 |
디렉토리 분리 | 백 슬래시 | 슬래시 |
파일 이름 | 대소 문자 구분 | 대소 문자를 구분하지 않음 |
파일 시스템 | EXT2, EXT3, EXT4, 라이저 FS, XFS 및 JFS | FAT, FAT32, NTFS 및 ReFS |
사용된 커널 유형 | 단일체 커널 | 마이크로 커널 |
능률 | 효과적인 주행 효율 | 리눅스보다 낮음 |
리눅스라는 단어는 깊게는 리눅스 커널을 의미한다. 커널은 응용 프로그램의 요청처리, 자원(메모리,네트워크 등) 관리를 해주는 운영체제의 핵심 소프트웨어이다. 우리가 일상에서 만나는 다양한 이름의 리눅스들은 리눅스 베포판이다. 리눅스 커널에 여러가지 프로그램들을 붙여서 배포하기 위해 구성된 운영체제이다. 최근 듣는 리눅스 배포판으로는 우분투(Ubuntu), 페도라(Fedora), 리눅스 민트(Linux Mint), 센트OS(Cent OS) 등이 있다. 우리에게 친숙한 스마트용 운영체제인 안드로이드도 리눅스흫 기반으로 만들어졌다.
영국 기업 캐노니컬이 개발, 배포하는 컴퓨터 운영체데이다. 데비안 리눅스를 기반으로 개발되며, 데비안에 비해 사용 편의성에 초첨을 맞춘 리눅스 배포판이다.
일반적으로 6개원마다 새로운 버전이 공개되며, 장기지원판(LTS)은 2년에 한번씩 출시되는데 4월과 10월에 한번씩 메이저 업데이트가 이루어지고 있다. 그리고 또 5년의 지원기간을 가진 LTS(Long Term Service) 버전을 짝수해 상반기에 내놓는다. LTS버전이 아닌 것의 지원기간은 9개월이며 9개월이 지나면 업그레이드를 하거나 새 버전으로 설치를 하는 것을 권장하고 있다.
페도라 프로젝트가 개발한 컴퓨터 운영체제이다. 레드햇의 후원과 개발 공동체의 지원 개발된 일반적인 목적을 가진 RPM기반의 소프트웨어가 결합된 운영채재이기도 하다. 유료로 판매되는 레드햇에 들어갈 기능을 테스트하는 성격이 강하다. 따라서 간혹 업데이트 후에 엄청난 에러를 동반하는 경우가 존재하곤 한다, 물론 이런 업데이트는 유저의 선택에 의해 업데이트를 할 수도 있도 안할 수도 있다. 보는 관점에 따라서 전문가를 위한 리눅스라고 보기도 한다.
페도라 프로젝트의 주요 목표는 자유, 오픈 라이선스 아래 개발된 소프트웨어를 아우르는 것과 컴퓨터 기술의 첨단을 선도해 나가는 것이다.
리눅스 민트는 Clement Lefebvre, Jamie Boo Birse, Kendall Weaver가 개발한 컴퓨터 운영체제이다. 우분투와 달리 독점 소프트웨어인 자바와 플래시 뤱 프로그인 등을 기본적으로 포함하여 설치하고 바로 사용하기에 편리하다. 우분투와 같은 소프트웨어 저장소를 쓰고 심어져 있는 소프트웨어도 우분투와 거의 같다. 심지어 우분투에 적용되는 팁의 대부분이 리눅스 민트에도 적용된다.
센트OS는 센트OS 프로젝트에서 레드헷 제휴로 개발한 컴퓨터 운영체제이다. 업스트림 소스인 레드헷 엔터프라이즈 리눅스와 완벽하게 호환되는 무료 기업용 컴퓨팅 플랫폼을 제공할 목적으로 만들어진 리눅스계 운영체제 가운데 중 하나이다. 유료 리눅스인 레드햇 엔터프라이즈를 그대로 빌드하여 상표권만 제거한 리눅스 센트OS이다.
오픈수세 프로젝트에서 개발한 컴퓨터 운영체제이다. 후원은 노벨에서 하였고 2004년 1월, 수세 리눅스를 인수한 이후 노밸은 수세 리눅스 프로페셔널 제품을 완전한 오픈 소스 프로젝트로서 배포하기로 결정하고, 개발 과정에 커뮤니티가 참여할 수 있도록 하였다.
컴퓨터 하드웨어는 케이스, 중앙 처리 장치(CPU), 모니터, 자판(키보드), 컴퓨터 기억 장치(RAM), 그래픽 카드(GPU), 사운드 카드, 메인보드와 같은 컴퓨터의 물리적 부품을 의미한다.
컴퓨터 운영체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든 것을 완전히 통제하며, 운영체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지의 서비스를 제공한다.
프로그램의 실행 과정에서 가장 핵심점인 연산이 이루어지는 부분으로 코어, 리눅스라고 부른다. 하드웨어를 직접 제어하고, 프로세스 관리, 파일 시스템 관리 등을 수행하는 운영체제의 핵심으로, 사용자가 실행시키는 응용프로그램(Application)과 하드웨어 사이의 관리자 역할을 수행하며 쉘과 연관되어 쉘에서 명령하는 작업을 수행하고 수행된 결과를 쉘로 보내는 역할을 한다.
셸은 운영체제 상에서 다양한 운영체제 기능과 서비스를 구현하는 인터페이스를 제공하는데 사용자가 입력하는 명령을 대신 해석해 커널에게 전달하여 실행해주는 프로그램이다. 쉘은 사용자가 입력한 문자열을 해석하고 해당 명령어를 찾아 커널에 작업을 요청하게 된다. 그리고 커널에서 작업을 수행한 결과를 다시 쉘로 보내면 쉘은 그 결과를 유저에게 알려주는 형식이다.
쉘은 사용자와 운영체제의 내부 사이의 인터페이스를 감싸는 층이기 때문에 붙여진 이름이다. 쉘은 일반적으로 명령 줄과 그래픽 형의 두 종류로 분류된다.
응용 소프트웨어 또는 애플리케이션은 운영체제에서 실행되는 모든 소프트웨어를 뜻하는데 리눅스는 각종 프로그래밍 개발도구, 문서 편집 도구, 네트워크 관련 도구 등 매우 다양한 응용프로그램을 제공한다.