메일서버 구축기 – DNS

원래 라면 메일서버는 제3의 기업을 통해 구축하겠지만 집에 NAS을 헤놀로지로 변경한 김에 메일서버를 구축하게 되었다. 아래가 헤놀로지의 메일서버 프로그램이다. 보시다 싶이 메일서버 구축이 편하게 되어있다. 메일서버 구축후 메일서버에서 사용하는 포트포워딩을 맞게 설정을 하는 작업을 하게되었다. 하지만 서버가 구축이 되었다 한들 메일이 나에게 보낼때나 어떤 서버를 통해 가야할지 모른다. 반대와 마찬가지로 이 메일이 어디 스팸인지 확인할 소개 더보기 메일서버 구축기 – DNS[…]

리눅스 커널 인터럽트 진입시 현재상태 저장

리눅스는 인터럽트 발생시 빠르게 레지스터값을 저장한다. 저장하는 함수는 __irq_svc이다. 이 코드는 어셈은 다음과 같다. https://github.com/raspberrypi/linux/blob/abaa3760da89d6fb38e55473fffc9a31dd0b1d7a/arch/arm/kernel/entry-armv.S#L206 좀 더 자세히 알아보기위해 어셈코드를 확인해보자. 커널을 빌드할때 심볼값인 System.map을 확인하자. __irq_svc의 함수의 시작은 0xc0009940 이고 끝나는 지점은 0xc00099bc 알수 있다. 다음은 위 커맨드를 입력한 출력값이다. 다음은 stm명령어를 통해 레지스터값을 전부 스택에 저장한다. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204ik/Cihcadda.html

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

리눅스 커널을 컴파일하게되면 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 초기화 위 커맨트 출력시 아래와 같은 화면이 출력된다. 위는 소개 더보기 쿠버네티스 싱글 노드 설치[…]

DynamoDB 후기

DynamoDB을 사용하여 간단한 TODO를 만들면서 느낀점을 정리한 글 입니다. 결론을 말하자면 반쪽짜리 DB이다. 하지만 어떻게 최고의 성능을 보장하는 DB라고 생각한다. 그 이유는 DB의 가장 중요한 실행계획이 없다. 보통 mongoDB,Mysql,mariadb에서는 아래와 같은 작업을 실행해 어떻게 쿼리를 실행해야 빠를지 결정을 한다. 하지만 Dynamodb는 실행계획을 전적으로 프로그래머한테 책임을 묻는다. 흔히 DB라고 하는거는 실행계획이 꼭 100% 최적화를 보장하지않는다 그래서 소개 더보기 DynamoDB 후기[…]

리얼모드의 메모리 관리방식

컴퓨터에는 운영모드에선 다양한 모드들이 존재합니다. 그중에서 리얼모드,보호모드,가상 8086모드등이 있지만 리얼모드의 메모리 관리방식에 대해서만 이야기 하겠습니다. 해당 모드의 레지스터 크기는 2바이트(2^16) 밖에 사용할수가 없습니다. 하지만 이상하게 느끼겟지만 리얼모드는 세그먼테이션은 1메가를 사용할수 있습니다. 이는 숫치상을 표기하면 2^20입니다. 그러면 리얼모드에서는 어떻게 이를 접근할수 있을까요 ? 바로 세그먼트의 도움을 빌리는거입니다. 자세하게는 세그먼트 레지스터의 값과 범용레지스터의 값을 합치는 방식입니다. 물론 소개 더보기 리얼모드의 메모리 관리방식[…]

AWS VPC 개념

이글은 저어게 이걸 물어본 친구에게 저주하기위해 적는 글입니다. 맨처음에 AWS를 하게되면 가장 중요한건 VPN가 아닐까 합니다. 그 이유는 AWS모든서비스에서 VPC를 설정해야하기 때문입니다. 그럼 VPC는 무엇인가요? 간단히 이야기하면 우리가 공유기나 라우터등 다양한 장비를 설치하는데 이를 추상한 장비라는 거입니다. 일단 VPC라는 놈을 만들어 봅시다. 저는 IPv4를 192.168.0.0/16으로 생성하였습니다. 인터넷에 다양한 예제가 많긴 하지만 RFC 1918(https://ko.wikipedia.org/wiki/%EC%82%AC%EC%84%A4%EB%A7%9D)을 따르기로 하겠습니다. 소개 더보기 AWS VPC 개념[…]

Mysql 문제되는 쿼리 찾기

이 글은 Mysql의 튜닝과는 무관한 글이고 소프트웨어적으로 느린 포인트를 알기 위해 적는 글이다. DB의 특정쿼리가 느려 소프트웨어가 느려지는 경우가 많다. 이를 slow_query라고 하며 mysql에서는 이를 찾아내주는 여러 방법이 있다. 대표적으로 slow_query_log이고 slow_query의 기준을 정해주는 long_query_time이다. long_query_time 기본값은 10초로 되어있지만 이를 2초로 해주시기 바랍니다. 그 이유는 10초가 걸리는 서비스라는 경우는 거의 없기 때문이다. 사실 1초도 길다고 소개 더보기 Mysql 문제되는 쿼리 찾기[…]

Nas에 적합한 파일 클라우드 filebrowser

Nas를 구축하다가 파일은 어떤 클라우드로 쓸까 고민을 많이 했습니다. 그 이유는 owncloud,seafile,nextcloud 등 다양한 스토리지 클라우드가 있지만 해당 제품들은 저랑 안맞는다는 느낌을 많이 받았습니다. 그 이유는 해당제품들은 말그대로 클라우드를 이며 저처럼 라이트한 유저인경우 너무 많은 기능이 들어가서 입니다. 그렇게 찾은게 caddy쪽 웹서버에 있던 filebrowser였습니다 DB는 sqllite을 사용해서 별도의 mysql을 설치안하고 사용할수 있습니다. 결과적으로 DB를 사용하므로 소개 더보기 Nas에 적합한 파일 클라우드 filebrowser[…]