전체 글

전체 글

    [Linux Kernel] Process - Task struct(프로세스 서술자)

    프로세서에 대해 간단히 설명했었다.이번 시간에는 프로세스 서술자에 대해서 한번 알아보기로 한다.커널은 프로세스들을 task_list라고 부르는 환형 양방향 링크드리스트를 이용하여 관리, 저장한다.서로서로 연결되어 있다면?? 현재 실행중인 프로세스에서 다른 프로세스 서술자의 정보를 확인할 수 있다는 것인가? 그 부분에 대해서는 아래에서 알아보도록 하자. task_list의 각 항목을 프로세스 서술자라고 하며 에 struct task_struct 형식으로 되어있다. 아래가 task_struct가 가진 정보들이다. 1179 struct task_struct { 1180 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ 1181 void *sta..

    [Design Pattern] Design Pattern 이란?

    [Design Pattern] Design Pattern 이란?

    Head First Design Patterns 책을 이용하여 Design Pattern을 한번 공부해 보기로 했다.공부 전에 간단히 Design Pattern에 대해서 알아보자. Design Pattern은 여러 가지 문제에 대한 설계 사례들을 분석해서 서로 비슷한 문제를 해결하기 위한 설계들을 분류하고, 각 문제 유형별로 가장 적합한 설계를 일반화 시켜 패턴으로 정립한 것이다. 이런 디자인패턴은 건축학에서 최초 유래되었다. 건축학에서 설계하여 디자인등을 통해 진행시 반복적으로 발생하는 사례들을 분석하여 가장 적합한 설계를 일반화 시키면서 시작되었다고 봐도 무방하다.즉, 어떤 류의 문제를 해결하기 위한 사용되는 일반적 기술인데, 이 것이 해결 방법 그 자체가 아니라 해결 방법의 일반 구조이다.패턴은 위..

    [Linux Kernel] 프로세스란?

    Process란 무엇인가에 대해 알아보겠습니다.프로세스란 이름은 정말 많이 들어보셨을테고, 무엇인지에 대해서도 많이 아시기 때문에여기서는 간단하게 한번 더 Remind하는 시간을 가지겠습니다. 프로세스를 많은 사람들이 실행 중인 프로그램이라고 알고 있습니다.맞는 말입니다. 틀린 말이 아니죠. 프로세스는 사용 중인 파일, 데이터, 프로세서 상태, 메모리 영역 주소 공간, 스레드 정보, 전역 데이터가 저장 된 메모리 부분 등 수 많은 자원을 포함하는 개념입니다.종종 스케줄링의 대상이 되는 작업(task)라고 불리기도 한답니다. 프로세스는 최소 하나의 스레드를 가지고 있습니다. UNIX 시스템에서는 하나의 프로세스는 하나의 스레드 만을 가지고 있었지만, 리눅스 시스템에서는 하나의 프로세스가 하나의 스레드만 가..

    Eclipse UML Plugin

    Eclipse UML Plugin

    많은 사람들이 개발 IDE로 Eclipse를 사용하고 있습니다.여기서 자신이 만든 프로젝트를 UML로 표현하기 편한 Eclipse Plugin을 소개할려고 합니다. 제가 사용하고 있는 것 중 하나인 Amateras UML Plugin이다. 먼저 아래 UML로 들어간다.http://sourceforge.jp/projects/amateras/releases/ 여기서 약간만 내려가다 보면 AmaterasUML 이 있다. 다운 받은 후 압축을 풀자. 압축을 풀면 아래와 같은 파일이 있을 것 이다. jar 파일들을 복사하여 ..../eclipse/plugin/ 디렉토리 안에 붙여넣으세요.그럼 준비 끝 !! 이제 한번 시작해 보겠습니다. Eclipse 를 실행합니다. 실행 후 프로젝트를 만들 때 new-other을..

    [Linux Kernel] Kobject에 대하여

    Kobject 라는 놈이 뭘까...?Sysfs를 공부하는 도중 나왔는데 도저히 이해가 안된다.일단 sysfs는 커널영역에 디바이스들을 객체화하여 유저영역에 정보를 제공하는 가상 파일시스템이다.여기서 디바이스들을 객체로 추상화하여 그 정보를 가지고 있는 놈이 Kobject이다. /linux/include/linux/kobject.h 에 있는 소스를 분석하여 보자. 61 struct kobject { 62 const char *name; 63 struct list_head entry; 64 struct kobject *parent; 65 struct kset *kset; 66 struct kobj_type *ktype; 67 struct kernfs_node *sd; 68 struct kref kref; 6..

    [Linux Kernel] 리눅스 커널 Configuring

    아래 글은 리눅스 문서에 작성되어 있는 커널 Configuring에 대한 설명이다.잘 설명되어 있기에 따로 해석하여 적어놓지 않아도 읽어보면 어떻게 사용하여야 하는지 쉽게 파악할 수 있을 것이다. CONFIGURING the kernel: 154 155 Do not skip this step even if you are only upgrading one minor 156 version. New configuration options are added in each release, and 157 odd problems will turn up if the configuration files are not set up 158 as expected. If you want to carry your existing..