반응형
리눅스
- 서버, 클라우딩 컴퓨팅에 많이 사용되는 운영체제
- 소프트웨어의 대부 UNIX 계열 운영체제
- plain 하게 프로그래밍이 가능
- C언어 표준에 맞춰 프로그래밍이 가능하다.
- ANSI C - C언어 표준
리눅스의 역사
리눅스의 시작
- 리누스 토발즈 (Linus Torvalds)가 개발
- 대학에 있는 UNIX 컴퓨터를 집에서 쓰고 싶다는 생각을 가지고 LINUX 운영체제 개발
- 다중 사용자, 다중 작업(시분할 시스템, 멀티 태스킹)을 지원하는 유닉스와 유사한 운영체제
GNU (Gnu is Not Unix) 프로젝트
- 유닉스 운영체제를 여러 회사에서 각자 개발하고 소스를 공유하지 않음
- 리차드 스톨만이 초기 컴퓨터 개발 공동체의 상호협력적 문화로 돌아갈 것을 주장하며 1985년도에 GNU 선언문 발표
- GNU 프로젝트를 지원하기 위해 자유 소프트웨어 재단(FSF) 설립과 GNU 공개 라이선스(GPS)라는 규약을 제공
GPL라이선스
- GPL 프로그램은 어떤 목적이든, 어떤 형태든 사용할 수 있지만 사용하거나 변경된 프로그램을 다시 배포하는 경우 동일한 GPL 라이선스로 공개 해야 함
- 소스 오픈을 장려하기 위함
GNU 프로젝트와 GNU Hurd
- 운영체제 커널 개발 시도 - GNU Hurd
- 운영체제에 필요한 라이브러리, 컴파일러, 에디터, 쉘 개발
GNU 프로젝트와 리눅스
- GNU Hurd 개발 지연 (OS가 개발되지 않음)
- 리누스 토발즈가 리눅스 커널 소스 오픈
- 리누스 토발즈에게 GPL 라이선스 규약 제안, 리누스 토발즈가 수락
- GNU 프로젝트 산출물과 리눅스 커널이 통합 개발
리눅스와 파일
- 모든것은 파일이라는 철학을 따른다.
- 모든 인터렉션은 파일을 읽고, 쓰는 것처럼 이루어져 있다.
- 마우스, 키보드와 같은 모든 디바이스 관련된 기술도 파일과 같이 다루어진다.
- 파일 네임스페이스
- 전역 네임스페이스를 제공
- /media/floofy/ (루트 디렉토리의 media 디렉토리의 플로피디스크 파일)
- 전역 네임스페이스를 제공
- 파일은 inode 고유값과 자료구조에 의해 주요 정보관리
리눅스와 프로세스
- 리눅스 실행 파일 포멧 - ELF (Executable and Linkable Format)
- 콜스택, 코드(텍스트), 데이터 및 BSS 섹션 등
- 다양한 시스템 리소스와 관련
- 시스템콜 호출을 통해 리소스 처리 가능토록 구성
- 타이머, 시그널, 파일, 네트워크, 디바이스, IPC기법
- 시스템콜 호출을 통해 리소스 처리 가능토록 구성
- 가상 메모리 지원
- 각 프로세스는 pid(프로세스ID) 고유값으로 구분한다.
- init 프로세스(첫번째 프로세스)를 기반으로 fork() 시스템콜을 사용해서 신규 프로세스가 생성된다.
리눅스와 권한
- 운영체제는 사용자/리소스 권한을 관리
- 리눅스는 사용자/그룹 권한을 관리
- root는 슈퍼 관리자
- 파일마다 소유자, 소유자 그룹, 모든 사용자에 대해 읽고, 쓰고, 실행하는 권한을 관리
- 접근 권한 정보는 inode의 자료구조에 저장
정리
- 리눅스는 모든 리소스를 파일로 관리한다 (inode 기반)
- 리눅스의 프로세스
- ELF 포멧
- 시스템콜 기반 리소스 처리 가능토록 구성
- 타이머, 시그널, 파일, 네트워크 등등
- 가상 메모리 사용
- pid 기반 구분
- init 프로세스 기반 fork() 사용해서, 프로세스가 생성
- 리눅스 사용자 (로그인 사용자/그룹) 기반으로 관리
- 리눅스 리소스(파일) 권한(소유자, 소유자 그룹, 모든 사용자에 대한 읽고, 쓰고, 실행 하는 권한 설정) 관리
반응형
'Computer Science' 카테고리의 다른 글
시스템 프로그래밍 핵심 기술 (0) | 2022.01.09 |
---|---|
시스템 프로그래밍 - 쉘 사용법 (0) | 2022.01.06 |
파일 시스템 (0) | 2022.01.03 |
가상 메모리 (0) | 2022.01.01 |
스레드 (Thread) (0) | 2021.12.29 |
댓글