분류 전체보기 629

02-02-02 Systemd

systemd 소개 systemd의 개요 정의 systemd는 이전 버전의 리눅스에서 사용하였던 SysV init 시스템을 대체하기 위한 시스템 및 서비스를 위한 매니저 역할을 수행한다. 레드햇사의 Lennart Poettering과 Kay Sievers가 처음 개발하였고, LGPL 라이선스이다. 특징 기존의 SysV init 스크립트와 호환성을 유지하도록 설계되었다. 부팅 시 시스템의 서비스들의 병렬로 시작할 수 있는 기능을 제공 데몬이 필요한 순간 실행하여 시스템 리소스를 절약할 있는 온디맨드 액티베이션(ondemand activation) 기능을 제공한다. 구체적으로 D-Bus, 소켓, 장치, 경로 기반 온디맨드 액티베이션 기능을 제공한다. 서비스 간 의존성을 고려하여 서비스의 시작 순서를 제어할 ..

02-02-01 리눅스의 구조

리눅스의 구조 부트 매니저 부트 매니저의 개요 부트 매니저의 정의: 보조기억장치에 위치한 운영체제를 주기억장치로 로드하기 위한 프로그램으로 '부트로더'라고 함 부트 매니저의 동작 원리 시스템이 켜지면 BIOS는 디스크의 첫 번째 섹터(0번 섹터)인 부트 섹터에서 512바이트의 MBR(Master Boot Recoder)을 읽는다. MBR은 크기가 제한되기 때문에 IPL(Initial Program Loader)이라 불리는 부트로더의 일부가 먼저 실행된다. IPL은 파티션 테이블을 검사하여 부트로더의 나머지 코드의 위치를 알아내 실행한다. 리눅스 부트 매니저 프로그램은 LILO(Linux Loader), GRUB(Grand Unified BootLoader), GRUB2가 있다. 부트 매니저의 종류 LIL..

02-01 리눅스와 하드웨어

리눅스와 하드웨어 하드웨어의 이해 컴퓨터의 구성 요소 중앙처리장치(CPU: Central Processing Unit) 외부에서 정보를 입력받아 컴퓨터 프로그램의 명령어들을 해석하고 연산하여 결과를 반환하는 컴퓨터 제어 장치 Register와 연산장치(ALU: Arithmetic-Logic Unit) 그리고 제어장치(Control Unit)로 구성 주기억장치(Main Memory) CPU가 처리할 명령어와 데이터를 저장하기 위한 컴퓨터 하드웨어 메모리는 휘발성 메모리인 RAM(Random Access Memory)과 비휘발성 메모리인 ROM(Read Only Memory)으로 분류 RAM은 DRAM(Dynamic RAM)과 SRAM(Static RAM)으로 나눔 ROM은 저장 데이터를 변경할 수 없는 M..

윈도우즈에서 리눅스를 사용, 리눅스 에뮬레이터 Cygwin

