※리눅스의 시작은 [리누스 베네딕트 토르발스(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) 에 접근한다.
'전공수업 > 리눅스' 카테고리의 다른 글
[리눅스 기초] 명령어 정리(2) - 작성중 (0) | 2022.02.07 |
---|---|
[리눅스] Linux 자주 사용하는 명령어 모음 (0) | 2022.02.01 |