Fedora 43에서 99% 재현 가능한 빌드 목표

2025-04-11

Fedora 프로젝트는 다음 버전인 Fedora 43에서 99%의 재현 가능한 빌드를 달성하기 위해 노력하고 있습니다. 즉, 동일한 소스 코드, 빌드 환경 및 지침을 사용하면 누구든지 비트 단위로 동일한 바이너리를 재생성할 수 있다는 것을 의미합니다. Debian이 재현 가능한 빌드에서 상당한 진전을 이루었지만, Fedora의 접근 방식은 add-determinism 및 rebuilderd와 같은 인프라 개선 및 도구를 활용하여 RPM 패키지의 페이로드에 중점을 둡니다. 최종 사용자에게는 거의 눈에 띄지 않지만, 이러한 노력은 악의적인 공격으로부터 공급망 보안을 강화하는 데 매우 중요합니다.

더 보기
개발

멕시코의 오픈소스 여정: 정부 혁신에서의 다윗과 골리앗 이야기

2025-04-06

멕시코 정부 고위직 공무원이었던 페데리코 곤잘레스 와이트는 멕시코 정부 내 오픈소스 소프트웨어 도입을 추진해 온 10년간의 경험을 공유했습니다. 비용 절감, IT 주권 확립, 그리고 독점 소프트웨어 공급업체로부터의 탈피를 목표로 그는 국가 전자 여권 시스템 구축 및 대규모 통신 인프라 구축 등 여러 프로젝트를 주도했습니다. 오라클과 같은 거대 기업의 위협과 정부 내부의 저항에도 불구하고 상당한 진전을 이루었지만, 지속적인 자금 부족과 정부 리더십 변화로 인해 프로젝트가 실패하는 등의 좌절을 경험하기도 했습니다. 그는 오픈소스로의 성공적인 전환은 강력한 내부 지원과 리더십의 헌신, 그리고 인재 양성에 대한 지속적인 투자에 달려 있음을 강조했습니다.

더 보기
기술

Rust, Ferrocene 언어 사양 채택

2025-03-30

Rust는 공식 사양이 없어서 보안을 중시하는 조직에서의 채택을 저해해 왔습니다. Rust 프로젝트는 이제 Ferrous Systems가 개발한 Ferrocene 언어 사양(FLS)을 핵심 프로젝트 구성 요소로 채택한다고 발표했습니다. 이 조치는 안전이 중요한 시스템에서 Rust를 사용하는 데 있어 상당한 장벽을 제거하는 것을 목표로 합니다.

더 보기

Ubuntu, 기본적으로 Rust 유틸리티 사용 전환 검토

2025-03-21

Ubuntu는 향후 25.10 릴리스에서 기존의 많은 GNU 유틸리티를 uutils 프로젝트와 같은 Rust 구현으로 교체할 계획입니다. 이러한 Rust 도구의 적합성을 테스트하기 위해 Canonical의 엔지니어링 부사장인 Jon Seager는 이 도구들을 쉽게 활성화하거나 비활성화할 수 있는 명령줄 유틸리티 oxidizr를 출시했습니다. 이러한 조치는 Ubuntu의 안정성과 보안을 향상시키고 더 많은 기여자를 유치하기 위한 것입니다. 커뮤니티의 반응은 엇갈리고 있지만 이러한 변화는 Rust의 채택과 Linux 배포판의 미래에 상당한 영향을 미칠 수 있습니다.

더 보기
개발

Firefox 포크의 길: 프라이버시 대 오픈소스 윤리

2025-03-14

Mozilla의 최근 조치는 많은 Firefox 사용자들을 화나게 했고, 대안 브라우저를 찾도록 만들었습니다. 이 기사에서는 GNU IceCat, Floorp, LibreWolf, Zen과 같은 여러 Firefox 포크를 소개하며, 각각 프라이버시 보호와 오픈소스 원칙의 서로 다른 측면을 강조합니다. IceCat은 오픈소스를 우선시하며, LibreJS 및 JShelter와 같은 확장 기능을 사용하여 프라이버시를 강화합니다. Floorp는 사용자 경험에 중점을 두고 이중 사이드바 및 작업 공간과 같은 기능을 갖추고 있습니다. LibreWolf는 프라이버시와 보안에 중점을 두고 Firefox에서 추적 기능을 제거합니다. Zen은 현대적인 인터페이스와 광범위한 사용자 정의 옵션을 자랑합니다. 이러한 포크는 사용자에게 더 많은 선택지를 제공하지만, 모두 Mozilla의 기반 개발에 의존하며, 보안 업데이트 및 유지 관리에 어려움을 겪고 있습니다.

