- 0x0000007b
- 2차세계대전
- 3.20해킹
- 4대강
- 502 error
- 53빌딩
- 7840hs
- 88체육관 수영장
- ABI
- abortive close
- abortive shutdown
- AHCI
- akmods
- ALC1220
- alma linux
- alternatives
- AM4 메인보드
- AMD
- amd 7840hs
- amd 그래픽 게임용
- amd 내장 그래픽 최적화
- anonymous file
- API
- apple.com
- APT
- apt-get
- Armagnac
- Asrock
- ASTALIFT
- audacious player
- Today / Yesterday
- /
- Total
목록시스템 프로그래밍 (5)
Linux Programmer
* TCP의 TIME_WAIT는 없애는 방법은 무엇인가? TCP 소켓 네트워크 프로그래밍을 하다 보면 TIME_WAIT 상황에 대한 고민을 하는 시점이 오게 된다. 학부 시절 네트워크 프로그래밍 수업을 듣고 실습실에서 열심히 프로그래밍 해봤다면 학부 때 맞닥뜨리게 되는 경우도 있다. 만일 학생 때 고민하지 않고 넘어갔다면 회사에서 주먹구구식으로 혼동을 일으키는 내용이기도 하다. 그래서 이에 대해 좀 정확한 정보를 전달하고자 이 글을 쓴다. 아래 글은 각종 책과 표준안의 레퍼런스와 실제 코딩으로도 검증했지만, 그래도 혹시 틀린 점이 있다면 개의치 말고 지적해주면 감사하겠다. ^^ TIME_WAIT란 무엇인가? 이 글을 쓰게 된 계기 TIME_WAIT는 당신을 해치지 않는다. 그래도 없애고 싶다면? SO_R..
리눅스 커널 2.6구조와 원리. 타카하시 히로카즈, 오다 이츠로, 야마하타 이사쿠, 이영희 역, 한동훈 감수, 한빛출판사. 리눅스 커널 2.6 구조와 원리야마하타 이사쿠(YAMAHATA ISAKU),타카하시 히로카즈(TAKAHASI HIROKAZU),오다 이츠로(ODA ITUROU)상세보기 1. 책의 저술 목표이 책은 커널 코드를 분석하는 책이 아니라 커널에 쓰인 기법이나 각종 표준들이 어떤 것들인지 러프하게 소개하는 책이다. 따라서 직접 커널을 개발하기 위한 책보다는 참고서에 가깝다고 본다. 그래서 내용면에서 코드보다 도표가 많은 편이다. 코드 구조는 최소화 하려고 했던 흔적이 보인다.즉 이 책은 나무를 보기보단 숲을 보는, 전체적인 조화를 확인하는 용도이다. 그림을 보면 알겠지만 도식을 연속으로 배치..
* TOC부모와 자식 프로세스의 관계fork와 fork-execvfork와 문제점posix_spawn의 등장2줄 결론 fork란?fork는 유닉스/리눅스 계열에서 새로운 프로세스를 만드는 표준 함수이다. 그런데 fork는 새로운 프로세스를 만들 때 기존 프로세스를 복제하는 방식을 사용한다. 이 때 원본 프로세스를 부모 프로세스(parent process)라고 부르고 새로 복제된 프로세스를 자식 프로세스(child process)라고 부른다. 1. 부모와 자식 프로세스의 관계현실 세계에서 부모와 자식은 끊을 수 없는 강한 연결점이 있지만, 유닉스 계열의 부모와 자식 프로세스는 그런 것과는 상관이 없이 이름이 지어졌다. 그냥 유전자가 복제되듯이 정적 자원 만을 복제하는 것이라고 생각하면 된다.정적 자원에는 ..
Advanced 리눅스 시스템 네트워크 프로그래밍 오탈자 정오표(최근 업데이트 목록은 맨 아래의 history를 참고해 주시기 바랍니다.) * p.126 3번째 문단 수정전 수정후 posix_madvise는 addr부터 len까지의 메모리 공간에 대해 ...생략... advise에 사용 가능한 힌트는 표 4.5에 정리해보았다. posix_madvise는 addr부터 len까지의 메모리 공간에 대해 ...생략... advise에 사용 가능한 힌트는 표 5.5에 정리해보았다. * p.156 4번째 문단 수정전 수정후 이 기능은 기존 세마포어와는 역으로 작동하여 세마포어 값이 0이면 깨어나고 양수면 잠복하게 된다. 이런 다양한 기능 덕분에 ISI 세마포어는 아직도 많이 사용되는 기능이다. 이 기능은 기존 세마..
TCP/IP 소켓 프로그래밍을 하다보면 초보자는 물론이고 중급이상의 숙련된 프로그래머도 실수하는 경우가 많다. 초급자는 경험이 없어서 실수하고, 중급자는 까먹어서 실수한다. 최근에는 미들웨어나 각종 통신 관련 라이브러리가 많아서 직접 TCP/IP 소켓 프로그래밍을 하는 경우는 줄어들고 있지만, 그렇다고 아예 없어지는 것은 아니니 주의할 점을 한 번 정도는 읽어두면 좋다. * 목차 1. TCP 소켓의 연결 종료가 감지되면 꼭 close를 해야만 한다. 2. SIGPIPE 시그널 처리 3. 재전송 1. TCP 소켓의 연결 종료가 감지되면 꼭 close를 해야만 한다. TCP 소켓은 1:1 스트림 연결이기 때문에 상대편이 소켓 연결을 종료하면 이쪽도 같이 종료해야 한다. 자동으로 닫히는 것이 아니므로 꼭 닫아..