- 참치군
- ?
- stalk.io
- :: 2013년, 스리는 여섯살
- 웹 강좌
- 점프 투 파이썬
- 요니나의 대학생 재테크
- This is CS50
- 애자일 이야기
- isao의 IT,게임번역소
- 소프트웨어 이야기
- Color Scripter
- 어디를 가든지 마음을 다해 가라
- VisuAlgo
- 서울대 평생교육원
- 몽환
- RegExr: Learn, Build, & Test R…
- Hello, Stranger :D
- I Like Exploit
- Z3alous Security Story
- Project Euler
- Blog
- pieces of code
- window 쪼물딱 거리기
- IT - Informatics Alphabet
- rop
- 국제 정보교육센터 I2sec 대구 1기
- This is the moment. :)
- blackmoon
- z3alous는 세상에 소리 z3alous~
- Acord
- FORENSIC-PROOF
- 어셈블리
- Outsider's Dev Story
- Open Tutorials
- 코드라이언
- 컴퓨터 그래픽스와 3D 프린팅
- HACKABILITY
- Lee, Jae-Hong
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 피보나치
- BOF
- 소켓
- C언어
- 발표
- 디버깅
- Debug
- 추상데이터타입
- 레지스터
- 동대구
- 버퍼오버플로우
- Calling Convention
- 파이썬
- 공간복잡도
- 오지총
- Wireshark
- 알고리즘
- 펌
- Visual Studio
- 염색
- 시간복잡도
- 호출규약
- Hello World
- 베이스
- 컴파일러
- 탈색
- Packet
- ubuntu
- 창의공학설계
- 블루블랙
- Today
- Total
목록프로그래밍/Linux (6)
c0smicb0y
환경: ubuntu 14.04 리눅스에서는 프로젝트의 소스코드들을 받아서 make를 통해 컴파일하여 사용할 때가 많다. 구조가 궁금하면 소스를 다 들여다 볼 수 있지만, 거대한 소스 집합들을 일일이 다 분석하기는 어렵다. 특히, 문서화가 잘 되어있지 않다면 한숨밖에 나오지 않는다. 이럴 때 분석을 수월하게 해주는 도구가 여러가지 있다. ctags, cscope 등등 그 중 프로젝트의 문서를 찾다보면 자주 나오는 doxygen을 사용하는 방법을 설명하고자한다. 먼저 설치할 패키지는 세가지이다. 그냥 doxygengui환경에서 작업이 가능한 doxygen-gui다이어그램을 그려주는 graphviz sudo apt-get install을 통해 모두 설치해주자. 1sudo apt-get install doxyg..
환경: Ubuntu 15.10 64bit 리눅스에서 효율적으로 개발할 수 있는 IDE인 Qt를 깔아보자 http://download.qt.io/official_releases/qt/ 에서 버전을 확인할 수 있다. 제일 최신인 5.5를 깔아보자 자신에게 맞는 버전을 선택하자 wget으로 받아주자 1wget http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x64-5.5.1.runcs 잘 다운로드 되고 있다. 다운로드가 다 되었다. 해당파일에 실행권한을 주자. 그리고 실행! 다음과 같은 창이 뜰 것이다. 다음다음을 눌러서 넘어가자.계정이 있다면 적어주거나 가입하고 싶으면 가입하자. 필자는 스킵하였다. 설치가 끝이났다! 우분투 검..
GDB에서 tui 옵션을 사용하면 좀 더 편리하게 디버깅을 할 수 있다! 다음과 같은 소스가 있다. gdb로 tui 옵션을 주고 열어보자. 다음과 같이 열릴 것이다. main에 브레이크 포인트를 걸어보자. 저렇게 브레이크 포인트가 걸리는 것을 시각적으로 보여준다. r을 통해 프로그램을 실행시키면, 브레이크 포인트에 걸리면서 현재 무슨 명령어를 수행하고 있는지 보여준다! n을 입력하여 한 라인씩 실행시켜보자. 현재 무슨 라인인지 보여준다. 그런데 이 옵션은 컴파일 시 -g 옵션을 통해 디버깅을 허용하는 프로그램에 대해서만 가능하다...
리눅스 커널 공개소프트웨어 개발자 센터(http://devlab.oss.kr) 운영체제커널은 운영체제의핵심으로 컴퓨터 시스템을 사용하는데 꼭 필요한 기능을 제공 프로세스 관리메모리 관리파일 시스템I/O 유닉스 V6는 공짜로 뿌림이것을 기반으로 나온 것이 리눅스 리눅스가 다른 OS보다 늦었지만 좀 더 발전한 것이 오픈소스이기 때문 유저 스페이스에서 시스템 콜을 통해 메모리를 할당하거나 IO를 컨트롤 함 http://iamroot.org리눅스 커널 스터디 http://kernelstudy.netARM, x86, 리눅스 커널 분석LLVM 컴파일러SDN/NFV http://kernel.bz커널 연구회 커널을 공부할때 가장 많이 볼 곳 > LWN.net 정기적인 소식을 볼 수 있음 커널을 공부하기 위해 필요한 도..
파일시스템은 운영체제에서 파일을 쉽게 접근할 수 있도록 저장 또는 조직하는 체제를 가리키는 말이다. 운영체제마다 다르게 설계되어 있으며, 성능 또한 다르다.리눅스는 ext4라는 파일시스템을 가장 많이 사용하고 윈도우는 NTFS, 솔라리스는 ufs라는 파일시스템을 사용하고 있다. 리눅스에서의 파일시스템을 이해하기 위해서는 i-node와 슈퍼블록에 대해 알아야한다. i-node리눅스는 파일을 생성할 때 두가지 과정을 거친다. 파일을 저장하기 위한 공간을 디스크에서 확보하고, 파일에 대한 정보를 저장하기 위해 i-node라는 구조를 만든다. 파일들은 각자의 i-node를 가지고 있으며 리눅스는 모든 i-node를 table에 저장한다. [표 1] i-node의 내용 정보 의미 파일 모드 파일과 관계된 접근과 ..
이식성(portability)에 영향을 끼치는 두가지둘 다 컴퓨터 소프트웨어의 다른 부분들 사이에서의 인터페이스를 정의한다. API(Application Programming Interface)API는 소프트웨어가 소스레벨에서 다른 소프트웨어와 communicate하는 한 부분으로서 인터페이스를 정의한다. 주로 함수로서 제공된다. ABI(Application Binary Interface)ABI는 특정 아키텍처에서 소프트웨어의 두개 이상의 부분들 사이에서의 바이너리 인터페이스를 정의한다. 어플리케이션이 자기자신과 어떻게 상호작용하는지, 어플리케이션이 커널과 어떻게 상호작용하는지, 어플리케이션이 라이브러리와 어떻게 상호작용하는지 정의한다. Calling Convention을 다룬다. 윈도 xp에서 구동되는..