안녕하세요^^ 오늘은 유닉스/리눅스의 구성요소에 대해 알아보겠습니다. 유닉스/리눅스에서 제일 중요한 부분은 커널인데요, 해커들이 주로 공격하는 곳이 커널입니다. 예를 들어서 shell Coding을 통해서 shell 권한 상승 후 exploit을 하거나 BOF(Buffer over Flow)를 통해서 해킹을 합니다. 

 

 

유닉스의 구조

-커널

- 유닉스 운영체제의 핵심입니다. 프로세스 관리 , 메로리 관리, 파일 시스템 관리, 장치 관리 등 컴퓨터의 모든 자원을 초기화하고 제어하는 기능을 수행합니다. 시스템을 최초로 구동할 때 커널은 메모리에 적재되는데, 메모리에 상주하면서 프로세스 스케줄링과 메모리, 디스크 드라이브, 네트워크 인터페이스 등 하드웨어 자원을 모든 사용자에게 할당하고 제어합니다.

-커널은 파일 서브시스템프로세스 제어 서브시스템으로 구성됩니다.

 

파일서브시스템에서는 메모리, 외부장치에 데이터를 전송하거나 블록 단위로 입출력을 실행할 때 메모리의 일부를 버퍼로 할당하고, 이것을 사용자의 주소 공간과 외부장치 사이에 두는 디스크 캐시 방법으로 파일을 관리합니다.

 

 

프로세스 제어 서브시스템에서는 프로세스의 동기화와 프로세스 간 통신, 프로세스 간 메모리 관리, 프로세스 스케줄링과 디스패칭을 담당합니다. (fork, exec, exit, wait, signal 등이 있음)

 

-셸은 사용자와 커널 사이의 중간자 역할을 담당하는 특별한 프로그램이다. 셸을 사용자가 입력을 하게 되면 명령을 해석하여 커널에 넘겨주면 커널이 명령의 수행 결과를 돌려줍니다. 셸은 이것을 다시 사용자가 이해할 수 있는 형태로 바꿔서 출력합니다. ex) C 셸, 콘 셸, 배시 셸, z 셸 등

유틸리티와 파일 시스템 

유닉스는 각종 개발 도구, 문서 편집 도구, 네트워크 관련 도구 등 매우 다양한 유틸리티를 제공합니다. 유틸리티는 사용자에게 편의를 제공하려고 준비한 시스템 프로그램입니다. 유닉스는 계층적으로 구성된 파일 시스템을 사용하여 시스템 파일과 사용자 파일을 체계적으로 관리합니다. 

 

 

이상포스터를 마치겠습니다.

준비물 : USB 8GB 이상, 손, 키보드, 마우스 

 

칼리리눅스 다운로드  https://www.kali.org/downloads/

Refus 다운로드 https://software.naver.com/software/summary.nhn?softwareId=MFS_111001

-칼리리눅스 (Kali Linux)

Kali Linux Light 64-Bit 또는 32-Bit를 깔아줍니다. 

여기서 칼리리눅스 라이트버전을 까는 이유는 운영체제가 가볍고 프로그램을 하나하나씩 깔고 싶으면 추천드려요!

초보자는 kali Linux 64-Bit 아니면 Kali Linux 32-Bit를 추천합니다.

 

-Refus

1. USB의 장치이름과 같다면 ok.

2. 칼리리눅스의 버전과 iso파일이 같다면 ok ( 2번에 맨 오른쪽 보시면 선택해서 iso파일을 찾으면 됩니다.)

 

 

-칼리리눅스 설치 도중 에러

에러 1. 만약 설치과정에서 CD_ROM 같은 에러가 뜬다면 그 상태에서 USB 뺏다가 꽂아보세요!

에러 2. 안 된다면 Refus의 포맷옵션에서 NTFS로 바꾸고 DD 이미지 모드로 쓰기로 한 번 해보세요! 

 

 

