본문 바로가기

분류 전체보기

GDB 명령어 아래 사이트에서 조금 도움을 받았다.하지만, 잘못된 정보나 보충할 부분도 있어서 추가해 본다.http://hoyeden.blog.me/20206894205http://kthan.tistory.com/entry/Linux%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%B2%84%EA%B9%85%EC%9D%84-%EC%9C%84%ED%95%9C-gdb-%EC%82%AC%EC%9A%A9%EB%B2%95-%EB%B0%8F-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A4%91%EA%B8%89 사용을 하려면 먼저 대상이 되는 process 를 -g 옵션으로 컴파일 해야 한다. 대상 process 가 다수의 parameter(argument) 으로 실행된다면, 아래와 같이 --.. 더보기
gdb gui debugger 인 insight 사용하기 (Ubuntu 12.04.4) gdb 는 linux 에서 process 를 debug 하기 위한 debugger 이다.여기에 GUI 를 제공하는 것들은 DDD / insight 등이 있는데, 이중 insight 를 사용해 보았다. 마치 윈도우 개발환경을 보는것 같은 편리한 환경을 제공해 준다. 환경은 ubuntu 12.04.4 LTS 버전이다. 아래 사이트에서 insight 소스 코드를 다운로드 한다. http://sourceware.org/insight/ 여러 버전들이 있는데, 이중 마지막 버전은 ubuntu 에서 요상한 애러가 발생하고instight-6.8-1a.tar.bz2 버전을 받아야 정상 동작한다. 아래 블로그의 도움을 받아서 몇가지 패키지를 설치했다.http://minimonk.net/1639이분은 결국 실패하신것 같은데.. 더보기
tistory 에 adsense 광고 넣기 - 백업 제 홈페이지에 들어가 있는 광고 코드 입니다. 백업용 및 참고용으로 게제합니다. 굵은 글씨는 기준이 되는 코드 입니다. addthis 플로팅 소셜 공유 메뉴 LinkWithin 이미지 썸네일 링크 위젯 달기http://shuetree.tistory.com/117 나의 블로그를 네이버가 분석해준다.http://haeho.com/142 ''에 해당되는 글 건 사이드바 편집 메뉴에서 넣으면 됩니다. 왼쪽 플로팅 추천 메뉴인데... 넣으면 하단에만 나오는 오류가 나는것을 수정함.http://snowsummer.tistory.com/20 ->에러가 나서 하단에만 나오는 오류 코드 -> 수정코드... 이나 크롬에서 메뉴가 잘 안눌러지는 오류 왼쪽 플로팅 광고 구름태그 넣기http://snowsummer.tistor.. 더보기
ARM 의 TLB 운용에 대한 간단 정리 ARM 의 TLB 운용에 대해서 읽어본것들을 정리 하였습니다.내용은 arm 사이트의 있는 내용을 조악하게 번역한 수준입니다.도움이 될것 같아서 사이트에 올립니다. 각 키워드 중심으로 보시면 됩니다. set-associative regionlockdown regionMicroTLBMainTLBpage walkTLB miss 내용은 ARM coretex A9 기준입니다. TLB 에 들어있는 매칭 table 들을 TLB entry 라고 한다.ARM Main TLB 는 set-associative region 과 lockdown region 이 있다. - Invalidate TLB operations 는 set-associative region 에 이는 TLB entry 들만 무효화 한다. - .. 더보기
File System의 개요 원문 : http://cafe.naver.com/ghson/164 파일시스템을 이해하는데 기초 자료로서 너무나 설명이 잘 되어 있다.자료 보존 차원에서 옮겨 왔다. 파일시스템은 '6.device file의 개요'에서 설명한 바와 같이 섹터로 나누어진 물리적인 디스크를 운영체제가 사용하기 좋게 블럭단위로 나누어 각 블럭에 주소를 부여함으로써 운영체제가 디스크를 관리할 수 있게끔 디스크에 지도를 그리는 작업이라 할 수 있다. 1. 파일시스템의 구조 파일시스템은 루트디스크를 시작으로 디렉토리 트리나 계층구조로 이루어지며, 각 파일시스템은 물리적으로 같은 디스크에 존재할 수도 있고 다른 디스크에 따로 존재할 수 있다. 또한 각 파일시스템안에는 크게 User Data와 Meta Data로 구분되는 구조로 관리되며.. 더보기
한/영/일 언어 선택 상태를 마우스 포인트에 표시해주는 프로그램 마우스 커서에 현재 언어와 영어 소문자 / 대문자 상태를 표시해 주는 프로그램입니다. 한/영을 전환해서 사용할때마다, 현재 언어 상태를 몰라서 쓰고 지우고를 반복하였는데,이 프로그램 덕분에 매우 편하게 작업을 할 수 있게 되었습니다. 작업표시줄 창에서 설정창을 열어서 아래와 같이 설정도 가능합니다. ※ 웹상에서 히라가나, 카타카나 표시가 잘 안되는 경우 다음 명령을 실행해 주세요. 시작 → 실행 → regsvr32.exe /u %SystemRoot%\system32\msctf.dll 다운로드 -> 소리 알림을 하면 음성으로도 알려주는데,기본 소리가 별로 마음에 안들어서 조금 차분한 소리로 변경했습니다. 조금 작은 소리를 원하는 분은 아래버전으로 받으세요. 더보기
mmap 을 이용한 process memory mapping 원문 : http://naito.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4%EB%A9%94%EB%AA%A8%EB%A6%AC-%EB%A7%A4%ED%95%91memory-mapping 공부하면서 더 내용추가를 할 예정이다. 프로세스 메모리 매핑 대량의 데이터를 처리하는 하드웨어를 다루는 DD작성시 mmap은 필수적으로 구현해야.. app에서 dd로 hw를 제어할때 read,write,ioctl은 프로세스 메모리공간과 커널 메모리 공간사이의 메모리 전달과정이 수반되기 때문에 매우 비효율적이다. 고로 mmap을 이용해 직접 hw의 io주소 공간을 메모리 복사없이 직접적으로 사용할 수 있다. mmap함수는 메모리 주소를 이용해 파일에 접근하도록 하는 함수다. 그러나 디바이.. 더보기
linux 에서 page cache(페이지 캐쉬)란? disk I/O 의 효율을 위해 main memory 에 잡아놓은 cache buffer 의 명칭 아래와 같이 cache memory 의 상태를 알 수 있다. # free -m total used free shared buffers cachedMem: 6759 3121 3638 0 220 2008-/+ buffers/cache: 892 5867Swap: 4692 0 4692 원문 : http://wnstjqdl.tistory.com/46 시스템이 특별히 메모리 자원의 사용량이 없는데 캐쉬메모리가 많아 할당되어 여유메모리 할당이 적게 나올 경우 메모리를 초기화 하는 방법은 아래와 같다. To free pagecache(페이지캐쉬 초기화)echo 1 > /proc/sys/vm/drop_caches To fr.. 더보기
See the Funny Little Clown - Bobby Goldsboro 올드팝을 별로 좋아하는 편은 아닌데,미드를 보다가 우연히 라디오에 나오는 음악에 꼳혀버렸다. 독특한 매력이 있는 음색인듯. 더보기
Unforgettable - Nat King Cole & Natalie Cole 딸인 Natalie Cole 이 고인이 된 아버지 Nat King Cole의 영상과 듀엣을 하는 영상 입니다.들을수록 가슴 한편이 아려오는 영상이네요. Unforgettable 가사: Unforgettable, that's what you areUnforgettable though near or farLike a song of love that clings to meHow the thought of you does things to meNever before has someone been more 잊지 못할, 당신이 바로 그런 사람이죠.가까이 있든 멀리 있든 잊을 수 없어요.가슴에 스며드는 사랑 노래처럼당신에 대한 생각만으로 마음이 움직여요.전에 만난 그 누구보다도 훨씬 더. Unforgettable i.. 더보기
desktop search program Everything Search Engine http://www.voidtools.com/ indexing 이나 no indexing search 를 지원함 더보기
linux kernel 에서 사용 할 수 있는 file io functions 원칙적으로, linux kernel layer 에서는 file io 를 다루면 안된다. 여러 이유가 있겠지만, 일단 file descriptor list 를 각 task descriptor 에서 관리하고 있고, file을 linux kernel 단에서 접근하게 되면, 어느 process 에서 지금 kernel code 를 실행하는지 일일이 확인해야 하기 때문이다. 또한, 각 process 가 가진 access(read / write) 권한 문제도 발생하게 된다. 하지만, 이를 모두 감수하고라도, 꼭 써야만 하겠다면 다음 함수를 사용하면 된다. 여기에는 간단하게 동작하는 file operation 을 제공한다. open close size read write 더보기
[Acapella] 행복을 주는사람 - 이용민 편곡 리비아에 있는 용민이가 "행복을 주는 사람"을 아카펠라로 편곡해서 보내왔습니다. 각자 녹음을 한 후에 합친 결과물 입니다. 따로 녹음을 진행하였기에 조금 sync 가 맞지 않는 주분이 있었지만, 즐거운 작업이였습니다. 소프 - 이윤아 알도 - 이지은 테너 - 김준 바리톤 - 이용민 베이스 - 이원건 더보기
akismet key 얻기 http://akismet.com/ 서비스는 광고 댓글이나 광고성 글을 차단해 주는 무료 서비스 입니다. Tistory 에서도 제공을 해주고 있는데,가입을 하고 직접 key 를 얻어와야 합니다. 가입을 한 후 위 버튼을 누릅니다. 처음에 신용카드 등록화면이 나와서 당황했었는데요.당황하지 말고, 금액 슬라이드 바를 왼쪽으로 땡겨줍니다. 짠, 이제 이름을 입력하면 무료 키를 받을 수 있습니다. 더보기
사전 앞에 U, Prop. 나 C는 무엇일까 U는 Uncountable(셀 수없는)을 줄여서 써 놓은 것으로불가산명사를 뜻해요불가산명사는 복수형으로 쓸 수 없죠 참고로 U와 비슷한 사전용어로는C : Countable 가산명사U : Uncountable 불가산명사U,C : Uncountable, CountableC,U : Countable, Uncountabe이런 것들이 있어요 prop. : Preposition (전치사) 더보기
linux user semaphore linux 의 user area 에서 사용하는 semaphore 에 대한 글 원문 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/IPC/semaphores원문2 : http://www.hanbit.co.kr/network/view.html?bi_id=1399 목차 1 세마포어란 무엇인가1.1 세마포어의 작동원리2 System V 세마포어2.1 세마포어의 사용2.2 세마포어의 관리2.3 semget 을 이용해서 세마포어를 만들자.2.4 세마포어를 이용해서 접근제어 하기2.5 세마포어 조작2.6 예제3 POSIX 세마포어3.1 세마포어 만들기3.2 세마포어 얻기 (기다리기)3.3 세마포어 정보 가져오기3.4 세마포어 되돌려.. 더보기
anki 앙키 깜박이 단어학습장 Tip https://ankiweb.net/shared/info/2090822731 https://ankiweb.net/shared/info/173965844 https://ankiweb.net/shared/info/1867966335 카드 유형에 다음과 같이 추가 {{FrontSide}} {{Back}} 네이버 영한사전 검색 - colorful_toolbars- download_audio- handy_answer_keys_shortcuts- Image Occlusion 2- Progress_Graph- Change order of review cards in regular decks : 3731265543 : revie.. 더보기
lingoes 링고스 사전 링고스 홈페이지 http://www.lingoes.net/ C:\Users\[user]\AppData\Local\Lingoes\Translator\lingoes-us\app_data\webe\webengine.xml 에 다음을 붙여넣기 한다. voice package 파일들 http://rainingfog.tistory.com/m/post/82 에서 받아왔다. Lingos Longman - American Longman - British Webster 각 voice 파일 설치 방법 http://www.lingoes.net/en/translator/speech.htm#lingoesenglish 각 사전에 대한 설명 http://blog.daum.net/veilchen/30 더보기
사용가용한 physical memory block 을 얻어오는 방법 /sys/devices/system/memory/ 의 메모리들 /sys/devices/system/memory# ls block_size_bytes memory14 memory32 memory4 memory47 memory54 memory61 memory8 hard_offline_page memory15 memory33 memory40 memory48 memory55 memory62 memory9 memory0 memory16 memory34 memory41 memory49 memory56 memory63 probe memory1 memory17 memory35 memory42 memory5 memory57 memory64 soft_offline_page memory10 memory18 memory36 .. 더보기
poll, sysfs sample code poll 사용 예제 man page 에는 poll_wait 가 대기를 시켜준다고 하는데..아무리 사용해 봐도 poll_wait 는 대기를 하지 않고 바로 return 처리된다. 이에 wait_event_interruptible 을 사용 하였다. 주문한 책이 오면 poll_wait 에 대해 좀 더 읽어 본 후 재업하도록 하겠다. DECLARE_WAIT_QUEUE_HEAD(wait_queue); unsigned int onegun_driver_poll(struct file *file, poll_table * wait){printk("%s()++\n", __func__);//poll_wait(file, &wait_queue, wait); /* normal case */if (wait_event_interrup.. 더보기
class 에 sysfs node 등록하여 사용하기 linux kernel 에서 kernel 단과 user 사이에 통신을 위한 방법중에 sysfs node 를 사용하는 방법이 있다.지원하는 함수는 아래 3가지 함수들이 있다. devclass_create_filedevice_create_file class_create_file 이중 devclass_create_file 은 삭제된 것으로 보인다.class_create_file 의 예제를 첨부한다. #include #include #include #include #include #include #include #include static dev_t first; // Global variable for the first device number static struct cdev c_dev; // Global v.. 더보기
demand paging page fault 가 발생하면 demand paging 이 일어나게 된다. 요구 페이징은 필요한 프로그램만 메모리에 적재하는 방법으로 가상 메모리 시스템에서 많이 사용된다. 요구 페이징을 사용하는 가상메모리에서는 페이지들이 실행 과정에서 실제로 필요해질 때 적재 된다.[출처] 가상 메모리 요구 페이징(Demand Paging)|작성자 SungWook Kang http://sqlmvp.kr/140191934297 더보기
리눅스커널의메모리관리 원문 : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1641 linux virtual memory 에 대한 너무 좋은 강좌 꼭 한번 읽어보시길 Step by Step 커널 프로그래밍 강좌③ 리눅스커널의메모리관리 지난 호에 우리는 커널 모듈 프로그래밍에 관한 기본적인 것들을 살펴보았다. 이번 호 에서는 지난 번 모듈 프로그래밍에 이어 커널에서 가장 흔히 사용하는 함수 중의 하나 인 kmalloc을 통해 커널에서 시스템의 메모리를 어떻게 관리하는지 알아보기로 한다. 글 _ 김민찬 KLDP 멤버, 전문 프로그래머 연재 순서 ① 커널 프로그래밍 환경 구축하기와 특징 ② 모듈 구현하기 ③ 리눅스 커널의 메모리 관리 ④ 커널.. 더보기
slab allocator 쉽게 설명하자면... task_struct 나 bio, bio_vec 같이 linux kenrel 에서 굉장히 빈번하게 사용되는 자료 구조들을 효율적으로 할당 / 해제 관리를 위한 메모리 관리 알고리즘이다. 특별한 함수가 있는것이 아니라..kcalloc, kmalloc 에서 호출해서 사용한다. SLAB Allocator - 1994년 Sun Microsystems의 Solaris 2.4 운영체제에 처음 적용된 이후 리눅스를 포함한 대부분의 UNIX 계통의 운영체제에서 사용하는 메모리 할당 정책. - 일정량의 내부 단편화 현상을 허용하는 trade off을 통해 외부 단편화 현상을 해결한 메모리 관리 기법임. - 10년이 넘도록 이러한 메모리 관리 기법을 대체할 만한 대안이 존재하지 않았음. - SLAB .. 더보기
linux kernel code 에서 system call 찾는 방법 system call 을 찾는 방법 SYSCALL_DEFINE 매크로를 통해 찾아야 한다 참고 : http://daehee87.tistory.com/253 더보기
segment 와 paging 기법 x86 에서는 segment 라는 선형주소를 물리주소로 변환시켜주는 unit 을 사용합니다.하지만 이기능이 linux 와 page 와 매우 유사하여 다소 혼동되는 부분이 있습니다.이에대해 understanding the linux kernel 에서는 다음과 같이 기술하고 있습니다. x68 마이크로 프로세서는 프로그래머가 app을 서브루틴이나 전역 데이터 영역, 지역데이터 영역같은 논리적인 부분으로 쪼갤 수 있도록 segmentation 이라는 기법을 지원한다. 그러나 리눅스는 이를 매우 제한적으로 사용한다. - segmentation 과 paging 은 둘 다 프로세스의 물리 주소 공간을 나누기 위해 사용됨.- segmentation 은 각 프로세스에 다른 선형주소 공간을 할당- paging 은 같은 선.. 더보기
커널 API - IOCTL 함수 작성시 자료형의 검사 원본 : http://forum.falinux.com/zbxe/index.php?document_srl=533526&mid=Kernel_API ioctl 함수를 만들때 다양한 검사를 수행할 수 있는 유용한 메크로 들이 있다.이를 소개한 글인데 내용이 너무 좋아서 링크해 본다.드라이버 작성시 file operation 에 사용되는 자료형의 형태 디바이스 드라이버를 작성하다 보면 주면 read, write, ioctl 을 통해 유저 어플리케이션과 데이타를 주고 받게 된다.이 때 데이타에 대한 유효성과 커널공간으로 사용자 영역으로부터의 데이타를 가져오는작업을 수행하게 되는데 이때 주의 해야할 점과 회피하는 방법이다. 물론 내가 드라이버를 짜고 어플리케이션을 짜면 어떤 자료형을 넘기는지 알기 때문에여러가지를 고.. 더보기
x86 inline assembly http://www.hep.wisc.edu/~pinghc/x86AssmTutorial.htm http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html int a=10, b; asm ("movl %1, %%eax; movl %%eax, %0;" :"=r"(b) /* output */ :"r"(a) /* input */ :"%eax" /* clobbered register */ ); Here what we did is we made the value of ’b’ equal to that of ’a’ using assembly instructions. Some points of interest are:"b" is the output operand, re.. 더보기
Lock-free, cas 참조 : http://www.gamedevforever.com/83 - Lockfree algorithm Lockfree 알고리즘을 이해하기 위해서는 먼저 Atomic Operation에 대해서 알아볼 필요가 있습니다. atomic operation의 정의 1. 일련의 모든 연산이 끝날 때까지 다른 프로세스는 그 연산에 대한 어떠한 변화도 할 수 없다. 2. 전체 연산 중 어느 하나라도 실패할 경우, 모든 연산은 실패하여, 시스템은 전체 연산이 시작하기 전의 상태로 복구된다. 32비트 인텔 CPU (IA-32)에서 지원되는 Atomic Operation에 관해 알아보자. 다음과 같은 인텔의 CPU 연산들 앞에 LOCK을 붙여 해당 연산을 Atomic하게 만들 수 있다. 즉, 스레드간의 동기화를 신경쓰지 .. 더보기
android 와 기기간 파일을 자유롭고 빠르게 공유하자. Send Anywhere 라는 프로그램 입니다.근래에 폰 to 폰 혹은 폰 to PC 공유 어플중 가장 좋네요. 완전 신세계 입니다. 사용법은 파일을 보내면 일련의 숫자를 보내주는데,웹이나 App 에서 그 숫자를 누르면 자동으로 전송하게 되어 있습니다. 웹 사이트는 아래 주소 입니다.https://send-anywhere.com/ 더보기