Linux 커널의 25년 개발 역사를 일반인의 관점에서 제한하거나 추상화할 수 있습니까? [폐쇄]

Linux 커널의 25년 개발 역사를 일반인의 관점에서 제한하거나 추상화할 수 있습니까? [폐쇄]

리눅스 커널은거의 25세. 1991년(시작 날짜) 이후, 특히 1994년(1.0.0)부터 현재까지의 Linux 커널 역사에 대한 간략한 버전을 제시해야 한다면 할 수 없습니다. 각 커널 릴리스 노트를 읽는 것 외에 내가 할 수 있는 최선의 방법은 다음과 같은 일반 정보를 제공하는 것입니다.릴리스 기능버전 3.11까지 커널에 추가되었습니다(주석 및 링크 생략):

  • 버전 1.0리눅스 커널은 1994년 3월 14일에 출시되었습니다. 이 Linux 커널 버전은 단일 프로세서 i386 기반 컴퓨터 시스템만 지원합니다. 이식성이 문제가 되므로 버전 1.2(1995년 3월 7일 출시) Alpha, SPARC 및 MIPS 아키텍처 기반 프로세서를 사용하는 컴퓨터 시스템에 대한 지원을 얻었습니다.
  • 버전 2.01996년 6월 9일 출시. 이 시리즈에는 총 41개의 작품이 발표되었습니다. 2.0의 주요 기능은 SMP 지원(즉, 단일 시스템에서 다중 프로세서 지원)과 더 많은 유형의 프로세서를 지원하는 것입니다.
  • 버전 2.2(1999년 1월 26일 릴리스) 전역 스핀 잠금을 제거하고 향상된 SMP 지원을 제공했으며 m68k 및 PowerPC 아키텍처와 새 파일 시스템에 대한 지원을 추가했습니다(Microsoft NTFS에 대한 읽기 전용 지원 포함).
  • 버전 2.4.02001년 1월 4일에 출시되었으며 ISA 플러그 앤 플레이, USB 및 PC 카드에 대한 지원이 포함되어 있습니다. 또한 HP PA-RISC 프로세서에 대한 지원도 포함됩니다. 2.4.x 개발에서는 Bluetooth 지원, LVM(Logical Volume Manager) 버전 1, RAID 지원, InterMezzo 및 ext3 파일 시스템을 포함하여 시리즈 전반에 걸쳐 추가 기능을 제공하는 몇 가지 변경 사항이 있었습니다.
  • 버전 2.6.02003년 12월 18일에 출판되었습니다. 2.6.x의 개발은 시리즈 전반에 걸쳐 새로운 기능을 포함하도록 더욱 발전했습니다. 2.6 시리즈의 변경 사항에는 µClinux를 메인라인 커널 소스 코드에 통합, PAE 지원, 여러 개의 새로운 CPU 시리즈 지원, ALSA를 메인라인 커널 소스 코드에 통합, 최대 232명의 사용자 지원 (2~ 16명 에서 최대 232명)이 포함됩니다. 2 29 프로세스 ID 로 증가 (64비트 전용, 32비트 아키텍처는 여전히 2 15 로 제한됨 ), 장치 유형 수와 각 유형의 장치 수 대폭 증가, 향상된 64비트 지원, 최대 파일 지원 16TB 크기의 파일 시스템, 커널 선점, NPTL(네이티브 POSIX 스레드 라이브러리) 지원, 메인라인 커널 소스에 대한 사용자 모드 Linux 통합, 메인라인 커널 소스에 SELinux 통합, InfiniBand 지원 등 여러 파일 시스템이 추가되었습니다. x 버전: FUSE, JFS, XFS, ext4 등 2.6 커널 시리즈의 역사에 대한 자세한 정보는 kernel.org의 2.6 커널 시리즈 소스 코드 릴리스 영역에 있는 ChangeLog 파일에서 찾을 수 있습니다.
  • 버전 3.02011년 7월 22일에 게시되었습니다. Torvalds는 가장 큰 변화는 "아니오. 전혀 아무것도 아닙니다."라고 발표했습니다. 2011년 5월 30일 Torvalds는 "...우리가 실제로 만드는 다음 버전이 단지 새롭고 빛나는 숫자가 아니라 훌륭한 버전이 되도록 합시다."라고 발표했습니다. 하나도 커널입니다." 이는 예상되는 6~7주간의 개발 과정을 거친 후 Linux 20주년 기념식에 맞춰 출시될 예정입니다.
  • 2012년 12월 Torvalds는 i386 프로세서에 대한 지원을 제거하여 커널 복잡성을 줄이기로 결정했습니다.3.7 커널 시리즈 마지막 프로세서는 여전히 원래 프로세서를 지원합니다. 동일한 시리즈는 ARM 프로세서를 균일하게 지원합니다.
  • 버전 3.112013년 9월 2일에 출시되어 임시 파일 취약점을 줄이기 위한 open(2)용 새로운 O_TMPFILE 플래그, 실험적인 AMD Radeon 동적 전원 관리, 대기 시간이 짧은 네트워크 폴링 및 zswap(압축 스왑 캐시)과 같은 많은 새로운 기능이 추가되었습니다.

