일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL Mapper
- 프로그래머스 붕대 감기
- hackerrank
- 붕대 감기 자바
- break 사용법
- spring security 설정
- 입출력
- 멀티태스킹
- CPU
- 오블완
- 오버로딩
- continue 사용법
- 객체지향
- 다형성
- 티스토리챌린지
- over()
- 자바의 정석
- 오버라이딩
- 혼공얄코
- 쿠키
- contiune
- 캡슐화
- java
- 프로그래머스
- 리눅스
- 붕대 감기
- 멀티프로세싱
- 자바의정석
- spring security
- 중첩 break
- Today
- Total
쉽게 쉽게
리눅스 본문
'혼자 공부하는 얄팍한 코딩 지식'을 읽으며 추가적으로 공부한 내용을 정리한 글입니다.
운영체제는 CPU, 메모리, 그래픽 카드 등의 기기들을 가동하고 제어해서 사용자가 컴퓨터로 각종 작업을 할 수 있는 환경을 마련한다.
즉 하드웨어 기기와 사용자를 연결하고 중재하는 역할을 한다. (줄여서 OS라고 부른다)
이런 운영체제 중 하나로 리눅스가 존재한다.
1. 컴퓨터를 사용하는 두 가지 방식
리눅스를 설명하기 이전에 운영체제가 인터페이스를 제공하는 방식으로 두 가지 방법을 알고자 한다.
인터페이스란?
인터페이스란 두 개 이상의 시스템이나 장치가 상호 작용할 수 있는 접점이다.
TV의 경우에는 리모컨과 TV 본체 버튼, 스마트폰의 경우에는 터치스크린을 인터페이스라고 할 수 있다.
이처럼 두 개 이상의 시스템이나 장치가 상호 작용하는 것을 말하며, 사람과 사물 또는 프로그램 사이에서 의사소통할 수 있도록 돕는 것을 사용자 인터페이스라고 한다.
1. GUI(Graphic User Interface)
GUI는 말 그대로 그래픽으로 구성된 사용자 인터페이스로 아이콘, 툴바, 버튼, 메뉴창, 탐색기 등과 같이 알기 쉬운 그림 요소로 구성되어 있으며, 이들을 클릭하거나 터치함으로 사용할 수 있다.
(그냥 지금 우리가 컴퓨터를 사용할 때 사용하는 화면이 GUI인터페이스다. (ex 메모장))
2. CLI(Command Line Interpreter)
CLI는 검색어 화면에 명령을 입력하고 그 결과로 나타난 텍스트를 확인하는 방법이다.
즉 명령어를 입력해서 사용하는 인터페이스를 말한다.
시작화면에 cmd를 검색하여 나오는 화면이 CLI 방식의 인터페이스다.
리눅스가 이 방식에 해당한다.
CLI 방식은 기본 명령어를 알고 있어야 하기 때문에 진입 장벽이 높으며, 활용도가 떨어지는 편이다.
그러나 CLI는 여러 장점을 가지고 있다.
장점
- CLI 환경은 컴퓨터 자원을 덜 소모한다.
화면에 컴퓨터 자원을 소모하는 GUI 방식에 비해 그래픽 요소가 덜한 CLI 방식은 자원을 덜 소모한다.
- CLI 환경이 간편하고 정확하다.
반복되는 작업을 일정한 방법으로 진행하는 데는 CLI가 오히려 더 간편하고 정확하다.
만약 파일을 이동한다면
GUI 방식으로 파일을 이동할 때는 기존의 위치와 옮길 위치를 화면에 띄우고 드래그하여 이동
(드래그 실수나 잘못된 위치 등의 실수가 일어날 수 있다)
CLI 방식으로는 한 줄의 명령어를 입력하여 간단히 해결할 수 있다.
(명령어: mv [옵션] [원본파일] [이동위치])
- 네트워크 환경에서는 GUI보다 CLI가 더 적합하다.
굳이 화면을 볼 필요없이 각종 잡업만을 하는 하는 환경에서는 CLI 환경이 더 적합하다.
이런 CLI 방식의 운영체제가 바로 리눅스다.
2. 리눅스란?
리눅스는 핀란드 출신 개발자인 리누스 토르발스가 개발한 운영체제다.
대형 컴퓨터에서만 사용할 수 있던 기존의 운영체제를 개인용 컴퓨터에서도 사용할 수 있도록 운영체제의 핵심부인 커널을 만들었고 이를 공개했다.
리눅스의 구성요소
1. 커널 Kernel
리눅스 운영체제의 핵심.
운영체제와 사용자 사이에는 커널과 셸이 존재한다. 운영체제에서 사용하는 언어와 사용자 언어가 다르기 때문에 사용자가 명령을 입력하면 셸에서 명령어를 받아 운영체제가 사용할 수 있는 언어로 셸을 통해 번역을 수행한다. 이렇게 번역된 언어를 커널로 전달하고 커널은 해당하는 작업을 수행한다. 즉, 커널이 실제로 운영체제를 운영하는 놈이다.
사실 리눅스는 엄밀히 말하면 리눅스 커널(Linux Kernel)을 의미한다.
즉, 리눅스는 커널의 형태로 만들어져 있어 운영체체가 수행해야 하는 핵심 기능만 정의돼 있으며, 이외의 부분은 사용자가 자신의 용도에 맞게 커스터마이징하여 사용할 수 있다.
2. 셸 Shell
사용자와 커널의 중간에서 사용자의 명령어를 해석하여 커널에게 전달한다. 일종의 명령어 해석기다.
커널이 수행하는 작업은 실제로 사용자에게 보이지 않고 커널이 작업한 결괏값이 셸에 의해 사용자가 이해할 수 있는 언어로 번역되어 화면에 출력되는 것이다.
-리눅스에서 대화형 사용자 인터페이스를 의미
-사용자가 입력하는 명령어를 이해하고 실행하는 역할
-운영체제 바깥 계층에 위치
-사용자와 커널의 의사소통 담당
-cshell, bourneshell, vashshell, tcshell 등의 다양한 종류가 있음
3. 사용자 프로그램 Application
리눅스 환경에서 사용하는 프로그램. 웹서버, FTP, DB 서버 등 ..
리눅스 특징
1. 리눅스는 윈도우와 맥 OS과 같은 운영체제와 다르게 오픈 소스라는 점이다.
때문에 전 세계의 개발자와 전문가가 오픈된 소스를 기반으로 더욱 개량하여 빠르게 발전할 수 있었다.
2. 리눅스는 거의 대부분이 C언어와, 어셈블리 언어로 작성되어 있다.
C언어는 특정 기계에 비의존적이기 때문에 어떤 하드웨어에도 적합하게 변형이 가능하다.
즉 리눅스는 이식성과 확장성이 뛰어나다.
3. 리눅스는 커널, 파일 시스템, 쉘 등의 리눅스 시스템의 기반이 되는 모든 프로그램이 소스코드로 공개되어 있어
버그가 발생할 경우 상업적 소프트웨어에 비해 신속하게 패치가 개발되어 공개될 수 있다.
게다가 국제적이고 개방적인 개발 환경을 가지고 있기 때문에 완성도가 높고 보안성이 뛰어나다.
즉 리눅스는 안정성과 보안성이 높다고 할 수 있다.
4. 리눅스는 다양한 개발 환경과 장치를 지원한다.
오픈 소스 형태로 제공되며 많은 프로그램을 지원하도록 개발되었기 때문에 다양한 웹서비스를 구축 및 서비스 할 수 있다.
ex) 웹서버, 메일서버, DB서버, Proxy 서버, DNS, 파일서버, 방화벽, FTP, 원격로그인 등의 프로그램을 지원
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다. |
'서버 > 리눅스' 카테고리의 다른 글
리눅스 서버시간 확인 및 변경 (1) | 2024.05.28 |
---|---|
리눅스 명령어 정리 (4) | 2024.03.17 |
리눅스로 DB 계정 생성 (1) | 2024.01.10 |