더 보기
개발

uutils: Rust로 GNU Coreutils를 5년간 재작성

2025-03-09

FOSDEM 2025에서 Sylvestre Ledru는 GNU Coreutils의 Rust 기반 대체물인 uutils의 상당한 진전을 발표했습니다. COVID-19 봉쇄 기간에 시작된 이 프로젝트는 거의 5년 만에 100개 이상의 필수 Unix/Linux 유틸리티를 재작성했으며, 530명 이상의 기여자와 18,000개 이상의 GitHub 스타를 보유하고 있습니다. 더 안전하고 고성능인 대체물을 목표로 하는 uutils는 GNU coreutils 테스트 스위트의 약 500개 테스트를 통과했으며, Debian 기반 Apertis, Spectacles 스마트 안경, Microsoft Visual Studio Code 등의 프로젝트에서 사용되고 있습니다. Ledru의 다음 목표는 C 언어 유지 관리의 어려움을 해결하고 새로운 개발자에게 현대적인 경험을 제공하기 위해 다른 중요한 Debian/Ubuntu 패키지로 Rust 재작성을 확장하는 것입니다.

더 보기
개발

Linux의 탄생: A와 B에서 화성까지

2025-03-02

이 글은 초기 기여자인 Lars Wirzenius가 들려주는 Linux 탄생에 대한 매력적인 생생한 이야기입니다. 1991년, Linus Torvalds는 겨우 4MB RAM을 탑재한 386 PC를 사용하여 화면에 번갈아 'A'와 'B'를 표시하는 간단한 멀티태스킹 프로그램을 만들었습니다. 이것이 바로 Linux 커널의 시작입니다. Wirzenius의 도움을 받아 Linus는 커널을 개선하고 온라인으로 공개했습니다. Andrew Tanenbaum과의 유명한 논쟁, GPL 라이선스 채택, X11 시스템 이식 등의 중요한 사건들을 거치면서 Linux는 취미 프로젝트에서 지구에서 화성까지 수십억 대의 기기를 구동하는 글로벌 운영 체제로 진화했습니다.

더 보기
기술

Julia 1.11 및 그 이후: 정적 컴파일, juliaup 및 WebAssembly 발전

2025-02-20

Julia 1.11은 오랫동안 사용자들이 우려해 온 문제들을 해결하는 상당한 개선 사항을 제공합니다. 가장 중요한 것은 정적 컴파일의 발전으로, 향후 1.12 릴리스에서는 배포가 용이해지는 더 작은 실행 파일이 생성됩니다. 또한 새로운 juliaup 유틸리티를 통해 Julia 설치 및 업그레이드가 간소화되고, WebAssembly 지원이 성숙해짐에 따라 Julia 프로그램을 브라우저에서 실행할 수 있게 되었습니다. 이러한 개선으로 Julia는 더욱 사용자 친화적이 되고 적용 범위가 확장되어 과학 계산 및 시스템 유틸리티 개발 분야에서 강력한 경쟁자가 되었습니다.

더 보기
개발

BPF 스케줄러를 사용한 동시성 버그 퍼징

2025-02-14

FOSDEM에서 Meta의 Jake Hillion과 OpenJDK 개발자인 Johannes Bechberger는 BPF 스케줄링 프레임워크인 `sched_ext`를 사용하여 구축한 동시성 퍼징 스케줄러를 발표했습니다. 이 스케줄러는 의도적으로 스케줄링에 무작위성을 도입하여 지연을 발생시키고 스레드 실행 순서를 변경하여 재현하기 어려운 동시성 버그를 드러냅니다. 현재 성능 오버헤드가 크므로 개발 단계 디버깅에만 사용되지만, 실제 로직 오류를 발견하는 효과적인 방법을 제공하며, 최적화 후 향후 프로덕션 환경에서 사용될 것으로 기대됩니다.

