전체 글 829

디스어셈블을 통한 함수 호출 이해

C 언어는 전통적으로 다음과 같은 방식으로 실행파일이 만들어진다. (1) 편집기를 통한 소스 작성 (2) 전처리기를 통해 소스로부터 매크로 확장 및 주석 제거 (3) 컴파일러를 통해 전처리된 코드로부터 어셈블코드 생성 (4) 어셈블러를 통해 어셈블코드로부터 목적파일 생성 (5) 링커를 통해 목적파일들 (라이브러리 포함)의 결합에 의한 실행파일 생성 이 중에서 (3) 번과정을 재미로 살펴보면서 어떤일들이 일어나는지 알아보고자 한다. 테스트한 환경은 다음과 같다. * x86 CPU * gcc 3.3.2 테스트 코드는 다음과 같다. void func1() { } void func2( int x ) { x = 0; } int func3() { return 7; } void func4() { int y; y = ..

Computer/C 2012.08.10

fastcall

호출규약으로 번역되는 calling convention이라는 주제가 있다. UNIX 쪽 C를 하는 사람들에게는 그다지 많이 다가오지 않는 주제일지 모르나, Windows 에서 프로그래밍을 하다보면, WINAPI라는 매크로를 사용할 때와 사용하지 않을 때가 있는 것을 볼 수 있는데, 저것은 실상 __stdcall 이라는 방식으로 선언하라는 것을 의미한다. 여기에는 중요한 두가지 요소가 있는데, 1. 인자 전달방식 2. 스택 청소 담당자 이다. 이런 차이에 의해 주위에서 많이 볼 수 있는 것이 다음 세가지이다. 1. cdecl 2. stdcall 3. fastcall 추가적으로 C++가 도입되면서 thiscall이라는 방식이 생겼지만, 이는 기본적으로 cdecl을 근간으로 하고 있으므로 생략하겠다. 또한 고..

Computer/C 2012.08.10

zip,unzip 컴포넌트

asp_zip_unzip.zip 백수다보니 할짓이 없어서 쓸데없는 글 하나 남깁니다. 데브피아 질문&답변 게시판 보면 가끔, 아주 가끔씩 올라오는 질문중 하나가 asp로 서버에 압축을 하거나, 압축풀기를 어떻게 하냐는겁니다. 몇년동안 개발하면서 그러한 작업은 필요한적이 없어서 별로 생각해본 기회가없었는데 오늘 문득 그런 질문글을보니 간편하게 컴퍼넌트로 만들면 어떨까 하는 생각이 들어서 대강 대강 어디서 소스구해서 테스트해보고 나름대로 이 정도면 간단한 예제용으로 괜찮다싶어서 글 올립니다. 원랜 가장 간단한 예제형식으로 압축/압축해제만 가능한 컴퍼넌트를 직접 만들어볼까했는데 내공이 존내 부족하다보니 지레겁부터먹고 그냥 코드구루에 아주 잘 만들어진 컴퍼넌트만 이용했습니다.-_- 돌아다니다보니 이것 저것 압축..

Computer/ASP 2012.08.10

asp 용 UTF8 컨버터

유니코드 chr 대신 chrW 사용 Index = 1 '?,%가 없다면 검색할 필요없음 if instr(1,pURL,"?",1) > 0 OR instr(1,pURL,"%",1) > 0 then Do While Index 0 Then URLDecode = "" Exit Function End If '** 결과를 리턴한다. URLDecode = sBuffer Exit Function End Function '**************************************************************************************** '* 형 식 : Function '* 정 의 : Public Function boolUnicode(s) '* 설 명 : s 인자로 입력받은 문자열..

Computer/ASP 2012.08.10

ajax 의 기본구조

js 소스 압축 : http://hometown.aol.de/_ht_a/memtronic/ html 도구검사 : html validator xmlhttpdebuger 설치 : 1. 파폭 플러그인 다운로드 GreaseMonkey 2. http://blog.monstuff.com/archives/images/XMLHttpRequestDebugging.v1.2.user.js * XMLHttpRequest의 동기적 이용 예제 xmlhttp.open("GET", "test.html", false); xmlhttp.send(null); //send의 위치가 비동기와 틀리다. if (xmlhttp.statusText == "OK") { //statusText: HTTP응답문자열을 반환한다. (성공일경우: OK) al..

Computer/PHP 2012.08.10

RAID

1. 리눅스에서 지원하는 소프트웨어 raid 레벨 1)raid-Linear : 간단히 여러개의 파티션을 하나로 묶는 역활 2)raid-0 : 여러개의 파티션을 하나로 묶어 스트라이핑기술을 이용하여 처리속도가 빨라진다. 디스크 오류에 대한 안전성은 없다는 단점 3)raid-1 : 미러링 기술을 이용하여 여러개의 디스크에 정확하게 복사본을 만들어 준다. 오류가 발생하면 복사해둔 이미지로 복구하게된다. 4)raid-3 : 패리티정보를 모아 별도의 디스크에 저장한다.이 패리티정보를 이용하여 오류가 발생한 디스크의 데이터를 복구한다. 안정성은 있으나 디스크성능이 감소한다. 5)raid-5 : raid -3 와 비슷하게 패리티정보를 이용하나 디스크에 저장하지는 않는다. 안전성도 제공하고 raid-3 에 비해 디스크..

