- 운영체제, 커널, 오픈소스 등 [chapter 04 기본 미션]
1. 운영체제 : 컴퓨터를 사용할 수 있도록 해주는 소프트웨어
하드웨어 기기와 사용자를 연결하고 중재하는 역할 ex) 윈도우, 맥OS, 리눅스(LINUX) 등
① 사람이 컴퓨터를 쉽게 사용할 수 있도록 도와주는 시스템 소프트웨어
② CPU, 메모리, 그래픽 카드 등의 기기들을 가동하고 제어해서 사용자가 컴퓨터로 작업할 수 있는 환경 마련
- 기계에 따른 운영체제 점유율
- PC : Microsoft Windows, Apple MacOS, Linux
- 모바일 : Google Android, Apple iOS
- 스마트워치 : WearOS, WatchOS
- 초소형컴퓨터 : 라즈베리 파이 OS
2. GUI vs CLI : 컴퓨터를 사용하는 두 가지 방식
- GUI (Graphic User Interface)
그래픽으로 구성된 사용자 인터페이스. 그래픽 요소들을 사용하여 사용자와 상호 작용
→ 아이콘, 툴바, 버튼, 메뉴창 등 직관적이고 알기 쉬운 그림 요소로 구성
- CLI (Command Line Interface)
검은 화면에 텍스트로만 구성된 사용자 인터페이스. 명령줄에 텍스트를 입력하여 컴퓨터에게 일을 시킴
→ '검은 것은 배경이요 흰 것은 글씨로다', 기본 명령어를 알고 있어야 사용이 가능
- 개발자들이 GUI 보다 CLI를 더 많이 쓰는 이유
- CLI 환경이 컴퓨터 자원을 덜 소모한다. (그래픽 요소를 그리지 않기 때문!)
- CLI 환경이 간편하고 정확하다. (파일 옮기는 경우, GUI는 탐색기를 두 개 띄우고 해야 한다.)
- CLI 환경이 네트워크 환경에 더 적합하다. (GUI의 그래픽은 성능을 많이 잡아먹기에!)
3. 커널 : 운영체제의 심장
하드웨어와 응용 프로그램 사이에서 작동하며 컴퓨터에서 일어나는 모든 일을 통제하는 역할
① 소프트웨어가 하드웨어를 사용하기 용이하도록 인터페이스로 연결
② 컴퓨터가 안정적이고 효율적으로 작동할 수 있도록 컴퓨터 자원 분배
* 하드웨어, CPU, 메모리, 기타 기기 → 커널 → 사용자 인터페이스(GUI, CLI) → 응용 프로그램
4. 오픈소스 : 누구나 참여할 수 있는 소프트웨어
누구든지 프로그램의 소스코드를 살펴볼 수 있으며, 오류를 찾아 수정하거나 제안할 수 있는 소스코드
- 오픈소스 기여 예시
[일상] Github 오픈소스 첫 기여 후기 [MyBatis, contribute 진행과정 및 후기]
- Github 오픈소스 첫 기여 후기 약 한 달 전, 공부 중 MyBatis 공식문서 예제에 오류가 있는 것을 발견하여.. 프로젝트를 Fork하고 내용을 수정하여 MyBatis에 PR을 날렸었다. [일상] 주니어 개발자, Github
yermi.tistory.com
- 오픈소스 개발 예시
[Project] 조사모아(Josa-moa) 오픈소스 개발일기(1) [프로젝트 구축부터 배포 테스트까지]
- 조사모아(Josa-moa) 오픈소스 개발일기 (1) 지난 마이바티스 기여 이후, 오픈소스에 관심을 갖게되어 라이브러리를 배포해보고 싶다는 생각이 들었고.. 너무 큰 규모도 아니면서 뭔가 도움이 되는
yermi.tistory.com