Linux/Kernel Analysis

    [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..

    [Linux Kernel] 프로세스란?

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

    [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..

    sysfs

    sysfs는 리눅스 커널 2.4에서 /proc 디렉토리 아래에 무질서하게 놓여 있던 디바이스와 관련된 정보들을 리눅스 커널 2.6에서는 sysfs를 이용하여 좀더 체계적으로 표현하기 위해 사용하고 있습니다. sysfs는 가상 파일 시스템으로 루트 파일 시스템(/)에 sys라는 이름의 디렉토리에 마운트 됩니다. sysfs도 proc파일 시스템 처럼 파일의 읽기/쓰기/변경 등은 그 권한에 따라 사용자가 이용할 수 있습니다. 또한 sysfs는 하드웨어 구성 정보와 디바이스 드라이버 정보가 통일된 계층으로 보이게 하기 위한 파일 시스템입니다. 이를 위하여, 시스템에서 동작하는 디바이스들의 연결 관계를 출력하기 위해 kobject라는 데이터 구조를 이용합니다. sysfs는 하드웨어의 핫 플러그도 대응 하며, 핫 ..

    리눅스 소스 사이트

    틈틈이 소스 분석 또는 확인이 필요할 때 이용하는 사이트. http://lxr.linux.no/http://lxr.free-electrons.com/source/