#1 [교육 1일차] 전부터 한번은 듣고 싶었던 splunk 강의, (미리 밝히지만, 엄청난 기술에 대한 기대감 때문이 아닌.. 단지 호기심 때문에.. ^^; ) 근래에 mos쪽 splunk 직원분께서 회사에 방문해서 세미나를 갖은 적이 있었습니다. 일종의 협력 관계를 맺기 위한(?)...세미나였을려나.. (사실 아직 까지는 회사에서 splunk를 위한 라이센스를 구입할 의사는 전혀 없어 보입니다. -물론 개인적인 생각) 대용량으로 쏟아지는 로그 데이터 처리를 위한 기술로 알려진 splunk, 모든 로우 데이터(meta Data)에서 정확하게 필요한 정보를 뽑아내서 출력하는데 출력 또한 사용자 편의에 맞게 다양한 그래프와 차트 지원. (로우 데이터 포함) 그렇지만 이런 기술이 궁금해서 강의에 참여한것은 ..
기본 문법 익히기 !! 바로가기
make : 바로가기 ld : 바로가기
피할수 없는 if 문의 분기라면, 하지만 그 결과가 항상(거의) 참 혹은 거짓이라면..? 이때 사용할 수 있는게 likely, unlikely 명령어 입니다. 아래와 같이 내부적으로 gcc의 builtin 함수로 define되어 있습니다. #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) 사용 예를 보면, void* p = malloc(128); if (p==NULL) here(); 보통 위와 같은 코딩을 하지만, 사실 p가 NULL인 경우는 극히 드문데요, 이러한 경우 cpu에게 p가 대부분 false일 것이라고 알려주는 unlikely로 대체할 수 있는데 아래와 같습니다. void* p ..
보통 리눅스에서 "현재 free가 몇이야?" 라는 질문에서 free는, 실제 사용 가능한 메모리의 의미를 내포합니다. 하지만, 위와 같이 free command로 확인하는 free 필드는 buffers와 cached를 사용중(used)인 메모리로 간주하고 계산됩니다. (즉 used에 buffers와 cached가 포함되어 있고 free 필드에는 buffers와 cached가 포함되지 않았다는 의미) 커널 내부적으로 buffers나 cached는 메모리가 부족한 경우 언제든지 free되어 가용 될 수 있지만, 사용자 관점에서는 그저 어딘가(두리뭉실)에서 붙잡고 있는 메모리로 여겨지기 때문에 사용중인 영역으로 표현한것이 아닐까요? (엄밀히 말하자면 아직 storage와의 sync가 되지 않은 메모리라고..)..
아직 gdb가 강력한 디버깅 툴이라는 생각은 들지 않습니다 (딱히 사용할 일이 없다, 사실 제품에 gdb를 탑재 시키지 않기 때문에) 그렇지만 종종 유용하다거나, 기억하고 싶은 명령어를 나열하도록 합니다. 1) list 명령어 : 변수나 함수 근처 +-5 line씩 총 10 line 출력 (엔터 입력 시에 그 다음 10라인을 출력) (gdb) list debug_kernel 293 294 EXPORT_SYMBOL(loops_per_jiffy); 295 296 static int __init debug_kernel(char *str) 297 { 298 if (*str) 299 return 0; 300 console_loglevel = 10; 301 return 1; 302 } (gdb) 2) print 명..
3월 말 예정으로 판교로 이전 확정 다 회사가 이득이 되니까 이전하겠지만.. 2012년 02월 13일 부터는 역곡에서 출.퇴근을 해야 하는데, 회사가 이전을 하면... 아.. 출퇴근 거리가 갑갑하네.. 환승 2~3번에 지하철 시간은 약 70분 회사에서 신도림에 통근 버스를 배치한다고 하는데, 얼마나 가려나.. 또 6개월~ 1년 즈음 시행하다가 없어지는건 아닌지.. 기왕 이전하는거 직원 복지나 좀 많이 좋아졌으면 좋겠네.. (그렇다고 지금이 나쁘다는건 아니지만) 부지런히 돈 벌어서 집을 판교로 입성 하든, 교통편이 조금 좋은 곳으로 이사해야지 :D (열심히) 살고자 하는 마음이 불쑥불쑥 !! 어쨌든 나 이 회사(제품)의 끝을 보고 싶거든요 ^-^ 제품의 구석까지 빠삭하게 알고 싶은, 그런 욕심..
대학교 그 작은 동아리에서도 그러더니, 이 작은 회사에도 있다. 조금 과장해서 서로를 헐뜯고, (엄밀히 말하면 서로인지, 일방적인지..) 자기 편을 조금이라도 더 만들려 하고, (이 또한 엄밀히 말하면 서로인지, 일방적인지..) 요즘은 이 모든게 참 보기 싫다.. 난 야당도, 여당도 아닌.. 그냥 직원이고 싶을 뿐이고.. 그나저나 요즘 신입은 달라도 뭔가 다르다, 아무리 경력직이라고는 하지만.. 입사 초기에는 최소한의 예의(?) 혹은 개념(?)이 있어야 하지 싶은데 말이다. 뭐 이를테면......... 쩝, 아니다 됐다. 이런 사람 있는가 하면 저런 사람 있는 법이니까. 그냥 즐거운 밤 보내야지..
kernel thread는 프로세스로서 프로세스와 마찬가지로 프로세스 ID(pid)가 할당되며 자신만의 실행 컨텍스트를 가집니다. thread의 특징은 오직 커널 공간에서만 존재(커널 코드를 자유롭게 부를 수 있다는 장점을 의미)하고 주소 공간을 가지지 않으며 다른 Kernel Thread에 의해서만 생성 가능하다는 점 입니다. 또한 프로세스 이므로 사용자 프로세스와 마찬가지로 시스템 콜을 부를 수가 있습니다. 즉 Kernel Thread는 커널 영역과 시스템 콜에 자유롭게 접근할 수 있는 커널 모드에서 동작하는 프로세스인 것입니다. 이러한 thread를 생성하는 루틴을 알아보도록 합니다. 우선 Kernel thread를 만들 때 이용되는 함수 원형은 아래와 같습니다. int kernel_thread (..
비트 연산 관련해서 참고하면 좋은 사이트 (여기)
평소 뛰어난 실력으로 인정 받고 있다면 자동으로 뒤따르는 것이 무한한 신뢰다. 어떠한 현상에 대해 "이것은 A 입니다." 라는 발언에 돌아오는 대답은 대상에 따라 다르다. 인정 받고 있는 사람의 발언에 대한 대답은 "아 그래? 왜 그렇게 되는거야?" (의문형) 그 반대 사람의 발언에 대한 대답은 "왜 그래? 맞아? 왜 그렇게 되는데?" (추궁형) 당연한 결과지만.. 신뢰를 얻기 위해서는 인정을 받아야 하고, 인정을 받기 위해서는 실력이 검증되어야 한다. 실력이 검증이 되었을 때 비로서 조금은 더 고급스러운, 혹은 핵심적인 코드를 수정하게 된다. 나는 얼마나 고급스러운, 핵심적인 코드에 접근해 있는지 의문이다.. 고급스럽지 않고, 핵심 코드가 아니더라도, 내가 현재 수정하거나 개발하는 부분에 대한 자부심은..
여기서 말하는 머리가 좋다는 말은 "기억력"을 표현하고 싶었다. 개발자는 연륜이 쌓일 수록 많은 버그를 경험하게 되고, 기억해야 한다. 개발된 firmware의 버전은 고객사마다 다를 수 있으므로 이미 해결된 버그에 대해서, 혹은 이미 겪은 버그를 기억해 내고 무엇 때문에, 무엇이 문제였는지를 바로 표현 할 수 있어야 한다. 요즘 내 기억력이... 점점 덜 떨어지는것 같아서... 기억력 증진에 힘을 써야겠네.. 그나저나.. 이것 저것 긴장이 풀리고 나니 쓰나미 같은 몸살이 몰려 오네.. 빨리 털어내고 다시 시작 !!!
구조체의 offset을 구할때 유용한 매크로. 일단 man page를 살펴봅시다. OFFSETOF(3) Linux Programmer’s Manual OFFSETOF(3) NAME offsetof - offset of a structure member SYNOPSIS #include size_t offsetof(type, member); DESCRIPTION The macro offsetof() returns the offset of the field member from the start of the structure type. This macro is useful because the sizes of the fields that compose a structure can vary across impl..
아... 일주일째다..iptables에서 참조하는 이녀석의 size를 결정하는 곳이 도무지 어딘지 알 수가 없다. iptables compile시에 mips 환경의 경우에 40bye가 출력되는데, 이는 분명 8bytes Align되는것이다. 절대 다른 struct를 참조해서 나오는 결과가 아니다, 그런데 왜 ? 내가 작성한 main 파일에 동일한 struct(이름만 다른)는 36bytes가 출력되는지................. (일단, 실제 ipt_get_entries가 선언되어 있는곳에 동일하게 유사 struct를 생성하면 그 struct도 동일한 size가 나온다. 그렇다는 것은 특정 .c 파일에 선언되어 있는 struct를 8bytes로 Align한다는 얘기인데....) 실제로 iptables에..
서브버전을 이용한 실용적인 버전 관리저자Mike Mason 지음출판사정보문화사 | 2006-03-20 출간카테고리컴퓨터/IT책소개오픈 소스 버전 관리 시스템인 서브버전(Subversion)의 ... 입사해서 처음 서브버전이라는 것을 다루었고, 퍽 생소하기만 했습니다. 그리고 그 기능을 알아 갈 수록 큰 프로젝트를 다룸에 있어 안전하고 확실하게 다수의 인원이 동일한 코드를 다룰수 있다는 매력에 빠졌고, 필자를 서브버전의 세계로 인도한 책입니다. 간단한 명령어들은 구글링을 통해 알아가는것이 빠르겠지만, 어느정도 명령어에 익숙해졌더라도, 좀 더 깊이 있게 알고 싶다면 권하고 싶은 책입니다. (적어도 서브버전을 생성해보고 원리를 알아야 사고도 덜 치겠지요?) 평생 svn up, svn ci, svn co, sv..
고등학교 때는 걱정 없이 철 없던 중학교 시절이 그립고, 그 시절 더 신나게 놀지 못한것이 아쉬웠다. 대학 시절에는 함께 어려운 시기를 겪고 인생의 기반을 동행한 친구들이 있던 고등학교 시절이 그립고, 내 꿈과 진로에 대해 뚜렷하게 공부하지 못했던 것이 못내 아쉬웠다. 그리고 사회에 나와서는 자유라는 이름으로 원하는 공부를 하고, 생활 하던 대학 시절이 그립다. 또한 그 자유를 더욱 만끽하지 못하고 더 많은 인생의 경험을 하지 못한 것이 아쉽다. 그리운 날은 언제나 "과거"다, 수 년 후면 지금 이 날도 그리운 날이 되겠지, 그 날의 내가 지금을 후회 하지 않도록 더 열심히 살자. 지금이 과거고, 지금이 미래다.
TCP/IP가 보이는 그림책저자ANK Co. Ltd, Ltd 지음출판사성안당 | 2007-09-10 출간카테고리컴퓨터/IT책소개TCP/IP 그림 입문서. 이 책은 네트워크와 관련된 다양한 용... 네트워크를 처음 접하면서 개념 잡기 좋은 책입니다, 책 제목 그대로 그림을 위주로 설명하고 있어서 네트워크 관련 기본 지식을 쉽게 쌓을 수 있습니다. 이를테면 이더넷 규격(규격에 따른 전송 속도나 전송 거리)이라든가, Packet Header의 구조 등 다양한 부분에 대해 가볍게 공부할 수 있습니다. 꼭 네트워크 관련 업종에 종사 하지 않더라도, PC의 보급과, 스마트해지는 세상에 발 맞추기 위해 배경지식으로도 좋을듯 싶습니다 ^^
- Total
- Today
- Yesterday