디지털 라이브러리[ 검색결과 ]
유니커널을 위한 파일시스템 최적 설계 방안
http://doi.org/10.5626/JOK.2024.51.5.389
유니커널은 단일 응용과 서비스에 최적화된 특수목적용 커널이다. 범용 커널에 비해 빠른 부팅시간, 작은 메모리 풋프린트, 고성능과 보안이 장점이다. 유니커널상에서 구동가능한 애플리케이션들은 범용 커널의 런타임 환경과 호환성을 유지하여 기존 응용들을 바이너리 형태 혹은 소스 호환형태로 활용된다. 그런데, 대부분의 기존 유니커널 프로젝트들은 파일시스템과 관련한 시스템콜에 대해 성능 최적화보다는 애플리케이션 자체의 원활한 동작을 위한 API 구현에 초점을 맞추었다. 이에 따라 기존의 범용 파일시스템을 차용하거나 호스트 파일시스템에 의존적인 방식을 사용하였다. 본 논문에서는 보안성을 유지하면서 최소의 시스템 자원으로 최적의 성능을 얻고자 하는 유니커널의 취지를 고려하는 유니커널용 파일시스템의 설계 방안에 대해 기술한다. 구체적으로는 마이크로 벤치마크를 통해 주요 유니커널에서 지원하는 파일 시스템에 대한 성능과 메모리 요구량을 분석하고, 최적 성능과 보안성을 제공하기 위한 파일시스템 설계 방향을 제시한다.
시스템 콜 호출 패턴을 이용한 애플리케이션 모니터링 시스템 설계 및 구현
http://doi.org/10.5626/JOK.2022.49.10.795
사용자 애플리케이션은 함수들의 집합으로 이루어져 있다. 이러한 함수의 집합에 순서를 부여하여 사용자가 필요로 하는 일을 수행하는 것이 애플리케이션이다. 웹서버와 같이 서비스를 제공하는 애플리케이션은 규모가 굉장히 크고 복잡하여 공격자들의 공격 대상이 되기도 한다. 악의적인 해커들의 공격 결과 애플리케이션의 변수와 프로그램 흐름이 뒤틀리게 되고 이를 통하여 시스템의 관리자 권한을 탈취하거나 비정상 동작을 하도록 유도한다. 본 논문에서는 애플리케이션의 시스템 콜 호출 패턴을 수집하고, 수집된 패턴을 통하여 애플리케이션의 이상 징후를 탐지할 수 있는 시스템을 설계 및 구현한다. 실제 구현된 시스템을 통하여 오버헤드를 측정한 결과 약 100만 개의 시스템 콜을 모니터링 하였을 때, 약 0.8초의 오버헤드를 가짐을 알 수 있었다. 이는 기존에 존재하는 strace 등의 툴에 비하여 약 1/28배 오버헤드 수치이다.
서버 응용프로그램 성능 향상을 위한 운영체제 스케줄러 변수 조정
http://doi.org/10.5626/JOK.2020.47.7.643
현대의 Linux 서버는 대규모 서버부터 소규모 IOT 분야까지 다양한 방면에서 활용되고 있고, 대부분의 머신들은 자신의 서비스를 Linux에서 제공하는 기본 설정의 스케줄러를 통해 동작시키고 있다. 특정 목적에 맞도록 최적화는 가능하지만, 일반적인 사용자가 다양해진 현대의 Linux application을 모두 최적화할 수 없는 문제가 존재한다. 이에 본 논문에서는 Linux 서버의 성능을 최대화할 수 있도록 스케줄러 설정을 자동으로 최적화해줄 수 있는 SCHEDTUNE을 제안하고자 한다. SCHEDTUNE 은 서버에서 수행하는 Application이나 기본 Kernel 소스에 별도의 수정 없이 성능을 향상할 수 있도록 해준다. 이를 통해 관리자는 자신들이 운영하는 서버에 특화되어 동작하는 스케줄러를 쉽게 구성할 수 있게 된다. 실험결과 SCHEDTUNE을 적용한 경우 최대 19% 높은 성능을 얻게 되었으며, 대부분의 경우 이에 준하는 성능 향상을 달성하였다.
Nested Kernel의 커널코드 및 메모리보호 취약점 분석
http://doi.org/10.5626/JOK.2018.45.9.873
Nested Kernel은 2015년 ACM ASPLOS 학회에서 제시된 커널의 무결성 보장을 위한 새로운 보안커널 구조이다. Nested Kernel은 하드웨어 기반의 커널보호 기법에 대한 의존도를 줄이고 기존의 모놀리식 커널구조를 개선하여 보안성을 높였다. 그러나 Nested Kernel의 커널코드 및 메모리보호 기법을 상세히 분석한 결과 현재의 구현에는 직접사상과 코드영역에 대한 구현이 완벽하지 않고 논문에서 저자들이 제시하는 일부 기능이 실제로 구현되지 않아 메모리보호의 취약점을 발견하였다. 보안커널로의 활용을 위해서는 추가적인 연구가 필요할 것으로 보인다.
커널 레벨의 메모리 최적화를 통한 가상 스위치 포워딩 성능 향상 기법
http://doi.org/10.5626/JOK.2018.45.6.511
가상 스위치는 리눅스 커널 네트워크 스택을 이용하여 복수의 가상머신 또는 컨테이너에 네트워크 자원을 활용할 수 있도록 한다. 또한, 가상머신이 동작하는 클라우드 수요 상승에 따라 많은 종류의 가상 스위치가 등장했고, 여러 가지 기능들을 제공하고 있다. 하지만 기존의 가상 스위치와 리눅스 커널네트워크 스택의 비효율적인 처리 방식으로 인하여 높은 대역폭을 요구 사항의 경우 만족할 수 없다. 이러한 문제를 해결하기 위해 기존의 커널 네트워크 스택이 아닌 유저 영역의 독자적 네트워크 스택을 이용한 해결방식으로 다양한 연구들이 진행됐지만, 재구현 오버헤드, 견고함(Robustness) ・보안성(Security) 및 과도한 메모리 사용 등 여러 가지 문제가 존재한다. 따라서 본 논문은 커널 영역의 최적화를 통해 효율적인 네트워크 처리를 도모하며 기존 연구 방식의 한계도 동시에 극복하기 위한 기법을 제시한다. 그리고, 실험 평가 및 향후 연구 진행 방향을 제시한다.
AIOPro: 안드로이드 스마트폰을 위한 통합된 스토리지 I/O 분석도구
사용자 경험이 중요한 스마트폰에서는 사용자의 입력에 대한 응용 프로그램의 반응 시간에 대한 분석이 필요하며 특히 사용자 반응 시간에 큰 영향을 주는 스토리지 I/O 성능의 분석은 사용자 경험최적화를 위한 중요한 요건이다. 사용자가 경험하는 반응 시간의 분석을 위해서는 입력을 받아들이는 최상위 계층에서 최하위 저장장치 계층을 수직적으로 아우르는 통합된 분석도구가 필요한데 기존의 도구들은 제한된 범위의 계층들에 맞추어 있어서 효과적인 사용자 경험 분석이 어려운 상황이다. 본 논문에서는 안드로이드 스마트폰을 대상으로 최상위 안드로이드 플랫폼, 리눅스 커널을 포함하는 전체 스토리지 I/O 계층의 I/O 동작을 측정하고, 이를 바탕으로 계층 통합적 분석을 통하여 각 계층간 I/O 동작을 연결하여 사용자 입력에 따른 스토리지 I/O가 미치는 영향의 분석이 가능한 도구인 AIOPro를 소개한다. 검증 실험을 통하여 AIOPro가 0.1% 미만의 동작부하로 정확히 분석할 수 있음을 확인하였다.
안드로이드 커널 모듈 취약점 탐지를 위한 자동화된 유닛 테스트 생성 기법
본 논문에서는 안드로이드 커널 모듈의 취약점을 탐지하기 위한 자동 유닛 테스트 생성 기법을 제안한다. 안드로이드 커널 모듈의 각 함수를 대상으로 테스트 드라이버/스텁 함수를 자동 생성하고 동적 기호 실행 기법을 사용하여 테스트 입력 값을 자동으로 생성한다. 또한 안드로이드 커널 모듈의 함수 포인터와 함수 선행 조건을 고려하지 않은 테스트 생성으로 인한 거짓 경보를 줄이기 위해 정적 분석을 통한 함수 포인터 매칭 기법과 def-use 분석을 사용한 함수 선행 조건 생성 기법을 개발하였다. 자동 유닛 테스트 생성 기법을 안드로이드 커널 3.4 버전의 세 모듈에 적용한 결과 기존에 존재하던 취약점을 모두 탐지할 수 있었으며 제안한 거짓 경보 감소 기법으로 평균 44.9%의 거짓 경보를 제거할 수 있었다.
커널 Ripple-Down Rule을 이용한 태깅 말뭉치 오류 자동 수정
자연어처리에서 기계학습을 위한 학습 말뭉치는 매우 중요하다. 정제된 대량의 말뭉치는 자연어처리 시스템에 직접 영향을 준다. 본 논문에서는 대량의 말뭉치 오류를 자동으로 수정하는 새로운 방법을 제안한다. 오류 말뭉치와 정답 말뭉치에서 사람이 태깅한 문서의 특성을 반영한 수정 규칙을 자동으로 생성하였다. 수정 규칙은 RDR(Ripple-Down Rules)를 사용하여 표현하였다. 수정 방법의 가치를 보이기 위해 품사 부착 말뭉치와 개체명 부착 말뭉치에 대해서 실험하였으며 두 분야에서 유의미한 결과를 보였다. 이 방법은 대량의 말뭉치를 제작할 때 오류를 최소화하는 방법으로 사용이 가능하다.
중력 모델을 이용한 시공간 데이터의 시각화
시공간 데이터는 위도와 경도를 비롯한 위치정보를 포함한 데이터를 일컫는 말로 지리학적 시각화의 연구로 시공간 데이터를 분석하고 표현하는 방법에 대한 다양한 연구가 진행되었다. 이 기술은 특정 공간에 시간을 두고 연속적 또는 이산적으로 발생하는 데이터로부터 패턴을 찾고 이를 분석하는 데 목표가 있다. 하지만, 이동 경로에 대한 정보가 없는 이산적인 시공간 데이터에서 데이터의 흐름을 시각화하는 것은 쉽지만은 않은 일이다. 본 논문에서는 커널밀도추정과 중력모델을 이용하여 이산적인 시공간 데이터로부터 벡터를 추출하고 이를 이용하여 사용자로 하여금 시공간 데이터에서 움직임과 경향을 분석할 수 있도록 시각화 하는 것에 목표를 두었다. 이를 뒷받침하기 위하여 트위터 데이터를 이용하여 이산적인 시공간 데이터를 시각화하고 분석하고자 한다.