Computer/LINUX 2012.08.10

MIME 규격

RFC-822 ARPA 인터넷 텍스트 메시지에 대한 표준 RFC-2045 MIME Part 1: 인터넷 메시지 본문의 형식 RFC-2046 MIME Part 2: 미디어 형식 RFC-2047 MIME Part 3: 비-ASCII 텍스트에 대한 헤더 확장 RFC-2048 MIME Part 4: 등록 프로시져 RFC-2049 MIME Part 5: 적합한 기준 및 예시 컨텐트 형식으로 본 MIME Type Type/sub-type Extension application/envoy evy application/fractals fif application/futuresplash spl application/hta hta application/internet-property-stream acx applicatio..

Computer/LINUX 2012.08.10

트래픽 제한 (mod_throttle)

mod_throttle 우아..이놈때문에 고생을 하두 많이해서..ㅠㅠ 이놈은 접속자가 많은 사이트에서는 쥐약이다. 프로세스 수가 이유없이 증가한다. 무슨 이유인지는 모른다. 여튼 접속자가 많은곳에서는 사용 금지!! 이놈은 사용량을 제한 하는 것 보다는, 어느정도 사용하는지 확인 하는 정도로 사용할 것이다. 0. 아파치의 추가 모듈들을 정리해서 올릴것이다. 이놈들은 아파치 정식 모듈이 아니니.. DSO모드로 올렸다가. 이상하면 내린다.^^; 1. 가상 호스트 별 접속량 제한 (mod_throttle) 1.3.X 에만 사용가능 (1) 개념 가상 호스트별로 접속량을 기록하여, 일정량 이상이 되면, 접속 못하게 하는 모듈인데... 정확한 개념은 모르겠당.^^; (2) 설치 - 먼저 모듈을 구한다. 어디서 ?? ..

Computer/LINUX 2012.08.10

트래픽 제한 (bandwidth)

아파치에 접속하는 사용자들의 대역폭을 제한한다. mod_throttle 와 비슷하지만, 용도가 다르다. 이놈들은 아파치 정식 모듈이 아니니.. DSO모드로 올렸다가. 이상하면 내린다.^^; 1. 개념 한 접속당 일정양(Byte/Sec)을 정해 놓고, 그 양이 넘으면 delay 시켜 일정한 트래픽을 유지한다. 2. 설치 (1) 먼저 모듈을 구한다. 어디서 ?? 개발자 사이트에서 http://www.cohprog.com/v3/bandwidth/intro-en.html wget ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c (2) 컴파일 및 설치 (apxs 를 사용하여 한방에 끝낸다.) /usr/local/apache/bin/apxs -i -a ..

Computer/LINUX 2012.08.10