더 보기
개발

Rust 드라이버, Linux 커널 DMA 서브시스템에서 난항

2025-02-04

Linux 커널에서 Rust를 사용한 장치 드라이버 개발 노력이 DMA(직접 메모리 액세스) 서브시스템에서 저항에 직면하고 있습니다. Rust 드라이버는 커널의 DMA 매핑 계층과 상호 작용해야 하므로 추상화 계층이 필요합니다. 그러나 주요 유지 관리자인 Christoph Hellwig는 `kernel/dma` 디렉토리에 Rust 코드를 추가하는 것에 반대하며 유지 관리 복잡성을 이유로 들고 있습니다. Rust 개발자는 이러한 추상화 계층을 별도로 유지 관리할 것을 제안했지만, Hellwig는 여전히 동의하지 않습니다. 이 교착 상태는 Rust의 커널 통합 과정에서의 어려움을 보여주며, 그 미래는 커널 커뮤니티의 결정과 주요 유지 관리자가 다중 언어 프로그래밍 환경에 적응할 수 있는지 여부에 달려 있습니다.

더 보기
개발

LWN.net, 이제 EPUB 버전 제공

2025-02-02

LWN.net은 모든 기사 콘텐츠를 이제 "프로페셔널 해커" 레벨 이상 구독자에게 EPUB 형식으로 제공한다고 발표했습니다. 구독자는 왼쪽 열의 "EPUB 다운로드" 링크를 클릭하여 주간판을 다운로드할 수 있으며, 별도의 EPUB RSS 피드도 있습니다. 다른 기사는 URL 끝에 /epub을 추가하여 EPUB로 변환할 수 있습니다. LWN.net은 특별 EPUB 책도 제작할 예정이며, Kangrejos 2024 및 2024년 Linux 스토리지, 파일 시스템, 메모리 관리, BPF 정상 회의의 전체 보도는 이미 모든 독자에게 제공됩니다.

더 보기
기술

마우스 없이: 생산성 높은 키보드 전용 데스크톱 구축하기

2025-02-01

마우스에 지치셨나요? 저자는 마우스 없이 데스크톱 환경을 구축한 경험을 공유합니다. PaperWM 스크롤 가능 타일링 윈도우 매니저, Firefox 키워드 북마크, Vimium 브라우저 확장 프로그램, 터미널 기반 이메일 클라이언트 Aerc와 같은 도구, 그리고 GNOME의 Quake Terminal 확장 프로그램과 Input Remapper를 사용하여 저자는 생산성을 극적으로 향상시키고 인체 공학을 개선했습니다. 이 글에서는 이러한 도구의 사용법과 구성 방법을 자세히 설명하고, Emacs의 메뉴 바와 도구 모음을 숨겨 마우스 의존도를 더욱 낮춘 경험도 공유합니다.

더 보기

Chimera Linux: systemd를 제거한 미니멀리스트 Linux 배포판

2025-01-26

Chimera Linux는 "간단하고, 투명하며, 쉽게 배울 수 있는" 데스크톱 환경을 목표로 하는 새로운 배포판입니다. 처음부터 만들어졌으며, 첫 번째 베타 릴리스는 주로 BSD 도구를 활용한 실용적인 데스크톱과 유용한 소프트웨어를 제공합니다. 복잡성 때문에 systemd를 거부하고, Chimera는 Dinit과 musl을 사용하여 종속성을 줄입니다. 설치는 수동이지만, 간단함과 GNOME/KDE 등 데스크톱 환경에 대한 지원은 숙련된 사용자에게 매력적입니다. 초점은 단순화되고 사용하기 쉬운 시스템이며, 소프트웨어에 대한 논쟁이 아닙니다.

더 보기

창립자 사망 후 Vim의 부활

2025-01-24

Vim의 창립자 Bram Moolenaar의 사망은 커뮤니티에 충격을 주었습니다. 하지만 Christian Brabandt의 주도 하에 프로젝트는 계속되고 있습니다. 팀은 웹사이트 현대화, 보안 업데이트, XDG 디렉토리 지원 및 Wayland 지원과 같은 새로운 기능 개발에 매달렸습니다. Tree-sitter 통합과 같은 몇 가지 논쟁점이 있지만 Vim 커뮤니티는 여전히 활발하며 프로젝트의 미래에 전념하고 있습니다.

