리눅스 기본 이해
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
1. 리눅스 기본 이해¶
1.1. 초간단 리눅스 배경 이해¶
- 컴퓨터의 운영체제 중 하나로 리누스 토르발스(Linus Torvalds)에 의해 시작된 다중 사용자, 다중 작업을 지원하는 유닉스(UNIX)와 유사한 운영체제
- GNU 프로젝트
- GNU = Gnu is not Unix
- 유닉스(UNIX) 운영체제를 여러 회사에서 각자 개발하며, 소스를 공유하지 않는 문화에 반발
- 리차드 스톨먼이라는 사람이 초기 컴퓨터 개발 공동체의 상호협력적인 문화로 돌아갈 것을 주장하며 1985년 3월에 GNU 선언문을 발표
- GNU 프로젝트를 지원하기 위해 자유 소프트웨어 재단(FSF) 설립과 GNU 공개 라이선스(GPL)라는 규약 제공
- GNU 프로젝트와 리눅스
- 초기 운영체제 개발에 필요한 라이브러리, 컴파일러, 에디터, 유닉스 쉘 개발
- 이를 지원하는 운영체제 커널 개발 시도 (GUN Hurd: https://ko.wikipedia.org/wiki/GNU_%ED%97%88%EB%93%9C)
- 리누스 토발즈가 리눅스 커널 발표. 이를 GNU 프로젝트에서 수용하면서, GNU 프로젝트 산출물과 통합 및 개발 지속
- 리눅스 특징
- 유닉스 기반
- 리눅스 커널 자체가 유닉스의 미닉스(Minix)를 참고하여 개발
- 유닉스 기반
2. 다중 사용자와 멀티 태스킹을 지원
* 리눅스는 다중 사용자 (하나의 컴퓨터에 여러 사용자가 로그인 및 사용 가능) 와 멀티 태스킹(한번에 여러 프로세스 실행 가능)을 지원
3. 자유 소프트웨어
* 리눅스 자유 소프트웨어 라이센스
* 누구나 소스 코드 활용 및 수정, 재배포 가능
* 리눅스 커널 및 관련 다양한 소프트웨어를 패키지로 묶어서 배포하는 것을 리눅스 배포판이라고 함(예: ubuntu)
* 리눅스 배포판 예(https://en.wikipedia.org/wiki/List_of_Linux_distributions)
1.2. 초간단 리눅스 구조¶
- 리눅스는 리눅스 커널 + 쉘 + 컴파일러 + 다양한 소프트웨어를 포함한 하나의 패키지를 지칭
* 다양한 소프트웨어가 리눅스 커널이 관리하고 있는 시스템 자원을 마구 사용할 경우, 시스템 안정성에 심각한 문제가 초래됨 * 운영체제가 시스템 자원을 관리하고, 다양한 소프트웨어는 리눅스 커널이 제공하는 시스템 콜을 통해 시스템 자원 사용을 요청 * 시스템 콜은 쉘, 다양한 언어별 컴파일러, 라이브러리를 통해 호출되게 됨 * 리눅스 커널은 시스템 자원을 관리
■ 프로세스 관리(Process Management)
■ 메모리 관리(Memory Management)
■ 파일 시스템 관리(File System Management)
■ 디바이스 관리(Device Management)
■ 네트워크 관리(Network Management)