본문 바로가기
👨‍💻Computer Science/리눅스시스템프로그래밍

[Linux] 01-intro

by 코푸는 개발자 2021. 9. 6.
728x90
리눅스 시스템

리눅스(운영체제를 먼저 들어두면 이점이 많음)

운영체제 컴퓨터 하드웨어 자원을 관리하는 소프트웨어

그렇다면 컴퓨터 하드웨어란?

CPU, 메모리, IO디바이스로 구성된 것들

프로세스 관리

메모리 관리(가상 메모리 관리)

I/O 디바이스 관리(파일 시스템, 보조 기억장치가 중요)

 

운영체제가 시스템을 관리할 때 2가지 목표

쉽게 사용할 수 있게 만들기 위해 관리(쉬운 인터페이스(시스템 콜)를 제공)

효율적으로 사용하기 위해 관리(낭비되지 않게)

 

시스템 콜 운영체제를 사용하는 사람이 하드웨어를 모르고도 사용을 가능하게 해주는 것

가상화, 모듈화을 통해 수행함 -> 객체지향

 

운영체제의 역사는 유닉스의 역사이다.

유닉스(어셈블리 언어로 만들어짐, 1969)의 일부가 리눅스이다.

1971에 다시 B언의 개량버전인 C언어로 만들어짐(하이레벨 언어로 제작) -> 1975에 오픈

유닉스가 오픈소스 소프트웨어의 시작을 둔다.

 

유닉스의 변화

크게 2가지로 발전을 해나감 -> 시스템 파이브, BSD

SUN OS에서 끝에 JAVA를 만듦

현재는 회사는 사라지고 오라클이 가지고 있음

이후 유닉스는 대부분 사용되지 않는 추세이고 현재는 리눅스를 대부분 사용함

XENIX 최초로 PC에서 돌아가는 유닉스

SUN OS Solaris

MACH 세계 최초 마이크로커널 기반 유닉스

모놀리틱 커널 모든 운영체제 기능이 한 대 모여 있는 것

마이크로 커널 모놀리틱 커널이 잘 작동되지 않아 만들어짐

NeXT Step 애플 Mac OS 전씬

 

유닉스는 아직도 많이 사용되는 부분이 존재함(서버 환경에 특화되어 사용)

 

Free software의 탄생

 

IEEE 1003.1(1986) - 유닉스 시스템 콜에 대한 표준을 만듦(다른 회사에서 만든 소스코드 콜이 다른 운영체제에서 작동하지 않는 문제를 해결하기 위함)

 

다양한 플랫폼에서의 프로그래밍

 

리눅스 네트워크 기능이 있는 기기들에는 리눅스가 쓰임(공유기, 네트워크 프린터)

많이 쓰이는 이유 오픈 소스이기 때문에 공짜이다.

안드로이드 핸드폰은 모두 리눅스이다.

리눅스의 서버 시장 통합 -> 대량의 클라우드 서버를 관리하기 위해서 리눅스 기반으로 만들어졌기 때문이다.(결국, 리눅스의 세상이다.)

 

리눅스 시스템의 구조

리눅스 시스템 구조1
리눅스 시스템 구조2

 

 

리눅스는 운영체제가 아니고 커널이다.(리눅스는 양대산맥 포함)

커널과 운영체제의 차이

시스템 프로그램 운영체제를 사용하기 위해 필요한 프로그램

리눅스라는 커널에 시스템 프로그램을 넣어서 운영체제처럼 사용하는 것 배포판 -> 대표판 ubuntu(PC에 설치해야함, 필수!, 꼭 다운받아 볼 것!)

 

시스템 콜과 라이브러리 함수

 

리눅스는 사용자 인터페이스가 있는 곳에서는 잘 사용되지 않음

서버나 인베디드 환경에서는 GUI를 사용하지 않음

 

리눅스 운영체제 위에 프레임워크(인터페이스, node.js, 장고...)를 사용해서 개발을 진행함

프레임워크가 없다면 리눅스 시스템 콜을 이용하여 개발을 진행해야함

 

운영체제에 서비스를 요청하는 식으로 하드웨어가 작동함

 

리눅스 커널 내부구조는 자세히 다루지는 않음

커널 항상 수행되는 소프트웨어(하드웨어 제어, 서비스 제공)

 

유닉스는 개발자용으로 최초에 만들어진 것이다.

리눅스에서의 작업은 아직도 커멘드를 통한 작업이 진행된다.

 

아두이노 운영체제 없이 개발진행

 

 

728x90

댓글