리눅스 커널 - 위키백과, 우리 모두의 백과사전 리눅스 커널 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 리눅스 커널 ( Linux kernel ) 회사 / 개발자 리누스 토르발스 ( 커뮤니티 주체 ) OS 계열 유닉스 계열소스 형태 자유 소프트웨어최초 버전 출시일 1991년 9월 17일마지막 버전 4. 17마지막 버전 출시일 2018년 6월 3일미리보기 버전 4. 17 - rc7미리보기 버전 출시일 2018년 5월 27일 사용 가능한 언어 영어프로그래밍 언어 C, 어셈블리어커널형태 모놀리식 커널라이선스 GPL웹사이트 공식 사이트 리눅스 커널 ( Linux kernel ) 은 오픈 소스 모놀리딕 유닉스 계열 컴퓨터 운영 체제 커널이다. 리눅스 계열의 운영 체제는 이 커널에 기반을 두며 개인용 컴퓨터와 서버와 같은 전통적인 컴퓨터 시스템들 [ 1 ] 과 라우터, 무선 액세스 포인트, PBX, 셋톱 박스, FTA 리시버, 스마트 TV, PVR, NAS 어플라이언스 등의 다양한 임베디드 장치에 보통 리눅스 배포판의 형태로 배치된다. 태블릿 컴퓨터, 스마트폰, 스마트워치를 위한 안드로이드 운영 체제는 기능 구현을 위해 리눅스 커널이 제공하는 서비스들
[ 60 ] 둘 다 하나의 소스 트리에서 386과 알파를 지원한다. [ 59 ] DEC는 같은 해 토르발스가 리눅스를 64비트로 포팅하는데 필수적인 하드웨어를 공급하는 일을 맡았다. [ 61 ] 리눅스는 IBM의 블루 진 ( Blue Gene ) 과 그 밖의 속도가 가장 빠른 슈퍼컴퓨터 ( 최상위의 중국 것 포함 ) 의 주 운영 체제로서 실행된다. 2017년 11월 기준으로 전 세계 500대의 최고 속도의 슈퍼컴퓨터들 모두 여러 종류의 리눅스를 구동한다. [ 2 ] 리눅스는 또한 애플 아이팟, 아이폰 등의 여러 휴대용 장치에도 이식되었다. [ 62 ] 휴대전화용으로 개발된 일부 운영 체제들은 수정된 리눅스 커널 버전을 사용하며 여기에는 구글의 안드로이드, 파이어폭스 OS, HP 웹OS, 노키아 마에모, 졸라 세일피시 OS가 포함된다. [ 63 ] [ 64 ] [ 65 ] 커널 패닉과 [UNK] [ 편집 ] 이 부분의 본문은 커널 패닉 및 리눅스 커널 [UNK]. 리눅스 커널 패닉의 예 리눅스에서 패닉은 커널에 의해 감지되었으나 복구할 수 없는 시스템 오류를 말하며, 이는 사용자 공간 코드에 의해 감지된 비슷한 오류와는 반대
의 다양한 임베디드 장치에 보통 리눅스 배포판의 형태로 배치된다. 태블릿 컴퓨터, 스마트폰, 스마트워치를 위한 안드로이드 운영 체제는 기능 구현을 위해 리눅스 커널이 제공하는 서비스들을 사용한다. 데스크톱 컴퓨터에 채용하는 경우가 낮은 편이지만 리눅스 기반 운영 체제들은 모바일 장치에서부터 메인프레임에 이르기까지 기타 거의 모든 컴퓨팅 부문을 지배하고 있다. 2017년 11월 기준으로, 세계 500대의 가장 강력한 슈퍼컴퓨터들은 모두 리눅스를 실행하고 있다. [ 2 ] 리눅스 커널은 1991년 리누스 토르발스가 자신의 개인용 컴퓨터를 위해 고안되어 개발 [ 3 ] 되었고 크로스 플랫폼의 의도는 없었으나 그 이후로 다른 운영 체제나 커널 대비 더 다양한 컴퓨터 아키텍처를 지원하도록 확장되었다. 리눅스는 급속도로 기타 자유 소프트웨어 프로젝트, 특히 GNU 운영 체제로 이 커널을 채택한 개발자들과 사용자들을 매혹시켰다. [ 4 ] 리눅스 커널은 1, 200개 이상의 회사의 12, 000명에 가까운 프로그래머들의 기여를 받아왔으며, 여기에는 최대 소프트웨어 및 하드웨어 벤더들 일부가 포함된다. [ 5 ] [ 6 ] 리눅스 커널 API는 사용자 프로그램들이 커널
] 타넨바움은 마이크로커널이 모놀리딕 커널보다 우수하므로 리눅스는 구식이 되었다고 주장했다. 전통적인 모놀리딕 커널과 달리 리눅스의 장치 드라이버들은 적재 가능 커널 모듈로 쉽게 구성할 수 있으며 시스템을 실행하는 중에 적재되거나 적재가 해제된다. 이 주제는 2006년 5월 9일 논의되었고, [ 24 ] 2006년 5월 12일 타넨바움은 긍정적인 문장을 썼다. [ 25 ] 대중화 [ 편집 ] 리눅스 커널을 포함하는 안드로이드 운영 체제의 인기가 상승하면서 이 커널이 모바일 장치를 위한 가장 대중적인 선택이 되었고 기타 설치 기반의 모든 운영 체제와 겨루게 되었다. [ 26 ] [ 27 ] [ 28 ] 과거의 여러 햇수를 포함하여 2014년 말을 기준으로 30억 대의 안드로이드 스마트폰들이 판매된 것으로 추정되었다. 수많은 컨슈머 라우터들 또한 리눅스 커널을 사용하며 [ 29 ] 그 외에 스마트 TV, 셋톱 박스, 웹캠과 같은 다양한 기타 임베디드 장치들 또한 마찬가지이다. 리눅스 커널을 포함하는 수많은 데스크톱 리눅스 배포판들이 존재하지만 리눅스 배포판의 사용률 면에서는 다른 운영 체제에 비해 낮
리눅스 커널 패닉의 예 리눅스에서 패닉은 커널에 의해 감지되었으나 복구할 수 없는 시스템 오류를 말하며, 이는 사용자 공간 코드에 의해 감지된 비슷한 오류와는 반대된다. 커널 코드는 헤더 파일 sys / system. h에 위치한 panic 함수를 호출함으로써 이러한 조건을 지시하는 것이 가능하다. 그러나 대부분의 패닉들은 유효하지 않은 메모리 주소에 대한 참조 등 커널 코드 내에서 처리되지 못한 프로세서 예외의 결과물이다. 이것들은 일반적으로 패닉을 일으키게 만든 호출 체인 내의 어딘가의 버그로 인지된다. 문제가 되는 RAM 셀, 프로세스 버그로 인해 발생된 프로세스 내 산술 기능의 오류, 프로세서의 과열 / 손상, 소프트 오류 등의 하드웨어의 고장으로 인식할 수도 있다. 커널 내에서 치명적이지 않은 버그의 보고는 [UNK] 한다. 즉, 리눅스 커널의 올바른 동작에서 파생된 것들은 보증된 신뢰성과 함께 지속적인 운용을 허용할 수 있다. [ 66 ] 이러한 충돌 보고들은 자동으로 수집되며 다양한 소프트웨어에 의해 상위 보고가 가능하다. 이를테면 [UNK], [ 67 ] ABRT ( 페도라 ) [ 68 ], apport ( 우분투 ) 등이 있다. KernelOops
인터페이스 ( SCI는 POSIX / SUS 호환을 목표로 함 ) 프로세스 스케줄링하위 시스템 IPC하위 시스템 메모리 관리하위 시스템 가상 파일하위 시스템 네트워크하위 시스템 기타 구성 요소 : ALSA, DRI, evdev, LVM, 장치 매퍼, 리눅스 네트워크 스케줄러, 넷필터리눅스 보안 모듈 : SELinux, TOMOYO, 앱아머, 스맥 하드웨어 ( CPU, 메인 메모리, 데이터 스토리지 장치 등 ) 프로그래밍 언어 [ 편집 ] 리눅스 커널은 어셈블리어 ( GCC의 AT & T 스타일 문법 ) 로 작성된 수많은 짧은 코드와 더불어 GCC ( 수많은 확장과 변경 사항을 표준 C에 도입 ) 에 의해 지원되는 C 프로그래밍 언어 버전으로 작성되어 있다. 지원되는 C 확장 덕분에 GCC는 한동안 리눅스 커널을 올바르게 빌드할 수 있는 유일한 컴파일러였다. 컴파일러 호환성 [ 편집 ] GCC는 리눅스 커널 소스의 기본 컴파일러이다. 2004년, 인텔은 자사의 C 컴파일러가 컴파일할 수 있도록 커널을 수정했다고 주장하였다. [ 36 ] 2009년 2. 6. 22 커널의 수정판에서 이같은 또다른 성공이 보고되었다. [ 37 ] [ 38 ] 2010
일할 수 있도록 커널을 수정했다고 주장하였다. [ 36 ] 2009년 2. 6. 22 커널의 수정판에서 이같은 또다른 성공이 보고되었다. [ 37 ] [ 38 ] 2010년 이후로 C 언어의 다른 컴파일러인 클랭으로 리눅스 커널을 빌드하려는 노력이 진행되고 있다. [ 39 ] 2014년 4월 12일 기준으로 공식 커널은 대부분 클랭으로 컴파일이 가능하다. [ 40 ] [ 41 ] 이러한 노력에 따른 프로젝트의 이름은 LLVMLinux이며, 이는 클랭 기반 LLVM 컴파일러 구조를 따른 것을 뜻한다. [ 42 ] LLVMLinux는 리눅스 커널이나 LLVM을 포크하는 것이 목적이 아니기 때문에 업스트림 프로젝트에 제출되는 패치들로 구성된 메타 프로젝트로 볼 수 있다. 클랭으로 리눅스 커널을 컴파일할 수 있음으로 인한 이점에는 GCC 대비 더 빠른 컴파일 속도가 있으며 커널 개발자들은 더 짧아진 컴파일러 시간으로 인해 더 빠른 워크플로의 이점을 취할 수 있게 된다. [ 43 ] 인터페이스 [ 편집 ] 이 부분의 본문은 리눅스 커널 인터페이스 및 분류 : 리눅스 커널의 인터페이스입니다
개선을 위해 새로운 보안 기능들이 종종 구현된다. [ 74 ] [ 75 ] 비평가들은 보안 결함을 은폐하거나 적어도 이 결함들을 발표하지 않는 커널 개발자들을 비난해왔다. 즉, 2008년 리누스 토르발스는 다음과 같이 이에 대해 응답하였다 : [ 76 ] [ 77 ] 저는 개인적으로 보안 버그를 단지 " 일반적인 버그 " 로 치부합니다. 저는 이 버그들을 은폐하는 것은 아니지만 이것들을 추적하여 특별하다고 발표하는 것이 좋은 생각인지 잘 모르겠습니다. 리눅스 배포판들은 일반적으로 리눅스 커널의 취약점을 수정하기 위한 보안 업데이트를 출시한다. 수많은 배포판들은 장기간 지원 릴리스를 제공하며 오랜 기간 특정 리눅스 커널 버전의 보안 업데이트를 받을 수 있게 하고 있다. 기능 역사 [ 편집 ] 2012년 12월, 토르발스는 i386 프로세서 지원을 제거함으로써 커널 복잡도를 줄이기로 마음먹었고, 이로써 3. 7 커널 시리즈가 오리지널 프로세서를 지원하는 마지막이 된다. [ 78 ] [ 79 ] 동일한 시리즈는 ARM 프로세서 지원을 통합하였다. [ 80 ] 버전 3. 11은 2013년 9월 2일 출시되었고, [ 81 ] 수많은 새 기능들을 추가하고 있는데, 이를테면
이 불가능했다. BSD 운영 체제는 법적 문제로부터 자유롭지 못했다. 초기 버전의 제한적인 기능에도 불구하고 리눅스는 급속도로 개발자들과 사용자들을 모아나갔다. 1991년 9월, 버전 0. 01의 리눅스 커널이 핀란드 대학교와 FUNET ( 리서치 네트워크 ) 의 FTP 서버 ( ftp. funet. fi ) 에 공개되었다. 10, 239줄의 코드였다. 1991년 10월, 버전 0. 02의 리눅스 커널이 출시되었다. [ 13 ] 1991년 12월, 리눅스 커널 0. 11이 출시되었다. 이 버전은 셀프 호스팅이 되는 최초 버전이었으며 리눅스 커널 0. 11은 동일한 커널 버전을 실행 중인 컴퓨터에 의해 컴파일할 수 있었다. 토르발스가 1992년 2월에 버전 0. 12를 출시하였을 때 상업적 배포를 허가하지 않았던 자신의 과거 자체 초안 라이선스를 넘어서서 GNU GPL을 채택했다. [ 14 ] 1992년 1월 19일, 새로운 뉴스그룹 alt. os. linux에 첫 게시글이 제출되었다. [ 15 ] 1992년 3월 31일, 뉴스그룹 이름은 comp. os. linux로 바뀌었다. [
십시오. 아이팟리눅스를 부팅하고 있는 아이팟. 리눅스가 처음부터 이식을 위해 설계된 것은 아니지만, [ 12 ] [ 59 ] 현재 가장 널리 이식된 운영 체제 커널들 가운데 하나이며 ARM 아키텍처에서부터 IBM z / 아키텍처 메인프레임 컴퓨터에 이르기까지 다양한 범위의 시스템에서 실행된다. 리눅스의 오리지널 386 아키텍처를 넘어선 첫 이식은 아미가 사용자들의 모토로라 68000 플랫폼에서 수행되었으며, 해당 사용자들은 커널의 주요 부분을 대체함으로써 이를 수행하였다. 토르발스가 모토로라 버전을 실제 포트가 아닌 포크의 하나이자 " 리눅스 계열 운영 체제 " 로 간주했던 만큼 커널의 수정은 매우 중요했다. [ 59 ] 이는 토르발스가 경쟁 컴퓨팅 아키텍처로의 이식을 용이케 하기 위해 커널 코드의 재구성이 필요하다는 추진제 역할을 했다. 최초의 리눅스 보증 포트는 DEC 알파 AXP 64비트 플랫폼을 대상으로 했으며 1995년 5월 DECUS에서 시연되었고 [ 60 ] 둘 다 하나의 소스 트리에서 386과 알파를 지원한다. [ 59 ] DEC는 같은 해 토르발스가 리눅스를 64비트로 포팅하는데 필수적인 하드웨어를 공급하는 일을 맡
리눅스 커널(영어: 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)로 출시되며, 일부는 자유가 아닌 여러 라이선스로 출시된 일부 펌웨어 이미지들을 포함하고 있다.