본문 바로가기
Computer Science/Linux 다뤄보는 문과생

Linux 다뤄보는 문과생 (1) - 리눅스 기초편

by 싸코 2017. 11. 20.

 

데이터 분석 작업을 하다보면 리눅스 환경에서 작업해야 될 때가 많다. Mac OS도 Linux와 같이 Unix 기반의 운영체제로 terminal에서 작업을 할 때는 거의 비슷하다. 요즘에는 tensorflow도 Windows에서 지원을 해주지만 이전에는 windows에서는 사용이 안됐으며 사실 Windows 운영체제 만으로도 어느정도 데이터 분석 프로젝트를 수행함에 있어서 큰 문제는 없으나 리눅스 환경은 전체적인 통합 개발환경 측면에서 다른 사람들과 협업을 하고 원격으로 작업을 수행하고 공유하는 등을 생각해봤을 때 알아두어야 하는 운영체제인 것은 분명하다. 게다가 우분투가 인기가 많아지면서 GUI로 사용하면 윈도우와 거의 유사한 환경에서 작업을 할 수 있기 때문에 거부감도 많이 줄어들었다고 볼 수 있다.

 

Linux 다뤄보는 문과생 (1)

리눅스 기초편

1. 운영체제의 개념

2. 멀티태스킹

3. Unix 운영체제

4. Linux 개념

5. Linux 활용분야

 

1. 운영체제의 개념

1) 운영체제의 이해

운영체제는 사용자가 명령을 내려서 하드웨어를 사용할 수 있게끔 해주는 소프트웨어이며

사용자의 사용 목적과 의도 등에 따라 다양한 운영체제를 선택하여 사용할 수 있고

운영체제에 따라 사용자의 응용 프로그램도 달라짐

 

 

2) 운영체제의 정의

운영체제에 포함된 전체 패키지

응용 프로그램들과 이 모든 응용 프로그램의 실행 환경을 만들어주고 관리하는 커널(Kernel)이 포함되어 있음

 

좁은 의미의 운영체제인 커널은 모든 하드웨어를 관리하고 응용프로그램이 하드웨어에 접근하려면 커널에 접근을 요청해야 하고 커널이 하드웨어에 접근해서 요청 내용을 처리해서 응용프로그램에 돌려줌

 

 

3) 커널 기반과 비커널 기반 운영체제

 

커널 기반은 하드웨어와 응용 프로그램 사이에 개입을 하기 때문에 응답시간이 적지만 시스템이 안정적임

  - Linux, Unix, 윈도우NT

비커널 기반은 하드웨어에 직접 개입하여 응답시간은 빠르나 잘못된 조작을 저지할 방법이 없음

  - MS-DOS

 

 

 

2. 멀티태스킹 Multitasking

1) 멀티태스킹의 정의

여러 개의 작업(Task)을 동시에 수행시킬 수 있는 기능

 

 

 

3. Unix 운영체제의 구조

초창기 Linux 설계에 많은 영향을 미친 Unix를 알면 리눅스 이해에 도움이 됨

 

Hadeware - Kernel - Process 시스템으로 되어 있고

 

Kernel에는 파일 서브시스템과 프로세스 관리 서브 시스템으로 하드웨어 접근및 멀티태스킹을 위한 프로세스 스케줄링, 통신등을 함. 프로세스가 이런 일을 하려면 커널에게 시스템 호출을 해야 하고 이를 쉘을 통해서 작업함

 

쉘은 Unix 운영체제를 위한 명령 해석 프로그램의 이름이며 이용자와 시스템 간의 대화를 가능하게 해주며 자신의 목적과 취향에 따라 원하는 쉘을 선택하여 사용 가능

 

4. Linux의 개념

1) Linus와 Linux

Linux는 한 학생이 취미로 만든 운영체제의 커널 이름

 

Linux의 철학은 사용자에게 개방성, 효율성, 안정성이 있는 OS를 제공하는 것

 

 

2) Linux와 GNU

GNU Public License는 프리 소프트웨어를 만드는 많은 사람들이 사용하는 소프트웨어 표준 라이센스로 GPL 소스 코드에서 파생된 소프트웨어들은 모두 GPL 라이센스가 똑같이 적용됨

 

 

3) Linux 배포본

각 배포본에 따라 유용한 소프트웨어를 하나로 묶어 패키지로 묶고 관리하는 방법을 제공하는 편리성을 제공함

 

 

데비안 GNU/LINUX

 무료 양질의 UNIX 호환 운영체제와 응용프로그램을 만드려는 자발적 노력의 결과

 

 

우분투 Linux

누구나 어렵지 않게 리눅스를 사용하자는 의도로 데스크탑에서 사용할 수 있게 만든 배포판. 사용자 편의성에 초점

 

 

RehHat Linux

전세계 시장의 70~80% 점유

엔터프라이즈로 주로 사용됨 유료버전

 

CentOS Linux

엔터프라이즈급 Linux의 무료 배포본, RedHat의 RHEL 버전 클론. yum 기능은 더 효과적

 

 

4) Linux와 표준화

리눅스가 다양성과 호환성을 가짐

 

 

5) Linux의 사용자 인터페이스

명령어 라인(command line), GUI(Graphical User Interface)이 있음. GUI 환경에서도 사용할 수 있도록 개선중

 

리눅스에서는 KDE, GNOME 등의 데스크탑 환경을 GUI로 제공하고 있음

 

하지만 GUI는 사용자의 편의성이 높은만큼 더 많은 메모리를 필요로하고 하드웨어에 제약을 줄 수 있는 단점이 있음

 

 

 

5. Linux의 활용

1) Linux의 특징과 용도

사용 용도에 맞추어 최적화할 수 있고 비용이 저렴하고 원격 관리가 용이함

 

  • 멀티 프로토콜 지원 (파일/프린터 서버로 적절, 디렉터리 서비스와 호환)
  • 인터넷 서비스 지원 (Unix가 TCP/IP 기반이므로 인터넷 서비스 지원 -> 서버로 사용가능)
  • 응용 프로그램 지원 (다양한 무료 프로그램 존재)
  • 개발 환경 지원 (소스만 있다면 Linux로 가져와서 컴파일만 다시 하는 것으로 포팅 작업이 가능)
  • 임베디드 플랫폼 지원 (3인치의 원 보드 컴퓨터에 Linux 탑재 가능)

 

2) Linux 활용 사례

다양한 기관과 회사에서 Linux 기반의 인프라 구축 중

 

 

댓글