2015년 7월 9일 목요일

리눅스 kernel _리눅스 커널 내부구조

리눅스 커널 내부구조 _ 2010년도에 나온 책인데 찬찬히 정리하면서 포스팅 해볼까 한다! 그럼 항상 처음 부분만 단단하듯이 목차에 1번!! 리눅스에 대한 간략한 소개 부터 차근차근 읽어 보자!




하 역사다 그냥...계속 다 뒤에서 자세히 설명한다고한다.. 걍 2장부터 봐야겠다..

( 아 난 리눅스에서도 Ubuntu에서 할 생각이다.. 또는 MAC이랑 같이 하면서 비교를 해볼까?! 오호 비교를 하면서 공부를 해야겠다!! 히히)



리눅스에 장점

  • 사용자 임의대로 재구성이 가능하다
  • 열악한 환경에서도 H/W 자원을 적헐히 활용하여 동작한다.
  • 커널의 크기가 작다
  • 완벽한 멀티 유저, 멀티 테스킹 시스템
  • 뛰어난 안정성
  • 빠른 업그레이드
  • 강력한 네트워크 지원
  • 풍부한 소프트웨어
  • 사용자를 위한 여러 가지 공개 문서들


shell 사용해보기

shell을 통해 리눅스와 대화를 하며, shell은 명령어를 해석해주는 해석기라고 정의하면 된다. 



옆에 있는 화면은 terminal이라는 shell을 이용하여 리눅스와 대화를 하는 대화창이라고 생각하면 쉽다.

사용법은 , 공부를 하면서 자연스럽게 익숙해 질거다.. 물론 나도..
(일단 ls , cp , mv , rm , vi , gcc , ps 정도는 뭔지 맛보고 해보자!)







2. 리눅스 커널 구조

커널 : 운영체제의 핵심을 이루는 부분 , cpu나 메모리 그리고 기타 디바이스등의 시스템 리소스를 등의 시스템 리소스를 관리하고,  사용자 프로그램이 이를 사용할 수 있도록 한다.





운영체제 : 자원을 관리해주는 자원관리자(resouce manager)
자원 : 물리적 자원(pysical resource) . 추상적 자원(abstract resource)

물리적 자원 : cpu , 메모리 , 디스크, 터미널, 네트워크 등

추상적 자원 : (물리적 자원을 운영체제가 관리하기 위해 추상화 시킨 객체)
- cpu를 추상화 시킨 task
- 메로리를 추상화 시킨 세그먼트 , 페이지
- 디스크를 추상화 한 파일
- 네트워크를 추상화 시킨 통신 프로토콜 , 패킷  등

usr/src/kernel


본인은 리눅스에서 Ubuntu를 이요하는 중이다.




usr/src에는 여러가지 디렉토리가 있었다. 이건 추후에 어떤건지 알게 될거 같아 일단 패스 하자!





arch 디렉토리(architecture에 arch를 땀)
 - 하드웨어 종속적인 부분들이 구현된 디렉토리





fs 디렉토리
- 리눅스에서 지원하는 다양한 파일시스템과 open(), read(), write() 등의 시스템 호출이 구현된 디렉토리,

mm 디렉토리
- 메모리 관리자가 구현된 디렉토리이다.물리 메모리 관리 , 가상 메모리 관리 , 태스크마다 할당되는 메모리 객체 관리 등의 기능이 구현되어 있다.

driver 디렉토리
- 리눅스에서 지원하는 디바이스 드라이버가 구현된 디렉토리이다.

net 디렉토리
- 리눅스 커널 소스 중 상당히 많은 양을 차지하는 이 디렉토리는 리눅스를 지원하는 통신 프로토콜이 구현된 디렉토리 이다.

ipc 디렉토리
- 리눅스 커널이 지원하는 프로세스간 통신 기능이 구현된 디렉토리이다.


init 디렉토리
- 커널초기화 부분, 즉 커널의 메인 시작 함수가 구현된 디렉토리

include 디렉토리
- 리눅스 커널이 사용하는 해더 파일들이 구현된 디렉토리이다.

other 디렉토리
 - 리눅스 커널의 주요기능이 구현된 디렉토리 외에도 리눅스 커널 소스에는 여러 다른 디렉토리가 존재하며, 대표적으로 리눅스 커널 및 명령어들에 대한 자세한 문서 파일들이 존재하는 Documentation 디렉토리, 커널 라이브러리 함수들이 구현된 lib 디렉토리 , 등등





리눅스 커널 컴파일
리눅스는 윈도우와는 다르게 vista -> 7 으로 올릴 경우 새로 설치하는 것과는 다르게 커널은 컴파일 하고 재부팅하는 것만으로도 업데이트가 가능하다.

댓글 없음:

댓글 쓰기