신뢰할 수 있는 시스템 호출 가로채기
Linux 시스템 호출을 가로채는 전통적인 방법인 ptrace는 느리고 특정 호출을 필터링할 수 없는 단점이 있습니다. 최근에는 seccomp user notify와 BPF를 활용해 성능 저하 없이 원하는 시스템 호출만 가로채는 방법이 발전했습니다. 이 기술은 특히 파일 경로를 동적으로 변경할 때 유용합니다.
신뢰할 수 있는 시스템 호출 가로채기
Linux 시스템 호출을 가로채는 전통적인 방법인 ptrace는 느리고 특정 호출을 필터링할 수 없는 단점이 있습니다. 최근에는 seccomp user notify와 BPF를 활용해 성능 저하 없이 원하는 시스템 호출만 가로채는 방법이 발전했습니다. 이 기술은 특히 파일 경로를 동적으로 변경할 때 유용합니다.
세계 최초의 MIDI 셸코드
이 글은 야마하 PSR-E433 신디사이저에서 MIDI 메시지를 통해 원격 코드 실행을 달성한 흥미로운 프로젝트를 다룹니다. 펌웨어를 분석하고 셸코드를 작성하여 LCD에 'Bad Apple'을 표시하는 데 성공했습니다. 이 프로젝트는 신디사이저의 DSP 기능을 더 탐구할 계획입니다.
홈 서버 보안 이야기
새해를 맞아 홈 서버의 보안 문제를 겪었습니다. 서버 팬 소음으로 시작된 문제는 Kinsing이라는 악성코드로 인한 것이었죠. Docker 컨테이너의 보안 취약점을 통해 감염되었고, 이를 통해 암호화폐 채굴이 진행되고 있었습니다. 이를 통해 인터넷에 노출된 서버의 위험성을 깨달았고, 보안 강화를 통해 공격 표면을 최소화했습니다. 여러분도 홈 네트워크 보안에 주의하세요!
러스트로 게임 개발, 1년 후
러스트로 게임 개발을 시작한 지 1년이 지났지만, 상황은 크게 변하지 않았습니다. Rend3는 중단되었고, 저자는 이를 rend3-hp로 유지하고 있습니다. NVidia 3070에서 성능 문제가 발생하며, Vulkan의 개선이 필요합니다. Bevy와 같은 엔진 없이 효율적인 렌더러 개발이 가능할지 고민이 필요합니다.
존 어니스트와 데커
데커는 존 어니스트가 개발한 창의적인 도구로, 하이퍼카드, 플래시, 루아, q 등 다양한 기술 요소를 결합한 독특한 플랫폼입니다. 이 도구는 프로그래머, 아티스트, 창작자들에게 다양한 프로젝트를 위한 다재다능한 도구를 제공합니다. 호스트는 코너 훅스트라, 게스트는 존 어니스트, 패널에는 아담 브루드제프스키, 밥 테리오, 마샬 로크바움이 참여합니다.
Oils 0.24.0 - 클로저, 객체, 네임스페이스
Oils 0.24.0의 주요 업데이트는 클로저, 객체, 네임스페이스입니다. YSH는 이제 Python과 JavaScript처럼 더 유연한 프로그래밍이 가능해졌습니다. 환경 변수는 ENV 객체로 관리되고, 객체는 코드와 데이터를 묶어 사용합니다. 이 릴리스는 문서와 호환성 개선도 포함합니다.
에소테릭 CPU로 1비트 오디오 합성하기
1비트 음악은 단일 비트로 소리를 표현하는 독특한 방식입니다. 에소테릭 CPU를 사용해 1비트 음악을 만드는 과정에서 제한된 처리 능력과 사운드 디자인의 한계를 극복해야 했습니다. 다양한 파형 생성과 리듬을 통해 창의적인 사운드를 만들어내는 방법을 공유합니다.
리눅스 고해상도 DPI 설정
고해상도 DPI 화면을 가진 노트북을 사용하면서 OpenBox에서의 설정 방법을 공유합니다. Xft.dpi 설정을 통해 폰트 크기를 조정하고, GTK 앱의 환경 변수를 설정하여 아이콘과 스크롤바 크기를 조절합니다. OpenBox와 GTK3 테마, 마우스 커서 크기, Firefox 설정 등 다양한 요소를 조정하여 최적의 화면 환경을 만듭니다. 리눅스의 유연한 설정과 스크립팅 환경 덕분에 사용자 맞춤형 환경을 구축할 수 있습니다.
자본주의의 꿈
생성형 AI는 자본주의에 큰 변화를 가져오고 있습니다. 이 기술은 숙련된 노동의 필요성을 줄이며, 많은 직업을 위협하고 있습니다. AI가 생성하는 저품질 콘텐츠가 증가하면서, 인간 노동의 수요는 감소하고, 사회적 격차는 더욱 커질 것입니다. 이 기술의 발전은 자본주의의 본질을 반영합니다.
계산기에서 'AI' 구현하기: 1부
AI를 계산기에 구현할 수 있을까요? 2023년 3월, 저는 샌프란시스코에서 시카고까지의 기차 여행 중에 TI-84 Plus CE 계산기에 신경망을 포팅하는 도전을 했습니다. 이 프로젝트는 계산기의 제한된 하드웨어에서도 유용한 머신러닝 알고리즘이 실행 가능함을 보여주기 위한 것이었습니다. 결과적으로, 손글씨 숫자를 정확히 인식하는 CNN을 성공적으로 구현했습니다. 이 흥미로운 실험의 결과와 향후 계획을 확인해보세요!
유닉스와 마이크로서비스 플랫폼
유닉스의 성공 비결은 코드의 경계를 명확히 하는 데 있습니다. 이는 마이크로서비스에서도 중요합니다. 유닉스 철학은 프로그램이 협력하고 보편적 인터페이스를 사용하도록 강조합니다. 서비스 메시는 다양한 언어 간의 복잡성을 줄이는 데 도움을 줄 수 있습니다. 유닉스 스타일의 접근법은 미래의 서비스 아키텍처에 필수적입니다.
2025년과 그 이후의 기술 예측
기술과 사회적 변화가 빠르게 진행되는 가운데, 윤리적 기술 사용이 중요해지고 있습니다. 의미 있는 일을 추구하는 미래의 인재들은 지속 가능성을 중시하며, 스마트 에너지와 AI 도구가 진실 발견에 기여합니다. 의도 중심의 기술은 우리의 디지털 경험을 정신 건강과 핵심 가치에 맞추도록 돕습니다.
한 마리 개와 Windows 3.1 그래픽 스택의 대결
이 글에서는 Windows 3.11을 실행하는 Asus Eee PC 1000H에서 비디오 출력을 개선하려는 도전을 다룹니다. 기본 VGA 출력이 부족하여 더 나은 드라이버를 찾는 과정에서 VESA BIOS Extensions와 SVGAPatch의 문제를 탐구합니다. 복잡한 드라이버 설정과 DOSBox 테스트를 통해 문제를 해결하려는 시도를 보여줍니다.
결정론적 도구에 대한 선호: 프로그래밍에서 AI의 역할
최근 어셈블러를 개선하여 BASIC 코드로 출력하게 했습니다. 이는 어셈블리 서브루틴을 BASIC에서 쉽게 사용할 수 있게 해줍니다. AI 도구에 대한 회의적인 시각을 가지고 있으며, 결정론적인 도구가 더 신뢰성이 있다고 생각합니다. AI의 불확실성이 프로그래밍에 꼭 필요한지 의문입니다.
파일은 배우가 되고 싶어할까?
io_uring 모델은 Linux에서 고성능 애플리케이션의 운영체제와의 소통을 혁신하고 있습니다. 이 모델은 제출 큐와 완료 큐라는 두 가지 주요 큐로 구성되어 있으며, 비동기 메시지 전달을 통해 전통적인 시스템 호출을 대체합니다. 이는 1970년대의 배우 모델과 유사한 점이 많아 흥미롭습니다.
썰매 시뮬레이션 가이드 (Jepsen-증명 엔지니어링)
이 가이드는 분산 시스템의 결함을 드러내는 Jepsen의 성공을 바탕으로, 결정론적 테스트의 중요성을 강조합니다. 이벤트 시뮬레이션을 통해 수천 개의 테스트를 실행하여 메시지 손실과 순서 혼합 문제를 해결할 수 있습니다. 간단한 시뮬레이터 구축은 복잡한 알고리즘 이해보다 쉽고, 비동기 모델을 사용하면 버그를 피할 수 있습니다. 이러한 방법을 통해 더 견고한 시스템을 개발할 수 있습니다.
심층 분석: Planet Coaster 2에서 생동감 넘치는 물 표현하기
게임 개발자들에게 큰 영향을 미칠 수 있는 Project 2025가 주목받고 있습니다. Heritage Foundation의 이 선언문은 차기 행정부에 큰 변화를 가져올 수 있으며, 특히 게임 개발 커뮤니티에 부정적인 영향을 미칠 가능성이 큽니다. 이 프로젝트가 게임 산업에 어떤 변화를 가져올지 궁금하지 않으신가요?
2025년 가넷의 현황
가넷은 러스트에서 영감을 받아 개발된 프로그래밍 언어로, 러스트의 핵심 원칙을 유지하면서도 단순화를 목표로 합니다. 2024년에는 모노모르피제이션과 타입 검사기 개선이 이루어졌으며, 상수 전파가 성공적으로 구현되었습니다. 가넷은 메모리 관리에 엄격한 통제를 유지하며, 고차 타입 도입을 계획하고 있습니다.
2024 ML 리뷰 (기술 작가를 위한)
자동화는 기술 작가들에게 큰 변화를 가져왔습니다. ChatGPT와 같은 AI는 콘텐츠 생성부터 문법 검사까지 다양한 작업을 지원합니다. 특히 기본 콘텐츠 생성과 문법 및 철자 검사에서 많은 도움이 되고 있습니다. 그러나 데이터 분석이나 용어 일관성 유지는 아직 널리 채택되지 않았습니다. 번역과 FAQ 생성도 가능하지만, 아직 초기 단계에 머물러 있습니다. 이처럼 AI는 기술 문서 작성의 효율성을 높이지만, 완전한 채택에는 시간이 필요합니다.
기술 문서 작성의 난제들
기술 문서 작성에는 완전성, 정확성, 발견 가능성이라는 세 가지 주요 난제가 있습니다. 모든 기능을 제때 문서화하고, 시스템 변화에 맞춰 문서를 업데이트하며, 사용자가 필요한 정보를 쉽게 찾도록 하는 것이 어렵습니다. 2010년대의 도구와 관행만으로는 해결이 불가능하며, 새로운 도구와 관행의 도입이 필요합니다. 기술 문서 작성의 미래는 어떻게 변화할까요?