리눅스 커널이란 무엇입니까? 효과는 무엇입니까?
리눅스 커널(영어: Linux 커널)은 오픈 소스 유닉스 계열 운영체제 매크로 커널이다.
태블릿, 스마트폰, 스마트워치에서 작동하는 안드로이드 운영체제 역시 리눅스 커널이 제공하는 서비스를 통해 그 기능을 완성한다.
컴퓨터 시스템은 하드웨어와 소프트웨어의 유기체입니다. 그들은 상호의존적이며 분리될 수 없습니다. 컴퓨터 하드웨어에는 컴퓨터 엔진을 구성하는 주변 장치, 프로세서, 메모리, 하드 드라이브 및 기타 전자 장치가 포함됩니다. 그러나 이를 작동하고 제어하는 소프트웨어가 없으면 자체적으로 작동할 수 없습니다.
이러한 제어 작업을 완료하는 소프트웨어를 Linux 용어로는 "커널" 또는 "코어"라고 합니다. Linux 커널의 주요 모듈(또는 구성 요소)은 스토리지 관리, CPU 및 프로세스 관리, 파일 시스템, 장치 관리 및 드라이버, 네트워크 통신, 시스템 초기화(부팅), 시스템 호출 등의 부분으로 나뉩니다. .
전체 Linux 운영 체제 제품군은 이 커널을 기반으로 하며 전통적인 컴퓨터 플랫폼(Linux 배포판 형태의 개인용 컴퓨터 및 서버 등)과 라우터, 무선 등 다양한 임베디드 플랫폼에 배포됩니다. 액세스 포인트, 전용 소형 스위치, 셋톱박스, FTA 수신기, 스마트 TV, 디지털 비디오 레코더, NAS(Network Attached Storage) 등
태블릿, 스마트폰, 스마트워치에서 작동하는 안드로이드 운영체제 역시 리눅스 커널이 제공하는 서비스를 통해 그 기능을 완성한다. 데스크톱 컴퓨터에서는 덜 인기가 있지만 Linux 기반 운영 체제는 모바일 장치에서 콘솔에 이르기까지 거의 모든 것을 지배합니다. 2017년 11월 현재 세계에서 가장 강력한 슈퍼컴퓨터 500대 모두가 Linux를 사용하고 있습니다.
확장 정보:
프로그래밍 언어
Linux는 C 언어의 GCC 버전으로 작성되었습니다(이 C 언어는 표준 C도 확장합니다). 어셈블리 언어로 작성된 대상 아키텍처의 짧은 조각(GCC의 "AT&T 스타일" 사용) 확장된 C 언어를 지원해야 하기 때문에 GCC는 오랫동안 Linux를 올바르게 컴파일할 수 있는 유일한 컴파일러였습니다.
주로 커널 구축 프로세스(이 경우 소스 코드에서 부팅 가능한 이미지 생성)에서 일부 측면에서 사용되는 다른 언어가 많이 있습니다. Perl, Python 및 다양한 스크립팅 언어가 포함됩니다. 일부 드라이버는 C++, Fortran 또는 기타 언어로 작성될 수 있지만 이는 권장되지 않습니다.
컴파일러 호환성
GCC는 Linux 커널 소스 코드의 기본 컴파일러입니다. 2004년에 인텔은 인텔 C++ 컴파일러가 커널을 올바르게 컴파일할 수 있도록 커널 수정을 옹호했습니다. 2009년에는 커널 버전 2.6.22를 수정하여 컴파일에 성공했다는 보고가 있었습니다(평균 성능이 8~9% 향상되었습니다).
2010년부터 대체 C 언어 컴파일러인 Clang을 사용하여 Linux 커널을 구축하려는 노력이 진행 중입니다. 2014년 4월 12일 현재 공식 커널은 거의 전적으로 Clang으로 컴파일될 수 있습니다. 이 목표를 위한 프로젝트는 "LLVMLinux"라고 불리며 Clang의 기반이 되는 LLVM 컴파일러 인프라의 이름을 따서 명명되었습니다.
LLVMLinux는 Linux 커널이나 LLVM의 복제본이 아니기 때문에 결국 업스트림 프로젝트에 제출되는 패치로 구성된 메타 프로젝트입니다.
Clang을 사용하여 Linux 커널을 컴파일할 수 있는 가장 큰 이점은 GCC보다 컴파일 속도가 빠르며 커널 개발자는 더 빠른 작업 흐름의 이점을 누릴 수 있다는 것입니다.