DAPHICX: Data Access Pattern Hint Injecting Compiler Extension

Memory pressure is inevitable as the size of working sets is rapidly growing while the capacity of dynamic random access memory (DRAM) is not. Meanwhile, storage devices have evolved so that their speed is comparable to the speed of DRAM while their capacity scales are comparable to that of hard disk drives (HDD). Thus, hierarchial memory systems configuring DRAM as the main memory and high-end storages as swap devices will be common....

May 30, 2019 · 2 min · 307 words · Me

Biscuit (OS Written in Go) Install

$ git clone https://go.googlesource.com/go go1.4; cd go1.4 $ git checkout release-branch.go1.4; cd src $ ./make.bash $ cd ../../ $ git clone https://github.com/mit-pdos/biscuit.git; cd biscuit/src $ ./make.bash $ cd ../biscuit/ $ make qemu CPUS=2

May 26, 2019 · 1 min · 33 words · Me

Fedora28 ibus-hangul input problem

어느날부터 Fedora 터미널에서 한글 입력이 매우 불편해졌습니다. 한글 모드에서는 backspace, enter, esc 등의 특수키가 하나도 안먹힙니다. Vim 을 쓰는 입장에선 매우 불편하죠. 알고보니 ibus-hangul 버그인 것 같습니다[1]. 아래 커맨드로 ibus-hangul 을 문제 없던 버전으로 다운그레이드 시키고 세션을 재시작 하면 문제가 사라집니다. sudo dnf downgrade ibus-hangul-1.5.0-12.fc28.x86_64 [1] http://www.fedoralinux.or.kr/board-read.do?boardId=bbs3&boardNo=153170459823549&command=READ&page=1&categoryId=-1

April 26, 2019 · 1 min · 47 words · Me

I will have a talk at the Hotstorage'19

HotStorage'19 에 제출한 제 최근 연구에 대한 논문이 accept 되어 7월에 해당 워크샵에서 이에 대한 내용을 발표하게 되었습니다. 논문 제목은 “Automating Context Based Access Pattern Hint Injection for System Performance and Swap Storage Durability” 입니다.

April 18, 2019 · 1 min · 35 words · Me

Hooking Library Function Calls

LD_PRELOAD 환경변수를 사용하면 로더가 프로그램을 로드할 때 동적 로드해야 할 바이너리 코드를 해당 변수의 값의 디렉토리에서부터 뒤지도록 합니다. 따라서 이를 이용해 malloc(), free() 등의 일반적으로 사용하는 라이브러리 함수를 우리의 구현으로 대체하거나 후킹할 수 있습니다. 이 글은 이런 방법으로 malloc() 을 후킹하는 방법을 예제를 통해 간단히 설명합니다. Original Program 먼저 다음과 같은 프로그램이 있을 수 있을 겁니다: #include <stdio.h> #include <stdlib.h> int main(void) { char *abc; abc = (char *)malloc(8); printf("malloced address: %p\n", abc); sprintf(abc, "hello\n"); printf("%s\n", abc); free(abc); return 0; } 단순히 malloc() 을 통해 8바이트 메모리를 할당받아 그 영역을 표시하고 종료하는 프로그램입니다....

April 10, 2019 · 2 min · 333 words · Me