전체 글 1146

네트워크 Failure Analysis

하는 일이 이런거다 보니, 요즘 머리 속에 떠다니는 아이디어를 정리해 본다. 네트워크의 상태를 수학적으로 또는 formal하게 알아내는 방법이 무엇이 있을까? 기준은 모델링을 가져야 하고, 추론을 해야 한다. 즉 주위로 부터 수집한 정보를 바탕으로 가능한 분석의 결과를 좁혀야 한다. 또한 Sound해야 한다. (즉 false alarm을 발생시키면 안된다 - 이는 관리시스템의 불신을 일으키는 가장 큰 요소가 되고 있다) 하지만 또 다른 생각이 들기도 한다. 메카닉하게 분석을 한다는 것은 어느정도 한계를 가지지 않을까하는 의문이 생기기도 한다. 그럼 네이버의 지식검색같이 운용자의 도움을 받은 지식 디비를 바탕으로 추론을 할 수 있는 엔진을 만드는 것은 어떨까?

Passion/Network 2007.02.28

Vi 명령어

화면이동Ctrl + F ⇒ 한 화면 밑으로 이동 Ctrl + B ⇒ 한 화면 위로 이동 Ctrl + D ⇒ 반 화면 밑으로 이동 Ctrl + U ⇒ 반 화면 위로 이동 Ctrl + E ⇒ 커서는 현재위치 그대로, 화면만 한 줄씩 위로 이동 Ctrl + Y ⇒ 커서는 현재위치 그대로, 화면만 한 줄씩 아래로 이동 z ⇒ 커서의 위치와 함께 화면상의 맨위로 이동 nz ⇒ n번 라인을 화면상의 맨 위로 이동 z- ⇒ 커서의 위치와 함께 화면상의 맨아래로 이동 Ctrl + G ⇒ 현재 편집하고 있는 문서의 상태를 알수 있다 Ctrl + L ⇒ 화면 재표시 (글자가 깨졌을 경우, 윈도우의 F5와 비슷) Ctrl + R ⇒ 화면 재표시 (글자가 깨졌을 경우) 복사/붙이기y ⇒ 복사하기 yy ⇒ 한줄 전체 내용 복사..

Passion/Editor 2007.01.26

vim 7.0에서 탭윈도우 사용하기

Vim 7.0에서 나온 기능 중에 하나가 탭 윈도우이다. 탭윈도우는 기존에 screen을 통해서 여러 윈도우 사이를 변경하는 불편함을 줄여준다. 사용 방법: 1. 여러개를 한꺼번에 열때 vim -t a.txt b.txt c.txt 2. 현재 vi창에서 새 탭으로 열기 :tabnew b.txt (b.txt가 존재하면 열고, 없으면 새로 만들어서 연다) :tabf b.txt (b.txt가 존재하면 열고, 없으면 에러 발생) 3. 탭 사이 이동 :tabp (이전 탭으로 이동) :tabn (다음 탭으로 이동) :tabfirst (:tabfir 처음 탭으로 이동) :tablast (마지막 탭으로 이동) 4. 열려 있는 탭의 종류 :tabs 5. 탭의 배열 변경 (이동을 원하는 창에서) :tabm 은 원하는 위치 ..

Passion/Programming 2007.01.25

C코드 파싱한 정보 분석

우연히 C코드의 AST는 어떻게 만들어 질까에 대해서 검색을 하다가 gcc의 파싱 정보를 보여주는 옵션을 발견하였다. [CODE type=C] int main() { int a=0; a++; return 0; } [/HTML][/CODE] #gcc -fdump-translation-unit hello.c 이 옵션을 주면 hello.c.tu 라는 파일이 생성되고 파싱된 정보를 기록합니다. 하지만 아직까지 파싱된 정보를 해석하는 방법은 잘 몰라요 ㅋㅋ 이외에 cpp 클래스를 분석하는 옵션도 있다. (hello.cpp가 있다고 가정할떄) #gcc -fdump-class-hierarchy hello.cpp 이옵션을 주면 hello.cpp.class라는 파일이 생성되고 클래스 상속관계를 보여준다. 이 놈도 아직 ..

Passion/Programming 2007.01.25

동적 라이브러리 만들기

동적 라이브러리 만들기는 정적 라이브러리 만들기와 매우 유사하다. 단지 컴파일 방법이 다르고, 내부 동작 메커니즘이 다를 뿐이다. 간단하게 hello, library world를 찍는 동적 라이브러리를 생성하고, 이를 사용하는 방법에 대해서 알아보도록 하겠다. 동적 라이브러리 파일 (libhello.c) [CODE type=C] /* shared library file */ #include void hello(void) { printf("Hello, library world\n"); } [/HTML][/CODE] 컴파일 하기 (Position Independet Code) # gcc -fPIC -o libhello.o -c libhello.c 공유라이브러리로 만들기 # gcc -shared -c libh..

Passion/Programming 2007.01.17