IT/Kernel 7

커널 헤더 참고

#include #include // 모듈과 관련된 자료 구조와 매크로가 정의되어 있다. #include // 커널에서사용하는각종자료형들ssize_t // 커널과 관련된 자료 구조와 printk() 함수 등이 정의 되어 있다. loff_t 등.. printk() #include // (1) 커널 2.6에서만 사용되며, (2) module_init()와 // module_exit() 매크로 함수가 정의되어 있습니다. #include // register_chrdev() / unregister_chrdev() #include // open() #include // kmalloc() & kfree() #include // kmalloc() & kfree() #include // vmalloc() & vfree..

IT/Kernel 2011.07.18

linux kernel 옵션

Prompt for development and/or incomplete code/drivers - 커널에 개발중인 새로운 기능과 새로운 드라이버가 포함되어 있는데 이것을 사용할 것인지를 설정해 주는 옵션이다. - 불안정한 면이 없지 않지만 사용해야 하는 경우도 있다. - (EXPERIMENTAL) 이란 꼬리표가 붙은 시험 적인 기능들을 말함 - 시스템 특성에 따라 에러가 발생하기도 함 컴파일 과정이나 새 커널로 부팅하는 과정에서 문제가 생겼는데 원인을 모를때 N Local version - append to kernel release - uname 명령으로 커널 버전명을 확일할 때 나타나도록 하는 옵션 Automatically append version information to the version ..

IT/Kernel 2009.07.22

네트워크 서브 시스템

네트워크 서브 시스템은 리눅스가 지금처럼 널리 확산되는데 많은 공헌을 했으며, 리눅스의 최대 장점 중의 하나로 인식되고 있는 분야이다. 이처럼 중요한 위치를 차지하고 있음에도 지금껏 리눅스 커널의 네트워크 서브 시스템의 구조를 분석하고 이해하려는 시도가 많이 부족한 것이 사실이다. 이번 글에서는 리눅스의 최대 장점 중 하나로 꼽히는 네트워킹 부분에 대한 구현을 살펴보겠다. 네트워크 코드는 너무나 방대한 영역이기 때문에 한 번에 살펴보는 것이 불가능하므로 아주 단순한 소켓 프로그램을 예제로 하여 기본적인 소켓의 생성, 연결, 데이터 전송/수신 과정에 대해 살펴보기로 한다. 네트워크는 또한 보안에 민감한 영역이기 때문에 곳곳에 보안을 위한 코드들이 포함되어 있음을 확인할 수 있을 것이다(가장 최신 버전의 안..

IT/Kernel 2007.02.26

커널 빌드·부팅 과정 분석

임베디드 시스템에 대한 관심과 수요가 높아질수록 리눅스에 대한 관심 또한 높아지고 있는 추세지만 리눅스 커널을 소스 코드 차원에서 더욱 깊숙이 들여다보려는 노력은 아직도 부족한 실정이다. 이번 글에서는 리눅스 커널 2.6 의 소스를 분석하며 이러한 시스템의 동작 원리를 심층적으로 살펴보고자 한다. 이제 10대의 중반에 들어서게 된 리눅스는 여러 상용 운영체제의 틈새에서 자신의 위치를 확실히 잡아가고 있는 모습이다. 특히 2003년 12월경에 발표된 리눅스 커널 2.6(이하 커널 2.6)은 뛰어난 성능 향상으로 임베디드 분야와 엔터프라이즈 분야에서 한 몫을 톡톡히 해내고 있다. 특히 커널의 스케줄링 부분이 향상되어 선점형 커널이 가능해짐으로써 실시간성을 요구하는 영역에 대한 활용이 크게 높아지게 되었다. ..

IT/Kernel 2007.02.26