티스토리 뷰

리눅스 프로그래밍이란?

리눅스에서 제공하는 다양한 서비스들을 이용해서 프로그래밍을 하는것

 

유닉스 /리눅스 커널이란?

하드웨어와 어플리케이션을 연결해주는 매개체

OS상 프로세스들의 중요한 자원들을 공유하게 할수있다.

여러 서비스(시스템 콜)을 제공한다.

주변장치들을 다룬다.

 

- 처음에 램에 탑재가 된후 시스템이 shut down할때까지 램에 남아있는다.

- 메모리 관리 , 프로세스 관리 , 프로세스간의 통신 , I/O 관리 , 파일 관리를 제공한다.

 

리눅스의 구조

어플리케이션이 하드웨어에 직접적으로 접근하지 않고 OS/커널을 통해서 접근한다.

이유는? APP이 여러개가 있는데 HW를 동시에 접근할때에는 어떠한 조절이 필요하기 때문이다.

 

커널도 두계층으로 나눈다. 

- Machine - dependent : 하드웨어와 직접적으로 밀착하는 부분

부트스트랩핑 ,시스템초기화, 인터럽트 예외 처리, i/o 디바이스 관리, 커널 유저모드 스위칭, 프로세서 관리, 메모리관리 등을 수행한다.

low level 언어로 하드웨어를 제어한다.

ARM, x86에 따라 매우 다르다.

- Portable OS : 시스템 콜 수행

사용하는 아키텍처 (ARM, x86)이 다르더라도 똑같다.

 

시스템 콜 이란?

프로그램이 리눅스/유닉스 커널과 이야기 할수 있도록 해주는 것.

함수들을 모아놓은것과 같다고 볼수 있다.

일반함수랑 다른점은? 유닉스/리눅스 커널을 직접적으로 호출한다라는 점.

 

 

여러가지 계열로 파생된 OS family의 그림이다.

다른 계열로 발전하다보니, 제공하는 시스템 콜들의 차이점이 발생하였다. 예를 들면 System V에서는 OPEN이라는 호출에 파라미터들이 BSD계열과는 다르다는 것이다.

점점 호환이 떨어진다고 한다.

이 문제를 해결하기 위하여 나온것은 바로 POSIX이다.

POSIX (Portable Operating System Interface)

가장 기본적인것은 POSIX1이다. 우리가 사용하는 프로세스,IPC 등등이 define되어있다. 어떤 함수이고, 어떤 파라미터를 사용해야하는지.

POSIX 1.b 실시간 관련된  것을 내포   우선순위 스케쥴링, 실시간 신호

POSIX 1.c 최근에 많이 사용하는 쓰레드나 스케쥴링 관련된것을 내포

POSIX 2 쉘이나 유틸리티들의 표준화를 내포하고 있다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31