GN⁺: 100개 운영 체제에서 구동되는 Curl
(daniel.haxx.se)cURL과 libcurl의 다양한 운영 체제 지원
- 최근 cURL의 pull-request에서, 기여자에게 제안한 변경 사항이 레거시 플랫폼에서의 테스트를 방해하지 않도록 해야 한다고 명시함.
- cURL은 현재 32비트
time_t
타입을 지원하고 있으며, 이 기능을 유지해야 함을 강조함. - 레거시 시스템에 대한 관심은 약속을 지키고 불필요한 파손을 피하기 위한 것임.
안정성과 약속의 일부
- cURL 프로젝트는 ABI와 API의 안정성 및 호환성을 유지하기 위해 끊임없이 노력함.
- 2000년대 중반에 작성된 애플리케이션을 최신 libcurl로 업그레이드해도 재컴파일 없이 동일하게 작동함.
- 이는 cURL과 libcurl의 핵심 원칙으로, 사용자가 신뢰하고 의지할 수 있는 안정적인 인터넷 전송 솔루션임.
사용자 수는 중요하지 않음
- 특정 플랫폼의 사용자 수는 그 플랫폼을 지원하는 동기가 되지 않음.
- 중요한 것은 작업을 수행하는 사람과 작업이 완료되는 것임.
- 기여자가 cURL이 특정 플랫폼에서 작동하도록 지속적으로 보장한다면, 사용자 수가 적어도 해당 플랫폼에서 cURL은 계속 작동함.
cURL이 어디에나 있는 이유
- cURL이 다양한 운영 체제와 CPU 아키텍처에서 작동하고 많은 장치에 설치된 이유는 어디에서나 빌드하고 작동하도록 하는 강력한 초점 때문임.
- 많은 사용자와 회사가 고대, 틈새, 레거시 플랫폼을 고수하고 있으며, cURL에 의존하는 것이 다른 대안보다 보안 측면에서 훨씬 낫다고 주장함.
우리는 여전히 사양을 폐기함
- cURL은 때때로 특정 제3자 라이브러리의 지원을 중단하고 다른 영역에서도 변화를 줌.
- 사양을 천천히, 신중하게 폐기하고, 개방된 커뮤니케이션을 통해 모든 이가 준비하거나 이의를 제기할 수 있도록 함.
- 사용자가 변경된 동작을 감지할 수 없다면, 실제로 변경되지 않은 것으로 간주됨.
세계의 변화
- 인터넷 프로토콜과 버전은 시간이 지남에 따라 변화함.
- 2002년에 작성된 cURL 명령어 대부분은 호스트 이름과 URL이 더 이상 작동하지 않기 때문에 실패함.
- 2002년에 작성된 cURL 명령어가 오늘날 정확히 동일하게 작동하지 않는 주된 이유는 HTTP에서 HTTPS로의 전환 때문임.
GN⁺의 의견
- 이 글에서 가장 중요한 것은 cURL이 다양한 운영 체제와 아키텍처를 지원하며, 이를 통해 안정성과 호환성을 유지하고자 하는 개발자들의 노력임.
- cURL이 사용자와 기술의 변화에도 불구하고 지속적으로 신뢰할 수 있는 도구로 남아있는 것은 많은 소프트웨어 엔지니어와 사용자에게 흥미롭고 매력적인 사실임.
- 이러한 지속적인 지원과 안정성은 cURL을 인터넷의 기본 도구 중 하나로 만들어, 기술의 변화 속에서도 중요한 역할을 하게 함.
Hacker News 의견
-
Curl의 성과에 대한 찬사
- Curl은 많은 운영 체제에서 작동하도록 유지하는 목표를 가진 개발자에게 매우 중요한 도구임.
- 32비트
time_t
의 호환성이 강조되었으나, 2038년 문제가 다가오고 있어 32비트 시간 처리의 가치에 대한 의문 제기.
-
의존성이 가져오는 부담에 대한 개발자들의 인식
- 의존성이 많은 인프라와 중앙 시스템은 변경이 어려워짐.
- 간단한 변경 사항도 많은 서비스에 영향을 미치기 때문에 신중한 검토 필요.
- 기존 시스템을 유지하면서 변경을 눈에 띄지 않게 하는 것에 대한 자부심.
-
고대, 틈새, 레거시 플랫폼에 대한 지속적인 사용
- 많은 사용자와 회사들이 오래된 플랫폼에 집착하며, 이는 변경할 수 없는 상황임.
- 소프트웨어 개발자 중 일부는 목적에 맞는 소프트웨어와 명시적인 보증을 제공하는데, 이는 비용이 많이 들고 느림.
-
오래된 운영 체제에서의 Curl 지원 여부에 대한 의문
- 25년 이상 업데이트가 없는 시스템에서도 현재 빌드가 이루어지는지 의문.
- 지원 매트릭스를 깨지 않으려는 노력에도 불구하고, 실제로 작동하는지 확인하기 어려움.
-
Curl의 인기 요인 중 하나인 허가적 라이선스
- Curl의 라이선스가 MIT와 유사하나 약간 다름.
- 주요 차이점에 대한 간단한 설명 요청.
-
Linux 버전의 다양성에 대한 놀라움
- 100개가 넘는 Linux 버전이 존재하며, 이는 단일 OS로 간주될 때도 마찬가지임.
-
유사한 운영 체제의 구분에 대한 의문
- FreeDOS, DR-DOS, MS-DOS가 별도의 OS로 분류되었으나, 실제로는 ABI 호환성이 있음.
-
Curl을 Rust로 재작성하려는 요구와 Rust의 타겟 가능성에 대한 의문
- Rust가 Curl이 지원하는 모든 아키텍처와 운영 체제를 대상으로 할 수 있는지에 대한 의문 제기.
-
Curl의 탄생과 역사에 대한 관련 독서 제안
- Curl의 25년 역사에 대한 블로그 링크 공유.
-
Curl의 광범위한 지원과 업데이트에 대한 유머러스한 언급
- ENIAC에서 Curl을 실행하는데, 업데이트마다 오랜 시간이 걸린다는 농담.