나는 GNU가 Linux 배포판을 구동하는 기본 도구를 제공하는 오픈 소스 코드를 제공하는 (유일한) 공급업체라고 생각합니다. 그러나 unix.se를 검색하는 동안 GNU 구문 분석의 보안에 대한 질문과 같이 GNU를 다루고 있음을 명시적으로 언급하는 몇 가지 질문을 보았습니다 ls
. 이는 GNU가 일부 버전을 제공하지 않는다는 것을 의미합니다 ls
. 그렇죠? 이 버전은 무엇이며, 누가 만들었으며 어디서 찾을 수 있나요?
답변1
보다 직접적인 접근 방식을 취하면 GNU 유틸리티 외부의 주요 옵션은 다음과 같습니다.
- BSD Userland Utilities: 초기 버전의 Berkeley Unix에서 시작되어 몇 가지 추가 기능을 갖춘 일반 Unix 도구였지만 SVR4에서는 크게 달라졌습니다. 오늘날 다양한 형태로 사용됨FreeBSD,오픈BSD,네트워크BSD,잠자리BSD,미니 3(NetBSD 사용자 영역 사용) 및 macOS(일부 수정과 함께 FreeBSD 사용자 영역 사용), PS3(FreeBSD 및 NetBSD의 복잡한 파생물), PS4(FreeBSD의 파생물) 및 PS5 및 PS Vita의 시스템 소프트웨어도 가능 , 그리고 꽤 흥미롭습니다키메라리눅스.
- 바쁜 상자: 단순한 디자인이며 대부분 POSIX와 호환됩니다. 사용자알파인 리눅스기본적으로(그래서거대한다수의 Docker 이미지(Alpine이 널리 사용되는 기반이기 때문에)이며 Linux를 운영 체제로 사용하는 대다수의 네트워크 장치를 포함하여 Linux를 실행하는 많은 임베디드 시스템에서 독점 사용자 영역으로 사용됩니다. 이는 주로 임베디드 사용으로 인해 설치 수 측면에서 UNIX 계열 시스템에서 가장 높은 사용자 영역 중 하나입니다.
- 장난감 상자: Busybox와 유사한 개념이지만 더 미니멀합니다(일부 지역에서는 POSIX 규격을 더 준수함). 비지박스(Busybox)와 관련된 라이센스 불일치로 인해 발생합니다. 이것이 Android(및 실제로 Linux)가 사용하는 것이지만 기본적으로 이를 사용하는 다른 Linux 플랫폼은 없습니다. 이것은 UNIX 계열 시스템의 다른 최상위 사용자 영역 중 하나입니다. Android어디에나.
- 가보 프로젝트: 주로 Caldera와 Sun에서 발표한 소스 코드를 기반으로 원래 UNIX 사용자 공간을 최소한으로 현대화한 복사본입니다. 이들은 주로 SVR4 파생물이며 흥미롭게도 많은 명령이 "클래식" 버전과 POSIX 버전 모두에서 사용 가능합니다. 내가 아는 한, 어떤 주요 플랫폼에서도 사용되지 않습니다.
- 9개 베이스: 사용자 영역 유틸리티의 최소한의 이식된 복사본 제공벨 연구소 플랜 9. 내가 아는 한, 어떤 주요 플랫폼에서도 사용되지 않습니다.
- 데이터 베이스그리고우바스: 더 작고 어떤 경우에는 더 미니멀하지만 일반적으로 busybox에 대한 POSIX 호환 대안입니다. 내가 아는 한, 어떤 주요 플랫폼에서도 사용되지 않습니다.
답변2
나는 GNU가 Linux 배포판을 구동하는 기본 도구를 제공하는 오픈 소스 코드를 제공하는 (유일한) 공급업체라고 생각합니다.
별말씀을요. Stallman과 그의 동료들은 이 상황을 "GNU/Linux에 GNU가 아닌 선택적 소프트웨어를 더한 것"으로 묘사하기를 좋아하지만 사실은 그렇지 않습니다.
이는 ls의 일부 버전이 GNU에서 제공되지 않음을 의미합니다. 그렇죠?
글쎄, 엄밀히 말하면 수학적 의미는 존재하지 않지만 네, 당신 말이 맞습니다.
우선, Linux가 아닌 모든 시스템에도 이식 가능한 사용자 영역이 있습니다. 그렇죠? FreeBSD, OpenBSD, DragonflyBSD, Minix, MacOS... 어느 것도 GNU 도구를 제공하지 않습니다. 그래서 있습니다.가지다적어도 하나의 또 다른 도구 왕조가 되십시오.
그렇습니다. BSD 도구(물론 다양한 포크 포함)가 있습니다. 일부는 GNU보다 더 멋지고, 일부는 더 나쁘고, 일부는 다릅니다. 나는 libbsd/BSD 도구에만 의존하는 Linux 배포판을 모르고 다른 배포판에는 gnulib/GNU coreutils가 있지만 적어도 나는 GNU Bash와 다른 쉘인 bsdtar를 선호합니다... 아이디어를 얻으실 겁니다.
그런 다음 통과멀리Linux를 실행하는 가장 실용적인 물리적 장치는 다음과 같습니다.아니요GNU 사용자 영역이 있습니다:
- 36억 이상긍정적인안드로이드 기기가 있습니다. Android는
toybox
(0-BSD 라이센스)를 표준 도구 세트와 수정된 Korn 셸로 사용하는 Linux 배포판입니다 . - 일부 Linux 배포판을 실행하는 수십억 개의 DSL/케이블/광섬유 "라우터/액세스 포인트" 상자가 있습니다. 대다수는 Busybox(GPL)에서 실행되며
sh
함께 제공되는 기능을 사용합니다.
내 추측으로는 GNU가 아닌 기본 도구 세트를 사용하는 약 60억 개의 Linux 장치에 비해 Linux는 수백만 대의 데스크톱/노트북에서 그다지 흔하지 않다고 생각합니다.
그러나 지금까지 실행 중인 대부분의 Linux 커널 인스턴스는 아마도 Hyperscaler 클라우드 제공업체(Amazon, Alibaba, Microsoft, Oracle...)의 데이터 센터에서 실행되고 있을 것입니다. 구체적인 숫자를 말하기는 어렵지만 수십억 달러에 달할 것입니다. 이것이 무엇을 실행하고 있는지 추측하기는 어렵습니다. 그러나 특히 클라우드 컴퓨팅의 경우 Alpine Linux와 같은 배포판이 인기가 있으며 GNU Coreutils는 함께 제공되지 않고 Busybox와 함께 제공됩니다. 하지만 우리는 여기서 계산합니다가상 기기, 아니요물리적 기계. 내가 말했듯이 Google 데이터 센터에서 "장비"는 단일 마더보드가 아닌 서버 랙이며 물리적 장치의 수는비교하다작은.
(이것에 대한 개인적인 의견: 강력한 카피레프트 사용자 공간의 비율이 점점 작아지고 있는데 이는 좋은 일이 아닙니다. 특히 공급업체가 실제로 커널의 강력한 카피레프트 요구 사항을 위반하는 것을 멈추지 않았고 이를 위한 FSF 관리 코드가 없기 때문입니다. 그러나 FSF는 내가 기대했던 것만큼 기능적이고 목표가 정해져 있으며 효과적이지 않습니다.
답변3
GNU Coreutils일반적으로 이러한 도구의 대부분은 원본 버전이 아닙니다. 일반적으로 운영 체제에서 제공하며 대부분의 Linux 배포판은 GNU/Linux이므로 가장 친숙한 배포판은 GNU Coreutils입니다. 그러나 Linux가 존재하기 전에는 오늘날에도 여전히 사용되고 있는 다양한 UNIX 도구에 여전히 존재하는 BSD 도구와 다양한 UNIX 도구가 있었습니다. 또한 GNU가 아닌 일부 Linux 버전은 다음과 같은 것을 사용할 수 있습니다.바쁜 상자(예: 알파인 리눅스).
누가 만들든 따라하는 게 중요해POSIX 표준, 특히 GNU 유틸리티의 경우 항상 그런 것은 아닙니다.
거의 모든 명령의 OpenBSD, FreeBSD, UNIX, GNU, Busybox 등 버전을 찾을 수 있습니다.
사용 중인 많은 UNICES는 적어도 어느 정도 UNIX 버전 6에서 유래되었으므로 동일한 유틸리티 중 일부를 공유하거나 그 과정에서 해당 유틸리티를 고유하게 수정했을 수 있습니다.
답변4
이는 ls의 일부 버전이 GNU에서 제공되지 않음을 의미합니다. 그렇죠? 이 버전은 무엇이며, 누가 만들었으며 어디서 찾을 수 있나요?
예. 원래 구현은 ls
이전 AT&T Unix 라이센스에 따라 이루어졌습니다.
최신 구현의 경우 ls
모두 다양한 BSD 배포판으로 구현됩니다(실제로 원래 AT&T Unix에서 파생된 Linux와는 다름).
BSD는 사용자 수가 매우 적은 매우 작은 운영 체제라고 생각할 수도 있지만 BSD는 실제로 존재합니다. 대규모 사용자 기반을 갖춘 또 다른 BSD 배포판이 있는데 바로 Apple의 Mac OS입니다.
GNU 프로젝트가 무엇인지 기억해 볼 가치가 있습니다. GNU는 유닉스가 아니라 GNU입니다. 이것은 Unix 도구(예 : ) ls
의 깨끗한 복사본을 만드는 프로젝트 이지만 확실히 Unix는 아닙니다. 따라서 GNU를 ls
원래 Unix 라고 생각하면 됩니다 ls
. 실제로 GNU 도구의 기능은 다른 개발자들이 자신의 도구를 GNU 기능으로 업데이트하도록 영감을 주었습니다. 수년에 걸쳐 GNU와 나머지 Unix 세계 사이에는 상당한 교차 수분이 있었습니다.