TPM 성능 평가
TPM(Trusted Platform Module)의 성능에 대한 평가를 다룬 글입니다. TPM은 시스템이 침해당했을 때 비밀 정보 도난을 방지하기 위해 설계되었습니다. 벤치마크 결과, TPM은 초당 단일 자릿수 서명만 수행할 수 있어, 모든 웹/애플리케이션 요청을 서명하기에는 너무 느릴 수 있습니다. 이는 공격자가 침해된 시스템에서 요청 수를 제한하는 데 도움이 될 수 있습니다.
TPM 성능 평가
TPM(Trusted Platform Module)의 성능에 대한 평가를 다룬 글입니다. TPM은 시스템이 침해당했을 때 비밀 정보 도난을 방지하기 위해 설계되었습니다. 벤치마크 결과, TPM은 초당 단일 자릿수 서명만 수행할 수 있어, 모든 웹/애플리케이션 요청을 서명하기에는 너무 느릴 수 있습니다. 이는 공격자가 침해된 시스템에서 요청 수를 제한하는 데 도움이 될 수 있습니다.
tmux는 더 나쁘다는 것이 더 낫다
tmux는 여러 독립적인 쉘로 화면을 분할할 수 있게 해주는 터미널 멀티플렉서입니다. Kitty 터미널 에뮬레이터의 개발자 Kovid Goyal은 tmux에 대해 부정적인 의견을 가지고 있지만, 원격 서버 작업 시 여러 번 SSH 접속할 필요 없이 효율적으로 작업할 수 있어 유용합니다. '더 나쁘다는 것이 더 낫다' 철학을 통해 일반적인 사용 사례에 초점을 맞추며, tmux는 원격 서버에서 신뢰할 수 있는 도구로 자리잡고 있습니다.
DNS 레코드 문서화하기
DNS 레코드 변경은 시스템 관리자에게 어려운 작업일 수 있습니다. 저자는 DNS 레코드를 관리하고 변경 사항을 추적하기 위해 Ruby 스크립트를 작성했습니다. 이를 통해 변경 사항에 대한 자신감을 높이고 문서화를 개선했습니다. 이 방법은 DNS 관리 시 안정성을 제공합니다.
Go 인프라스트럭처의 남용
이 기사는 Go 체크섬 데이터베이스가 임의의 데이터를 저장하고 검색하는 방법을 남용할 수 있음을 설명합니다. Go 프로젝트가 아닌 Homebrew나 Rust 프로젝트 같은 저장소에서도 데이터를 자동으로 가져오고 저장할 수 있다는 점이 주요 내용입니다. 이러한 행위는 다운로드 제한을 우회하거나 악성 코드를 배포하는 등의 목적으로 사용될 수 있습니다.
파이썬에서 실수와 정수 비교하기: 동등이 실제로 동등하지 않을 때
CPython은 IEEE-754 표현과 파이썬의 무한 정밀도 정수로 인해 발생하는 복잡성을 처리하기 위해 실제로 실수와 정수 값을 직접 비교하지 않도록 많은 노력을 기울입니다. 이로 인해 예상치 못한 결과가 나타날 수 있습니다.
프라페 스케줄러의 복잡성을 이해하려면 우주를 먼저 발명해야 합니다
프라페 스케줄러는 반복 작업을 지정하고 실시간으로 설정을 업데이트할 수 있는 강력한 기능입니다. 표면적으로는 단순해 보이지만, 깊이 파고들수록 복잡해집니다. 이해를 돕기 위해 운영 체제 수업을 듣는 것이 좋다고 권장합니다.
Jai 프로그래밍 언어를 활용한 타입세이프 단위 시스템
Jai 프로그래밍 언어의 유니크한 컴파일 타임 기능을 활용하여 타입세이프 단위 시스템을 구현한 경험을 공유합니다. 이는 NASA의 화성 궤도선 사고와 같은 단위 혼동 문제를 예방할 수 있습니다. 특히, SIQuantity 구조체와 #modify 기능을 통해 다양한 단위의 연산을 컴파일 시점에서 안전하게 처리할 수 있습니다.
37시그널에서 개발자 기본 OS로 리눅스를 채택하다
20년 이상 맥을 사용해온 37시그널이 이제 개발자와 시스템 운영자의 기본 운영 체제로 리눅스를 채택했습니다. 이는 독립성과 자유라는 회사의 가치와 더 잘 맞으며, 리눅스 생태계 탐험을 즐기고 있음에도 불구하고, 모바일 팀은 여전히 애플 하드웨어가 필요합니다.
돈 크누스의 정수 프로그래밍 문제, 64년 후
1960년, 컴퓨터 과학자 돈 크누스는 IBM 650 컴퓨터의 메모리 접근 지연을 최소화하기 위한 정수 프로그래밍 모델을 제안했습니다. 64년이 지난 후, 현대의 솔버들은 이 문제를 단 몇 초 만에 해결할 수 있게 되었으며, 이는 연구의 놀라운 효과를 보여줍니다.
미사용 메모리 할당이 성능을 2배 향상시킬 때
Quickwit 검색 엔진에서의 용어 집계 기능과 성능 이상 현상을 조사한 결과, glibc 할당자의 메모리 관리 방식이 성능 차이의 주요 원인임을 밝혀냈습니다. 특히, HashSet과 HashMap과 같은 데이터 구조의 적절한 크기 조정이 성능에 큰 영향을 미칠 수 있습니다.
구글 클라우드 GCVE 사건에 대한 자세한 내용 (UniSuper 삭제)
이번 달 초, 구글 클라우드에서 발생한 사건이 호주의 고객 UniSuper에 영향을 미쳤습니다. 이 사건은 GCVE 서비스를 사용하는 단일 고객에게만 국한되었으며, 초기 배포 중 구글 운영자의 실수로 인해 발생했습니다. 구글은 이러한 사건이 다시 발생하지 않도록 조치를 취했으며, UniSuper는 강력한 백업 및 복구 프로세스를 통해 빠르게 회복할 수 있었습니다.
Yubikey를 이용한 SSH 인증 방법
Yubikey를 사용한 SSH 인증에는 비발견성(non-resident) 키가 발견성(resident) 키보다 권장됩니다. 비발견성 키는 Yubikey에 저장공간을 사용하지 않으며, 분실이나 도난 시 더 안전합니다. 설정 방법은 Yubikey 삽입, PIN 설정, 키 쌍 생성, 공개키 전송, 로그인 테스트 순으로 진행됩니다.
오픈 소스는 아니지만 (1999)
Larry McVoy가 개발한 새로운 소프트웨어 도구 BitKeeper는 리눅스 커널 개발 과정을 개선하고자 합니다. 이 도구는 여러 소스 저장소를 관리하고 패치 이동을 용이하게 하지만, OSI의 오픈 소스 정의와는 약간 다른 라이선스 조건을 가지고 있어 논란이 되고 있습니다. 이로 인해 OSI는 BitKeeper를 오픈 소스로 인정하지 않았습니다. 이 사례는 향후 소프트웨어 인증에 대한 새로운 접근 방식을 제안할 수 있습니다.
새로운 언어에서의 러스트 상호 운용성 탐구, 제1부
새로운 언어에서 러스트 코드를 원활하게 호출하는 방법을 설명하는 문서입니다. C 프로그램이 subprocess 크레이트를 사용하여 /bin/cat 명령을 실행하는 러스트 코드를 호출하는 예시를 제공하며, 메모리 관리와 안전성에 대한 논의도 포함되어 있습니다.
ndindex: ndarray의 인덱스를 조작하는 파이썬 라이브러리
ndindex는 NumPy의 ndarray 인덱싱을 완벽하게 지원하는 파이썬 라이브러리입니다. 이 라이브러리는 슬라이스, 정수, 타원 등의 인덱스 객체를 조작할 수 있는 통일된 API를 제공하며, 인덱스를 간소화하고 표준 형태로 만드는 reduce() 메소드 등 다양한 기능을 지원합니다.
ESP32 Wi-Fi 드라이버 역공학: 앞으로의 길
ESP32 Wi-Fi 드라이버를 역공학하는 과정에서 하드웨어 초기화와 MAC 스택 구현이 주요 도전 과제로 부각되었습니다. 특히, 하드웨어 초기화는 매우 복잡하여 단기간 내에 완전히 재구현하기 어려울 것으로 보입니다. 이 연구는 오픈 소스 구현을 목표로 하며, 이를 위해 추가적인 하드웨어 역공학이 필요할 것입니다.
프라이버시, 인권 그리고 토네이도 캐시
토네이도 캐시의 개발자 알렉세이 페르체프가 네덜란드에서 64개월의 징역형을 선고받았습니다. 이 서비스는 사용자가 암호화폐 거래의 출처를 숨길 수 있게 해주지만, 이는 합법적인 프라이버시 보호와 불법 자금 세탁에 모두 사용될 수 있습니다. 저자는 이러한 소프트웨어 개발자를 기소하는 것이 코드 자체를 범죄화하는 위험한 선례를 남길 수 있다고 우려하며, 프라이버시를 기본적인 인권으로 보호해야 한다고 주장합니다.
복셀 변위 렌더러 — 레트로 3D 미학의 현대화
복셀 변위 렌더러는 90년대 클래식 3D 게임에서 영감을 받아 개발된 실시간 렌더링 기술입니다. 이 기술은 고전적인 픽셀화된 비주얼과 현대적인 미학을 결합하여, 복셀을 이용한 3D 디테일을 구현하고자 합니다. 이 렌더러는 기존의 삼각 메쉬와 변위 매핑을 결합하여 복셀 같은 미학을 달성하며, 물리나 경로 찾기 등의 게임 시스템에도 효과적으로 활용됩니다.
비트키퍼, 리눅스, 그리고 라이선스 분쟁: 리누스 토발즈가 14일 만에 깃을 만든 이야기
2002년 리누스 토발즈는 비트키퍼 버전 관리 시스템을 사용하기 시작했으나, 라이선스 문제로 인해 2005년 깃을 직접 개발하기로 결정했습니다. 단 14일 만에 리눅스 커널 개발을 위한 새로운 분산 버전 관리 시스템을 완성했죠. 이는 소프트웨어 산업에 큰 영향을 미쳤습니다.
컴파일러에게 전화해서 코드를 팩스로 보내다
C 코드를 컴파일하고 실행하고 싶은 사람이 컴파일러에게 전화를 걸어 코드를 팩스로 보냅니다. 이 서비스는 코드를 컴파일하고 실행하는 데 0초가 걸렸으며, 결과적으로 'hello world'를 열 번 출력하는 데 성공했습니다. 이야기는 빠르고 성공적인 컴파일과 실행 과정에 대한 만족감으로 끝납니다.