함수 호출과 이로 인해 생기는 스택 구조에 대해 간략 적으로 설명해 보겠습니다.

정말 간략적이기 때문에 상당 부분을 생략했습니다.(리턴 주소, 함수 매개변수, 환경프레임 주소 저장 등등... 생락)

다음 게시글에서 좀더 자세한 설명을 추가 할테니 일단은 개념 정도만 설명하도록 하겠습니다.


일단 C언어스택 부터 보시겠습니다.






간단합니다. main 함수 A 함수 달랑 두개가 있습니다.

그 안에 지역변수각각 2개씩 들어 있습니다.

그럼 처음 스택 구조를 보겠습니다.



스택은 데이터가 추가 되면 위에서 아래로 추가 됩니다.

옆에 있는 주소는 그냥 임의로 추가 하였고

원래는 2(16비트), 4(32비트) 단위로 감소 해야 하지만 편의를 위하여 간략하게 만들었습니다.



그럼 여기서 C언어에서 12라인까지 실행되면 스택 구조가 어떻게 되는지 대략적으로 그려보겠습니다.







대략 위와 같은 그림이 됩니다.

12라인을 실행할때 main()의 지역 변수 2개와 A()의 지역 변수 두개가 스택에 각각 위치합니다.

프로그램 수업이나 책에 보면 지역 변수는 스택에 저장 된다고 배우시잖아요.

저 그림이 그것입니다.


옆에 보시면 main()함수 구역 스택과 A()함수 스택 구조가 나뉘어있습니다.(논리적으로)

이 나뉜 부분이 unix v6책 에서 r5레지스터 환경 프레임을 가르킨다고 했는데

저 함수 구역이 환경 프레임이라고 보시면 됩니다.


그리고 하늘색으로 표시된 화살표가 다음에 스택에 데이터를 집어 넣을 장소를 가르키며

unix v6책 에서는 r6레지스터(sp - 스택 포인터 레지스터)가

저곳을 가르키는 주소(위 그림에서 주소 96)를 가지고 있습니다.

만약 스택에 데이터가 추가 되면 r6 레지스터 값이 하나가 감소(r6 = r6 - 1) 하는것이죠


그리고 주황색 화살표를 보시면 현재 함수 시작위치를 가르키고 있는데

이것이 바로 r5레지스터(인텔계열은 ebp 레지스터)가 가지고 있는 주소 값(위 그림에서 주소98)입니다.


main함수가 실행 중이면 r5 레지스터는 주소 100을 가지고 있고

A함수가 실행중이면 r5레지스터는 98를 가지고 있습니다.


다음 게시물에서는 main 함수 라인별로 따라가며 해보도록하겠습니다.


함수 호출과 스택 구조 2

http://fehead.tistory.com/200


yaourt -S freshplayerplugin-git


freshplayerplugin-git 를 추가로 깔아 쓰면 된다.



https://github.com/i-rinat/freshplayerplugin

현재 Django LTS 버전인 1.4.x 버전 기반용 소스이다.


단 책 뒷(feed)부분은 되지 않는다.


장고를 다운로드 받을때 장고 사이트를 가서 Download --> Django 1.4.X(LTS) 를 다운로드 받아야 한다.


버전이 틀리면 제대로 되지 않을 가능성 100% 이니 꼭 버전을 맞춰주자..



System Requirements
    python 2.7.x
    django 1.4.x

HOW TO RUN
    ./manage.py runserver

DB USER INFOMATION.
    id : test
    password : 11112222






django_bookmarks_1.4.x.7z


로지텍 G100 마우스를 사서 회사에서도 쓰고 집에서도 쓰고 있다


근데 둘다 가운데 버튼이 더블 클릭되는 현상이 생기고 있다

그래서 분해를 해보기로 했다.


일단 위에서 본모습 이다.






아래는 분해를 위해 빨강 동그라미 부분을 부분적으로 뜯어 냈고 나사를 풀었다.




아래는 분해를 한 모습 윗부분에 무개를 위해 철판을 단 모습이 보인다.

빨간 동그라미 부분운 해상도 조절 버튼이다

