FAT File System의 구조는 아래와 같이 정리할 수 있다.

  • 부트 레코드(BR)
    1. 크기가 1섹터밖에 안되는 작은 영역
    2. Windows가 FAT 파일시스템을 인식하는 가장 중요한 역할 담당
    3. 이곳이 지워지면 윈도우는 해당 볼륨 인식 불가
  • 예약된(Reserved) 영역
    1. FAT16인 경우에는 1섹터, FAT32 경우에는 32섹터 할당.
  • FAT #1 과 FAT #2
    1. FAT 영역은 클러스트들을 관리하는 테이블이 모여 있는 공간
    2. 이곳에 손상이 가면 심각한 문제가 온다.
    3. FAT #1과 #2는 완전히 똑같은 내용을 가지고 있으며 #2 이상 부터는 만약을 대비해서 만들어둔 백업본이다.
  • 루트 디렉토리 영역(FAT16 에서만 존재)
    1. 위치는 항상 FAT #2 영역 뒤쪽에 고정
    2. 위치는 고정적이지만 크기는 가변적일 수 있다.
  • 데이터 영역
    1. 실제 데이터인 파일과 디렉토리가 클러스트 단위로 저장되어있다.
    2. 섹터 단위가 아닌 클러스터(Cluster)라 불리는 논리적 단위로 읽기 쓰기를 한다.
  • 사용하지 않는 영역
    • FAT File System 볼륨 구조화 과정중 생긴 잉여 영역


저작자 표시
신고

'Embedded > File System' 카테고리의 다른 글

NTFS MFT까지의 접근  (0) 2013.01.16
파일 시스템 요소들  (0) 2013.01.08
FAT File System의 구조  (0) 2013.01.08
FAT 파일 시스템  (0) 2013.01.04
파티션  (0) 2012.12.31

PyGame 라이브러리에서 제공하는 기능을 사용할 수 있는 창을 만들었다. 저기 안에서 그림들이 움직일 것이다.

import pygame, sys
from pygame.locals import *

pygame.init()                   # pygame 초기화
DISPLAYSURF = pygame.display.set_mode((400, 300)) # 화면크기 설정
pygame.display.set_caption('Hello World')         # 윈도우 타이틀 설정

while True:
    for event in pygame.event.get(): # 입력에 대한 이벤트가 있을 경우
        if event.type == QUIT:       # 종료시 입력시
            pygame.quit()            # pygame을 종료한 후
            sys.exit()               # 프로그램 종료
        pygame.display.update()      # 화면 갱신

  • Pygame.init()
    • 모듈 가져오기 이후 꼭 불러와야 할 초기화 함수
    • 이 함수가 무엇을 하는지는 우리가 알 필요는 없다.
  • DISPLAYSURF = pygame.display.set_mode((400, 300))
    • pygame.display.set_mode()는 pygmae.Surface 객체를 반환한다.
    • 터플형으로 들어있을 두 개의 정수는 픽셀 단위로 창의 가로, 세로 길이를 정한다.
    • 터플형으로 들어가 있어야 함을 잊지 말자.
  • 프로그램을 실행 및 지속 시키는 유일한 방법은 while loop로 프로그램을 두는 것이다.
    • 실행중인 프로그램에서 나가는 방법은 break문을 동작하게 만들어 두는 것이다.
    • 이것은 main game loop또는 main loop라 불리고 아래의 일들을 하게된다.
      • 이벤트 처리
      • 게임 상태 갱신
      • 게임 화면을 그린다.
    • 아래와 같은 순환 구조를 가진다

    • for event in pygame.event.get():
      • 이벤트 함수가 for문에 원소들을 event에 대입 시키며 루프가 해당 이벤트가 있었는지 검사하게 되는데, pygame.event.get()은 입력 받은 값을 내보내고 있는것이다.
      • 이벤트가 일어나지 않으면 빈 리스트가 돌게된다.
    • sys.exit()함수를 부르기 전에 반드시 pygame.quit()를 실행하여 라이브러리를 올바로 종료시킨 다음 프로그램을 마친다.
    • pygame.display.update()
      • Surface 객체(화면)에 저장되어있는 바뀐 화면을 뿌린다.