Cygwin(시그윈)은 완전한 형태의 리눅스 에뮬레이터입니다. 원래 시그너스 솔루션스가 개발한 자유 소프트웨어 모음집으로, 마이크로소프트 윈도우즈에서 POSIX기반 소프트웨어를 구동 및 개발할 수 있는 환경을 제공합니다. 시그윈은 다양한 패키지들을 설치하는 능력을 갖추고 있습니다. 표준 리눅스 명령들뿐만 아니라 여러 윈도우즈 고유 명령도 실행할 수 있다는 점은 Git Bash와 비슷합니다. Cygwin 설치 설치 파일은 해당 프로젝트 웹사이트(https://www.cygwin.com)에서 내려받을 수 있습니다. 처음 설치하는 경우는 [Install from Internet]을 선택합니다. 이미 다운로드 받은 패키지들이 있는 경우는 세 번째 항목 [[Install from Local Directory]를 ..

Linuxpia 2022.01.08

해킹학습을 위한 실험 VM 설치

해킹학습을 위한 실험 VM 참고 도서: 핸즈온 해킹 파일 다운로드 주소 해킹 대상으로 사용할 가상 서버를 만듭니다. 이 가상 서버의 이름을 'KaliLab'으로 하겠습니다. 해킹 주체로 쓰일 가상 서버 'Kali Linux' 설치에 대해서는 먼저 포스팅했습니다. 위 VM을 만드는 방법과 비슷하게 진행되지만, 한 가지 결정적으로 다른 것은 'KaliLab'은 가상디스크 없이 라이브CD로 사용될 것입니다. 이름은 'KaliLab', 폴더는 이전과 동일합니다. 종류는 'Linux', 버전은 'Linux 2.6 / 3.4 / 4.x (32-bit)'입니다. 64-bit이 아닙니다. 메모리는 '1024MB'입니다. 가상하드디스크는 추가하지 않습니다. 이 VM은 '라이브 모드'로 실행됩니다. 실제 컴퓨터라면, 리눅..

Linuxpia 2022.01.07

버츄얼박스에 Kali Linux VM 만들기

Kali Linux 설치 준비 버츄얼박스에 가상의 하드디스크를 만듭니다. 이 가상의 디스크에 칼리 리눅스가 설치되는 것입니다. 버츄얼박스 설치에 대한 포스팅은 먼저 소개했습니다. 리눅스를 설치하기 위해서는 CD드라이브에 ISO이미지를 마운트해야 합니다. 칼리 홈페이지에서 받은 파일을 비어 있는 '컨트롤로: IDE'에 올려야 합니다. 즉 CD드라이브에 CD를 삽입하는 것입니다. 여기서는 파일을 찾아 연결하면 됩니다. 아래 그림은 ISO 이미지 파일이 마운트 된 상태네요. 이제 버츄얼박스를 가동시키면 이 파일에 의해 부팅됩니다. 부팅하기 전에 네트워크 설정을 확인합니다. '어댑터1'은 공유기 역할을 하는 네트워크입니다. 이것을 통해 외부 인터넷이 연결되지요. 반드시 'NAT'으로 지정되어야 합니다. 다음은 ..

Linuxpia 2022.01.06

버츄얼박스에 Kali Linux 설치 준비

Kali Linux 칼리 리눅스는 데비안 계열의 배포판입니다. 아래 여러 버전이 있는데, 시스템의 아키텍처에 맞는 버전을 고릅니다. 내려받는 파일의 확장자는 [.iso]입니다. 라이브 Boot 이미지는 PC에 리눅스를 설치하지 않고 리눅스를 체험하고 간단한 작업도 할 수 있는 이미지 파일입니다. 가상머신에서 테스트할 생각입니다. 라이브 Boot 이미지는 '불가근 불가원'의 관계라고 할까요. PC에 영향을 미치지 않고도 리눅스를 사용할 수 있는 환경입니다. 호스트 전용 네트워크 설정 VM을 생성하기 전에 호스트 전용 네트워크를 만들어야 합니다. 다수의 VM이 같은 LAN에 물려 있는 것처럼 서로 통신하게 하려면 호스트 전용 네트워크가 필요합니다. 이 네트워크를 호스트 전용이라고 합니다. 이 네트워크는 Vi..

Linuxpia 2022.01.05

리눅스 라이브 CD

리눅스 라이브 CD 리눅스 운영 체제를 시험 또는 체험하기 위해 만들어진 CD. 주로 리눅스 운영 체제를 처음 접하는 사람들이 사용하며 여러가지 배포판 중 자신에게 맞는 배포판을 알아보기 위해서도 쓰입니다. 또는 시스템 복구용으로 쓰이기도 합니다. 라이브CD 그대로 컴퓨터를 사용하는거죠. 말그대로 ‘라이브’. 컴퓨터의 저장 공간을 사용하지 않고, 메모리를 이용하여 중앙처리장치가 일을 하는거죠. 여기서 리눅스 인스톨도 가능합니다. 브라우저를 열고 인터넷을 하는거죠. 블로그 등에 글을 올릴 수도 있고요. 특히, 컴퓨터 하드디스크 문제를 해결할수도 있습니다. 라이브CD로 부팅된 상태에서 터미널을 열고 'whoami'라고 명령을 줬더니 'mint'라고 답하네요. 라이브CD 기본 유저명이 'mint'군요. 아마 ..

Linuxpia 2022.01.03

01-02 리눅스의 기초

리눅스의 기초 리눅스의 개요 리눅스의 정의 및 의미 1991년 리누스 토발즈(Linux Torvalds)에 의해 오픈소스로 개발 리눅스의 정의: 개인용 컴퓨터, 서버, 모바일 기기, 임베디드 기기를 위한 유닉스 호환 운영체제 리눅스의 의미: 개발 초기에는 리눅스 커널만을 의미했다. 현재는 GNU 프로젝트를 통해 리눅스 커널 기반으로 다양한 라이브러리와 어플리케이션이 포함된 리눅스 배포판을 제공하고 있다. 리눅스의 일반적 특징 이식성 자유 소프트웨어 멀티 유저 멀티프로그래밍 계층적 파일시스템 다양한 기능을 제공하는 셸 우수한 보안 리눅스의 기술적 특징 모놀리딕 커널 장치의 파일화 다양한 파일 시스템의 지원 가상 메모리 스왑 동적 라이브러리와 정적 라이브러리 파이프 리다이렉션 가상 콘솔 리눅스의 장단점 리눅..

01-01 운영체제의 개요

운영체제의 개요 운영체제의 정의 및 목적, 역할 운영체제의 정의 사용자와 하드웨어 간의 상호작용을 위해 사용자 인터페이스를 제공하는 시스템 소프트웨어 컴퓨터의 중앙처리장치, 메모리, 주변 장치 등 하드웨어를 효율적으로 관리 응용 프로그램이 동작할 수 있는 환경, 즉 프로그래밍 인터페이스 제공 운영체제의 목적 처리능력 향상 반환시간의 최소화 신뢰도 향상 사용 가능도의 향상 운영체제의 역할 사용자의 하드웨어 접근이 용이하도록 운영체제가 하드웨어 제어, 입력, 출력 등의 관리를 수행 한정된 하드웨어 자원을 다수의 이용자가 공유할 수 있는 기능 수행 프로세스, 메모리, CPU 등의 한정된 자원의 용량을 효율적으로 사용하기 위하여 자원 스케줄링 제공 응용 프로그램의 작성과 실행이 편리하도록 시스템 호출을 제공 예..