더 보기
개발

2025년 예측: 리눅스 커널, 오픈소스, 그리고 불확실한 미래

2025-01-17

LWN.net의 2025년 예측은 리눅스 커널과 오픈소스 환경에서의 흥미로운 발전과 임박한 과제들을 보여줍니다. 이 기사는 확장 가능한 스케줄링 클래스(sched-ext)를 통한 변혁적인 변화, 커널에서의 Rust 채택 증가, 새로운 백도어 시도 발견, 단일 유지보수자 프로젝트와 관련된 위험, AI 생성 코드의 잠재적 부정적 영향, 무료 생성형 AI와 유지보수자에 대한 증가하는 지원, 클라우드 제품의 지속적인 오류와 데이터 유출, 오픈 하드웨어 증가, 모바일 기기 배포의 부활, 지정학적 요인의 영향을 예측합니다. 다가오는 해는 오픈소스 커뮤니티에 상당한 기회와 상당한 장애물을 모두 약속합니다.

더 보기
개발

Bram Moolenaar 사후 Vim의 부활

2025-01-11

Vim의 창시자 Bram Moolenaar의 죽음은 커뮤니티에 충격을 주었지만, 프로젝트는 계속되고 있습니다. VimConf 2024에서 새로운 유지보수 담당자인 Christian Brabandt는 프로젝트의 재구성과 미래 계획을 개괄했습니다. 팀이 확장되고 웹사이트와 인프라가 업그레이드되었으며, 보안 취약성 보고 및 커뮤니티 커뮤니케이션 문제가 해결되었습니다. Vim은 현재 유지보수 모드이지만 개발이 중단되지 않았으며, 버전 9.1이 출시되었고 GUI, 터미널 지원, 맞춤법 검사 등의 기능을 개선할 계획입니다. 커뮤니티 협업이 필수적이며, Brabandt는 사용자의 요구를 경청하고 건강한 커뮤니티를 유지하는 것이 중요하다고 강조했습니다.

더 보기

리눅스 커널 초기 커밋 SHA 충돌 위험

2024-12-31

리눅스 커널 개발자 Kees Cook은 커널 문서 커밋의 ID가 커널 저장소의 초기 커밋의 처음 12자와 일치한다는 것을 발견했습니다. 이 잠재적인 충돌은 고유한 커밋 ID에 의존하는 다양한 도구를 손상시킬 수 있습니다. 아직 업스트림에 병합되지 않았지만 이 커밋은 SHA 충돌을 사전에 해결하고 미래의 광범위한 문제를 방지하기 위한 테스트 사례로 작동합니다.

더 보기

Homa 네트워크 프로토콜: TCP/UDP에 대한 새로운 도전자

2024-12-30

Homa는 데이터센터 애플리케이션을 위해 설계된 새로운 네트워크 전송 프로토콜로, 많은 양의 작은 메시지 전송 오버헤드를 줄이는 것을 목표로 합니다. 기존 TCP/UDP와 달리 연결 설정이 필요 없으며, 고유한 요청-응답 메커니즘과 우선 순위 대기열을 사용하여 지연 시간을 최소화합니다. 현재 Homa는 Linux 커널 통합을 추진하고 있지만, 향후 네트워크 장비 내 하드웨어 가속에 크게 의존할 가능성이 있습니다.

더 보기

io_uring에 새로운 프로세스 생성 기능 추가

2024-12-20

LWN.net은 io_uring 서브시스템에 새로운 프로세스 생성 기능이 개발 중이라고 보도했습니다. 이 기능은 새로운 io_uring 연산인 IORING_OP_CLONE(새 프로세스 생성)과 IORING_OP_EXEC(새 프로그램 로드를 위한 execveat() 시스템 콜 실행)을 통해 구현됩니다. 이를 통해 효율성이 향상되고 경로 검색 등 복잡한 로직을 커널 내에서 비동기적으로 실행할 수 있습니다. 그러나 이 기능은 아직 초기 단계이며, 새 프로세스 내에서 io_uring 연산을 동기적으로 실행해야 하는 등 몇 가지 제약이 있습니다. 향후 개발에서는 유연성을 높이고 최종적으로 메인라인 Linux 커널에 병합하는 것을 목표로 합니다.

