일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- USENIX
- kernel
- overflow
- core dumped
- framework
- deep learning
- storage system
- performance
- linux
- 포트 번호 변경
- 키워드
- Git
- 커널 프로그래밍
- 시스템 프로그래밍
- Intel
- memory
- hardware
- Samsung
- FTL
- rocksdb
- software
- Operating System
- github
- ssd
- Cache
- Machine Learning
- 시스템 소프트웨어
- Flash Memory
- Today
- Total
목록linux (13)
Happy to visit my research note ^^
default port 번호인 22번은 보안상의 위험이 크다. 이런 시도는 ssh 접속시 또는 별도의 로그를 통해 확인할 수 있고 서버를 운영한다면 가급적 해당 포트는 변경해서 사용하는 것이 권장된다. 포트 번호를 변경하기 위해선 아래의 순서로 진행한다. 1. SSH port 확인 아래의 명령어로 server의 ssh 포트를 확인한다. netstat -nlp | grep sshd 2. SSH 설정 변경 아래의 file의 내용을 수정해서 원하는 포트 번호로 변경한다. vi /etc/ssh/sshd_config #Port 22 Port 20022# 예시 3. SSH service 재시작 # Ubuntu /etc/init.d/ssh restart 4. 변경된 SSH 포트 확인 서비스 재시작 후 SSH 포트가 ..

Linux CentOS, Ubuntu 등 OS를 사용하면서 알아야할 directory의 구조에 대해 알아보자. Linux는 Tree 구조로 되어있고 명령어의 성격과 내용 및 사용 권한 등에 따라 directory로 구분되어 있다. / (root) : - 최상위(root) directory - directory들의 절대 경로를 표기할 때 해당 directory부터 시작한다. /bin (binary) : - binary file(executable file) - 기본적인 명령어 저장 (linux operation중에 mv, cp, rm 같은 명령어) /boot (boot) : - linux의 boot loader가 있는 directory ( Linux 나 OS가 컴퓨터에 부팅될 때 가장 먼저 실행되는 sof..
MCU programming에서는 register를 제어하기 위해서 같은 주소에 값을 여러번 쓰는 경우가 많고, 이 경우 code 앞을 보면 volatile keyword가 붙어있는 것을 확인할 수 있다. 변수를 선언할 때 volatile이 붙으면 compiler는 해당 변수를 최적화에서 제외하여 항상 memory에 접근하도록 한다. 즉, volatile 변수를 참조할 경우 register에 load된 값을 사용하지 않고 매번 memory를 참조한다. # Syntax volatile [type] [variable_name]; *(unsigned int *)0x8C0F = 0x8001; *(unsigned int *)0x8C0F = 0x8002; *(unsigned int *)0x8C0F = 0x8003;..
linux상에서 kernel programming을 하던 중 core dumped error가 발생하여 이번 게시물을 작성하게 되었다. Segmentation Fault 먼저, segmentation fault는 program이 memory에 접근할 때 잘못된 영역에 접근하려고 할 때 발생한다. 예로는 : Pointer Issue : 잘못된 pointer를 사용해서 읽거나 쓸 때 발생한다. 예를 들어, NULL pointer를 참조하거나 이미 해제된 memory에 접근하는 경우가 있다. Array Issue : 배열의 범위를 벗어난 index로 접근하거나, 배열을 선언하지 않은 pointer로 접근할 때 발생한다. Stack Overflow : 함수 호출 시 stack frame이 너무 많이 쌓이면 st..
Xiaolu Li† , Keyun Cheng‡ , Kaicheng Tang‡ , Patrick P. C. Lee‡ , Yuchong Hu† , Dan Feng† , Jie Li∗ , and Ting-Yi Wu∗ †Huazhong University of Science and Technology ‡The Chinese University of Hong Kong ∗Huawei Technologies Co., Ltd., Hong Kong February 21–23, 2023 • Santa Clara, CA, USA USENIX Association 21st USENIX Conference on File and Storage Technologies Abstract Minimum-storage regenerati..
Saurabh Kadekodi∗ , Shashwat Silas∗ , David Clausen, Arif Merchant Google February 21–23, 2023 • Santa Clara, CA, USA USENIX Association 21st USENIX Conference on File and Storage Technologies Abstract Large-scale storage clusters의 대부분 data는 # erasure coding이 사용된다. # Exascale에서는 # low storage overhead, efficient reconstruction, and easy deployment를 위해 erasure code를 최적화하는 것이 중요하다. (+참고 1) Locally..

1. Definition Cache Block The basic unit for cache storage. May contain multiple bytes/words of data. Cache Line Same as cache block. Note that this is not the same thing as a "row" of cache Cache Set A "row" in the cache. The number of blocks per set is determined by the layout of the cache (e.g., direct mapped, set-associative, or fully associative) Tag A unique identifier for a group of data...
C lang으로 이루어진 프로그램을 컴파일할 때 " core dumped "는 일반적으로 컴파일된 프로그램이 실행 중에 예기치 않은 동작이 발생하여 프로그램이 비정상적으로 종료되는 것을 의미한다. 대표적인 경우들이 있는 데 예를 들면, 1. memory overflow / unterflow : 배열의 크기를 초과하거나, 0으로 나누는 등의 잘못된 메모리 접근으로 인해 발생할 수 있다. 2. 포인터 문제 : NULL 포인터를 역참조하거나, 할당되지 않은 메모리에 접근하는 등의 포인터 문제로 인해 발생할 수 있다. 3. 무한 루프 : 조건문의 조건이 항상 참이거나 거짓일 경우, 무한 루프에 빠져서 core dumped가 발생할 수 있다. 4. 라이브러리 문제 : 호출한 라이브러리가 제대로 작동하지 않는 경우..