해커스쿨 강의만화 기록_3
* 해커스쿨 강의만화 기록_3(중학교 단계) *
이번에는 3편, 중학교 단계입니다.
이번 편에는 프로그램의 전반적인 모습, 가장 기본적인 개념에 대해서, 메모리란 무엇인가? 에 대해서 다룬 것 같습니다.
==============================================================================================
지식의 출처는 해커스쿨입니다. 감사합니다. 문제 될 경우 필히 삭제하도록 하겠습니다.
==============================================================================================
[언어]
기계어-어셈-포트란(이때 고급언어 첫등장)-코볼-베이직-비
-씨-씨플플-HTML(+PHP)-python,delphi,java 등
미국 표준협회(ANSI) 에서 C언어의 표준안 발표(1990) -> ANSI-C
사람-c언어 작성(*source code*)-컴파일러(C언어->기계어(*binary code*))-컴퓨터가 보고-동작(프로그램)
패키지가 있나없나?
> ls /usr/bin/(package name)
ex. ls /usr/bin/gimp
있으면 경로 출력, 없으면 No such file or directory(오류뜸)
*** /usr/bin/ 에 대해
ex. > touch a.sh 라는 쉘 스크립트 하나 만들었다.
> chmod 777 ./a.sh
이 쉘스크립트를 실행시키려면? 경로입력을 일일히 해야한다.
경로입력없이 그냥
> a.sh
로만 실행시키려면?
> sudo mv ./a.sh /usr/bin/
=> /usr/bin/ 경로에 넣어라!
그러면 경로를 입력하지 않아도 바로 실행된다.
[소스코드 입력]
1. cat > main.c - 이후 소스코드 입력하고 완료 후엔 Ctrl+d
but, 입력한(엔터를 친) 부분이 수정불가한게 단점.
2. nano 혹은 gedit, vi 등 CUI 기반의 텍스트 에디터 사용
컴파일
> gcc -o main.out main.c -> 실행파일:main.out
> gcc main.c -> 실행파일:a.out
[vi editor]
1.명령모드 2.편집모드 3.라인모드
> touch main.c
> vi main.c
이후 보이는 화면은?
3.라인모드
:w = 저장
:q = 나가기
:q! = 세이브 없이 강제종료
:wq = 세이브 하고 종료
[메모리]
Ram = Random Access Memory,임의 접근 기억장치
속도가 빠르다(전기 신호), 하지만 전기 신호로 정보를 기록하기 때문에
컴퓨터 종료 시 사라진다.
HDD 는 금속 판에 자성 물질을 입혀서 저장 = 속도가 느림. 하지만 대용량(물리적 공간)
Rom = Read Only Memory, 읽기 전용 기억장치
Ram은 빠르다, 하지만 빈 공간에 저장해야 한다(덮어씌워지면 이전 정보가 사라짐)
프로그램들은 메모리에 접근하기 전에 빈 공간을 요청해야 함.(메모리 할당)
1byte = 8bit(8개의 자릿수를 의미)
@@@@ @@@@ 에서 @는 1bit, @@@@ @@@@는 1byte
@에는 0 or 1이 올 수 있다.
예외)ARM Assembly 에서는 메모리에서 @@ 이 1byte, 이는 Hexa 값이기 때문에 2의 8승, 즉256개의 정보가 들어간다
(0x00 ~ 0xFF) = @를 풀어서 보면? xxxx 와 동일, x에는 0 or 1이 올 수 있다.
즉, bit 는 자릿수다
n bit = 자릿수 n개