일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- NAPT
- 취약점
- wrefresh
- edge trigger
- rfc5508
- ncurses
- iptables
- doupdate
- vtable
- REDIS
- epoll_wait
- BOF
- .net core 7
- LOB
- packet flow
- cbpf
- Docker
- packet filter
- C언어
- architecture
- 어셈블리어
- epoll
- Compiler
- 풀이
- ioctl
- mvwin
- .nret core 배포
- DOCKER-USER
- wnourefresh
- level trigger
- Today
- Total
Tuuna Computer Science
[ 메모리 1MB 어떻게 접근하죠?] 8086에서는 1MB까지의 메모리를 사용가능한데 메모리지정 방식은 0x0000:0000 ~ 0xFFFF:FFFF 이다. 즉, 0xFFFF:FFFF를 물리주소형식으로 변환하면 0x10FFEF다. 이는 1MB를 초과한다. 그럼 이 초과되는 것은 어디에 기록되는 걸까 이 초과되는 것은 메모리의 0x0000:0000에서 부터 다시 기록된다. 즉, 이전의 데이터가 겹쳐진다는 것이다! 그래서 펜티엄4의 어드레스 라인이 32개 있는데 그중 어드레스 라인 20번, A20번을 키보드 컨트롤러와 AND연산을 진행한다. 그래서 키보드 컨트롤러의 특정 핀을 1로 세트해야만 A20번이 1로 세트되었을 때 그 값이 1로 RAM에게 전달 될 수 있다. 이 A20와 키보드 컨트롤러를 킴으로써 1..
플레이 스토어 검색도중에 재밋는 게임을 발견했고 풀어볼려다가 파이썬이나 C로 이 게임을 풀어보려한다. 일단 게임의 전반적인 규칙은 NxN의 배열판이 있고 행과 열에 적힌 숫자는 각 행과 열에 둘 수 있는 텐트의 값이다. 그리고 나무가 존재하는데 텐트는 무조건 나무기준으로 바로 옆에 위치해야 한다. 그리고 남는 공간에는 잔디를 두어야 한다. 이 게임의 공략 소스는 나중에 짜도록하고 어떠한 식으로 만들어야 할지 글로만 끄적여 볼것이다. 나무옆에 텐트 알고리즘 나무 : 3 땅 : 0 잔디 : 1 텐트 : 2 일단 먼저 행과 열의 번호에 0이 있다면 그 자리는 잔디로 다 밀어버린다. 단 나무자리는 보호 그러면 배열판은 0과 1 그리고 3으로 이루어져 있다. 이 배열판을 복사한다. tmp배열로 나무의 위치를 잡고..
메모리의 주소를 표현하기 위해 우리는 3가지의 단어를 사용한다. 논리주소, 선형주소(가상주소), 물리주소 이들 중에서 실제로 CPU가 인식할 수 있는 주소는 "물리주소"이다. 그럼 이 3가지의 주소가 무슨 의미인지 살펴보자. 논리주소 :: 프로그래머의 관점에서 본 주소. 주로 오프셋의 의미가 강하다. 선형주소 :: 논리주소를 GDT와 LDT를 통해 나온 주소를 의미한다. 물리주소 :: 선형주소를 페이징을 통해 나온 주소를 의미한다. 자 기본적으로 (논리주소 => 선형주소 => 물리주소) 변환하게 된다. 이 어셈코드를 보자 lea esi, [msgPMode] "ESI레지스터에 msgPMode의 주소를 복사해라"는 의미를 지닌다. 그럼 ESI레지스터에는 msgPMode의 주소가 복사되는데 이 내용을 기계어의..