가운데 버튼은 빨강 동그라미 바로 우측 상단에 있는 버튼이다.(동그라미를 잘못그렸네요)




아래 부분을 보면 가운데 버튼, 해상도 조절 버튼(빨간색 동그라미)과 좌우 클릭(빨간색 네모) 버튼이 다른것을 알수 있습니다.

빨간색 동그라미 부분의 버튼은 kailh회사꺼 빨간색 네모 부분은 OMRON CHINA 버튼인것을 알수 있다.




자세히 보면 중국산 OMRON 스위치인 것을 알수 있다.




몇번 손가락으로 가운데 버튼을 눌러본 결과 kailh 버튼이 내부에서 더블클릭이 되고 있다는 것을 확인했다.

젠장 마우스 버튼를 교체 해야할듯 싶다.


가격 때문에 kailh 버튼을 쓴것 같다.

정말  X 같은 스위치다..


전에 구멍을 뚫었던 ipTime N604M 공유기에 회사에 남아 있던 쿨러를 달아 줬습니다.

http://fehead.tistory.com/189


위에 뚜껑 부분에 쿨러에 맞게 커터칼로 구멍을 뚫고 

쿨러 부분과 구멍에 살짝 글루건으로 붙여서 떨어 지지 않게 했습니다.



ipTime 전원이 9V, 쿨러가 12V 용이라 그냥 달았는데 조용합니다.






사용 샷.

퇴근시에 불을 끄고 보면 화려합니다 ㅎㅎ





회사에 쓰던 iptime N604M 이 한 일, 2주일에 한번씩 이상이 생겨 분해해봤더니


환기가 전혀 안되는 것 같은 구조였다.


그래서 윗 부분을 뚫어 버렸다.




먼저 분해해서 보면 윗부분에 편의을 위해 난 구멍이 있는데 그곳에 손가락을 넣어 검은 껍데기를 위로 강하게 밀어 때어 내버리고


하얀 부분은 커터 칼로 여러번 사각으로 칼집을 내고 그 사각 안쪽에 구멍이 있는데 그곳에 롱로우즈를 넣고 비틀고

잡아 당겨서 윗부분을 사각으로 구멍을 내였다.


안쪽에 방열판이 보이는데 나중에 한참 작동중인 공유기 방열판을 손가락으로 만져 봤더니 따뜻한 것이 느껴졌다.




전혀 방열이 안된 상태라면 충분히 이상이 생길 것 같은 온도였다.






현재 잘 돌아가고 있고 나중에 심심하면 위에 쿨링 팬을 달아볼 예정이다


개조 2탄 - 쿨링팬 달기 


http://fehead.tistory.com/190



제어판 --> 관리도구 -->로컬 보안정책 --> 소프트워어 제한 정책 --> 추가규칙 -->


cp949(euckr) 로 인코딩 파일명을 utf-8 변경하기 


아래 명령으로 하위 디렉토리에 있는 모든 파일을 변경해 준다.


convmv -r -f cp949 -t utf8 --notest target_dir

 


윈도우 7를 깔면 언제나 grub나 syslinux를 쓰지 못하도록 만들어버리는데..


archlinux에서 복구 할려면 상당히 간단히 할수있다.


1. 일단 arch linux CD로 부팅한다음에


2. 리눅스 파티션을 mount 한후에


3. syslinux-install_update 명령을 아래와 같이 쳐주면 된다.



# mount /dev/sda1 /mnt

# syslinux-install_update -c /mnt -iam 



  1. Goto start > type services.msc
  2. Scroll down to find Windows Update service
  3. make sure Windows Update service is stopped, else right click and stop it
  4. Go to C:\Windows\SoftwareDistribution\ and delete all files in it
  5. Come back to services.msc and start Windows Updateservice


Windows Update 서비스를 내리고(services.msc 실행)


C:\Windows\SoftwareDistribution 에 있는 모든 파일을 삭제후


Windows Update 를 다시 올린다.



참고 URL : http://windowssecrets.com/forums/showthread.php/146996-Windows-Updates-Service-not-running

+ Recent posts