본문 바로가기
전공수업/리눅스

리눅스의 기초

by Alkaloid 2018. 3. 2.
반응형

※리눅스의 시작은 [리누스 베네딕트 토르발스(Linus Benedict Torvals)] 가 처음으로 개발을 했다.



1.커널의 5가지 요소

  ① Process 관리 : CPU관리

  ② Memory  관리 : RAM관리

  ③ File System  관리

  ④ IO : Device Drivers

  ⑤ Network 관리

                                                                                                


※CPU는 Memory위에 존재한다.




■ GNU 프로젝트

   -Open Source Code를 쓰는 대신 자신의 Source Code도 제공 및 공개해야한다.


   GNU는 네가지 자유를 보장해야한다.

        1. 프로그램을 어떠한 목적으로도 실행할 수 있는 자유

        2. 프로그램의 동작을 학습하고, 자신의 필요에 맞게 개작할 수 있는 자유. 이를 위해서는 소스코드의 대한 접근이 전제되어야 한다.

        3. 이웃을 도울 수 있도록 복제물을 재배포할 수 있는 자유

        4. 프로그램을 개선할 수 있는 자유와 개선된 이점을 공동체 전체가 누릴 수 있는 자유. 이를 위해서도 소스코드의 대한 접근이 전제 되 어야 한다.



2. 리눅스와 유닉스

   → 리눅스는 유닉스 계열의 운영체제, 리눅스 = 리누스 + 유닉스(POSIX)


   →유닉스는 어셈블리어로 처음 개발되었고 C언어로 재개발되었다. 그렇기 때문에 이식성이 높다.

 POSIX ( Portable Operating System Interface )-[포직스]는 유닉스 운영체계에 기반을 두고있는 일련의 표준 운영체계 인터페이스다.

                                                       쉽게 말하면 [이식 가능 운영체제 인터페이스]이다. (API)


 ※ X는 유닉스 호환 운영체제에 보통 X가 붙은 것에서 유래가 되었다.

                                                                                                                       *Interface : 함수들의 집합 



※ API(Application programming Interface, 응용 프로그램 프로그래밍 인터페이스) : 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일제거, 창 제어 ,화상 처리, 문자 제어등을 위한 인터페이스를 제공한다.


3. 리눅스 배포판

   - 리눅스 커널 + 응용 프로그램으로 구성 

   - 레드햇 계열(페도라), 데비안 계열(우분투), 슬랙웨어 계열(Suse)



































4. 우분투 리눅스


① 데비안 계열의 리눅스로 4월과 10월에 버전이 업데이트 되기때문에 ( 년도.배포달 ) 로 구분된다. ex) 17.10버전은 17년10월

② 우분투는 데비안 GNU/리눅스에 바탕

③ 그놈(GNOME)을 기본 데스크톱 환경으로 사용

④ 우분투의  기본 철학 : 전 세계의 누구나 어렵지 않게 리눅스를 사용하자는 것.

⑤ 버전 11.04 부터 유니티를 기본 데스크톱으로 사용했으니 17.10 버전부터 그놈사용



■ 리눅스의 특징

    - 리눅느는 공개 소프트웨어 (Open source)이며 무료로 사용할수 있다.

    - 유닉스와의 완벽한 호환성을 유지한다.

    - 서버용 운영체제로 많이 사용된다.

    - 편리한 GUI( Graphical user interface ) 환경을 제공한다.


※ Linux가 windows 보다 서버용 운영체제로 많이 쓰이는 이유는 ? 파일시스템관리와 네트워크(종류가 많다)에 강하기 때문이다.

※라이브러리와 오픈소스의 차이점은 ?  이 답변은 추후 공부를 더 해야할거 같다. 아직도 이해가 되지 않는다....



■ 리눅스의 구조



① 커널 : 리눅스의 핵심

   - 프로세스/메모리/파일 시스템/장치 관리/디바이스/네트워크

   - 컴퓨터의 모든 자원 초기화 및 제어 기능

② 쉘(shell) : 사용자 인터페이스

   - 명령 해석

   - 프로그래밍 기능

   - 리눅스 기본 쉘 : 배시 쉘(리눅스 쉘)

※윈도우에서 쉘은 바탕화면이나 아이콘등을 말한다.

③ 응용 프로그램

   - 각종 프로그래밍 개발 도구

   - 문서 편집 도구

   - 네트워크 관련 도구 등


※ System Call : 운영체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스다.

                     C나 C++과 같은 고급언어로 작성된 프로그램들은 직접 시스템 호출을 사용할수 없기 때문에 고급API를 통해 

                     시스템 호출(System Call) 에 접근한다.

반응형