리눅스 커널은 거의 25 살 이다. 1991 년 (리눅스 시작일) 이래로 리눅스 커널의 개발 이력과 1994 년 (1.0.0) 이후로 오늘까지 짧은 버전을 생각해 내야한다면, 나는 할 수 없었습니다. 모든 단일 커널 릴리스 노트를 읽지 못하는 최선의 방법 은 커널에 버전 3.11까지 추가 된 일반 릴리스 기능인 다음을 제공하는 것입니다 (노트 및 링크는 생략 됨).
- Linux 커널 버전 1.0 은 1994 년 3 월 14 일에 릴리스되었습니다.이 Linux 커널 릴리스는 단일 프로세서 i386 기반 컴퓨터 시스템 만 지원했습니다. 이식성이 문제가되었으므로 버전 1.2 (1995 년 3 월 7 일 릴리스)는 Alpha, SPARC 및 MIPS 아키텍처 기반 프로세서를 사용하는 컴퓨터 시스템을 지원했습니다.
- 버전 2.0 은 1996 년 6 월 9 일에 릴리스되었습니다.이 시리즈에는 41 개의 릴리스가있었습니다. 2.0의 주요 기능은 SMP 지원 (즉, 단일 시스템에서 여러 프로세서 지원)과 더 많은 유형의 프로세서 지원이었습니다.
- 버전 2.2 (1999 년 1 월 26 일 릴리스)는 글로벌 스핀 락을 제거하고 개선 된 SMP 지원을 제공하고 m68k 및 PowerPC 아키텍처와 새로운 파일 시스템 (Microsoft NTFS에 대한 읽기 전용 지원 포함)에 대한 지원을 추가했습니다.
- 2001 년 1 월 4 일에 릴리스 된 버전 2.4.0 에는 ISA 플러그 앤 플레이, USB 및 PC 카드에 대한 지원이 포함되어 있습니다. 또한 Hewlett-Packard의 PA-RISC 프로세서에 대한 지원도 포함되었습니다. 2.4.x에 대한 개발은 Bluetooth 지원, LVM (Logical Volume Manager) 버전 1, RAID 지원, InterMezzo 및 ext3 파일 시스템을 포함하여 시리즈 전체 기간 동안 더 많은 기능을 사용할 수있게되면서 약간 변경되었습니다.
- 버전 2.6.0 은 2003 년 12 월 18 일에 릴리스되었습니다. 2.6.x의 개발은 시리즈 기간 동안 새로운 기능을 포함하도록 더욱 변경되었습니다. 2.6 시리즈에서 변경된 사항은 다음과 같습니다. µClinux를 메인 라인 커널 소스에 통합, PAE 지원, 여러 새로운 라인의 CPU 지원, ALSA를 메인 라인 커널 소스에 통합, 최대 2 32 명의 사용자 지원 ( 최대 2 16 ), 최대 2 29 프로세스 ID 지원 (64 비트 만, 32 비트 아치는 여전히 2 15로 제한됨)), 실질적으로 장치 유형 및 각 유형의 장치 수 증가, 64 비트 지원 개선, 최대 16 테라 바이트의 파일 크기를 지원하는 파일 시스템 지원, 커널 내 선점, 기본 POSIX 스레드 라이브러리 지원 (NPTL), 메인 라인 커널 소스에 사용자 모드 리눅스 통합, 메인 라인 커널 소스에 SELinux 통합, InfiniBand 지원 등 2.6.x 릴리스 전체에 FUSE, JFS, XFS, ext4 등 여러 파일 시스템이 추가 된 것도 주목할 만합니다. 2.6 커널 시리즈의 이력에 대한 자세한 내용은 kernel.org의 2.6 커널 시리즈 소스 코드 릴리스 영역에있는 ChangeLog 파일에서 확인할 수 있습니다.
- 버전 3.0 은 2011 년 7 월 22 일에 릴리스되었습니다. Torvalds는 "NOTHING. Absolutely nothing"이라는 큰 변화가 있다고 발표했습니다. 2011 년 5 월 30 일에 Torvalds는 다음과 같이 발표했습니다. "... 우리는 다음 릴리스를 완전히 새로운 숫자뿐만 아니라 좋은 커널도 만들도록하겠습니다." 예상되는 6 ~ 7 주 개발 프로세스 후, Linux 20 주년 근처에 릴리스 될 것입니다.
- 2012 년 12 월, Torvalds는 i386 프로세서에 대한 지원을 제거하여 커널 복잡성을 줄이기로 결정했습니다. 3.7 커널 시리즈 는 여전히 원래 프로세서를 지원하는 마지막 시리즈 입니다. ARM 프로세서에 대한 동일한 시리즈 통합 지원
- 2013 년 9 월 2 일에 출시 된 버전 3.11 은 open (2)에 대한 새로운 O_TMPFILE 플래그, 임시 파일 취약성 감소를위한 새로운 O_TMPFILE 플래그, 실험적인 AMD Radeon 동적 전원 관리, 지연 시간이 짧은 네트워크 폴링 및 zswap (압축 된 스왑 캐시)과 같은 많은 새로운 기능을 추가합니다.
또한 수년 동안 리눅스 재단 이 커널 개발에 관해보고 해 왔다고 덧붙일 수 있습니다 . 다음은 2012-2013 커널 개발 하이라이트입니다.
- 536 개 회사 (우리가 아는)를 대표하는 3,738 명의 개별 개발자로부터 약 92,000 개의 변경 세트가 병합되었습니다.
- 중요한 새로운 기능의 광대 한 배열이 메인 라인에 통합되었습니다. 여기에는 완전한 틱리스 작업, 사용자 네임 스페이스, ARM 용 KVM 및 Xen 가상화, 스케줄러의 엔티티 별로드 추적, 사용자 공간 체크 포인트 / 재시작, 64 비트 ARM 아키텍처 지원, F2FS 플래시 지향 파일 시스템, 다양한 네트워킹 개선이 포함됩니다. 대기 시간 및 버퍼 블로킹 문제에서 블록 스토리지 장치에 대한 빠른 캐싱을 제공하는 두 개의 독립 서브 시스템 등이 있습니다.
- Android 전용 커널 기능에 대한 오랜 문제는 완전히 사라졌습니다. 많이 논의 된 "wakelocks"기능은 최신 Android 장치에서 사용되는 다른 기본 솔루션으로 조용히 대체되었습니다.
- 이 기간 동안 개발 커널에서 버그를 찾기 위해 자동화 된 도구 사용이 크게 증가했습니다. "삼위 일체"퍼즈 테스터 및 제로 데이 빌드 앤 부트 시스템과 같은 도구는 시험판 커널에서 많은 버그를 발견하여 개발주기를 단축하고 커뮤니티가 고품질의 릴리스를 제공 할 수 있도록합니다.
- 모바일 및 임베디드 산업의 기여는 계속 증가하고 있습니다. 예를 들어 Linaro, Samsung 및 TI는이 백서의 이전 버전에서 4.4 %의 변경 사항을 기여했습니다. 최대 3.10 년 동안 모든 변경의 거의 11 %를 기여했습니다.
- 커널 프로젝트는 여성을위한 봉사 활동 프로그램에 처음으로 참여하여 7 개의 자리에 41 개의 응용 프로그램을 제공했습니다. 응용 프로그램 프로세스 중에 374 개의 패치가 커널에 제출되었으며이 패치의 1/3 이상이 3.10 커널 릴리스에서 승인되었습니다. 인턴 프로세스가 현재 진행 중이지만 그 결과는 향후 커널 릴리스까지 표시되지 않습니다.
게다가, 커널에 무슨 일이 일어나고 있는지 정량화 하는 것은 우리가 개별 커밋을 넘어서는 메트릭스를 가지고 있기 때문에 그리 어렵지 않습니다 . 예를 들어, 1994 년 1.0.0 커널에는 176250 줄의 코드가 있다는 것을 알고 있습니다. 우리는 3.10과 같은 현대 커널에 15803 499 줄의 코드가 있다는 것을 알고 있습니다. 훨씬 더. 커널 릴리스 빈도 (3.10의 경우 63 일)와 변경 속도 (시간당 9 개의 커밋)가 증가했습니다. Linux Foundation을 인용하려면 :
수년간이 변화율을 유지할 수있는 능력은 이전의 공개 소프트웨어 프로젝트에서 전례가 없었습니다.
그러나이 모든 것이 제 의견으로는 거의 통찰력을 제공하지 않습니다. 따라서 다음과 같이 묻습니다.
- 세기의 진화의 이번 분기는 즉결 수 있습니다 자격이 시간에이 커널을 구성하는 모든 나열된 기능의 선형 또한 넘어?
- 그리고 이것이 리눅스 커널이 무엇인지 또는 어디로 가고 있는지에 대한 통찰력을 제공합니까? 25 년의 개발 끝에 그것에 대해 몇 가지 결론을 도출 할 수 있습니까?
모든 것을 말하는 것에 의지하지 않고 모든 것을 말하는 평신도의 용어로 추상적 인 대답을 찾고 있습니다.