일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #Best of the Best #OS #MINT64 #Sqix
- libtins
- #IntelManual
- vi
- 오버워치
- C++11
- Network
- KASAN
- 인터럽트
- 오버워치 세이버메트릭스
- >
- BEST of the BEST
- #Qt Creator
- libpcap
- vi 외부 명령어
- Find
- FTZ 레벨2
- #
- Overwatch League SaberMetrics
- Sqix
- ftz
- linux
- vim
- #IntelManual #segment Descriptor #세그먼트 디스크립터 #MINT64 #Sqix
- #MINT64 #Sqix
- command
- Today
- Total
목록분류 전체보기 (76)
Sqix
conda forge에서는 적용이 불가능하고, python virtualenv를 사용해서 진행해야 함. virtualenv PATH/TO/ENV virtualenv venv source venv/bin/activate 이후 konlpy 설치 python3 -m pip install konlpy konlpy 공식 가이드에 있는 mecab 설치 방법이 계속 에러가 발생해서 다른 방법을 찾던 도중 다음을 발견 1. mecab-ko 설치 cd /tmp wget https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz tar xzvf mecab-0.996-ko-0.9.2.tar.gz cd mecab-0.996-ko-0.9.2 ./co..
스크림에서 나온 txt를 인코딩 처리 및 데이터 정리를 해서 DB에 넣기 위한 작업을 해야 한다. 정규화를 풀로 하지 않았고(성능관계로) 비정규화상태로 stat이랑 상태정보만 구분해서 DB에 넣기위해 간단하게 설계했다. 장고는 MVC 패턴에서 조금 변형된 MTV 패턴을 쓴다고 한다. Model - View - Control이던 MVC 패턴이 Model - Template - View가 된 것인데 사실 View == Template / Control == View가 된 부분이라 큰 틀에서는 차이가 크게 없는 것 같다. 기존 MVC에서 Model이 데이터, View가 말 그대로 보여지는 부분, Control이 로직과 그것에 대한 흐름제어였다면 MTV는 모델은 같고 Template가 View의 역할(대충 프론..
이번에 사이드 프로젝트를 진행하게 되면서 간단하게 장고 + mysql로 백엔드를 개발하게 되었다. 이번생에 장고는 처음이라 그냥 간단하게 끄적대면서 해보려고 한다. 일단 백엔드 연습용 DB를 먼저 팠다. create database backend_practice character set utf8mb4 collate utf8mb4_general_ci; -> backend_practice DB를 만드는데 모든 문자열 지원되도록 만들기 이후 장고 프로젝트를 practice 라는 이름으로 하나 만들고 blog 앱을 하나 만들었다. django-admin startproject practice django-admin startapp practiceweb 추후 아마 앱으로 배포하게 된다면 pythonanywere에..
INODE 파일 시스템 리눅스의 inode 파일 시스템은 다음과 같은 구조를 가진다 수퍼 블록 : 파일 시스템의 정보와 파티션의 정보를 가지고 있다 INODE 블록 : 파일의 상세 정보 데이터 블록 : 실제 데이터가 저장된 블록 파일은 inode 고유값과 자료구조에 의해 주요한 정보가 관리된다. 각 파일은 파일명:inode 형태로 inode 번호와 매칭된다. 파일시스템에서는 이 inode를 기반으로 파일에 액세스하고, inode를 기반으로 메타 데이터를 저장한다. inode 기반 메타데이터는 위 그림과 같이 권한, 소유자, 크기, 생성 시간 등을 가지고 있다. 여기서 Direct Block는 각각의 4kb 데이터 블록을 가리키고, single / double / triple indirect는 각각 4kb..
리눅스를 기준으로 보면 프로세스 하나당 메모리는 4GB를 사용한다. 반면 우리 메모리는 16GB? 32GB? 이정도에 불과하다. 현재 우리가 통상 사용하는 컴퓨터는 폰 노이만 구조이므로 프로세스는 메모리를 할당받아 그 위에서 동작해야 하지만, 모든 프로세스를 전부 실제 메모리에 올리려면 비용이 너무 많이 소요된다. 그래서 우리는 가상 메모리를 사용한다. 가상 메모리 실제 메모리보다 많은 양의 메모리를 사용하는 것 처럼 보이는 기술. 실제로 순간 우리가 사용하는 메모리의 크기는 작다는 점에 착안하여 고안된 기술로, 프로세스 간 공간이 분리되어 특정 프로세스의 이슈가 발생하더라도 시스템 전체에 영향을 주지는 않는다. Concept 프로세스는 가상 주소를 사용하며 실제 해당 주소에서 데이터를 읽고 쓸 때만 물..
쓰레드(Thread) 프로세스는 실행 중인 프로그램으로, 운영체제로부터 자원을 할당받는 작업의 단위로서 디스크로부터 메모리에 올라가 CPU 자원을 할당받는 것을 말한다. 쓰레드는 프로세스의 실행 단위로, 하나의 프로세스 내에서 여러 개의 실행 흐름을 가진 쓰레드가 존재하며 프로세스의 자원이나 데이터(주소 공간)를 공유받는다. 각각의 쓰레드는 독립된 작업 수행을 위해 스택을 별도로 가지고 있는데, 이는 각각의 쓰레드가 독립적인 작업 수행을 하기 위해 독립적인 함수 호출이 필요하고, 이를 위해서는 독립적으로 사용할 수 있는 스택이 필요하기 때문이다. 또한 쓰레드는 마찬가지로 프로그램 카운터 레지스터를 독립적으로 가지고 있는데, 스케줄러에 의해서 CPU 할당을 받고 이후 특정 조건에 의해 선점당하게 되면 추후..
Inter-Process Communication 프로세스간의 접근권한이 낮은 경우, 예를 들어 A 프로세스에서 B 프로세스의 데이터 / 코드를 바꿀 수 있다면 이는 보안 상 매우 위험하므로, 이러한 커뮤니케이션 방식은 제공되지 않는다. 다만, 프로세스 간 커뮤니케이션이 필요한 경우 제공되는 기법이 IPC이다. 프로세스 간 통신은 성능을 높이기 위해 동시에 여러 프로세스를 만들어 실행하는 경우 프로세스 상태 확인, 결과를 통해 만들어진 데이터 송수신을 위해 필요할 수 있다. 동시 작업을 위해 하나의 프로세스를 여러 개의 프로세스로 쪼개서 사용하는 fork의 경우 sys_fork()를 통해 프로세스 자신을 복사하여 자식 프로세스 생성 동시 작업을 위해 여러 프로세스를 fork하여 동시 수행 과 같은 병렬 ..
프로세스 프로세스 구조 정적 공간 (READ ONLY) CODE : 컴파일된 코드가 저장되어 있는 공간 DATA : 초기화 된 global / static 변수 등이 저장되는 공간 BSS : 초기화 되지 않은 global / static 변수 등이 저장되는 공간 동적 공간 STACK : 함수 내에서 사용되는 지역변수, 파라미터, RET 주소 등이 저장되는 공간 HEAP : 동적 메모리 할당 함수들에 의해 할당 / 반환되는 공간 스택의 동작 예시 - 스택 프레임 int main() { puts("I will malloc() and strcpy the flag there. take it."); buffer = (char *)malloc(100); str = "UPX...? sounds like a deliv..
참고 : https://www.kernel.org/doc/html/latest/dev-tools/kasan.html Kernal Address SANitizer의 약자로 동적 메모리 관련 버그(oob, uaf)를 찾기 위한 도구입니다. 총 3가지 모드가 있으며 다음과 같습니다. - Generic KASAN - Software Tag-Based KASAN - Hardware Tag-Based KASAN Generic KASAN Software KASAN 모드는 Shadow Memory를 사용해서 각 메모리 바이트가 접근하기에 안전한지를 기록하고, 컴파일 시간 계측기를 사용해서 메모리에 접근하기 이전에 Shadow Memory를 검사합니다. Generic Kasan은 커널의 메모리 중 1/8을 Shadow ..
인터럽트 인터럽트란? 소프트웨어나 하드웨어로 인해 발생하는, CPU의 처리가 필요한 이벤트를 CPU에 알려서 처리하도록 하는 기술 일종의 이벤트로, 발생하는 이벤트에 맞게 운영체제에서 처리 인터럽트를 실행하기 위한 opcode는 int 인터럽트는 컴퓨터 부팅 시 미리 정의되어 이벤트와 실행코드 주소가 IDT에 기록되어 있음. 인터럽트는 CPU에 직접 전달되지 않는다. PIC(Programmable Interrupt Controller)에 의해서 인터럽트 요청을 순차적으로 처리 최근에는 Advanced PIC를 활용하여 Local / I/O APIC로 나누어 활용 Local APIC : Timer, 열 센서, 기기 직접 연결 I/O 장치에서 발생된 Interrupt 핸들링 I/O APIC : CPU 코어들..