본문 바로가기

공부공간/System programming

[UNIX] unix 간략하게 보기

반응형

UNIX의 단점 :

  • 너무 많은 OS가 있어서 os 마다 다 다른 unix가 필요했다. 너무 복잡함. 따라서 OS의 통일화가 필요했다.
  • 초창기에는 너무 GUI가 없어서 다루기가 어려웠음.(그러나 이후에 MIT에서 GUI있는 UNIX를 개발)

 

그렇다면 UNIX의 장점은 무엇일까?

  • 오픈시스템(오픈소스)
  • 간단하다 - data, device, socket, process등 모든것을 그냥 각각 하나의 파일로 취급했다.
  • 이식성이 좋다 - 고차원언어(c언어)로 작성되어 재사용성, 이식성이 좋았다.
  • 많은 기능 지원 - 멀티태스킹, 멀티프로세싱, 서버-클라이언트 등

 

이런 장점들을 포괄하고, 단점을 보완하기 위해 나온것이 바로 Linux !

Linux ? 

  • UNIX같이 생긴 os
  • open system, open source ==> 전세계 많은 개발자들이 같이 개발할 수 있었다. 또한 프로그램 실행파일 외에도 원한다면 소스도 공개하여 다른이가 수정할 수 있는 시스템이다.

리눅스의 기능상 장점 ? 

여러 기능, 프로토콜, 시스템을 지원한다는것.( 일일이 설명하지 않겠다. 외우지 않기위해서)

 

 

리눅스,UNIX 특징 : Kernel을 가지고있다.

 

System call, Kernel

library의 많은 함수들은 실행되기 위해서 System call을 호출한다. 그리고 System call은 Kernel의 일부이다.

예) printf() : library함수 ---> write() : system call 호출

printf()를 사용하면 kernel에 있는 write()라는 함수를 사용하기 위해 system call을 호출한다.

 

즉 실제로 C언어를 사용하면서 사용하게 되는 library들은 kernel에 접근하면서 실행하는것.

 

Kernel 접근
Library , system call 예시1
Library, System call 예시2

 

그렇다면 Kernel mode란?
  • kernel 시스템에 접근하는데 제한이 없다. 어떤 instruction도 사용할 수 있으며
  • 그렇다는 말은 메모리의 어떤 공간에도 쉽게 접근할 수 있다는 말이며
  • 그렇다는 말은 컴퓨터 주변장치에도 쉽게 접근이 가능하다는 말이다.

 

User mode 와의 차이점(우리가 윈도우에서 사용하는 대부분이 유저모드라고 생각하면 된다.)

  • 정해진 메모리에만 접근가능
  • instruction 사용에 제한이 있음
  • 주변 장치를 사용하는데 있어서 정해진 경로, 정해진 대로만 접근이 가능
  • 현재 프로세스에서 다른 프로세스를 건들 수 없다.
  • 각 프로세스는 언제든지 인터럽트 당할 수 있다.
반응형