작품1991
리눅스 커널
Linux kernel
리눅스 커널(영어: Linux kernel)은 오픈 소스 모놀리딕 유닉스 계열 컴퓨터 운영 체제 커널이다. 리눅스 계열의 운영 체제는 이 커널에 기반을 두며 개인용 컴퓨터와 서버와 같은 전통적인 컴퓨터 시스템들과 라우터, 무선 액세스 포인트, PBX, 셋톱 박스, FTA 리시버, 스마트 TV, PVR, NAS 어플라이언…
작품1991
Linux kernel
리눅스 커널(영어: Linux kernel)은 오픈 소스 모놀리딕 유닉스 계열 컴퓨터 운영 체제 커널이다. 리눅스 계열의 운영 체제는 이 커널에 기반을 두며 개인용 컴퓨터와 서버와 같은 전통적인 컴퓨터 시스템들과 라우터, 무선 액세스 포인트, PBX, 셋톱 박스, FTA 리시버, 스마트 TV, PVR, NAS 어플라이언…
이 항목이 포함된 사건 파일에서 정보와 관계를 함께 살펴보세요.
이 항목이 포함된 사건 파일이 아직 없습니다.
이 항목으로 조사 시작하기이 항목과 이어지는 작품이나 사람을 살펴보고 있어요.
리눅스 커널
연결된 것을 찾고 있어요.
아직 댓글이 없어요. 먼저 한마디 남겨 보세요.
관계가 언제 생기고 바뀌었는지 날짜순으로 모았습니다. 소식 글과 출처에 적힌 날짜를 기준으로 합니다.
리눅스 커널 개발사 Larry W. Finger
리눅스 커널(영어: Linux kernel)은 오픈 소스 모놀리딕 유닉스 계열 컴퓨터 운영 체제 커널이다. 리눅스 계열의 운영 체제는 이 커널에 기반을 두며 개인용 컴퓨터와 서버와 같은 전통적인 컴퓨터 시스템들과 라우터, 무선 액세스 포인트, PBX, 셋톱 박스, FTA 리시버, 스마트 TV, PVR, NAS 어플라이언스 등의 다양한 임베디드 장치에 보통 리눅스 배포판의 형태로 배치된다.
리눅스 커널(영어: Linux kernel)은 오픈 소스 모놀리딕 유닉스 계열 컴퓨터 운영 체제 커널이다. 리눅스 계열의 운영 체제는 이 커널에 기반을 두며 개인용 컴퓨터와 서버와 같은 전통적인 컴퓨터 시스템들과 라우터, 무선 액세스 포인트, PBX, 셋톱 박스, FTA 리시버, 스마트 TV, PVR, NAS 어플라이언스 등의 다양한 임베디드 장치에 보통 리눅스 배포판의 형태로 배치된다. 태블릿 컴퓨터, 스마트폰, 스마트워치를 위한 안드로이드 운영 체제는 기능 구현을 위해 리눅스 커널이 제공하는 서비스들을 사용한다. 데스크톱 컴퓨터에 채용하는 경우가 낮은 편이지만 리눅스 기반 운영 체제들은 모바일 장치에서부터 메인프레임에 이르기까지 기타 거의 모든 컴퓨팅 부문을 지배하고 있다. 2017년 11월 기준으로, 세계 500대의 가장 강력한 슈퍼컴퓨터들은 모두 리눅스를 실행하고 있다.
리눅스 커널은 1991년 리누스 토르발스가 자신의 개인용 컴퓨터를 위해 고안되어 개발 되었고 크로스 플랫폼의 의도는 없었으나 그 이후로 다른 운영 체제나 커널 대비 더 다양한 컴퓨터 아키텍처를 지원하도록 확장되었다. 리눅스는 급속도로 기타 자유 소프트웨어 프로젝트, 특히 GNU 운영 체제로 이 커널을 채택한 개발자들과 사용자들을 매혹시켰다. 리눅스 커널은 1,200개 이상의 회사의 12,000명에 가까운 프로그래머들의 기여를 받아왔으며, 여기에는 최대 소프트웨어 및 하드웨어 벤더들 일부가 포함된다.
리눅스 커널 API는 사용자 프로그램들이 커널과 통신하는 API로서 매우 안정적이고 유저스페이스 프로그램(GUI를 갖추고 다른 API에 의존하는 일부 프로그램)을 망가트리지 않는다는 것을 뜻한다. 커널 기능의 일부로서 장치 드라이버들은 하드웨어를 제어한다. 즉, 주류 장치 드라이버들은 매우 안정적임을 뜻한다. 그러나 다른 수많은 커널과 운영 체제와 달리 커널과 적재 가능 커널 모듈(LKM) 간의 인터페이스가 매우 안정적으로 설계되었다는 것을 뜻하는 것은 아니다.
전 세계 기여자들이 개발한 리눅스 커널은 자유-오픈 소스 소프트웨어의 저명한 예이며, 버전에 따라 최대 6년을 지원한다. 리눅스 커널 메일링 리스트(LKML)에서 일일 개발 토론이 진행된다. 리눅스 커널은 GNU 일반 공중 사용권 버전 2 (GPLv2)로 출시되며, 일부는 자유가 아닌 여러 라이선스로 출시된 일부 펌웨어 이미지들을 포함하고 있다.
1991년, 리누스 토르발스는 스물 한살 나이의 핀란드 헬싱키 대학교의 컴퓨터 과학부 학생이었을 시절 운영 체제에 대한 단순한 개념들에 대한 작업에 착수했다. 그는 x86 어셈블리어와 터미널 드라이버의 문맥 교환기로 시작했다. 1991년 10월 25일, 토르발스는 유즈넷의 한 뉴스그룹 comp.os.minix에 다음의 내용을 게시하였다:
386(486) AT 클론을 위한 (자유) 운영 체제를 만들고 있습니다.(취미일 뿐이며 gnu처럼 크고 프로페셔널하진 않아요) 4월부터 진행 중이며 준비 작업을 시작하고 있습니다. minix에서 제 운영 체제가 무언가를 닮았는지(타당한 이유로 파일 시스템의 동일한 물리적 설계), 사람들이 좋아하고 싫어하는 바에 대한 의견을 바랍니다.
저는 현재 bash(1.08)와 gcc(1.40)을 포팅하였으며 동작하는 것으로 보입니다. 이 말은 수개월 안에 뭔가 실용적인 것을 하겠다는 이야기입니다. (중략) 그래요, minix 코드는 모두 자유이고 멀티스레드 fs가 포함됩니다. 포팅은 불가능하며(386 태스크 교환 등을 사용) AT 하드디스크 외에는 다른 것들은 지원하지 않을 겁니다. 왜냐하면 제가 가진 것이 그게 다거든요. :-(.
(중략) 대부분은 C로 되어있지만 대부분의 사람들은 제가 C로 쓴 것을 호출하지 않을 겁니다. 386에 관해 제게 가르쳐준 프로젝트이기도 해서 제가 찾을 수 있었던 386의 가능한 모든 기능을 사용합니다. 이미 언급했듯이 페이징(아직 디스크는 아님)과 세그먼테이션을 위해 MMU를 사용합니다. 정말로 386에 의존하는 세그먼테이션입니다. (모든 태스크는 코드 및 데이터를 위해 64메가바이트의 세그먼트를 취하고 있으며 4Gb에 최대 64개의 태스크가 들어갑니다)
그 뒤로 수많은 사람들이 해당 프로젝트에 코드를 기여하였다. 초기에 MINIX 커뮤니티는 리눅스 커널에 코드와 아이디어를 기여하였다. 당시 GNU 프로젝트는 자유 운영 체제에 필요한 구성 요소들 중 다수를 만들어냈지만 자체 커널 GNU 허드는 완전하지 않았고 이용이 불가능했다. BSD 운영 체제는 법적 문제로부터 자유롭지 못했다. 초기 버전의 제한적인 기능에도 불구하고 리눅스는 급속도로 개발자들과 사용자들을 모아나갔다.
1991년 9월, 버전 0.01의 리눅스 커널이 핀란드 대학교와 FUNET(리서치 네트워크)의 FTP 서버(ftp.funet.fi)에 공개되었다. 10,239줄의 코드였다. 1991년 10월, 버전 0.02의 리눅스 커널이 출시되었다.
1991년 12월, 리눅스 커널 0.11이 출시되었다. 이 버전은 셀프 호스팅이 되는 최초 버전이었으며 리눅스 커널 0.11은 동일한 커널 버전을 실행 중인 컴퓨터에 의해 컴파일할 수 있었다. 토르발스가 1992년 2월에 버전 0.12를 출시하였을 때 상업적 배포를 허가하지 않았던 자신의 과거 자체 초안 라이선스를 넘어서서 GNU GPL을 채택했다.
1992년 1월 19일, 새로운 뉴스그룹 alt.os.linux에 첫 게시글이 제출되었다. 1992년 3월 31일, 뉴스그룹 이름은 comp.os.linux로 바뀌었다.
X 윈도 시스템이 리눅스에 포팅되었으며, 이로써 1992년 3월 리눅스 버전 0.95는 X를 실행할 수 있는 최초 버전이 되었다. 0.1에서 0.9x로의 큰 버전 번호 점프로 인해 크게 빠진 부분이 없이 버전 1.0이 임박한 것처럼 예측되었다. 그러나 이는 사실이 아닌 것으로 드러났으며 1993년부터 1994년 초까지 0.99의 15개의 개발판이 등장하였다.
1994년 3월 14일, 리눅스 커널 1.0.0이 출시되었으며 그 코드 줄 수는 176,250줄이다. 1995년 3월, 리눅스 커널 1.2.0이 출시되었으며, 코드 줄 수는 310,950줄이다.
리눅스 커널 버전 2는 1996년 6월 9일 출시되었으며 버전 2 헤더 아래에 추가 메이저 버전이 잇따라 출시되었다:
MINIX 개발자 앤드루 타넨바움와 리누스 토르발스 사이에 리눅스가 마이크로커널이 아닌 모놀리딕 커널이라는 것이 논쟁의 주제였다. 1992년 시작된 유즈넷 토론 그룹 comp.os.minix의 토론은 대체적으로 리눅스와 커널 아키텍처에 관한 것이었다. 타넨바움은 마이크로커널이 모놀리딕 커널보다 우수하므로 리눅스는 구식이 되었다고 주장했다. 전통적인 모놀리딕 커널과 달리 리눅스의 장치 드라이버들은 적재 가능 커널 모듈로 쉽게 구성할 수 있으며 시스템을 실행하는 중에 적재되거나 적재가 해제된다. 이 주제는 2006년 5월 9일 논의되었고, 2006년 5월 12일 타넨바움은 긍정적인 문장을 썼다.
리눅스 커널을 포함하는 안드로이드 운영 체제의 인기가 상승하면서 이 커널이 모바일 장치를 위한 가장 대중적인 선택이 되었고 기타 설치 기반의 모든 운영 체제와 겨루게 되었다. 과거의 여러 햇수를 포함하여 2014년 말을 기준으로 30억 대의 안드로이드 스마트폰들이 판매된 것으로 추정되었다.
수많은 컨슈머 라우터들 또한 리눅스 커널을 사용하며 그 외에 스마트 TV, 셋톱 박스, 웹캠과 같은 다양한 기타 임베디드 장치들 또한 마찬가지이다. 리눅스 커널을 포함하는 수많은 데스크톱 리눅스 배포판들이 존재하지만 리눅스 배포판의 사용률 면에서는 다른 운영 체제에 비해 낮은 편이다.
리눅스 커널은 진정한 선점형 멀티태스킹 (사용자 모드 및, 2.6 시리즈 이후의 경우 커널 모드 까지), 가상 메모리, 공유 라이브러리, 디맨드 로딩, 공유 카피 온 라이트 실행 파일(KSM 공유), 메모리 관리, 인터넷 프로토콜 스위트, 스레딩을 지원하는 모놀리딕 커널이다.
장치 드라이버와 커널 확장 기능은 커널 공간(수많은 CPU 구조에서 링 0)에서 실행되며, 하드웨어에 대한 모든 접근 권한이 있으나 사용자 공간에서의 실행은 일부 예외가 있는데 이를테면 FUSE/CUSE 기반 파일 시스템들, UIO의 일부가 그러하다. 대부분의 사람들이 리눅스와 함께 사용하는 그래픽스 시스템은 커널 내에서 실행되지 않는다. 표준 모놀리딕 커널과 달리 장치 드라이버는 쉽게 모듈로 구성되며 시스템이 실행 중인 동안에 적재되거나 적재가 해제된다. 또, 표준 모놀리딕 커널과 달리 장치 드라이버들은 특정한 조건에서 선점이 가능하다. 즉, 이 기능은 하드웨어 인터럽트를 정확히 관리하고 대칭형 다중 처리를 더 양호하게 지원하기 위해 추가되었다. 리눅스 커널은 자체적으로 바이너리 커널 인터페이스가 없다.
하드웨어 또한 파일 계층에 통합되어 있다. 장치 드라이버들은 /dev 또는 /sys 디렉터리의 엔트리를 통해 사용자 응용 프로그램들과 통신한다. 프로세스 정보 또한 /proc 디렉터리를 통해 파일 시스템에 매핑된다.
리눅스 커널은 어셈블리어(GCC의 AT&T 스타일 문법)로 작성된 수많은 짧은 코드와 더불어 GCC(수많은 확장과 변경 사항을 표준 C에 도입)에 의해 지원되는 C 프로그래밍 언어 버전으로 작성되어 있다. 지원되는 C 확장 덕분에 GCC는 한동안 리눅스 커널을 올바르게 빌드할 수 있는 유일한 컴파일러였다.
GCC는 리눅스 커널 소스의 기본 컴파일러이다. 2004년, 인텔은 자사의 C 컴파일러가 컴파일할 수 있도록 커널을 수정했다고 주장하였다. 2009년 2.6.22 커널의 수정판에서 이같은 또다른 성공이 보고되었다.
2010년 이후로 C 언어의 다른 컴파일러인 클랭으로 리눅스 커널을 빌드하려는 노력이 진행되고 있다. 2014년 4월 12일 기준으로 공식 커널은 대부분 클랭으로 컴파일이 가능하다. 이러한 노력에 따른 프로젝트의 이름은 LLVMLinux이며, 이는 클랭 기반 LLVM 컴파일러 구조를 따른 것을 뜻한다. LLVMLinux는 리눅스 커널이나 LLVM을 포크하는 것이 목적이 아니기 때문에 업스트림 프로젝트에 제출되는 패치들로 구성된 메타 프로젝트로 볼 수 있다. 클랭으로 리눅스 커널을 컴파일할 수 있음으로 인한 이점에는 GCC 대비 더 빠른 컴파일 속도가 있으며 커널 개발자들은 더 짧아진 컴파일러 시간으로 인해 더 빠른 워크플로의 이점을 취할 수 있게 된다.
표준을 준수하는 것은 리눅스 커널의 내부 기능에 대한 포괄적인 정책이다. 다른 규칙으로는 해당 구성 요소를 사용하는 사유(proprietary)의 사용자 공간 소프트웨어가 있을 경우에는 커널의 구성 요소가 리눅스 커널에 수용되지 않는다는 점이다.
출처: 리눅스 커널 (CC BY-SA)
확인된 구조화 정보, 사용자 의견, AI가 찾은 관계를 구분해 표시해요.
1999년 12월 18일 – IBM 메인프레임 패치(2.2.13용) 게시. 리눅스 커널이 기업급 머신에서 사용될 수 있게 허용
2001년 1월 4일 – 리눅스 커널 2.4.0 릴리스 (3,377,902 줄)
2003년 12월 17일 – 리눅스 커널 2.6.0 릴리스 (5,929,913 줄)
2004년을 기점으로 릴리스 프로세스가 변경되었으며 새로운 커널들이 2~3개월마다 정기적인 일정에 따라 출시를 시작했으며, 번호는 2.6.0, 2.6.1부터 2.6.39까지 이르렀다.
2011년 7월 21일, 토르발스는 리눅스 커널 3.0 릴리스를 발표하였다: "Gone are the 2.6.<bignum> days". 이러한 버전 상승은 리눅스 2.6.39 대비 큰 기술적 변화에 대한 것은 아니었다. 단지 커널의 20주년을 표현한 것이다. 시간 기반 릴리스 프로세스는 동일하게 유지되었다.
버전 3.10의 리눅스 커널은 2013년 6월 출시되었으며 15,803,499줄이 포함되었으며, 버전 4.1은 2015년 6월 출시되었고 약 14,000명의 프로그래머가 기여한 코드를 포함 19,500,000줄 이상으로 성장하였다.