더 보기

Fish Shell 4.0 출시: Rust로 재작성하여 성능 향상

2024-12-19

사용 편의성과 스마트한 기능으로 유명한 명령줄 셸인 Fish shell의 4.0 버전이 출시되었습니다. 가장 큰 변화는 코드베이스를 C++에서 Rust로 재작성하여 현대적인 컴퓨팅 효율성을 높인 것입니다. 4.0 버전에서는 보다 자연스러운 키 바인딩과 향상된 히스토리 검색 등 다양한 새로운 기능을 제공하여 명령줄 경험을 더욱 쉽고 즐겁게 만들고자 합니다. 안정성을 보장하기 위해 공개 베타 버전이 출시되었으며 모든 사용자가 테스트에 참여할 수 있습니다.

더 보기
개발

Guile 기반 Emacs: 대담한 재작성 프로젝트

2024-12-16

확장성으로 유명한 Emacs 에디터는 핵심 언어인 Emacs Lisp(Elisp)의 성능과 표현력에 한계가 있습니다. 이를 해결하기 위해 Guile-Emacs 프로젝트는 Emacs의 Elisp를 Guile Lisp로 대체하는 것을 목표로 합니다. 수년간의 개발과 휴면기를 거쳐 Robin Templeton과 Larry Valkama 개발자에 의해 Guile-Emacs가 부활했습니다. 이 프로젝트는 Elisp와의 호환성을 유지하면서 Guile의 컴파일러와 성능 이점을 활용하여 Emacs의 속도와 확장성을 개선하는 것을 목표로 합니다. 궁극적인 목표는 Emacs의 상당 부분의 C 코드를 Lisp로 다시 작성하여 사용자 지정 기능을 크게 향상시키는 것입니다. 기술적, 정치적 과제가 있지만 이 프로젝트는 Emacs의 미래에 대한 흥미로운 가능성을 제시합니다.

더 보기
개발

러스트 컴파일러: 쿼리 기반 증분 컴파일 아키텍처

2024-12-13

기존 파이프라인 기반 컴파일의 효율성 문제를 해결하기 위해 러스트 컴파일러는 쿼리 기반 증분 컴파일 아키텍처를 채택했습니다. 이 아키텍처는 컴파일 과정을 상호 의존적인 일련의 쿼리로 분할하고 컴파일 데이터베이스를 사용하여 중간 결과를 캐싱합니다. 이를 통해 필요한 코드 섹션만 다시 컴파일할 수 있습니다. 빌드 시스템의 종속성 관리와 유사하게 이는 컴파일 속도를 크게 향상시키며 IDE 통합과 같은 시나리오에서 특히 유용합니다. 복잡성을 도입하지만 이 접근 방식은 기존 시스템의 점진적인 개선과 비교하여 더욱 안정적이고 효율적인 러스트 증분 컴파일 환경을 제공하며 현재 개발 빌드의 기본값입니다.

더 보기

Rust 통합을 둘러싼 Git 프로젝트의 난항

2024-12-13

Git 프로젝트는 Rust 프로그래밍 언어 통합 여부를 두고 격렬한 논쟁을 벌이고 있습니다. 찬성 측은 Rust의 메모리 안전성과 리팩토링 용이성이 Git의 보안과 개발자 경험을 향상시킬 것이라고 주장합니다. 그러나 반대 측은 Rust 통합으로 NonStop과 같은 틈새 시장 플랫폼에 대한 지원이 저해되어 Git의 장기적인 생존 가능성에 악영향을 미칠 수 있다는 우려를 표명합니다. 금융 부문에서 NonStop의 널리 사용되는 점, Git에 대한 의존성, 그리고 해당 플랫폼용 Rust 컴파일러 부족이 문제를 복잡하게 만듭니다. 결국 논의는 결론 없이 끝났고, Git 프로젝트는 광범위한 플랫폼 지원 유지와 보안 및 개발자 경험 개선이라는 중대한 결정에 어려움을 겪고 있습니다.

더 보기