하 역사다 그냥...계속 다 뒤에서 자세히 설명한다고한다.. 걍 2장부터 봐야겠다..
( 아 난 리눅스에서도 Ubuntu에서 할 생각이다.. 또는 MAC이랑 같이 하면서 비교를 해볼까?! 오호 비교를 하면서 공부를 해야겠다!! 히히)
리눅스에 장점
- 사용자 임의대로 재구성이 가능하다
- 열악한 환경에서도 H/W 자원을 적헐히 활용하여 동작한다.
- 커널의 크기가 작다
- 완벽한 멀티 유저, 멀티 테스킹 시스템
- 뛰어난 안정성
- 빠른 업그레이드
- 강력한 네트워크 지원
- 풍부한 소프트웨어
- 사용자를 위한 여러 가지 공개 문서들
shell 사용해보기
shell을 통해 리눅스와 대화를 하며, 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 으로 올릴 경우 새로 설치하는 것과는 다르게 커널은 컴파일 하고 재부팅하는 것만으로도 업데이트가 가능하다.
(일단 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 으로 올릴 경우 새로 설치하는 것과는 다르게 커널은 컴파일 하고 재부팅하는 것만으로도 업데이트가 가능하다.
댓글 없음:
댓글 쓰기