Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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 31
Archives
Today
Total
관리 메뉴

우주코딩

본격 코딩 준비하기 / 프로그래밍 - 기계어와 OS 본문

본격 코딩 전 기초

본격 코딩 준비하기 / 프로그래밍 - 기계어와 OS

우주코딩 2021. 6. 29. 17:41

*VScode 설치
-소스파일 편집기
 ㄴ명령어를 작성한 파일, 실행 파일을 만들 때 사용
-HTML/CSS/JavaScript 파일 편집


*C,C++ 컴파일러 설치
- Window gcc = Mingw64 설치
gcc - 컴파일러
컴파일러를 사용할때마다 위치 지정이 불편하기 때문에 운영체제에 미리 등록

 

등록하는 방법
-gcc  컴파일러가 설치된 폴더의 경로를 OS환경변수 path에 등록
-> gcc 컴파일러를 실행할 때 경로 지정할 필요가 없다

* JavaScript엔진 = Node.js설치하기
-자바스크립트 실행하는 엔진
자바스크립트로 작성한 명령어를 실행
Nodejs.org에서 다운로드 

*프로그래밍 -프로그램 만들고 실행하기
1.컴파일 방식
명령어 작성 
cpu가 인식할 수 있는 명령어를 컴파일을 통해 기계어로 바꾼 뒤 운영체제에 전달 -> CPU가 명령어 처리

*기계어와 CPU
핀 8개로 값넣고 연산 = 8비트 cpu
8비트를 더 더해서 16개 핀으로 데이터,연산자 넣어서 작업수행 =16비트 cpu
우리가 쓰는 일반 컴퓨터 64bit(운영체제)
내부적으로 cpu가 다르더라도 운영체제 규칙을 동일하게 맞추는 것 = 호환 
명령문 -> 인텔 cpu기계어 -> 인텔 cpu = 실행, AMD cpu = 실행가능

 ㄴAMD cpu랑 인텔 cpu 명령 규칙에 따라 동작하도록 설계 되었기 때문에=>Intel CPU compatible(호환)


명령문 -> 인텔 cpu기계어 -> ARM cpu = 실행 불가능

ㄴcpu 규칙이 다르기 때문에


명령문 -> ARM cpu 기계어(번역을 다시) -> ARM cpu = 실행가능

어셈블리 언어 = 기계어와 비슷하게 표현하지만 기계어는 아님 - > 번역해야함 (어셈블리 컴파일러가 필요하다)
기계어 = cpu 명령어 = cpu instruction
핀의 규칙을 cpu instruction set이라고 한다
Instruction set = 기계어

*기계어 만들기
명령문을 작성할때 사용하는 언어(랭귀지) = "프로그래밍"
ex) Java C++ JavaScript
명령 ->번역 (컴파일러) ->기계어  
ex) gcc (=mingw64)

명령문 = 소스파일

기계어 = 오브젝트 파일
$gcc 소스파일명 
$gcc -o 실행파일명 소스파일명 = 이름주기

 

<cmd에서 실행하기

소스파일 폴더로 이동

gcc hello.c

gcc hello.exe 아니면 hello 만 입력해도 출력 가능>


*기계어와 OS
hello.c 소스파일 ->hello.exe ->하드디스크에서 램으로 읽는 것(로딩) -> 윈도우OS (가능), 리눅스(불가능), 맥os(불가능)
ㄴ운영체제마다 기계어를 배치하는 방법이 다르다
cpu가 같더라도 컴파일 할 때는 운영체제 양식에 맞게끔 번역해야 한다. 
같은 소스를 컴파일 하더라도 맥os용 c컴파일을 사용해야 맥에서 사용 가능하다. = intel cpu기계어 + macOS 배치

hello.c -> Windows intel cpu 컴파일러 (기계어) -> windows -> intel cpu (가능), ARM cpu (불가능)
다른 cpu 같은 운영체제(Windows) -> 기계어가 다르니까 아예 불가능

hello.c- > Windows ARM 용 C컴파일러 (기계어)-> windows -> ARM cpu (가능)
즉, cpu와 운영체제 모두 같아야 한다

2. 인터프리터 방식 = JavaScript, PHP, Python 등
소스파일의 명령을 도우미 프로그램을 통해 바로 실행 (통역기 =interpreter)

hello.js (JavaScript 언어로 명령어를 작성한다) ->node.js (자바스크립트 인터프리터 or 엔진) -> OS (실행)

$node 소스파일명
ex) node hello.js

Comments