수년에 걸쳐 추가할 수도 있습니다.리눅스 재단이미보고서커널 개발에 대해. 다음은 2012-2013년 커널 개발 하이라이트입니다:

  • (우리가 아는 한) 536개 회사를 대표하는 3,738명의 개별 개발자가 거의 92,000개의 변경 세트를 병합했습니다.
  • 많은 중요한 새로운 기능이 메인라인에 병합되었습니다. 여기에는 완전한 틱 없는 작업, 사용자 네임스페이스, ARM용 KVM 및 Xen 가상화, 스케줄러의 엔터티별 로드 추적, 사용자 공간 체크포인트/다시 시작, 64비트 ARM 아키텍처 지원, F2FS 플래시 지향 파일 시스템 등이 포함됩니다. 대기 시간 및 버퍼 팽창 문제, 두 개의 별도 하위 시스템이 블록 스토리지 장치에 대한 빠른 캐싱 등을 제공합니다.
  • Android 관련 커널 기능에 대한 오랜 논쟁은 완전히 사라졌습니다. 많이 논의되는 "Wake Lock" 기능은 최신 Android 기기에 사용되는 다른 메인라인 솔루션으로 조용히 대체되었습니다.
  • 이 기간 동안 개발 커널에서 버그를 찾기 위한 자동화 도구의 사용이 크게 증가했습니다. "트리니티" 퍼저 및 제로데이 빌드 및 부팅 시스템과 같은 도구는 시험판 커널에서 수많은 버그를 찾아 개발 주기를 단축하고 커뮤니티가 더 높은 품질의 릴리스를 제공할 수 있도록 지원합니다.
  • 모바일 및 임베디드 산업의 기여도가 지속적으로 증가하고 있습니다. 예를 들어 Linaro, Samsung 및 TI는 3.10 이전 기간에 이 기사의 이전 버전에서 변경 사항의 4.4%를 기여했으며 거의 ​​11%를 기여했습니다.
  • 코어프로젝트는 처음으로 여성봉사 프로그램에 참여해 7개 직위에 총 41명의 지원서를 받았다. 응용 프로그램 프로세스 동안 총 374개의 패치가 커널에 제출되었으며 그 중 1/3 이상이 3.10 커널 버전에서 승인되었습니다. 인턴 프로세스가 현재 진행 중이지만 결과는 향후 커널 릴리스까지 표시되지 않습니다.

또한,정량화하다범위를 벗어난 측정 항목이 있으므로 커널에서 진행되는 작업은 그리 어렵지 않습니다.개인적인 헌신. 예를 들어, 1994년의 1.0.0 커널에는 176,250줄의 코드가 있다는 것을 알고 있으며, 3.10과 같은 최신 커널에는 15,803,499줄의 코드가 있다는 것을 알고 있습니다. 더. 커널 릴리스 빈도가 증가했으며(3.10의 경우 63일) 변경률도 증가했습니다(시간당 9개 이상의 커밋). Linux Foundation의 말을 인용하자면:

수년 동안 이러한 변화율을 유지할 수 있는 능력은 이전의 어떤 공공 소프트웨어 프로젝트에서도 전례가 없었습니다.

그러나 내 생각에는 이 모든 것이 통찰력을 거의 추가하지 않습니다. 그러므로 나는 이렇게 묻고 싶다.

  1. 이 25년 동안의 진화를 요약할 수 있습니까?자격 있는 시간이 지남에 따라 이 핵심을 구성하는 모든 나열된 기능의 선형 합산을 넘어서는 것입니까?
  2. 이것이 우리에게 Linux 커널이 무엇인지, 어디로 가는지에 대한 통찰력을 제공합니까? 25년간의 개발 끝에 확실히 결론을 내릴 수 있을까요?

모든 것에 의지하지 않고도 이해하기 쉬운 추상적인 답변을 찾으세요.