이렇게 완료가 된다면 USB로 컴퓨터로 부팅하면 완료가 됩니다. 

 

 

추가적으로 DD이미지와 ISO 이미지의 차이점에 대해서 설명드리겠습니다. 

- DD는 이미지를 USB에 정확히 복제 한 것입니다. USB의 첫 번째 섹터의 첫 번째 바이트부터 시작하여 이미지의 데이터가 소진 될 때까지 바이트를 계속 복사합니다.

- ISO는 Windows가 항상 이해할 수 있는 방식으로 USB를 분할하고 포맷 한 다음 ISO 이미지의 각 개별 파일과 디렉토리르 새로 만든 파일로 복사하는 것 입니다. 

 

DD는 책으로 가득 찬 전체 책장을 거실에 복제하는 것 , ISO는 먼저 책장을 제공하는 것(벽에 맞는 공간에 맞춘 다음 책을 하나씩 복제합니다.)

 

 

-Refus 안의 설명

파티션의 MBR 방식과 GPT 방식이 있습니다. 

MBR(마스터 부트 레코드)는 2TB이하 일때는 MBR 방식을 사용합니다. 최대 4개의 주파티션을 만듦

GPT(GUID 파티션 테이블)는 2TB이상 일때는 GPT 방식을 사용합니다. 최대 128개의 파티션을 만듦

 

이상 포스터를 마치겠습니다.

하이퍼레저

하이퍼레저 패브릭(Hyperledger Fabric)이란?


-> 하이퍼레저 패브릭은 허가용 프라이빗 블록체인(Permissioned and Private Blockchain) 형태로 개발되었으며, 이더리움,비트코인 등 누구나 참여할 수 있는 퍼블릭 블록체인(Public Blockchain)과 달리 MSP(Membership Service Provider)라는 인증 관리 시스템에 등록 된 사용자만이 하이퍼레저 패브릭 블록체인에 참여할 수 있습니다.


하이퍼레저 패브릭(Hyperledger Fabric)의 특징


1. 허가 된 사람만 참여가 가능합니다.
2. 일반 프로그래밍 언어 사용(GO, node.js)  
3. 다수의 거래를 병렬적으로 빠르게 처리 가능 
4. 교체 가능한 모듈 구조 (SOLo, Kafka, PBFT) 
5. MSP를 이용하기 때문에 네트워크 참여자의 신원을 확인할 수가 있습니다.
6. 하이퍼레저 패브릭만에 시스템 체인코드 사용

 

이더리움

 

이더리움(Ethereum)이란? 


-> 이더리움(Ethereum) 재단에서 개발한 오픈소스 프로젝트, 블록체인 기술을 구현하기 위한 플랫폼(Smart Contract) 


이더리움(Ethereum)의 특징


1. 비허가용 (누구나 사용 가능) 
2. 내장 프로그래밍 언어 사용 (솔리디티)
3. 다수의 거래를 순차적으로 빠르게 처리 가능
4. 스마트 컨트랙트(Smart Contract) 사용 =  ex) 물물교환을 할 시 서로의 신뢰를 위해 사용(약속)

그래서 무엇을 쓰냐, 


사업용으로 쓰고 싶고 허가 된 사람만 참여가 가능하게 하고 싶다면 == 하이퍼레저 패브릭

익명을 권장하고 화폐를 쓰고 싶고 네트워크를 공개하고 싶다면  자체언어(솔리디티)를 쓰고 싶다면 == 이더리움

 

이상 포스터를 마치겠습니다.

'C&C++' 카테고리의 다른 글

백준 1110번 c++ 문제풀이  (0) 2020.04.05
C++ , 자바(Java) 입출력  (0) 2020.04.05
블록과 블록체인  (0) 2020.03.12
머클 트리(Merkle tree)  (0) 2020.03.12
유닉스/리눅스의 구성요소  (0) 2020.03.12

+ Recent posts