* 해커스쿨 강의만화 기록_4(고등학교 단계) *


마지막으로 4편, 고등학교 단계입니다.


이번 편에는 cmd 상에서 ping 명령어를 통해 단말기 유무를 판별하는 것을 보여주었습니다.



==============================================================================================


지식의 출처는 해커스쿨입니다. 감사합니다. 문제 될 경우 필히 삭제하도록 하겠습니다.


==============================================================================================



[컴퓨터 알아내기]

동일 네트워크 상 = 끝자리 하나만 다름

ex. 192.168.0.13 and 192.168.0.16 이런식(1~255)

cf) 192.168.0.1 과 같이 끝자리가 1은 거의 대부분! GateWay 로 쓰인다.


*** route 명령어 ***

Link = https://m.blog.naver.com/PostView.nhn?blogId=ys9922&logNo=90069129492&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F

********************


[ping 반복 c코드]

#include <stdio.h>


int main() {

int i;

char cmd[40];


for(i = 1;i<=255;i++) {

sprintf(cmd, "ping 192.168.0.%d", i);

system(cmd);

}

}


+ 핑 한번때리는 옵션:-c 1

sprintf(cmd, "ping -c 1 192.168.0.%d", i);


+ grep 으로 걸러내기:|grep from -> 응답이 있는 것은 from 이라는 문자열이 들어가기 때문.

sprintf(cmd, "ping -c 1 192.168.0.%d|grep from", i);


[구체적인 조사]

운영체제, SSH와 같은 포트의 오픈여부?

TTL값도 알아야함.

TTL? Time To Live, 패킷의 유효시간.

TTL=3은 최대 3개의 라우터를 거쳐갈 수 있다.

TTL 값의 존재 이유? 영원히 돌아다니는 패킷을 방지하기 위해

윈도우의 TTL = 100~128

리눅스의 TTL = 50~64


SSH = 22 port

SSH를 사용한다? => 22번 포트가 열려있다.

X-windows  = 6000번 퐅,

X-windows를 사용하지 않는다? => 6000번 포트가 닫혀있다.


-> telnet (대상의 IP주소) (포트번호)

열려있다?->허가됨

닫혀있다?->거부됨(refused)

ex. 

> telnet 192.168.0.13 22

Posted by NDC :

* 해커스쿨 강의만화 기록_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개

Posted by NDC :

* 해커스쿨 강의만화 기록_2(초등학교 단계) *


이전의 1편에 이어서 이번에는 초등학교 카테고리의 강의만화를 정리한 것들을 올리겠습니다.



==============================================================================================


지식의 출처는 해커스쿨입니다. 감사합니다. 문제 될 경우 필히 삭제하도록 하겠습니다.


==============================================================================================



[운영체제]

컴퓨터에서 어떤 작업이라도 하기 위한 가장 기초적인 프로그램

Bell 연구소의 UNIX 운영체제 개발(어셈블리어, 이후 UNIX는 C언어로 재개발된다)

-> 워크스테이션급의 고성능 컴퓨터를 위한 무거운 OS가 일파만파 생겨남

-> DOS(Disk Operating System) 개발됨(디스크 한장에 OS가 있다)

-> 빌 게이츠의 MS-DOS 개발됨(이후 MS-Windows 로 발전)

-> Linux 출시됨(리누스 토발즈)


[리눅스]

Unix 를 모태로 개발됨.

하지만 Kernel 을 포함한 모든 소스코드는 토발즈가 독자적으로 구현.

특징

- PC(Personal Computer)에서 사용가능.

- 멀티 유저 시스템을 지원(컴퓨터 한대에 한명이 아님, 자식 낳듯이 퍼질 수 있다->서버 시스템)

- 가볍고 안정적(저사양 컴퓨터에서도 사용가능)

- 무료, 오픈소스(내 마음대로 수정 가능)

- 글로벌하게 만들어가는 OS(오픈 소스 프로젝트, 지속적이고 빠른 업그레이드)


startx 명령어:x-windows 실행.(GUI 모드, Command 는 prompt 모드라고 한다.)


리눅스의 최고 관리자:root

- 사용자 관리(추가, 삭제, 패스워드 변경 등등)

- 서비스 관리(Web, FTP, Mail 등의 서비스 설치 및 삭제)

- 시스템 종료 및 리부팅

- 기타 중요한 설정 변경(날짜/시간, 네트워크 설정, 도메인 설정 등)


GUI->CUI(=TUI 진입:Ctrl+Alt+F1

CUI->GUI 진입:Ctrl+Alt+F7


CUI를 사용해야만 하는 경우

- 원격으로 나의 Linux 서버, 혹은 다른 사람의 서버에 접속할 때

- Linux의 설정을 세부적으로 변경하고 싶을 때

- 소스코드로 이루어진 새로운 프로그램을 설치할 때

- X-Windows 에 문제가 생겨 정상적으로 부팅이 되지 않을 때

- CUI 기반의 훌륭한 프로그램등을 사용해 보고 싶을 때(nmap, nc 등)


[데비안]

이안 머독으로부터 시작


[듀얼부팅]

- 두개의 하드에 각각 윈,눅 설치

- 하나의 하드를 두개의 파티션으로 나누어 각각 윈,눅 설치

- 윈 안에 눅 설치

- 눅 안에 윈 설치

Posted by NDC :