Ahn9807의 사용자 기여

기여 검색펼치기접기
⧼contribs-top⧽
⧼contribs-date⧽
(최신 | 오래됨) ( | ) (20 | 50 | 100 | 250 | 500) 보기

2023년 2월 3일 (금)

  • 12:062023년 2월 3일 (금) 12:06 차이 역사 +911 새글 Single level storage새 문서: 분류: 스토리지 == 개요 == Single level stroage (SLS)는 두가지 의미를 가진다. 첫번째는 Swap으로 이루어지는 Memory의 확장이며 두번째는 file이 없는 시스템이다. 현대의 의미는 주로 두번째의 의미로 사용된다. 이하 SLS에 대한 서술은 두번째의 의미로 서술된다. SLS는 file과 메모리의 구분이 없다. 이러한 in-memory과 serialized on-disk의 시맨틱 갭을 제거함으로써 SLS는 Applicat...
  • 12:052023년 2월 3일 (금) 12:05 차이 역사 +7,657 새글 The Aurora Single Level Store Operating System새 문서: 분류: 시스템 논문 SOSP 2021 - Proceedings of the 28th ACM Symposium on Operating Systems Principles == 개요 == Aurora Operating시스템은 Eros (1995 SOSP)와 같은 Single level storage(SLS)기반의 Persistent operating system을 현재의 NVMe와 같은 Modern SSD에서 어떻게 하면 효율적으로 다시금 해석할 수 있을지 고민한 논문이다. == Problems and importance == Application checkpointing은 serverless 환경에서 빠른 Appli... 최신
  • 12:032023년 2월 3일 (금) 12:03 차이 역사 +3,934 새글 The performance of the Container Shipping I/O system새 문서: 분류: 시스템 논문 ;Anderson, E. W. (1995). The performance of the Container Shipping I/O system. ACM SIGOPS Operating Systems Review, 29(5), 229. https://doi.org/10.1145/224057.225831 == 개요 == 기존의 시스템에서는 User level에서 사용되는 Resource들은 Scheduling의 단위로 사용하였다. 그러나, Kernel level에서 돌아가는 경우에는 Resource에 대한 Tracking을 제공하지않고 무시하였다. 이 논문에서는 Kernel레벨에... 최신
  • 12:032023년 2월 3일 (금) 12:03 차이 역사 +698 새글 Vmlinux새 문서: 분류: 리눅스 커널 == 개요 == Vmlinux는 커널 디버깅에서 사용하는 Object file이다. VMLINUX라는 이름의 기원은 Virtual memory에서 기원하였다. 이 파일은 가상 메모리에서 사용할 커널의 모든 오브젝트에 대한 재배치 정보를 포함하고 있는데, 이를 통해서 디버깅이나 krpobe와 같은 커널의 여러 Symbol relaction에서 필요한 정보를 얻어 낸다. VMLINUZ라는 Z로 끝나는 파일도 있는... 최신
  • 12:022023년 2월 3일 (금) 12:02 차이 역사 +70 새글 분류:EBPF새 문서: 분류: 리눅스 커널 분류: 소프트웨어 기반 보안 최신
  • 12:022023년 2월 3일 (금) 12:02 차이 역사 −15 BPF Type Format편집 요약 없음 최신
  • 12:012023년 2월 3일 (금) 12:01 차이 역사 +33 새글 BTFBPF Type Format 문서로 넘겨주기 최신 태그: 새 넘겨주기
  • 12:012023년 2월 3일 (금) 12:01 차이 역사 +2,813 새글 BPF Type Format새 문서: 분류: 운영체제 기술 == 개요 == BTF란 BPF Type Format의 약자이다. 마치 Dwarf처럼 Object에 대한 Relocation table을 가지고 있다. 그러나 Dwarf와는 다르게 eBPF의 CO-RE (Compiler once run everywhere)의 기능을 제공하기 위한 정보만을 담고 있기에 간단하고 용량을 적게 차지 한다. eBPF프로그램은 커널의 여러 부위에 붙어서 작동하게 되는데 이러한 과정에서 커널 버전, 혹은 커...
  • 12:012023년 2월 3일 (금) 12:01 차이 역사 +1,424 새글 Container of새 문서: 분류: 리눅스 커널 API == 개요 == container_of(입력 주소, 구조체 A, 해당 구조체 멤버) 어떤 구조체(A)의 멤버가 입력 주소일 경우 해당하는 구조체의 주소를 가져온다. 예를 들어서 linux/bpf/hashtab.c <syntaxhighlight lang=c> static void *__htab_map_lookup_elem(struct bpf_map *map, void *key) { struct bpf_htab *htab = container_of(map, struct bpf_htab, map); struct hlist_nulls_head *head; struct... 최신
  • 12:002023년 2월 3일 (금) 12:00 차이 역사 +519 새글 Copy to user새 문서: 분류: 리눅스 커널 API == 개요 == copy_to_user -- Copy a block of data into user space. unsigned long copy_to_user (void __user * to, const void * from, unsigned long n); 인자 to Destination address, in user space. from Source address, in kernel space. n Number of bytes to copy. 문맥 커널 스페이스와 유저 스페이스의 메모리 View가 다르기 때문에 User context로 커널 스페이스의 메모리를 복사하기 위해... 최신
  • 12:002023년 2월 3일 (금) 12:00 차이 역사 +1,994 새글 Kprobe새 문서: 분류: 리눅스 커널 == 계요 == kprobe는 tracepoint와는 다르게 동적으로 커널의 거의 대부분의 주소에서 debugging과 performance분석을 가능하게 하는 툴이다. kprobe는 원하는 위치에 int3 breakpoint을 걸어서 int3이 불리면 do_iret3 handler에서 지정된 핸들러를 호출하는 것으로 구현된다. kprobe는 kprobe와 kretprobe로 구성되는데 전자는 함수가 호출될때 불리며, 후자는 함수가 끝날때... 최신
  • 12:002023년 2월 3일 (금) 12:00 차이 역사 +389 Nooks: an architecture for reliable device drivers→‎Criticizing 최신
  • 11:582023년 2월 3일 (금) 11:58 차이 역사 +5,173 새글 Nooks: an architecture for reliable device drivers새 문서: 분류: 시스템 논문 :M. M. Swift, B. N. Bershad, and H. M. Levy, “Improving the Reliability of Commodity Operating Systems,” p. 16. :M. M. Swift, S. Martin, H. M. Levy, and S. J. Eggers, “Nooks: an architecture for reliable device drivers,” in Proceedings of the 10th workshop on ACM SIGOPS European workshop: beyond the PC - EW10, Saint-Emilion, France, 2002, p. 102. doi: 10.1145/1133373.1133393. == 개요 == 디바이스 드라이버를 잘 사용하기 위...
  • 11:572023년 2월 3일 (금) 11:57 차이 역사 +45 새글 IPCIntel Process Communication 문서로 넘겨주기 태그: 새 넘겨주기
  • 11:572023년 2월 3일 (금) 11:57 차이 역사 +5,402 새글 Inter Process Communication새 문서: 분류: 프로세스 == 개요 == 운영체제 상에서 실행 중인 프로세스 간에 정보를 주고받는 것을 Inter Process Communication(IPC)라고 한다. 프로세스는 자신에게 할당된 메모리 내의 정보만 접근할 수 있고, 이를 벗어나서 접근할 경우, C언어를 배우는 사람이라면 누구나 한 번쯤은 봤을 Segmentation Fault 등의 오류가 발생하게 된다. 이는 안전성을 위해 운영체제에서 자기 프로...
  • 11:562023년 2월 3일 (금) 11:56 차이 역사 +362 새글 그래프새 문서: 분류: 자료 구조 == 개요 == 그래프는 <math>G=(V,E)</math>로 구성되며, 두개의 유한한 셋 V와 E로 구성된다. V는 그래프의 각 정점이고 E는 그래프의 간선이다. E는 두개의 V의 쌍 $(v_1, v_2)$로 구성된다. == 종류 == # Directed Acyclic Graph (DAG): 방향이 있는 cycle이 없는 그래프를 말한다. 최신
  • 11:562023년 2월 3일 (금) 11:56 차이 역사 +1,356 새글 Capsicum: practical capabilities for UNIX새 문서: 분류: 시스템 논문 R. N. M. Watson, J. Anderson, K. Kennaway, and B. Laurie, “Capsicum: practical capabilities for UNIX,” p. 17. == 개요 == Capability Model을 Unix에 적용시킨 논문이다. Unix file descriptor을 확장 시켜서, Capability란 요소로써, 접근하도록 하였다. cap_enter라는 시스템콜을 사용하면, 그 후에 작용하는 모든 FD들이 Capability들을 따라가도록 하였다. 허용된 capability를 가지는 FD만이... 최신
  • 11:552023년 2월 3일 (금) 11:55 차이 역사 +1,302 새글 LXDs: Towards Isolation of Kernel Subsystems새 문서: 분류: 시스템 논문 V. Narayanan, A. Balasubramanian, and C. Jacobsen, “LXDs: Towards Isolation of Kernel Subsystems,” p. 17. == 개요 == 커널 드라이버에 최소한의 수정만을 가해서 Light weight protection domain에서 실행시켰다. # Light weight protection doamin을 만들어서 커널 코드를 Isolate 하였다. # Protection domain에 정보를 줄때 Batching과 Pipeline을 통해서 cross domain cost를 줄였다. # Lightweight asynchro... 최신
  • 11:542023년 2월 3일 (금) 11:54 차이 역사 +585 새글 GCC새 문서: 분류: 오픈 소스 프로젝트 == 개요 == 본 문서는 현재 GCC x96 option, features, builtin function에 대한 유용한 사이트를 정리한 문서이다. == 참고 == # Attributes of Functions: https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Attributes.html # Function Specific Option Pragmas: https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Specific-Option-Pragmas.html#Function-Specific-Option-Pragmas # X86 Options: https://gcc.gnu.org/onlinedocs/...
  • 11:532023년 2월 3일 (금) 11:53 차이 역사 +28 새글 분류:리눅스 커널 API새 문서: 분류: 리눅스 커널 최신
  • 11:532023년 2월 3일 (금) 11:53 차이 역사 +515 새글 Kmalloc새 문서: 분류: 리눅스 커널 API == 개요 == static __always_inline void *kmalloc(size_t size, gfp_t flags) Kmalloc은 리눅스 커널에서 메모리를 할당시키는 함수이다. kmalloc은 내부적으로 slab cache를 사용하여 메모리를 할당한다. * kmalloc은 vmalloc과는 다르게 physically contiguous한 메모리를 보장한다. * kmalloc은 부팅 시간에는 hugepage로 부팅후에는 4KB page로 할당된다. * 8K보다 큰 메모리는 buddy s...
  • 11:522023년 2월 3일 (금) 11:52 차이 역사 +645 새글 Oops새 문서: 분류: 리눅스 커널 == 개요 == 커널은 문제가 되는 상황에 커널을 종료 시키거나 (Panic)혹은 Oops 메시지를 출력하고 문제가 되는 부분을 복구하는 방식을 채택한다. 이 문서는 Oops상황에서 출력되는 메시지를 분석하는 법을 정리한다. == 정리 == # my_oops_init+0x12/0x21 은 symbol + offset/length이며 gdb에서는 list로 addr2line 으로는 addr2line -3 vmlinux 12341234(+offset)으로 디버깅하...
  • 11:522023년 2월 3일 (금) 11:52 차이 역사 +2,249 새글 리눅스 빌드새 문서: 분류: 리눅스 커널 == 개요 == 이 문서는 Linux를 소스코드를 build하고 디버깅하기 위한 과정들을 서술한다. == Build == linux 소스 코드 다운 git clone --depth 1 https://github.com/torvalds/linux 만약 원하는 리눅스 버전이 있다면 다음 사이트에서 확인 후 다운 https://mirrors.edge.kernel.org/pub/linux/kernel/ 패키지 매니저를 이용해서 다운 받을 수도 있음 sudo apt-get source linux 필수 라이... 최신
  • 11:512023년 2월 3일 (금) 11:51 차이 역사 +10 Research proposal편집 요약 없음
  • 11:512023년 2월 3일 (금) 11:51 차이 역사 +789 새글 Research proposal새 문서: 분류: 연구 논문 == 개요 == == 주의 사항 == # 가이드 라인을 잘 따라갈것. # Format. Font, Figure등 적힌 내용이 잘 읽을 수 있는지 확인 할 것. Times new roman 12 가 추천할 만한 사양 # Misspellings, poor grammar를 조심 할 것 # The research objective로 시작 할 것. 즉 목표부터 제시할 것 # Proposal의 목표는 Research지 Not Research가 아님. 즉, Develop, Design, Optimize, Control, Manage와 같은 내용은...
  • 11:502023년 2월 3일 (금) 11:50 차이 역사 +731 새글 Makefile새 문서: 분류: 오픈 소스 프로젝트 == 개요 == Makefile은 Unix 시스템에서 Build시에 발생하는 여러 과정들을 하나의 make 커맨드를 통해서 실행시켜주는 프로그램이다. 1976년 GNU프로젝트의 일환으로 탄생하였다. Make은 Makefile 파일에 등록된 일련의 과정을 수행시켜 준다. 예를 들어서 <syntaxhighlight lang=c> main: test.o main.o gcc -std=c11 -g -o main test.o main.o test.o: test.h test.c...
  • 11:502023년 2월 3일 (금) 11:50 차이 역사 +484 새글 GDB새 문서: 분류: 디버깅 == 개요 == GDB는 GNU프로젝트의 일환으로 소스코드를 Debugging에 사용되는 Tool이다. == 유용한 명령어 == * set-follow-mode child: Parent 프로세스가 아니라 Child process를 디버깅한다. * set detach-on-fork: fork() 후에 Parnet 혹은 Child를 디버깅 할건지, 아니면 둘다 attaching할건지 결정한다. * show <Mode-Name>: 현재 어떤 모드로 실행중인지를 표시한다. 예) show set-follow-mode
  • 11:502023년 2월 3일 (금) 11:50 차이 역사 −7 Huge page편집 요약 없음 최신
  • 11:502023년 2월 3일 (금) 11:50 차이 역사 +1,820 새글 Huge page새 문서: 분류: 메모리 관리 == 개요 == Super Page, Huge Page, Extended Page Table이라고도 불리는 이 기술은 Page Table의 엔트리의 크기를 2MB로 늘릴 수 있는 기술이다. 이를 통해서 Page Table에 대한 Access를 줄이고 TLB 캐시 히트 정도를 늘리는 방법이다. 그러나 만약 데이터베이스처럼 메모리의 여러 공간을 광역적으로 사용하는 경우 이 기술을 사용하면, 오히려 Swap out되는 용량이 증...
  • 11:492023년 2월 3일 (금) 11:49 차이 역사 +1,226 대문편집 요약 없음
  • 11:492023년 2월 3일 (금) 11:49 차이 역사 +8,975 새글 Harmonizing Performance and Isolation in Microkernels with Efficient Intra-kernel Isolation and Communication새 문서: 분류: 시스템 논문 USENIX ATC 2020 == Paper summary (How paper express it's thought) == 이 논문은 micro kernel의 본질적인 문제 였던, IPC Cost를 MPK를 통해서 최소화한 Paper이다. 기존의 Micro kernel은 Server domain이 User space에서 작동하였다. 그러나 이 논문은 Server process를 Kernel에 있을 수 있도록 하고, 그 경우에는 Protection는 MPK를 통해서 함으로써, IPC Cost를 줄이고, User Kernel Migration을... 최신
  • 11:472023년 2월 3일 (금) 11:47 차이 역사 +5,077 새글 HawkEye: Efficient Fine-grained OS Support for Huge Pages새 문서: 분류: 시스템 논문 ASPLOS '19: Architectural Support for Programming Languages and Operating Systems == 개요 == Ingends[1], FreeBSD, Linux의 Huge page allocation은 여러 문제가 있다. HawkEye는 이 문제점을 분석하고, Async page pre-zeroing, De-dupulication of zero-filled pages, Access tracking, Hardware performance counter를 통해서 이를 극복하였다. == Problems and Importance == Background 내용은 Coordinated and Efficient Huge Page... 최신
  • 11:462023년 2월 3일 (금) 11:46 차이 역사 +5,047 새글 CBMM: Financial Advice for Kernel Memory Managers새 문서: 분류: 시스템 논문 USENIX ATC 2022 == 개요 == 기존의 시스템은 High-quality information이 MM policy에 사용되지 않았으며, User-space의 cost benefit을 고려하지 않은 MM Allocation 정책 그리고 그러한 Policy들이 커널의 여러 부위에 난잡하게 있어, Debugging과 유지 보수가 어렵다는 단점이 있었다. CBMM(Cost-based memory management)은 철저의 cost-benefit 모델에 의거하여, user space의 이익을 극대... 최신
  • 09:572023년 2월 3일 (금) 09:57 차이 역사 +857 Compute Express Link편집 요약 없음 최신
  • 09:562023년 2월 3일 (금) 09:56 차이 역사 +13 새글 파일:CXL Read Flow.png편집 요약 없음 최신
  • 07:182023년 2월 3일 (금) 07:18 차이 역사 +620 Compute Express Link편집 요약 없음
  • 07:112023년 2월 3일 (금) 07:11 차이 역사 +26 새글 파일:CXL Cache memory hierarchy.png편집 요약 없음 최신
  • 07:072023년 2월 3일 (금) 07:07 차이 역사 +10 새글 파일:CXL Usages.png편집 요약 없음 최신
  • 06:562023년 2월 3일 (금) 06:56 차이 역사 +988 새글 Kernel shared memory새 문서: 분류: 리눅스 커널 == 개요 == KSM (Kernel Shared memory)는 커널에서 중복되는 메모리를 하나로 COW로 만들어서, 통합시키는 기술의 이름이다. KSM기능은 CONFIG_KSM=y로 설정할 수 있으며, 리눅스 2.6.32에서 등장하였다. KSM는 시초에는 KVM과 하이퍼바이저로써, VM의 중복되는 데이터를 하나로 저장하기 위해서 등장하였지만, 많은 General Application특히 중복된 데이터를 많... 최신
  • 06:562023년 2월 3일 (금) 06:56 차이 역사 +2,284 새글 Application-Informed Kernel Synchronization Primitives새 문서: 분류: 시스템 논문 OSDI 2022 'Application-Informed Kernel Synchronization Primitives' == 개요 == BPF와 Livepatch를 이용하여서, Application마다 달라지는 Locking Policy를 BPF Hooking을 통해서 구현 할 수 있다는 것을 보여준 논문이다. == Main Idea and Contribution == # BPF가 여러 다양한 분야에서 (이번엔 Lock)에서도 이용 될 수 있음을 보임 # Lock의 구현이 Application need마다 달라지는 경우가 많은...
  • 06:552023년 2월 3일 (금) 06:55 차이 역사 +50 새글 MVCCMultiversion concurrency control 문서로 넘겨주기 최신 태그: 새 넘겨주기
  • 06:552023년 2월 3일 (금) 06:55 차이 역사 +52 새글 ASLRAddress space layout randomization 문서로 넘겨주기 최신 태그: 새 넘겨주기
  • 06:542023년 2월 3일 (금) 06:54 차이 역사 +1,310 새글 Address space layout randomization새 문서: 분류: 운영체제 보안 == 개요 == ASLR은 컴퓨터 보안기술로서, 메모리의 주소값을 Attacker가 알 수 없도록 하여서, 특정 주소로 JMP할떄 Attacker에게 힌트를 주지 않는 기술이다. ASLR은 커널이나 Application의 스택, , 라이브러리와 같은 영역들의 주소값을 랜덤하게 제시 함으로써, Attacker가 쉽게 메모리의 취약점을 이용할 수 없도록 만든다. == 장점 == ASLR은...
  • 06:542023년 2월 3일 (금) 06:54 차이 역사 +1,729 새글 Multiversion concurrency control새 문서: 분류: 동시성 프로그래밍 == 개요 == 다중 버전 동시성 제어(multiversion concurrency control, MCC, MVCC), 다중 버전 병행 수행 제어는 데이터베이스 관리 시스템이 일반적으로 사용하는 동시성 제어 방식으로, 데이터베이스로의 동시 접근을 제공하고 프로그래밍 언어에서 트랜잭셔널 메모리를 구현한다. 동시성 제어 없이 누군가가 데이터베이스를 읽는 동시에 다른 누군... 최신
  • 06:532023년 2월 3일 (금) 06:53 차이 역사 +2,666 새글 Extensibility, safety and performance in the SPIN operating system새 문서: 분류: 시스템 논문 :B. N. Bershad et al., “Extensibility, safety and performance in the SPIN operating system,” Proceedings of the 15th ACM Symposium on Operating Systems Principles, SOSP 1995, pp. 267–284, 1995, doi: 10.1145/224056.224077. == 개요 == == Problems and importance == 기존 시스템에서 운영체제의 구현과 어플리케이션이 요구하는 것은 다를 수 있다. 예를 들어서 데이터 베이스 시스템은 스스로의 파일... 최신
  • 06:532023년 2월 3일 (금) 06:53 차이 역사 +1,050 Isolation편집 요약 없음
  • 06:502023년 2월 3일 (금) 06:50 차이 역사 +628 새글 Isolation새 문서: 분류: 운영체제 == 개요 == Isolation이란 여러개의 User space Applicatio이 동작하는 과정에서, 서로의 리소스에 대한 접근을 제한하는 것을 말한다. == Isolation? == 일반적으로 Isolation을 이해하기 쉽다. Isolation은 메모리스토리지처럼 컴퓨터의 물리적인 디바이스에 대한 접근을 제한하고 서로에 대한 Access를 IPC와 같은 방식을 통해서 분리시켜서 OS의 중요 역...
  • 06:492023년 2월 3일 (금) 06:49 차이 역사 +6,913 새글 Coordinated and efficient huge page management with ingens새 문서: 분류: 시스템 논문 Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2016 == 개요 == Linux의 Greedy한 Huge page allocation은 많은 문제가 있다. Ingens는 이러한 문제를 다양한 접근법을 통해서 해결하여 Huge page를 사용할때 제약사항이 없도록 하였다. == Problems and Importance == Ram크기가 커지고 TLB Miss가 Critical한 Performance degradation을 가져오며, Kernel page a... 최신
  • 06:492023년 2월 3일 (금) 06:49 차이 역사 +5,482 새글 Operating System Support for Safe and Efficient Auxiliary Execution새 문서: 분류: 시스템 논문 OSDI 2022 == 개요 == Lightwegith한 커널내 Fork를 만들어서, Auxiliary Task라 불리우는 Process의 sub group을 안전하게 Isolate된 환경에서 돌릴 수 있도록 하였다. == Problems == Application의 task중에서 optimize, examine, debug 그리고 control목적으로 사용되는 task들이 있는데, 그것들을 Auxiliary Task라고 부른다. 만약 Auxiliary Task가 Main process의 자원에 제약없이 접근 가능...
  • 06:482023년 2월 3일 (금) 06:48 차이 역사 +1,981 새글 Latency 101새 문서: 분류: 시스템 벤치마크 == Stroage Latency Comparison == <syntaxhighlight lang="c" line> L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock/unlock 25 ns getpid 50 ns Main memory reference 100 ns 20x L2...
(최신 | 오래됨) ( | ) (20 | 50 | 100 | 250 | 500) 보기