저작자 표시
신고

'컴퓨터 언어 > Python' 카테고리의 다른 글

PyGame으로 기본 창 띄우기  (0) 2013.01.08
Tkinter 를 이용, 간단한 이미지 뷰어 제작  (0) 2013.01.06
Button Module  (0) 2013.01.06
창 띄우기  (0) 2013.01.05
media 모듈을 이용한 이미지 띄우기  (0) 2013.01.05
파이썬 학습과제 - 1  (0) 2012.10.03
TAG pygame, Python


앞서 잠시 살펴보고 버릴려고 했던 Tk 로 그래도 간단하게나마 뭔가 만들어나 볼까 해서 나온게 사진을 불러 올 수 있는 버튼과 사진크기 출력해주는 라벨만 가져다 붙였다.


디자이너 같은게 있다고 들었지만 딱히 파고들 만한게 아니였기 때문에 다른 툴은 사용하지 않았다. 이런 GUI 만들때는 무조건 디자이너 툴을 사용하는게 맞다는 생각이 든다.

# coding: utf-8
"""
Tkinter 와 media 모듈을 이용, 간단한 이미지 뷰어
버튼을 눌러 파일을 선택 및 이미지로 불러온 다음, 새창에 출력
메인 윈도우에는 이미지의 크기를 출력 
"""

from Tkinter import *
import media

class mainUI():
    def __init__(self, parent): # 생성자 시작
        self.parent = parent    

        # 라벨 값 변경을 위한 객체 선언
        self.picWidth = StringVar()
        self.picHeight = StringVar()
        
        self.initUI()
        
    def initUI(self):
        self.parent.title("Raven") # 메인 윈도우 타이틀 설정
        self.buttonLoadFile = Button(self.parent, # 부모 윈도우 설정
                                     text = "파일 불러오기", # 버튼 타이틀
                                     command = self.loadFile) # 클릭시 불러올 함수
        self.buttonLoadFile.place(x = 20, y = 10)

        # Label for height
        self.labelHeight = Label(self.parent, text = "Height : ") # 라벨 설정
        self.labelHeight.place(x = 20, y = 50) # 라벨 좌표
        self.labelInfoHeight = Label(self.parent, textvariable = self.picHeight) # 값 출력을 위한 라벨
        
        # Label for Width
        self.labelWidth = Label(self.parent, text = "Width : ")
        self.labelWidth.place(x = 20, y = 80)
        self.labelInfoWidth = Label(self.parent, textvariable = self.picWidth)

    def loadFile(self):
        self.pic_file = media.load_picture(media.choose_file()) # 파일을 선택하고 이미지로 불러들여서 객체화
        media.show(self.pic_file)                               # 이미지를 새창에 출력
        self.showInfo()                                         # 이미지 정보 출력을 위한 메소드콜
    
    def showInfo(self):
        self.picHeight.set(media.get_height(self.pic_file)) # Height
        self.labelInfoHeight.place(x = 80, y = 50)

        self.picWidth.set(media.get_width(self.pic_file)) # Width
        self.labelInfoWidth.place(x = 80, y = 80)

    # def loadFile(self):
    #     self.C = Canvas(self.parent)        
    #     self.pic_file = PhotoImage(file = media.choose_file())
    #     self.image = self.C.create_image(0, 
    #                                      0, 
    #                                      image = self.pic_file)
    #     self.C.pack()

def main():
    mainWindow = Tk()
    mainWindow.geometry("300x150+300+300") # 메인 윈도우의 창크기와 위치
    app = mainUI(mainWindow)
    mainWindow.mainloop()

if __name__ == "__main__":
    main()

저작자 표시
신고

'컴퓨터 언어 > Python' 카테고리의 다른 글

PyGame으로 기본 창 띄우기  (0) 2013.01.08
Tkinter 를 이용, 간단한 이미지 뷰어 제작  (0) 2013.01.06
Button Module  (0) 2013.01.06
창 띄우기  (0) 2013.01.05
media 모듈을 이용한 이미지 띄우기  (0) 2013.01.05
파이썬 학습과제 - 1  (0) 2012.10.03
TAG GUI, Python, TK, Tkinter