강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

Linux Kernel 2.6 정리

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

Linux Kernel 2.6 정리

 

t.gif
t.gif
Programming Linux 2.6 정리
원문: http://www.linux-mag.com/2004-06/compile_01.html

2.6커널에 대한 내용임
관심없는 몇몇 부분은 빠뜨렸음


AIO(Asynchronous I/O)
libaio, liaio-devel

io_setup() : 컨텍스트 생성

io_submit() :IO - 컨텍스트간 연결

io_getevents() : 컨텍스트에서 발생된 작업의 상태,결과를 불러옴
io_cancel()    : 컨텍스트에서 발생된 작업의 상태,결과를 불러옴을 취소

io_destroy()   : 컨텍스트 파괴


Synchronous Directory
지정한 디렉토리내에서 변경된 것은 디스크에 바로 반영되도록 함.

lsattr /some/directory -> 디렉토리가 동기화설정되어 있는가 파악
chattr +S /some/directory -> 디렉토리를 동기화 설정


Access Control List
fine-grained 제어 제공.
user,group,other에 대해 접근권한을 제어하는 기존 UNIX의 권한제어와 달리,
임의의 사용자에 대한 접근권한을 제어할 수 있다.

setfacl m u:kang:rw,u:nobody:r index.html
-> index.html파일에 대해 kang은 쓰기/읽기 가능, nobody는 읽기만 가능


Extended Attributes
파일이 가진 기본 속성외에, 추가적으로 자신이 정의한 속성을 지정할 수 있다.

setfattr n pub_date v "June 2004" article.txt
-> article.txt파일에 pub_date속성값으로 June 2004를 지정

[C API]
#include <sys/types.h>
#include <attr/xattr.h>
const char* attrName = "pub_date" ;
const char* attrValue = "June 2004" ;
const char* file = "article.txt" ;
enum { NO_FLAGS = 0 } ;
...
setxattr( file, attrName, attrValue, strlen( attrValue ), NO_FLAGS );


epoll()
솔라리스의 /dev/poll을 흉내낸 리눅스의 polling system

epoll_create() : fd생성

epoll_ctl()    : watch list에 fd추가

epoll_wait()   : fd에 대한 이벤트 체크

close()        : fd close


oprofile : http://oprofile.sf.net
성능에 대한 튜닝시 프로파일링을 이용하여 측정하는데, 이제 커널자체에서 프로파일링을 제공.
기존 GNU의 gprof의 경우, 프로파일링을 활성화하여 재컴파일이 필요했으나, 이젠 그럴 필요 없다.
제대로 될라나?..

opcontrol
opreport
opgprof : gprof이 인식하는 포맷으로 변환


스레드
스레드와 관련된 커널의 변화
1. 커널 자체는 preemptive(선점형)이다.
2. 1:1 모델에 기반: 커널스레드는 각 사용자스레드에게 가용함(available)
3. NPTL(Native Posix Thread Library)지원: 시그널 핸들링이 향상
이전 바이너리로 인해 NPTL의 비활성화가 필요할땐, 환경변수 LD_KERNEL_ASSUME에 이전 커널 버전을 지정
(2.4.1 OR 2.2.5)


seqlocks
빈번한 호출영역에 있는 변수(비포인터 변수)에 대한 공유접근 배제

#include <linux/seqlock.h>

seqlock_t lock;
seqlock_init( &lock );
int counter = 0;
...
write_seqlock( &lock );
++counter;
write_sequnlock( &lock );


futex(fast user-space mutex)
경합을 해결하기 위해 커널공간의 동기화 설비.
기존 semaphore, mutex도 내장하고 있음


core 파일 재명명

sysctl w kernel.core_pattern = "core.%h%p%u"

%h : hostname
%p : PID
%u : user


/proc, /sys

/sys  : 머신의 H/W 트리 표현
        ex) sda의 online여부 파악: /sys/block/sda/device/online을 read
        
/proc : 실행중인 프로세스들과 커널 상태에 대한 정보 보유
        새로 추가된 엔트리 : /proc/pid/status, /proc/pid/stat
        포맷변경된 파일    : /proc/meminfo

각 디렉토리를 사용하는 대표적인 패키지        
/proc -> procps
/sys  -> kobject


Loadable 모듈
확장자 변경됨: .o -> .ko
MODULE_LICENSE 매크로,
EXPORT_SYMBOL_GPL() : 현모듈의 exported symbol에 대한 타 GPL모듈들의 접근을 제한

This article comes from dbakorea.pe.kr (Leave this line as is)

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,032 명
  • 현재 강좌수 :  35,772 개
  • 현재 접속자 :  111 명