답변1

물어:

이 25년 간의 진화가 시간이 지남에 따라 이 핵심을 구성하는 모든 나열된 기능의 선형적 합을 넘어서는 것으로 광범위하게 규정될 수 있습니까? 이것이 우리에게 Linux 커널이 무엇인지, 어디로 가는지에 대한 통찰력을 제공합니까?

나는 이러한 질문에 대한 명확한 답이 있는지 의심합니다. 하지만 리눅스 커널의 발전을 이끄는 힘은 이해하기 쉽다고 생각합니다.

첫째, 컴퓨터가 점점 더 중요해지고 있습니다. Chomsky는 어딘가에서 산업화된 경제의 중심에 있다고 말했습니다. 컴퓨터는 운영 체제 없이는 아무것도 아니므로 운영 체제가 중요해집니다.

1980년대와 1990년대에는 독점 운영체제가 지배적이었습니다. 어떤 의미에서 이것은 부자연스러운 상황이다. Microsoft의 Windows는 한때 지배적이었고 어떤 의미에서는 여전히 지배적이지만 네트워크 효과를 활용함으로써만 그 위치를 유지했습니다.

인터넷의 등장으로 커뮤니티 운영 체제를 만드는 것이 가능해졌습니다. 그러나 그러한 운영 체제는 독점적일 수 없는 경우에만 유용합니다. BSD 운영 체제 제품군은 이 범주에 속하지 않습니다. 그리하여 리눅스 커널은 민영화될 수 없는 커뮤니티 운영체제의 핵심으로 떠올랐다.

많은 메인프레임 컴퓨터 공급업체가 Linux 커널을 지원합니다. 왜? 개인은 자유에 관심이 있습니다. 공동체는 자유를 중시합니다. 기업은 이익과 관련 전략에만 관심이 있습니다. 나는 많은 컴퓨터 회사들이 "상품화된" 운영 체제, 즉 "평등한 경쟁의 장"이라는 개념을 받아들였다고 믿습니다. 그들은 Microsoft가 운영 체제를 민영화하여 많은 돈을 벌었지만 모든 사람이 Microsoft가 될 수는 없으며 단일 공급업체가 그러한 권력의 위치에 있는 것이 아마도 문제가 가장 적을 것이라는 예를 살펴보았습니다. 다른 회사로부터 부당한 이익을 얻습니다.

그래서 대부분의 회사는 Microsoft가 될 수 없고 아마도 그렇게 되고 싶지도 않기 때문에 "상용" 운영 체제를 지원하기로 결정했다고 생각합니다. 다시 말하지만, 공평한 경쟁의 장입니다. 따라서 모든 사람은 원하는 목적으로 이 운영 체제를 사용할 수 있으며 그룹의 어느 누구도 다른 사람보다 이점을 가질 수 없습니다. 이를 보는 또 다른 방법은 운영 체제처럼 기본적인 것을 독점적으로 만드는 것은 자유 시장 원칙에 대한 심각한 간섭이라는 것입니다. 일반적으로 기업이 승리할 수 있다면 특별히 친자유 시장은 아니지만, 그렇지 않다면 승리합니다.

실제로 Linux 커널의 대부분의 기능은 이러한 역학에서 추론할 수 있습니다. 예를 들어, Unix 계열 운영 체제의 모듈성과 확장성은 "상용" 운영 체제로 설계된 운영 체제에 적합합니다. 게다가 커널 프로젝트가 이렇게 빠르게 성장하는 이유 중 하나는 이 모든 회사의 요구를 충족시키려고 노력하고 있기 때문입니다. 많은 활동이 하드웨어 지원/드라이버를 중심으로 이루어지고 있지만 해당 영역 외부에서도 많은 활동이 이루어지고 있습니다. 새로운 기능이 지속적으로 개발되고 기존 기능이 유지 관리 및 개선되고 있습니다.

물론 우리는 종종 자유 소프트웨어 커뮤니티, 때로는 FOSS(무료 오픈 소스 소프트웨어)라고 불리는 커뮤니티가 회사의 통제를 받지 않고 일반 사람들이 사용할 수 있는 무료 운영 체제를 갖고자 하는 욕구를 과소평가해서는 안 됩니다. . 결국 Debian 및 Fedora와 같은 프로젝트는 이러한 가치를 믿는 자원 봉사자들에 의해 운영됩니다. 하지만 기업의 역할을 과소평가해서는 안 된다고 생각합니다.

관련 정보