[Linux - Ubuntu]
CLI - 커맨드 라인 인터페이스
C 언어 - 컴퓨터 구조 / OS
System Programming / Network Programmming
[IDE - IntelliJ]
Java - GUI - 그래픽 유져 인터페이스
객체 지향 프로그래밍
디자인 패턴 - 23가지 (에릭감마 외 3명)
-----------------------------
Mobile App(Android(Kotlin) / iOS(ObjC / Swift))
Web Client(HTML/CSS/Javascript/Node.Js)
Game Prorgramming(Unity, C#)
Server Programming(Node.js / Go / Docker)
OS(운영체제)
: 목적?
자원 관리
물리적 자원 - CPU / 메모리 / 하드 디스크
추상적 자원 - 프로세스 / 스레드 / 권한 ...
OS의 종류
Windows / Linux / macOS
CPU의 종류
Intel/AMD CPU - x86, x64, ia64
ARM CPU
Samsung - 엑시노스
퀄컴 - 스냅 드래곤
nvidia - 테그라
Apple - AXX
최초의 현대적인 OS - UNIX
: 켄 톰슨(B언어), 데니스 리치(C언어)
=> 이식성이 좋아졌다.
벨 연구소 - UNIX - System V
BSD - BSD Unix
- Mach ..
커널: OS의 프로그램을 커널이라고 한다.
UNIX - Minix OS(타넨바움 교수) - 마이크로 커널
- 리누스 토발즈 - Linux - 모놀리딕 커널
Source file
a.c
#include <stdio.h>
int main()
{
printf("hello world...");
}
Compiler - Compile
소스 코드를 컴퓨터의 명령의 집합으로 변경한다.
Linux - Kernel(99% - C / 1% - asm)
=> kernel.org
배포판
Redhat - RHEL / Fedora / CentOS
Ubuntu - Canonical
ubuntu.com
desktop(GUI) / server(CLI)
version 16.04.3 LTS 17.10
18.04 LTS
LTS(long term support)
OS
가상화(virtualization)
=> vmware(유료) / virtual box(무료)
vmware player
vmware fusion
VM
[OS]
-------
Windows
-----------------------------
Rocket chat
http://chat.thethelab.io
vi editor
편집 모드
i(insert)
명령 모드
esc(편집 -> 명령)
저장하면서 종료하는 방법
:wq
저장하는 방법
:w(write)
컴파일러
Windows - CL.exe / GCC / clang
Linux - GCC(GNU C Compiler) / clang
macOS - LLVM - clang / GCC
// C 언어
1. Source 파일 작성 : hello.c
2. Compile(gcc) : hello.o, foo.o, goo.o
: 소스를 기계어로 변경한다.
3. Link : a.out
// Java
1. Source 파일 작성 : Hello.java
2. Compile(javac) : Hello.class
: 중간 언어(IL, ByteCode)
3. JVM(java)