25 년간의 리눅스 커널 개발은 평신도의 관점에서 자격을 갖추거나 추상화 할 수 있습니까? [닫은]


12

리눅스 커널은 거의 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을 인용하려면 :

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

그러나이 모든 것이 제 의견으로는 거의 통찰력을 제공하지 않습니다. 따라서 다음과 같이 묻습니다.

  1. 세기의 진화의 이번 분기는 즉결 수 있습니다 자격이 시간에이 커널을 구성하는 모든 나열된 기능의 선형 또한 넘어?
  2. 그리고 이것이 리눅스 커널이 무엇인지 또는 어디로 가고 있는지에 대한 통찰력을 제공합니까? 25 년의 개발 끝에 그것에 대해 몇 가지 결론을 도출 할 수 있습니까?

모든 것을 말하는 것에 의지하지 않고 모든 것을 말하는 평신도의 용어로 추상적 인 대답을 찾고 있습니다.


"최대 229 개의 프로세스 ID 지원"이 제게 튀어 나왔기 때문에 이걸 Google에서 찾은 유일한 참조는 해당 단락원래 소스 인 것 같습니다 . 나는 프로세스 ID가 (부호있는) 16 비트 범위, 즉 ~ 16,000을 가지고 있다고 생각했지만 실제로는 그보다 훨씬 클 수 있습니다. 확실히 몇 백이 아닙니다.
goldilocks

3
이 질문은 주제에 대한 Wikipedia 기사를 찾고 있기 때문에 너무 광범위합니다.
Gilles 'SO- 악마 그만해'

여기에 논문을 쓰려고합니까? 괜찮 습니다만, 당신이하려는 일에 대해 구체적이라면 조언하는 것이 좋습니다. 나는 그것이 다음날 저녁 현지 급수 구에서 좋은 요약을 준비하는 것이 아니라고 생각합니다.)
goldilocks

1
나는 이것에 대한 논문을 쓰려고 계획하는 사람이 적어도 몇 명 있다는 것을 모호하게 기억합니다. 나는 당신이 그 주제에 관한 학술 문헌을 찾을 것으로 생각합니다 ... 기존의 출판물을 가리키는 것 외에는, 당신의 질문에 답하기 위해 수개월의 연구가 필요할 것 같습니다.
derobert

귀하의 질문에, 당신은 여기에 좋은 대답을 얻기 위해 평신도의 용어에 대해 알려 주셔야 할 것입니다. 그 외에도, 이것을 lkml에 게시하고 연대기에 대한 피드백을 받으십시오. 중요한 것을 놓치면 알려줄 것입니다.
Bananguin

답변:


11

물어:

이 세기의 진화는 시간이 지남에 따라이 커널을 구성하는 모든 나열된 기능을 선형 적으로 추가하는 것 이상으로 요약 할 수 있습니까? 그리고 이것이 리눅스 커널이 무엇인지 또는 어디로 가고 있는지에 대한 통찰력을 제공합니까?

그러한 질문에 명확한 대답이 있는지 의심합니다. 그러나 나는 리눅스 커널의 개발을 이끌고있는 힘을 이해하는 것이 어렵지 않다고 생각한다.

첫째, 컴퓨터가 점점 더 중요 해지고 있습니다. Chomsky는 산업화 된 경제의 중심이라고 지적합니다. 컴퓨터는 운영 체제가없는 것이 아니므로 운영 체제를 중요하게 만듭니다.

80 년대와 90 년대에 한동안 독점 운영 체제가 상승했습니다. 이것은 어떤 의미에서는 부 자연스러운 일이었습니다. Microsoft의 Windows는 지배적 이었으나 여전히 의미는 있지만 네트워크 효과를 이용하여 위치를 유지했습니다.

인터넷의 등장으로 커뮤니티 운영 체제를 만들 수있게되었습니다. 그러나 이러한 운영 체제는 독점적으로 소유 할 수없는 경우에만 유용합니다. BSD 운영 체제 제품군은 해당 범주에 없었습니다. 따라서 독자적으로 운영 할 수없는 커뮤니티 운영 체제의 핵심으로 Linux 커널이 등장했습니다.

