일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- atexit()
- msync
- foreground process
- bash shell 변수
- 후디니
- houdini
- exec 시스템 콜
- 섭페
- 추가 업로딩 중
- substance painter
- background process
- pane & desktop
- copy-on-write
- Symmetry
- 개체 외곽 하이라이트 기준선 없애는 법
- 섭페에서 텍스처 추출
- ps 명령어
- mmap
- 3D 배경 그래픽
- fork 시스템 콜
- Standard Stream
- bg 명령어
- 3Ds max 기초
- exit()
- Redirection
- 뷰포트
- bash shell 반복문
- 생활코딩 복습
- bash shell 조건문
- wait 시스템 콜
- Today
- Total
Researcher to Developer
09. LINUX 의 특징과 역사 본문
#시스템 프로그래밍 선수 과목
C언어
자료 구조
컴퓨터 구조
운영 체제
#리눅스 특징 LINUX
1. 서버에 많이 사용되는 운영 체제
웹 브라우저(Client)에서 HTML파일을 서버에 요청하면 서버가 HTML 파일을
웹 브라우저(Client)에 전달한다.
윈도우 OS는 클라이언트일 경우가 많고
서버는 LINUX OS가 사용되는 경우가 많다.
(서버 하드웨어 위에 LINUX 가 설치됨)
2. 프로그래밍 할 때에 많이 사용되며 유용하다.
프로그래밍 언어로 프로그램을 작성하면, C언어와 같은 언어는
컴파일러라는 별도 프로그램이 컴퓨터가 이해할 수 있는
기계어로 변환해주어야 한다.
리눅스를 사용하면 컴파일러가 작업을 처리하는 속도가 빨라진다.
3. 클라우드 컴퓨팅에 많이 사용됨(아마존이 제공하는 AWS 서비스가 유명)
미리 서버 컴퓨터들을 만들어 놓고 서버가 필요한 사람 혹은 회사들에게
간단한 클릭 만으로도 해당 서버를 사용할 수 있도록 빌려주는 것
4. 운영 체제, 소프트웨어의 대부 UNIX 계열 운영 체제
완전 프로그래머 스타일
5. Plain 하게 프로그래밍이 가능(장점)
ANSI C - C언어 표준
표준적인 사용에 의거해서 프로그래밍할 수 있다.
#LINUX 배경
리누스 토발즈(Linus Torvalds)가 개발
- 대학에 있는 UNIX 컴퓨터를 집에서 쓰고 싶다는 생각에서 시작함
- 다중 사용자, 다중 작업(시 분할 시스템, 멀티 태스킹)을 지원하는 UNIX와 유사한 운영체제
#GNU 프로젝트
Gnu is Not UNIX
유닉스 운영체제는 여러 회사에서 각자 개발하고 있었고, 소스를 공유하지 않았음.
새로 만든 기술은 오픈하지 않았음
"리차드 스톨만" : 소스를 공유하지 않는 환경에 반대하여 초기 컴퓨터
개발 공동체의 상호협력적인 문화로 돌아갈 것을 주장하며, 1985년도에 GNU 선언문을 발표
GNU 프로젝트를 지원하기 위해 자유 소프트웨어 재단(FSF) 설립과,
GNU 공개 라이선스(GPL)라는 규약을 제공
GNU 프로젝트
UNIX 운영 체제를 통쨰로 대체할 수 있는 운영 체제를 만들겠다.
단, UNIX와 달리 소스를 오픈하겠다.
#GPL 소스 라이선스
GPL 프로그램은 어떤 목적으로, 어떤 형태로든 사용할 수 있지만
사용하거나 변경된 프로그램을 다시 배포하는 경우 동일한 GPL 라이선스로 공개해야함.
결국 소스 오픈을 장려하기 위함
이 프로그램은 소스를 무료로 제공하니 알아서 사용하되
업데이트를 하든 직접 새로운 것을 만들던 그것들 역시 GPL 규악을 걸어라, 즉 기술은
공유되어야 한다.
#GNU 프로젝트와 GNU Hurd
운영 체제 커널 개발 시도 - GNU Hurd
→ 운영체제에는 필요한 라이브러리, 컴파일러, 에디터, 시스템 콜, API, 쉘 개발이 필요하다.
사용자가 쉘을 통해 운영 체제에 접근하여 하드웨어 자원을 사용할 수 있고,
응용 프로그램도 운영 체제에 컴퓨터 자원을 요청하기 위해 시스템 콜을 이용해야함
운영 체제는 시스템 콜, 시스템 콜을 사용하기 위해
언어별로 API을 제공해야 함 그래야 응용 프로그램이 여러 가지 API를 종류별로 묶은 라이브러리를 이용하여
시스템 콜을 통해 운영 체제에 요청을 하게 됨
#GNU 프로젝트와 리눅스
GNU Hurd (OS)개발이 지연됨
"리차드 스톨만"이 리누스 토발즈가 리눅스 커널 소스를 오픈해서 제공하고 있는 것을 발견
리누스 토발즈에게 제안 - 리눅스 무료로 오픈하지 않겠니??
GNU 프로젝트 산출물과 리눅스 커널이 통합 개발되기 시작
'코딩 > Basic' 카테고리의 다른 글
LINUX 기본 구성 (0) | 2020.12.24 |
---|---|
Windows에서 AWS 사용하기 (0) | 2020.12.23 |
08. 가상 머신의 이해 (0) | 2020.12.20 |
07. 부팅 시스템의 이해 (0) | 2020.12.20 |
06. 파일 시스템의 이해 (0) | 2020.12.20 |