Linux와 Terminal은 현대 개발자의 필수품
=> 프로그램이 배포되고 동작하게 되는 환경이 바로 Linux OS가 설치된 서버이고, 그곳에서 명령어를 전달하는 수단이 바로 Terminal이기 때문
리누스 토발즈(Linus Benedict Torvalds, 69년생)가 개발한 Unix 기반 운영체제
GNU(GNU's Not Unix, 그누)
⇒ 자선단체 FSF(Free Software Foundation)에서 설립
⇒ 유닉스에 반대하여 누구나 자유롭게 사용할 수 있는 환경을 만들고자 했으나(편집기 emacs, 최적화 컴파일러 GCC, 쉘 Bash, 압축프로그램 GZip 등), 가장 중요한 커널이 빠져있었음
"1991년 2월 2일, 그는 인텔 80386 기반의 IBM PC를 구입하였다. 한 달 정도 페르시아의 왕자 등의 게임을 하면서 MINIX(Unix 기반 운영체제, Minimal + Unix)의 사본을 기다렸는데, MINIX가 도착한 직후 그는 리눅스 커널을 만드는 일을 시작하였다."
- 위키피디아
Linux, Git(모두 무료)을 최초로 개발함 ⇒ 오픈소스 커뮤니티에 크게 기여
구글에서 배포하는 안드로이드 역시 리눅스의 한 갈래
원래 CLI(Command Line Interface) 기반
사용자들을 위해 GUI(Graphic User Interface) 기능 추가 ⇒ 그노움(GNOME, 그놈)
안드로이드 기반 스마트폰, 임베디드 시스템(구글 네스트, 삼성 TV, 테슬라 자동차 등)
서버(로컬 서버, AWS 등에 설치된 인스턴스 등)에 설치된 리눅스 환경을 사용할 수 있음
예를 들어 우리가 만든 프로젝트를 AWS EC2 등을 통해 배포하려고 하는데 해당 서버에는 순수한 우분투 외에는 아무 것도 깔려 있지 않은 상태. 만약 git을 GUI를 통해서만 사용할 줄 안다면 여러가지 프로그램과 환경설정, 그 프로그램들의 확장 프로그램을 모두 설치한 후에야 사용 가능. (이 외에 리눅스 기반 가상 컨테이너를 사용하는 기술들
⇒ ex. Docker, Kubernetes
⇒ 윈도우즈와의 호환은 아직 불완전한 상태
서버의 다양한 동작들을 매뉴얼하게 조작할 수 없음. 쉘 스크립트를 사용한 파이핑, 스케줄링, 유저 그룹 및 파일/폴더에 대한 권한 설정 등.
그렇기 때문에 개발자들에게(특히 직접적으로 서버, 인프라를 구축해야 하는 백엔드 개발자들에게) 아주아주 중요
Windows에서도 Linux를 받아들이기 시작
<출처> wecode(코딩 부트캠프) 세션