728x90
HW
화면 해상도 (모니터)
- HD > FUD > QHD > UHD
- 픽셀의 차이
- DP 케이블, HD 케이블
- TV = HD
- Computer = UHD (그래픽카드 + 모니터)
프린터
- PPM (Page Per Minute)
- DPI (Dot Per Inch) : 최소 150dpi, 기본 300dpi 이상 이어야지 제대로 인쇄됨.
- 화면 : 72dpi (예시) ↔ 인쇄 : 최소 150dpi, 기본 300dpi 이상 이어야지 제대로 인쇄됨.
SW
운영체제
- 1:1
- DOS (Unix와 유사)
- 한 사용자가 한 개의 프로그램 사용
- 1:다
- Windows, MacOS, Android
- 한 사용자가 여러 프로그램을 사용
- 다:다
- 서버용 OS
- 여러 사용자가 여러 개의 프로그램 사용가능
- 데니스 리치 : 리눅스 개발
- Algol → B → Unix (B로 만듧) → C
- C → C++ → Java → C#
- UNIX, LINUX, Windows-Server
- UNIX
- 다중 사용자 방식의 대화식, 시분할처리 시스템용 운영 체제
- Solaris
- LINUX
- 토발즈 리누스가 커널 개발.
- 소형 컴퓨터에 UNIX가 작동하도록 만듦.
- 오픈소스로 다양한 배포 버전 존재 (Ubuntu, Radhat, debian)
- 리눅스 커널을 사용하면 리눅스라고 부른다
- Debian 계열 : Ubuntu
- RedHat 계열 : CentOS 무료, Fetora 유료, RedHat 유료
- GNU의 GPL에 의해 무료로 배포됨
- GNU 프로젝트에 의해서 완성
- 유닉스의 유료화에 반기를 들고 새로운 무료 버전의 유닉스를 만들자는 취지의 GNU(GNU is not UNIX) 단체가 생겼다
- GPL(GNU General Public License, GNU 일반 공중 사용 허가서)라는 ‘소스 공개 및 자유로운 이용을 원칙으로 하는’ 라이선스에 의해 배포
- 다중 스레드 지원
- 하나의 프로세스 내에서 여러 개의 네트워크 작업을 동시에 처리할 수 있기 때문에 강력한 네트워크 지원 가능
- UNIX
- 운영체제
- 사용자가 실행하는 응용 프로그램이 올바르게 실행되도록 돕고 필요한 자원을 할당해 주는 프로그램
- 커널 + 시스템 프로그램
- 프로세스 관리
- CPU 할당
- 자원 접근 및 할당
- 파일 시스템 관리
커널
- 사용자가 System Call을 통해 컴퓨터 자원을 사용할 수 있게해주는 자원 관리자
- 커널은 사용자가 하드웨어에 접근하고 통신하기 위한 중간 다리 역할
- 사용자 모드 → system call → 커널 모드 →
- system call : 사용자 모드 → 커널 모드로 전환
- CPU, 메모리, 파일, 네트워크, 입출력 장치 등을 관리
다중 사용자
- 여러 사용자가 동시에 같은 OS에 접근하여 이용
다중 작업
- 한 사용자가 동시에 여러 작업 이용
시분할처리
- CPU의 처리 시간을 아주 짧게 세분화하여 각 프로그램에 차례대로 CPU 할당.
- 각 사용자는 마치 컴퓨터를 독점하고 있는 것처럼 사용한다. → 대화형
- 여러 사용자가 동시에 여러 작업 이용
대화형 운영체제
- 사용자가 명령어를 입력하면 바로 출력되는 결과를 화면에 표시해준다
- 컴퓨터와 사용자가 1:1 처럼 인식되는 것
OLE(Object Linking & Embedding) : 윈도우에서 프로그램 간의 데이터를 공유하는 기술
- 인터넷에서도 데이터 공유 OLE = Active X
AWS
- PC 대여
- 비슷한 플랫폼
- cloud type : 웹 서버 평생 무료
- DotHome : 정적 웹페이지 평생 무료
Application Program
- Word process
- 문서 작성
- Spread Sheet
- 전자 계산기
- Database
- MS-Access (정형 데이터)
- MySQL
- MariaDB
- Oracle
- MongoDB (off-line, 비정형 데이터)
- Redis (on-line, 비정형 데이터)
- 정형 데이터
- 미리 정해 놓은 형식과 구조에 따라 저장되도록 구성된 데이터
- 행과 열로 구성
- 데이터 모델을 준수하는 식별가능한 구조
- 시스템에 쉽게 적용할 수 있다
- 비정형 데이터
- 정의된 구조가 없이 정형화되지 않은 데이터
- 규칙이나 형식이 없다
- 문자열, 비디오, 이미지, 설문조사
- 정형 데이터
- Presentation
- Utility
- 백신, 압축, 복구, etc.
- Game
- Graphic
- 멀티미디어
- Communication
- Web browser : 크롬, 사파리, 파이어폭스, 오페라, 엣지
- Language
- 순차적 언어
- Fortran, RM-Cobol
- 구조적 언어
- C, Pascal
- 객체지향 언어
- Java, Python, C++ (윈도우 환경에서 실행되는 모든 언어)
- 순차적 언어
컴파일러/인터프리터/트랜스파일러
- 컴파일러
- 고급언어 > 기계어
- Fortran, Cobol, C, Pascal
- source → compiler → object file(기계어) → link → exe(executive file)
- 번역만 하고 의미는 모름 > 링크 통해 라이브러리를 검색해 실행 가능하게 됨
- Link : + lib (library)
- Link
- 컴파일된 오브젝트 파일들을 연결, 병합하여 실행 파일을 만듦
- B 코드에서 A 코드의 메소드를 참조할 때, A와 B를 연결해준다.
- 정적 링크
- 링커를 통해 링크를 실행하여 컴파일된 소스파일을 연결하여 실행 파일을 만듦
- 동적 링크
- 프로그램 실행 중, 외부에 있는 소스코드를 찾아서 연결한다.
- 링커가 필요없다.
- 링크 과정에서 c언어의 lib이 커서 exe 용량도 커지는 문제 발생
- 기능별로 라이브러리를 나눔
- 소스 코드에서 필요한 기능마다 각각 추가
- #include<stdio.h>
- 인터프리터
- JS, JSP, PHP, ASP, Python
- 스크립트 언어
- 소스가 공개됨
- 대화형 언어
- 한 줄 씩 실행된다
- 바이트코드
- Java, C#
- 트랜스파일러
- 한 프로그래밍 언어에서 다른 프로그래밍 언어로 변환
- TypeScript
- .tsx, .ts → .js, .jsx 변경해야 함
- .tsx, .ts 확장자를 웹 브라우저가 인식 못 함
- 확장자 형식만 바꾼 것. 기계어로 변환이 아님.
- BABEL
- JSES 6 이전으로 변환
- JS
- 2015, JSES 6 발표
- 2016, JSES 7
- 이후, TypeScript
- js는 브라우저 안에서 실행
- v8 엔진으로 독립적으로 실행
- Java 실행 과정
- java source > compiler > .class > JRE(JVM) > 실행
- JRE (win, mac, linux) ↔ link 대신
- JDK (JRE를 포함)
- Oracle JDK (유료)
- Open JDK (Oracle에서 만듦, 무료)
- Zulu JDK
- JVM이 프로그램 실행 도중에 필요한 .class를 찾아서 class path에 로드해준다.(Dynamic Link)
- API (App Programming Interface) > SDK (SW Development Kit)
- api가 모여서 sdk
- 예) direct x
- 32비트 vs 64비트
- CPU가 처리하는 데이터의 최소 단위, 즉 레지스터의 크기
- 64비트 : 대규모, 고부하 처리에 유리
Refs
리눅스, 유닉스
https://ko.wikipedia.org/wiki/유닉스
https://hi-guten-tag.tistory.com/88
https://gptjs409.github.io/infra/2019/09/23/linux.html
다중사용자
https://ko.wikipedia.org/wiki/다중_사용자
link
https://gofo-coding.tistory.com/entry/2-MIPS-Compile-Link-Run
https://da-nyee.github.io/posts/operating-system-compile-link-build/
https://kimvampa.tistory.com/27
리팩토링
https://ko.wikipedia.org/wiki/리팩터링
java jvm
https://doozi0316.tistory.com/entry/1주차-JVM은-무엇이며-자바-코드는-어떻게-실행하는-것인가
cpu 연산 단위
https://velog.io/@younoah/CPU의-32비트와-64비트란
시분할처리
http://terms.tta.or.kr/dictionary/dictionaryView.do?subject=시분할+시스템
커널
728x90
'TIL' 카테고리의 다른 글
[TIL] Linux 명령어 / main method (0) | 2023.09.23 |
---|---|
[TIL] 프로그래밍 언어 / TCP / UDP / 진수 변환 / 데이터 단위 / IntelliJ 단축키 / vi, vim (0) | 2023.09.21 |
[TIL] Computer HW / 컴파일러 / 인터프리터 (0) | 2023.09.19 |
[TIL] MLOps / ML Pipeline (0) | 2023.09.09 |
[TIL] Fast API / Uvicorn / ASGI (0) | 2023.09.08 |