리눅스 커널

 

1. 개요
2. 커널 개발
3. 역사


1. 개요


[image]
리눅스 커널 구조도
리눅스커널.
리눅스는 커널에 대한 개별적인 설계를 통해 커널에 포함해야 할 기능을 최소화할 수 있다. 예를 들면 장치에 포함되지 않은 디바이스 드라이버는 포함하지 않을 수 있다. 그래서 똥컴이나 임베디드 시스템에서 이루 말할 수 없이 성능이 나쁘거나 낡은 하드웨어라도 리눅스를 사용할 수 있다.

2. 커널 개발


언어는 C언어를 중심으로 어셈블리어를 일부 사용하고 있다. C++의 사용은 리누스 토르발스가 의도적으로 막고 있다.
현대에 와서는 코드의 양이 너무 많아져서, 한 사람이 리눅스 커널에 대해 완전히 아는 건 불가능한 수준이 되었다. 2018년 기준 리눅스 커뮤니티에 많이 기여하는 미국 대기업 기준으로 한 회사의 리눅스 커널 개발자가 250~300여명 수준이다. 이런 수준의 개발자가 되기 위해서는 리눅스 커널에 대한 책만 70여권 이상 읽어야 한다는 사람도 있다. 삼성전자 개발자들이 국내에서 가장 많이 기여하고 있는데 전체 연간 기여의 3%에 불과하다. 이런 회사 출신 개발자는 리눅스 커널에 기여하는 게 곧 본인들 업무다. 2017년까지 약 1400여개의 회사에서 리눅스 커널 개발에 참여했다. 연간 기여량의 약 40%를 20여개 대기업[1]에서 담당하고 있다. 돈을 받지 않고 개인적으로 기여하는 사람의 비중은 약 10% 정도인데 이들은 점점 줄어들고 있다. 왜냐하면 너무나도 방대한 커널 코드에 지쳐 그만두거나, 기업에서 이들을 채용해가기 때문이다.
리눅스 커널의 개발은 크게 메인테이너(Maintainer)와 기여자(Contributor)로 나뉜다. 기여자가 패치를 보내면 메인테이너는 그 패치의 리뷰를 하고 서브시스템을 관리하는 등 중심적인 역할을 맡는다. 국내 리눅스 커널 메인테이너는 2015년 기준 약 30여명으로 알려져 있다.

3. 역사


1991년 4월 리누스 토르발즈80386 보호모드에서 돌아가는 첫 리눅스 커널의 개발을 시작했다. 8월 말 완료된 0.01 버전의 코드 라인은 10,239줄이었다. 2015년 6월 공개된 커널 4.1은 약 1950만줄 이상이고 14,000여명의 프로그래머가 기여했다.[2]
2012년 12월경 버전 3.8부터는 처음 지원했던 80386 지원을 중단했다.
2018년 버전 4.71 부터는 Blackfin, CRIS, FRV, M32R, Metag, MN10300, Score, Tile 등 구형 CPU 마이크로아키텍처 지원을 중단하고 관련 드라이버 50만줄을 소스코드에서 삭제했다.
2021년 리누스 토발즈아이테니엄 시리즈가 2021년 2월 단종되자 바로 아이테니엄 시리즈 지원중단을 선언했다.
[1] 인텔, 오라클, AMD, ARM, NVIDIA, 삼성전자, 화웨이 등[2] 참고로 1976년 Bell 연구소에서 나온 6번째 유닉스 개정판은 약 9000줄이었다.