Overview유저에서 프로세스 관리, device 제어 등 기능을 수행할 때, System call을 사용하여 커널로 요청을 보낸다.이때 Trap이라는 software Interrupt을 걸어 진행중인 flow를 커널 mode로 변경한다.kernel에서 작업이 끝나면 레지스터를 통해 return을 반환하고 user mode로 변경된다. Pintos를 기준으로 system call을 알아본다.User Invokeprint와 같이 stdout으로 출력 또는 stdin 입력은 standard library 내부에서 write system call wrapper로 구현되어 있다.해당 system call은 실제로 다음과 같은 어셈블리 코드로 구현된 매크로로 구현되어있다.#define syscall0(NUMBE..
e2fsck먼저 파일 시스템의 superblock과 그룹 디스크립터를 읽어 파일 시스템의 기본 정보를 파악한다.이후 아래의 단계를 따르며 디스크를 복구한다.pass 1: 모든 인덱스 노드(i-node)를 검사하여 유효성, 타입, 손상 여부를 확인pass 2: 디렉토리 구조를 검사. 여기서 디렉토리가 올바르게 연결되어 있는지, 부모 디렉토리와의 연결이 유효한지 등을 확인pass 3: 연결된 디렉토리의 연결성을 검사. 예를 들어, 디렉토리가 두 번 이상 언급되지 않았는지 확인pass 4: 모든 블록의 참조 횟수를 검사하여 블록이 올바르게 연결되어 있고 중복 참조되지 않았는지 확인pass 5: 비트맵과 실제 블록의 사용 상태를 비교 검사하여 사용되지 않는 블록이나 오류 체크sudo e2fsck /dev/sdX..
Interpreter파이썬은 Interpreter를 통해 실행된다.❯ pythonPython 3.9.13 | packaged by conda-forge | (main, May 27 2022, 17:00:33)[Clang 13.0.1 ] on darwinType "help", "copyright", "credits" or "license" for more information.>>> python을 실행하면 interactive shell이 실행되는데, 한줄 씩 코드를 입력하고 독립적으로 코드를 실행하고 결과를 출력한다.C, Java 기반의 컴파일 언어보다 유연하게 코드 작성 및 실행이 가능하지만, 성능적인 부분에서 trade off가 발생한다.왜 C, Java보다 성능이 떨어질까?Overhead 발생파이썬..
vscode 우분투 환경에서 진행하는 핀토스는 vscode에서 remote-ssh로 접속해 ide 환경에서 작업 가능하다. 여러 파일을 이동해가며 구현해야 하기에 IDE 환경에서 하는걸 추천함 추천 extension remote-ssh vscode에서 local환경 외에 ubuntu 서버에 접속해 local 환경처럼 작업할 수 있게 하는 extension C/C++ extension C언어 snippet, debug 등 다양한 기능을 하는 extension으로 깔아두면 함수 ref 이동, 문법오류 등 도움 많이 됨 다만 pintos환경에선 실행에 따라 #ifdef 와 같이 전처리 지시어등이 있는데 이를 에디터에서 적용해서 볼려면 추가적으로 properties 설정을 해주어야 한다. control + sh..
- Total
- Today
- Yesterday
- letsencrypt
- 정보보호병
- 토이프로젝트
- 시간 초과
- 분할 정복
- C
- 구름ide
- codeanywhere
- pvm
- 앱
- 뿌요뿌요
- Python
- 서버 관리
- react
- FastAPI
- 웹IDE
- 코딩
- 해커톤
- 리눅스
- Django
- 사이버정보지식방
- pintos
- 백준
- System call
- 싸지방
- 뿌요뿌요 테트리스
- ttyd
- 런타임 에러
- 프로젝트
- Web
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |