커널에 do while 매크로가 있을까?

리눅스 커널을 보면 아래와 같이 do {} while 매크로가 있다. https://github.com/raspberrypi/linux/blob/f6b3ac28f0a9137d4c24c0b8832e693bbd16f5b7/include/linux/hardirq.h#L36 do ~ while로 매크로 함수를 사용하는 두가지 이유가 있다. 첫째는 {} 을 통해서 중복이름을 막는다. 매크로 함수는 말그대로 컨트롤 C+V효과를 동일한 효과가 있어 중복이름이 있을때 undefined behavior이 된다. 이를 방지 하기 위해 블록을 사용한다. 둘째 ; 을 강제화한다. 여러개의 함수를 define을 하게되면 ;을 포함해서 소개 더보기 커널에 do while 매크로가 있을까?[…]

리눅스 커널 매크로 함수 없이보기

리눅스 커널 코드를 보게되면 수많은 매크로 함수를 확인할수있는데 이는 소스코드를 보기어렵게 만들어주는 요소이다. 이를 해결하기위해 전처리한 코드를 보는 GCC옵션이 있다. –save-temps 라는 옵션이며 이 옵션을 설정하기 위해서는 리눅스 커널의 코드의 ~/위치에 MakeFile안에 다음과 같이 소스코드를 추가한다.

[리눅스커널] 커널의 특정 함수 어셈 확인하기

리눅스 커널을 컴파일하게되면 System.map이라는 폴더가 나옵니다. 위 파일을 리눅스 커널에 들어 있는 심벌에 대한 정보를 담고있습니다. 한 예로 sys_sigreturn_wrapper라는 함수의 코드를 확인해볼려고합니다. sys_sigreturn_wrapper의 범위는 0x80101834~0x80101840까지입니다. 그러면 다음과 같은 커맨드를 입력해줍니다.

쿠버네티스 싱글 노드 설치

쿠버네티스 마스터 만들기 1.패키지 업데이트 2. 도커 설치 및 활성화 도커가 설치 되어있다면 이 과정 생략가능 3. Kubeadm 설치 3. 스압공간 제거 쿠버네티스는 스압공간을 사용하지못하도록 막아두어 이를 제거해줘야한다. 위 사진처럼 SWAP앞에 #을 적어 재부팅뒤에두 스압공간이 발생안하게 제거할수 있다. 4.Master 초기화 서브넷을 네트워크를 10.96.0.0/12 초기화 클러스터 서브넷을 10.244.0.0/16 초기화 위 커맨트 출력시 아래와 같은 화면이 출력된다. 위는 소개 더보기 쿠버네티스 싱글 노드 설치[…]

WINAPI INSTANCE란 도대체 무엇일까?

최근에 디버깅 관련해서 보고있습니다. 책중에서 winapi중에 INSTANCE이 값이 도대체 무엇인가 라는 답 하나를 찾았습니다. 결론부터 말하면 PE구조의 imagesBase + entry Point 값입니다 샘플코드는 VS에서 기본적으로 제공하는 Windows Project 코드입니다. 테스트 하기위해 아래에 randomized base address을 해제하겠습니다. 이 기능은 WIndows에서 Images Base 주소를 랜덤으로 해주는 기능입니다. 이 기능을 해제한후에 디버깅을 한뒤에 wWinMain의 인스턴스를 봐주시기 바랍니다. 해당 소개 더보기 WINAPI INSTANCE란 도대체 무엇일까?[…]

RSA 암호화 구현

필자는 수학을 못하기때문에 왜 이게 이렇게 되는지 아직두 잘 모르겠다. 그래서 이글은 stap by step으로 구현에 대해 이야기를 할것이다. RSA는 아래의 flow을 따라간다. 두개의 소수를 찾는다. 공개키를 만든다. 공개키 기반으로 개인키를 만든다. 데이터를 암호화 복호화을 해본다. 1. 두개의 소수를 찾는다. 공개키를 만들기위해서는 총 두가지의 다른 소수가 필요하다. 필자는 이키를 p와 q라고 부를거고 p를 11로 q를 소개 더보기 RSA 암호화 구현[…]

오일러의 각에서 짐벌락

오일러의 각은 X,Y,Z 축을 따로따로 곱하게되어 축자체가 사라지는 현상이 발생한다. x -> y -> z순으로 계산할때 x축 회전시 y축 z축 동시에 회전하게되고 y축 회전시 z축도 같이 회전하게 된다. 이러한 문제때문에 x축과 z축이 겹쳐지는 발생한다. 이를 회피하는 방법으로는 회전을 한번에 계산하는 쿼터니언을 사용하면 된다. 아래를 영상을 참조하면 좀더 이해할수 있다.

네트워크 CAP 이론

CAP 이론이란 일관성(Consistency): 모든 노드가 같은 순간에 같은 데이터를 볼 수 있다. 가용성(Availability): 모든 요청이 성공 또는 실패 결과를 반환할 수 있다. 분할내성(Partition tolerance): 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있다. 이 3가지의 만족하는 분산시스템은 없다는 이야기이고 다른말로 하면 한가지를 포기해야한다는 이야기이다. 대표적으로 AP는 Aws dynamonDB의 큰예이고 AP인경우는 AWS SQS서비스라고 보면된다.

데이터 집합일때 빠르게 조회하기

<i,j>와 <j,i> 같을시 이 문제를 순열문제로 볼수있겠지만 한번더 생각하면 그래프문제로 풀수도 있다. 예로 동일한 원이 3개가 있는데 이를 각가 충돌처리한다고 생각해보자. 출돌체크하기위해서는 한 객체와 따른 객체를 비교를해야하는데 가지고 있는 모든 원에 대해 충돌체크하면 아래와 같은 코드가 발생한다. 하지만 이걸 배열 그래프로 표현하게 되면 아래와 같은 식이 나오게 된다. 위 그림을 보면 알겠지만 대각선을 기준으로 대칭이기 소개 더보기 <i,j> 데이터 집합일때 빠르게 조회하기[…]