리눅스

포스트: 554|조회수: 0|TERM
Items

Posts

554 posts

우분투 계열 리눅스에서 시냅틱 패키지 관리자의 패키지 다운로드 위치

반달가면|2018년 10월 9일

간혹 필요할 때가 있어 정리해 두기로. 리눅스 민트 등 우분투 계열 리눅스에서 시냅틱 패키지 관리자(Synaptic Package Manager)를 사용할 때, 선택한 패키지를 설치하지 않고 다운로드만 할 수도 있다. 설치 직전에 "download package files only" 항목을 체크하면 된다. 문제는 대체 이 패키지(.deb) 파일이 어디에 들어 있느냐는 것인데, /var/cache/apt/archives/ 디렉토리에 다운로드된다. 물론 "download package files only" 항목을 체크하지 않아도 이 위치로 다운로드된 후에 설치가 진행된다. 다운로드해 둔 패키지를 나중에 수동으로 설치하려면 아래와 같이 작업한다. # 패키지 다운로드 디렉토리 이동 cd /v

[리눅스커널] 프로세스 태스트 디스크립터 디버깅: 스레드와 스레드 그룹

Guillermo Austin Kim|2018년 10월 6일

T32로 프로세스 목록을 보면 다음과 같이 계층 구조를 볼 수 있다.magic___|___command_________|#thr|state_____|spaceid|pids_|C1A171B8| swapper/0 | 420|current | 0000 | 0. 2. 3. 5. 6. 7. 8. 9. 10F1618000| init | - |sleeping | 0001 | 1.E9AF8740| ueventd | - |sleeping | 01D0 | 464.E9AFAB80| logd | 7. |sleeping | 0208 | 520.E9AFC140| logd.daemon | |sleeping |

[안드로이드] 시스템 데몬 부분 빌드

Guillermo Austin Kim|2018년 10월 4일

안드로이드에서 리눅스 시스템 프로그래밍을 실습하고 싶을 때가 있습니다. android\system\core 폴더에서 simple_proc 폴더 하나를 생성합시다. android\system\core\simple_proc 다음과 같이 메이크 파일을 하나 작성한 후 android\system\core\simple_proc 폴더에서 Android.mk 이름으로 저장합시다.LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS) LOCAL_MODULE := test LOCAL_SRC_FILES := \ test.cpp \ LOCAL_MODULE_TAGS := optional LOCAL_FORCE_STATIC_EXECUTABLE := true LOCAL_STATIC_

[리눅스커널] 동기화 - 유저 프로세스 시스템 콜 호출 시 레이스 컨디션

Guillermo Austin Kim|2018년 10월 3일

유저 공간에서 생성된 프로세스는 여러 개 쓰레드를 생성합니다. 이 쓰레드들이 같은 디바이스 노드에 접근해서 시스템 콜을 발생하며 커널과 통신합니다. fork() 라는 함수를 유저 공간에서 시스템 콜로 호출하면 유저 공간에서 sys_clone()이란 함수 호출로 프로세스를 생성합니다. 유저 공간에서 open(), write() 그리고 ioctl() 이란 함수를 호출하면 이에 대응하는 시스템 콜을 호출해서 커널 공간과 통신합니다. 이번에는 시스템 콜 관련 함수에서 발생한 레이스 컨디션을 확인합니다. 먼저 패치 코드를 소개하겠습니다.1 diff --git a/kernel/exit.c b/kernel/exit.c2 --- a/kernel/exit.c3 +++ b/kernel/exit.c4 @@ -760,10 +