많은 대형 컴퓨터 공급 업체가 Linux 커널을 사용하고 있습니다. 왜? 개인은 자유에 관심을 갖습니다. 공동체는 자유에 관심을 갖습니다. 기업은 이익과 관련 전략에만 관심이 있습니다. 나는 많은 컴퓨터 회사들이 당신이 원한다면 "레벨 화 된 경기장"인 "상품화 된"운영체제라는 개념으로 평화를 얻었다 고 믿는다. 그들은 운영 체제를 독점함으로써 많은 돈을 버는 Microsoft의 예를 살펴 보았지만 모든 사람이 Microsoft가 될 수는 없으며 단일 공급 업체가 그런 힘을 발휘할 수있는 가장 작은 문제는 말할 것입니다. 그들은 다른 회사의 관점에서 볼 때 불공평 한 이점이 있습니다.

따라서 대부분의 회사는 Microsoft가 될 수있는 위치에 있지 않으며, 원치 않을 수도 있기 때문에 "상품"운영 체제를 지원하기로 결정했습니다. 다시 한 번 레벨 경기장입니다. 따라서 모든 사람이 원하는 목적으로이 OS를 사용할 수 있으며 그룹의 어느 누구도 다른 사람과 관련하여 유리한 점이 없습니다. 그것을 보는 또 다른 방법은 운영 체제처럼 기본적 인 것을 소유하는 것이 자유 시장 원칙에 대한 심각한 간섭이라는 것입니다. 일반적으로 기업은 승리 시장에 올 수 있다면 자유 시장을 선호하지는 않지만, 그렇지 않을 수 있다면 자유 시장을 선호합니다.

Linux 커널의 대부분의 특성은 이러한 역학에서 실제로 추론 할 수 있습니다. 예를 들어, 유닉스 계열 운영 체제의 모듈 식 및 가변성은 "상품"으로 설계된 OS에 적합합니다. 또한 커널 프로젝트의 빠른 속도로 움직이는 특성은 이러한 많은 기업의 요구를 모두 충족시켜야한다는 요구 때문입니다. 많은 활동이 하드웨어 지원 / 드라이버를 중심으로 이루어 지지만 해당 영역 외부에서도 많은 활동이 있습니다. 새로운 기능의 지속적인 개발과 기존 기능의 유지 보수 및 개선.

물론, 우리는 일반적으로 자유 소프트웨어 커뮤니티 또는 FOSS (Free and Open Source Software)라고하는 커뮤니티의 요구를 기업이 통제하지 않는 일반 사람들이 사용할 수있는 무료 운영 체제를 갖도록 할인해서는 안됩니다. 결국 데비안과 페도라와 같은 프로젝트는 이러한 가치를 믿는 자원 봉사자가 운영합니다. 그러나 기업의 역할도 과소 평가해서는 안된다고 생각합니다.


1
+1 리눅스를 주류에서 당황스럽게 만들었던 사회 정치 세력의 문제를 제기 한 것에 대해. 특히 글 참조 - 내가 그, 그것은 "비 기술적 문제"를 보일 수 있지만 기원의 매우 중요한 측면이다 OS의 개발에 실제로 손의 특성을 정의라고 생각 에릭 S. 레이몬드 - 광범위한 하드웨어 제조업체 와 역사적으로 지배적 인 인터넷 플랫폼으로
goldilocks

^ 많은 사람들이 그들의 집에 리눅스 커널을 가지고 있고 심지어 이것 때문에 (
아무도

나는 시간 내에 커널을 제자리에 놓고 널리 퍼진 역 동성-컴퓨팅의 진화; 비즈니스 어필; 시장 세력; 인터넷; 컴퓨팅의 자유; 라이센스; 리눅스 전체에 대한 전망과 함께 위의 모든 것들이 커널 구현에 어떤 영향을 미치는지. 나는 우리가 이것을 적절하게 평가하기위한 역사적 관점이 부족할 수 있다는 "부 자연스러운 상황"에 관한 당신의 진술을 읽어야합니다. 그리고 이것은 중요합니다. 나는 실제로 커널 자체에 초점을 맞추었지만 위의 요점과 의견에 대해 더 많이 생각할 것입니다. 감사!

1
@goldilocks : 안드로이드 폰은 말할 것도 없습니다.
slebetman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.