유닉스 운영체제

Previous Next

유닉스 운영체제


특징

  1. 고급 언어인 C언어로 쓰여있어 이식성이 높다.

    👆 여기서 잠깐!

    이식성이란?

    한번 만들어진 프로그램을 다른 CPU를 가지는 하드웨어로 쉽게 이식할 수 있다는 뜻입니다.

    그렇다면 C언어로 쓰여있으면 왜 이식성이 높을까요?

    대다수의 컴퓨터가 C 컴파일러를 가지고 있기 때문입니다.

  2. 시분할 시스템 (Time Sharing System)을 위해 설계된 대화식 운영체제이다.

    시분할 시스템이란?

    현재 대부분의 운영체제가 사용하고 있는 방식으로,

    여러 작업을 수행할 때 CPU를 일정한 시간 단위로 분할해 사용한다.

    일괄처리에 비해 짧은 응답 시간을 가져 Interative 한 방식이다.

    -> 사람이 느끼기에 빠르면서도 자원을 효율적으로 관리하기 위한 방식


    대화식 운영체제란?

    쉘 프롬프트에 사용자가 명령을 기술하면, 쉘을 통해 시스템에 전달되고

    시스템은 정상인지 오류인지 등을 답변하는 방식으로

    마치 시스템과 사용자가 대화하는 것과 같은 방식으로 사용된다.

  3. 다중 사용자, 다중 작업(multi-tasking) 를 지원한다.

    👆 여기서 잠깐!

    다중 사용자란? 여러 사람이 하나의 컴퓨터에 동시에 접속하는 것을 의미합니다.

    다중 작업이란? 한 컴퓨터에서 여러 작업을 동시에 수행하는 것을 의미합니다.

  4. 파일 시스템이 트리 구조로 구성되어 있다.



유닉스 시스템의 구성

Screen Shot 2022-09-19 at 8 25 55 PM


커널 (Kernel)


쉘 (Shell)


유틸리티



유닉스의 파일 시스템 구조


Screen Shot 2022-09-19 at 9 29 33 PM

(파일 소유자의 사용자번호(UID), 그룹번호(GID), 파일 크기, 파일 타입, 생성시기, 최종변경시기, 최근사용시기, 파일의보호권한, 파일링크수, 데이터가 저장된 블록의 시작주소 등)


유닉스의 프로세스

데몬 프로세스


부모 프로세스 (parent process)


자식 프로세스 (child process)


고아 프로세스 (orphan process)


좀비 프로세스 (zombie process)


프로세스 스케줄링

| Screen Shot 2022-09-19 at 10 13 04 PM | - 우선순위가 부여된 여러개의 실행 큐가 존재한다.
- 동일한 큐에 배치된 작업들은 Round Robin으로 처리된다.
- 주어진 단위 시간을 다 소모한 프로세스는 우선순위가 낮은 큐로 이동된다.
- 결과적으로 우선순위 Round Robin인 셈이다. | | ———————————————————— | ———————————————————— |



유닉스의 명령어

프로세스 관련 파일 및 디렉터리 & 기타관련
fork : 새로운 프로세스를 생성합니다.
exec : 새로운 프로세스를 수행합니다.
exit : 프로세스 수행을 종료합니다.
wait : fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다립니다.
kill : 프로세스를 제거합니다.
getpid : 자신의 프로세스 아이디를 얻습니다.
getppid : 부모 프로세스 아이디를 얻습니다.
& : 백그라운드 처리를 위해 명령의 끝에 입력합니다.
signal : 신호를 받았을 때 프로세스가 취할 동작을 지정합니다.
pipe : 프로세스 간 통신을 위한 경로를 설정합니다.
create : 파일을 생성합니다.
open : 파일을 사용할 수 있는 상태로 준비시킵니다.
close : 파일을 닫습니다.
cp : 파일을 복사합니다.
mv : 파일을 이동시키거나 이름을 변경합니다.
rm : 파일을 삭제합니다.
cat : 파일 내용을 화면에 표시합니다.
chmod : 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정합니다.
chown : 소유자를 변경합니다.
find : 파일을 찾습니다.
mknod : 특수 파일을 생성합니다.
mount : 파일 시스템을 마운팅합니다.
unmount : 파일 시스템의 마운팅을 해제합니다.
mkfs : 파일 시스템을 생성합니다.
fsck : 파일 시스템을 검사하고 보수합니다.
mkdir : 디렉터리를 생성합니다.
chdir : 현재 사용할 디렉터리 위치를 변경합니다.
rmdir : 디렉터리를 삭제합니다.
ls : 현재 디렉터리 내의 파일 목록을 확인합니다.
finger : 사용자 정보를 표시합니다.


리눅스와 유닉스와 윈도우

리눅스 유닉스 윈도우
일반 사용자부터 개발자까지 다수의 사람들이 사용함 IBM 사에서 버그 이슈 등을 일괄 관리한다. Microsoft 사에서 일괄 관리 (UNIX를 계승하지 않음)
오픈소스 OS로 무료임 (유료 버전도 있으나 저렴함)
=> Ubuntu, RedHat
대부분 유료임 (Solaris 무료 버전도 있긴함) 무료판과 유료판이 있음
모바일폰, 태블릿 컴퓨터, 슈퍼컴퓨터까지 다양한 컴퓨터 하드웨어에 설치가 가능함 인터넷서버, 워크스테이션과 PC들에 사용됨.
다수의 금융인프라에 사용됨.
데스크탑에 쓰이는 OS 중 점유율 탑
유닉스에서 파생된 운영체제 (유닉스의 아들) 서버에 특화된 운영체제로 포털이나 대기업 서버에 사용되며 보안성이 뛰어나다. 낮은 신뢰성이 큰 단점으로, 보안상의 문제가 해결되지 못하고 있다.
  대형 컴퓨터를 위해 만들어짐 PC를 위해 만들어짐

우분투 Ubuntu


macOS



그래서 지금은 어떤 운영체제를 사용하는가?

크게 임베디드 서버 모바일 데스크탑 이렇게 4개 시장으로 나눌 수 있다.



References