본문 바로가기

Windows/_System Programming

시스템 프로그래밍(System Programming)의 시작 시스템 프로그램(System Program) : 컴퓨터 시스템을 동작시키거나 하드웨어를 사용할 수 있도록 도와주는 프로그램 1. 컴퓨터 시스템의 주요 구성요소(Main Components) 컴퓨터 구조(Computer Architecture) : CPU 캐쉬(Cache) ↕ 운영체제(Operating System) : 메인 메모리(Main Memory) 하드디스크(Hard Disk) 2. 컴퓨터 구조 : 1) CPU : 중앙처리장치(Central Processing Unit) ALU(Arithmetic Logic Unit) : CPU 내부에 실제 연산을 담당하는 부분. 산술연산(+, -)과 논리연산(AND, OR)을 수행 컨트롤 유닛(Control Unit) : CPU 내부로 들어온 명령어를 해석해서 A.. 더보기
윈도우 파일시스템(File System) 파일시스템(File System) : 운영체제(OS)가 하드디스크에 데이터를 읽고, 쓰고 찾는, 파일을 관리하기 위한 규칙 FAT32 : File Allocation Table 32 (파일 할당 테이블) Sector(섹터)를 몇개의 최소 단위로 묶어서 각각의 묶음(클러스터 : Cluster)을 기본단위로 파일을 저장한다. 예를 들어 1MB의 디스크가 있다고 하면 1 Sector = 4096 byte (4kb) 1MB = 1024KB = 4KB*256 즉 섹터수는 256개이다. FAT32 시스템은 이 256섹터를(2섹터 = 1클러스터로 가정) 클러스터로 묶어서 128 클러스터로 나타낸다. 이 클러스터들에 번호를 붙여서 파일을 저장하고 검색하는 기준으로 삼는다. (색인이라고 보시면 됩니다) 클러스터 수의 효.. 더보기
파티션(Partition)의 개념 파티션(Partition)이란 쉽게 말하면 방입니다. 하나의 집에(물리적인 하드디스크) 여러개의 방(partition 파티션)을 만드는 것이죠. 방에는 2 종류가 있습니다. 1. 살림을 차릴수 있는 원룸(Primary 주파티션) 2. 잠만 잘수 있는 방(Logical 논리드라이브) 하드디스크(Hard Disk)의 구조를 대략적으로 표현한 그림입니다. 1. MBR : Master Boot Recoder 하드에서 가장 먼저 읽히는 부분이다. 하드디스크의 전체적인 관리를 한다고 볼수 있다. 4개의 파티션을 관리할수 있다. (참고 : 최대 나눌수 있는 파티션은 주파티션 3 + 확장파티션(논리 4개) = 7개입니다) 또 주파티션마다 각각의 부트섹터(BootSector)가 할당되는데 이럴 경우 컴퓨터가 어느곳의 부.. 더보기
Windows PE 구조 PE 포맷이란 윈도우 OS가 파일을 실행시키기 위해서 Portable Executable 포맷 (확장자 : .exe와 .dll)을 동적 라이브러리를 링킹하기 위한 참조 값과 API export and import tables, 리소스 데이터와 TLS 데이터를 캡슐화한 것이다. 소스 코드를 컴파일하고 링크를 하여 PE 구조의 실행 파일이 생성되는 과정을 순서도로 보면 실행 파일에는 어떤 내용들이 들어있는지 윈도우 Notepad.exe를 메모장으로 열어보겠다. MZ는 PE를 만든 Mark Zbikowski의 이니셜로써, MS-DOS 헤더의 시작을 알리는 문자이다. "This program cannot be run in DOS mod" 문자열은 DOS 에서 윈도우 프로그램이 실행되면 출력하는 문자열이다. PE.. 더보기