KR20030050542A - 게임용 누리 오퍼레이팅 시스템 - Google Patents

게임용 누리 오퍼레이팅 시스템 Download PDF

Info

Publication number
KR20030050542A
KR20030050542A KR1020010080991A KR20010080991A KR20030050542A KR 20030050542 A KR20030050542 A KR 20030050542A KR 1020010080991 A KR1020010080991 A KR 1020010080991A KR 20010080991 A KR20010080991 A KR 20010080991A KR 20030050542 A KR20030050542 A KR 20030050542A
Authority
KR
South Korea
Prior art keywords
game
operating system
nos
file
booting
Prior art date
Application number
KR1020010080991A
Other languages
English (en)
Inventor
박경원
윤정호
Original Assignee
주식회사 누리네트웍통신
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 누리네트웍통신 filed Critical 주식회사 누리네트웍통신
Priority to KR1020010080991A priority Critical patent/KR20030050542A/ko
Publication of KR20030050542A publication Critical patent/KR20030050542A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 게임용 누리 오퍼레이팅 시스템(NOS)는, 게임프로그램을 원활히 기동시킬 수 있도록 컴퓨터 시스템을 게임 특성에 맞도록 구조화시키고 서로 다른 파일 구조를 갖는 게임의 운영이 가능하도록 가상파일시스템을 구조화시킨 오퍼레이팅 시스템(OS; Operating System)에 관한 것이다.
본 발명은 다양한 구조의 파일시스템을 가지는 서로 다른 게임프로그램에 대해 접근이 가능하도록 하는 가상파일시스템을 포함하며, 게임진행을 위한 장치 전반의 운영 및 동작을 총괄적으로 제어하는 커널(kernel), 메모리를 일정 공간으로 분리시켜 작동시키는 파티션 테이블, 제1부팅단계를 실시하는 제1부트로더(primary boot loader), 제2부팅단계를 실시하는 제2부트로더(secondary boot loader), 각 자료의 원소들의 삽입 및 삭제를 제어함으로써 OS의 부팅시 발생하는 다수의 자료들을 이동과정을 진행시키는 스택(stack), 자료들의 연결상태에 대한 정보들을 저장하고 있는 맵로더 공간(map loader area), 및 복수의 자료파일에 접근하기 위해 해당되는 복수의 자료파일을 분석하는 디스크립터 테이블(descriptor table)를 포함한다.
따라서 본 발명은 세계적인 관심의 대상이 되고 있는 게임산업의 기술수준을 끌어올리는 데 일조하여, 게임산업의 경쟁력을 제고에 기여할 것으로 예상된다.

Description

게임용 누리 오퍼레이팅 시스템{The NOS(NURI Operating System) for game}
본 발명은 오퍼레이팅 시스템(OS; Operating System)에 관한 것으로, 자세하게는 게임프로그램을 원활히 기동시킬 수 있도록 컴퓨터 시스템을 게임 특성에 맞도록 구조화시키고 서로 다른 파일 구조를 갖는 게임의 운영이 가능하도록 가상파일시스템을 구조화시켜 커널을 형성함으로써 게임특성에 맞도록 설계되어 부팅되는, 게임용 누리 오퍼레이팅 시스템(NURI Operating System ; NOS)을 제시하기 위한 것이다.
일반적으로 OS(Operating System)로 불리는 오퍼레이팅 시스템은, 컴퓨터가작동하는 데 필요한 운영체제이다. 즉 다양한 프로그램을 동작시켜 다양한 작업을 수행하는 컴퓨터는 컴퓨터 본체외에 모니터, 프린터, 마우스, 키보드 등 많은 주변장치가 모여 하나의 시스템을 구성하고 있다. 이러한 주변장치들의 제어는 물론 하드웨어와 응용프로그램간의 인터페이스 역할을 하면서 CPU, 주기억장치, 입출력장치 등의 컴퓨터 자원을 관리하기 위해서는 기본적으로 운영되는 체제가 있어야 하며, 이러한 것을 운영체제, OS라고 한다. OS는 인간과 컴퓨터간의 상호작용을 제공함과 동시에 컴퓨터 시스템을 구동(booting)하고 작업의 순서를 정하며 입출력 연산을 제어한다. 아울러 프로그램의 실행을 제어하고 각종 데이터와 파일의 저장을 관리하는 등 컴퓨터시스템을 동작시키기 위한 기본적이면서도 핵심적인 기능을 수행한다.
최초의 운영체제는 IBM 컴퓨터의 사용을 위하여 제너널 모터스(General Motors; GM) 연구소에서 1950년 초반 처음 개발되었으며, 계속적인 연구가 진행되어 오퍼레이터의 개념이 적용된 운영체제가 도입되었다.
그리고 이제는 마이크로소프트사(Microsoft)의 윈도우즈(Windows)를 비롯하여, 운영체제의 공유와 개방을 표방하고 있는 리눅스(Linux), 그리고 서버급 등 대형 컴퓨터 시스템의 운영체제인 유닉스(UNIX)등 운영체제는 컴퓨터 시스템의 용도적 특성에 맞도록 다양화되고 있다. 아울러 이외에도 윈도우즈 탄생의 근간을 이루었던 MS-DOS가 있으며, CP/M, OS/2 등 매우 다양하다.
OS는 컴퓨터외에도 기능이 고급화 첨단화되고 있는 각종 전자기기에도 적용되고 있다. 아울러 컴퓨터 시스템과 그래픽 기술, 네트워크 시스템이 발달한 요즘에도 게임(프로그램)의 작동을 위해 OS의 도입이 필요한 실정이다.
세계 컴퓨터 시장을 주름잡고 있는 마이크로소프트사의 경우 첫 가정용 게임기인 X-Box를 출시할 예정에 있으나 기본적인 스펙(spec)이외에는 모든 내용을 비밀로 하고 있다.
게임에 있어서 미국보다 우위에 있는 것으로 평가되는 일본의 경우, 소니사(SONY)는 엄청난 성공을 거둔 플레이스테이션(Play Station ; PS)의 차기 버전으로 최근 플레이스테이션2(Play Station 2; PS2)의 출시를 앞두고 있다. 이러한 PS2에서는 대용량 하드와 빠른 속도의 인터넷 어댑터 등 네트워크 기능이 추가될 것으로 보이며, 또 휴대폰과도 연결이 가능하는 등 새로운 스타일의 게임이 될 것으로 예상되고 있다.
아울러 2001년 7월 출시된 일본 닌텐도(Nintendo)사의 게임큐브(GameCube)의 경우는 128비트 방식의 게임기로, 뛰어난 것으로 평가되고 있는 X-box를 뛰어 넘는 성능을 채택하고 있으며, 랜카드와 모뎀을 연결하는 것이 가능하고 저장매체도 충실해서 현재 상당한 기대를 받고 있는 상황이다.
아울러 기술의 발달과 시장성과 경제성을 가지고 있는 게임시장의 경우 세계 선진 각국은 새로운 전략 산업으로 육성할 태세를 보이고 있으며, 세계 일류급의 우수한 회사들 또한 전략적으로 접근하고 있는 상태에서 많은 투자를 하고 있는 상황이다. 이러한 게임은 CPU, 저장매체, 그래픽, 네트워크 등 관련기술의 발달과 더불어 더욱 고급화되고 있는 추세이며, 이런 추세에 따라 게임프로그램만의 인스톨과 실행에서 발전하여 보다 원활한 게임의 기동 및 실행을 위해 게임을 위한 OS가개발되기에 이르고 있는 상황이다.
하지만 게임시장이 광대하고 각 회사의 발전전략과도 관련되어 있어 각 회사는 핵심적인 기술내용은 비밀로 하고 있는 실정이며, 게임의 실행을 위해 적용되고 있는 몇몇 OS도 회사마다 호환이 되고 있지 못하고 있다. 아울러 게임의 실행에 있어서도 방대한 그래픽 자료의 처리 및 실행과정이 효율적이지 못한 상태이다.
따라서 이제는 날로 그 용량이 증가하고 있는 게임에도 게임의 실행을 효과적으로 진행시키기 위한 OS를 적용하느 것이 필요하게 되었다.
따라서, 게임 소프트웨어의 원활한 작동을 위한 본 발명의 목적은, 게임이나 게임프로그램을 원활히 기동시킬 수 있도록, 컴퓨터 시스템을 게임 특성에 맞도록 구조화시키고 서로 다른 파일 구조를 갖는 게임의 운영이 가능하도록 가상파일시스템을 적용시켜 OS를 형성하여 부팅되는, 게임용 누리 오퍼레이팅 시스템(NURI Operating System ; NOS)에 대한 기술을 제공함에 있다.
이를 위해서는 OS의 핵심인 커넬의 설계 및 관련된 기능을 게임의 진행시 발생하는 자료들의 처리에 적합한 상태로 구조화시켜 설계하는 것이 요구되며, 아울러 다수의 파일구조에 맞도록 OS의 부팅에 따른 인스톨(install)과 자료처리 과정을 효율화시키는 것이 중요하다.
도 1은 본 발명의 일실시예에 따른 누리 오퍼레이팅 시스템(NURI Operating System ; NOS)의 구조도.
도 2는 도 1의 OS를 초기화시키기 위한 OS 로더(loader) 프로그램의 일실시예를 나타낸 도면.
도 3은 도 1의 OS에서 제1부팅단계(first.S)가 실행되는 과정을 설명하기 위한 도면.
도 4은 본 발명의 일실시예에 따른 누리 오퍼레이팅 시스템(NOS)의 주요기능을 설명하기 위한 모식도.
도 5는 본 발명에 따른 엔포크(Nfork)의 실행과정을 설명하기 위한 도면.
도 6은 본 실시예의 NOS에서 버퍼 작동의 제어상황을 설명하기 위한 도면.
도 7은 본 실시예에 따른 노드(node) 개념을 설명하기 위한 도면.
도 8은 본 발명의 일실시예에 따른 가상파일시스템(Virtual File System)에 대한 모식도.
도 9는 본 실시예에 따른 파일 디스크립터(file descriptor)를 이용한 파일접근과정을 설명하기 위한 도면.
도 10은 본 실시예에서 메모리맵핑과정을 설명하기 위한 도면.
< 도면의 주요부분에 대한 부호의 설명 >
110 : 파티션 테이블(partition table)
120 : 커널(kernel)
130 : 제1부트로더(primary boot loader)
140 : 스택(stack)
150 : 제2부트로더(secondary boot loader)
160 : 맵로더 공간(map loader area)
170 : 디스크립터 테이블(descriptor table)
이하 첨부된 도면들을 참조하여 본 발명에 따른 누리 오퍼레이팅 시스템(NURI Operating System ; NOS)의 구성, 그리고 이러한 구성에 따른 기능 및 작용을 자세히 설명한다.
도 1은 본 발명의 일실시예에 따른 누리 오퍼레이팅 시스템(NURI Operating System ; NOS)의 구조도이다. 이러한 구조는 후술하겠지만 부팅된 OS가 컴퓨터 시스템의 주기억장치(메모리)에 탑재된 상태를 도시한 것이다.
본 실시예의 OS는 게임프로그램을 원활하게 동작시키게 위한 것이다. 아울러 본 OS는 누리네트워크(NURI Network)사가 게임을 보다 원활하게 작동시키기 위해 연구개발한 것으로 누리(NURI)의 이니셜을 따서 'NOS(Nuri Operating System)'라 명명하여 설명한다.
도시한 바와 같이, 본 실시예에 따른 게임 오퍼레이팅 시스템(OS)은 파티션 테이블(110, partition table), 커널(120, kernel), 제1부트로더(130, primary boot loader), 스택(140, stack), 제2부트로더(150, secondary boot loader), 맵로더 공간(160, map loader area), 디스크립터 테이블(170, descriptor table)을 포함하고 있다.
도 2는 도 1의 OS를 초기화시키기 위한 OS 로더(loader) 프로그램의 일실시예를 나타낸 도면이다.
이러한 OS 로더(loader) 프로그램은 본 실시예의 부팅에 사용되는 프로그램으로 여기서는 NLO(Nuri Operating System Loader)라 명명하며, 하드디스크 또는 ROM으로 NOS(오퍼레이팅 시스템)을 부팅시킬 수 있는 프로그램이다.
이러한 본 실시예의 NOS는 DFCMD_OFF 영역, DSC_OFF 영역, DSC_OFF2 영역, Descr(0).start 영역 그리고 Descr(1).start 영역으로 나누어 볼 수 있다.
이러한 OS 로더 프로그램 영역 구분은 필요에 따라 나눈 것으로 용어의 큰 의미는 없다. 다만 이러한 OS 로더 프로그램에는 프로그램 로딩과정에서 모니터 화면상에 나타내기 위한, 정상/오류에 대한 설명 문구(image descriptor table/default_command_line)와 다수의 이미지(NLO image)를 포함하고 있다. 아울러 이러한 OS 로더 프로그램은 최초 도 1의 커널(120) 영역에 로딩된 후 실행됨으로써 도 1과 같은 게임을 위한 OS가 정상적으로 부팅되게 된다.
도 3은 도 1의 OS에서 제1부팅단계(first.S)가 실행되는 과정을 설명하기 위한 도면이다.
도 2와 같은 OS 로더 프로그램이 커널(120) 영역의 일부분에 탑재된 다음 수행된 후에는 제1부팅단계가 수행되며, 본 도 3은 제1부팅단계(first.S)를 실행하기 위해 도 1 메모리상에 탑재된 상태를 나타낸 것이다.
먼저 제1부팅단계(first.S)가 시작되면 메모리상의 기본구조를 갖추기 위해, 도 1에 나타낸 메모리상 0x07C00 번지에 있는 제1부팅단계(first.S)의 부트섹터 내용을 0c9A000 번지로 이동시킨다. 그리고 스택(140, stack)을 세팅(setting)시키게 된다.
스택(140, stack)은 자료처리 구조의 하나로서 자료를 구성하는 각 원소의 삽입과 삭제가 한쪽 끝에서만 일어나는 선형 리스트를 의미한다. 즉 밑이 막힌 통에 자료들을 순서적으로 넣고 위에 있는 것부터 빼내는 자료입출구조라 할 수 있다. 따라서 스택(140, stack)에서는 나중에 들어간 원소가 먼저 꺼내어지므로 후입선출(LIFO;Last-In, First-Out)이라고도 한다. 이러한 스택(140, stack)은 자료를 기억시켰다가 다시 이용하고자 할 때 사용되며 컴퓨터 알고리즘에서 대단히 자주 쓰이는 중요한 자료구조이다. 즉 이러한 스택(140, stack)구조의 자료처리구조를 세팅시키게 된다.
이 후 모니터 상에 부팅과정의 진행중임을 알리는 'N'을 디스플레이하게 된다. 그리고 이러한 스택(140, stack) 후단에는 도 1에 도시한 바와 같이, 제2부트로더(150, secondary boot loader)를 위치시키게 된다.
이렇게 구조화된 후에 제1부팅단계(first.S)가 본격적으로 진행되는 과정을 살펴본다.
(a)에는 점프의 기계어인 'EB'가 들어간다. 점프를 나타내는 이러한 명령어는 'EB'뿐만 아니라, 제1부팅단계의 시작할 수 있는 다른 형태의 명령어도 가능하다.
(b)에는 'NOS'를 나타내는 문자열이 들어있으며, 이러한 문자열은 컴퓨터시스템의 부팅과정에서 사용자의 눈에 직접 확인할 수 있게 된다. 아울러 NOS 문자열에는 본 실시예의 OS가 게임을 위해 제작된 것임을 나타내게 된다. 또한 OS에 대한 기초적인 정보들, 예를 들면 시스템의 사양이나 OS의 동작에 효율적인 시스템 사양 등도 포함시켜 나타낼 수 있다.
(c)는 스테이지(stage)로서, 본 실시예의 NOS에서는 제1스테이지(STAGE_FIRST)를 나타내는 1이 들어간다. 따라서 후술할제2부팅단계(2nd.S)의 스테이지(stage)는 STAGE_SECOND가 된다.
(d)는 후입후출 패키지버전(LILO package version)을 나타낸다.
(e)는 시간초과(timeout)를 나타내는 것으로, 프롬프트에서 지정 시간동안 키보드입력이 없으면 자동으로 부팅(boot)되며, 오류(default) 값은 무한대이다.
(f)는 delay 값으로, 첫 번째 이미지(image)를 부팅하기 전에 기다리는 시간이다. 고유번호(serial No.)이 세트(set)되면 이 값은 작동할 수 있는 상태로 된다.
(g)는 포트(port)에 대한 내용이 들어가 있다. 즉 이 값은 리모트 로그인(remote log-in)시 사용되는 포트(port) 값이다. 즉 입력되는 시리얼 옵션(serial option)에 의해 세트(set)되며 입력된 값에 따라 COM 포트의 번호가 결정하게 된다. 예를 들어 입력된 값이 1이면 COM 1 포트가 결정된다.
(h)에는 시리얼 번호(serial number)가 들어가게 되며, 이 값은 RS-232C와 관련된 값으로, RS-232C에 대한 전송률인 bps(bit per second), 패리티(parity) 비트의 특성, 캐릭터비트(charactor bits) 등을 결정하게 된다.
(i)는 DSC_OFF 위치값을 나타내며, 5byte는 각각 맵파일(MAP file)의 이미지 디스크립터(image descriptor) 영역 상 DSC_OFF의 섹터(secter)위치, 트랙(track), 장치(device), 헤드(head), 섹터(secter)의 수 등을 나타낸다.
(j)도 DSC_OFF2 위치값을 나타내며, 5byte는 각각 맵파일(MAP file)의 이미지 디스크립터(image descriptor) 영역 상 DSC_OFF2의 섹터(secter)위치, 트랙(track), 장치(device), 헤드(head), 섹터(secter)의 수 등을 나타낸다.
(k)는 DFCMD_OFF 위치값을 나타내며, 5byte는 각각 맵파일(MAP file)의 이미지 디스크립터(image descriptor) 영역 상 DFCMD_OFF의 섹터(secter)위치, 트랙(track), 장치(device), 헤드(head), 섹터(secter)의 수 등을 나타낸다.
(l)은 메시지(message)의 길이를 나타낸다. 16비트 방식의 경우 메시지(message)의 최대길이는 64 kbyte 이다.
(m)은 메시지(message)의 파일 위치로. 5byte는 각각 메시지 파일위치의 섹터(secter)위치, 트랙(track), 장치(device), 헤드(head), 섹터(secter)의 수 등을 나타낸다.
(n)은 제2부팅단계의 로더(secondary loader) 위치값으로, 5byte는 각각 부팅용파일(boot.b file)의 제2부팅단계(second.S)코드가 있는 부분의 섹터(secter)위치, 트랙(track), 장치(device), 헤드(head), 섹터(secter)의 수 등을 나타낸다. 본 실시예에서는 9개의 섹터(sector)를 지정할수 있는 공간이 있으나, 실제로 앞쪽의 7개의 섹터(sector)부분만을 사용한다. 필요에 따라서 가변적으로 사용하게 된다.
(o)∼(r)는 제1부팅단계(first.S) 코드에서 부팅시 ROM에서 넘어온 연산값들(si, es, bx, dl값)이 들어가는 공간이지만, 본 실시예의 부트섹터(bootsect)에서 이곳은 비어 있다.
(s) 이하에는 제1부팅단계(first.S) 코드가 들어가며, 이 후 부트섹터(bootsect)의 마지막 64byte에는 기존의 메모리에 있던 파티션(partition table)이 들어가게 된다.
위와 같이 제1부트로더(130)에 의한 제1부팅단계가 완료된 후에는 제2부트로더(150)에 의한 제2부팅단계(2nd.S)가 진행되게 된다.
(1) 먼저 부트섹터(bootsect) 고유(serial)영역에 포트(port)값 있는지 확인하고 난 후에,
(2) 화면에는 제2부팅단계를 나타내는 "N"을 디스플레이(display)하게 된다.
(3) 이 후 중지표시(break flag)를 지우게 되며(clear),
(4) 프롬프트(prompt) 상에서 입력대기시간 초과를 다루는 시간초과 핸들러(timeout handler)를 호출한다.
(5) 이 후 제2부팅단계(2nd.S)가 제대로 로드(load)되었나 확인한 다음,
(6) 부트섹터(bootsect)의 이미지 디스크립터(Image descriptor)위치 값으로 디스크립터(descriptor)를 로딩(load)하게 된다.
(7) 디스크립터를 확인합(descriptor checksum)을 수행하며, 이 과정에서 디스크립터(descriptor)의 내용을 2byte단위로 모두 더하게 된다. 본 실시예에 있어서 정상적인 경우 0xabcd(INIT_CKS)와 확인합(checksum)을 더하면 0이 되게 된다.
(8) 오류구문라인(default_command_line)을 로딩(load)하게 되며, 본 실시예에서는 OS 로더 프로그램 설치시 해당 프로그램의 명령에 따르는 옵션이 위치하게 된다.
(9) 이후 메모리의 0x9D600 번지에 있는 오류구문라인(Default Command Line)에 있는 2byte가 OS 로더 프로그램의 DC_MAGIC값과 같은지 확인한다. 여기서 오류구문라인(default command line)이 없으면 공란으로 놓아 둔다.
(10) 다음에는 모니터 상에 "L"을 디스플레이(display)하게 된다.
(11) 기존 딜레이(delay)가 0xffff번지의 값과 같으면 상호프롬프트(interactive prompt)를 위해 외부 변수(parameter)를 체크하게 된다.
(12) 이후 딜레이(delay)를 0으로 셋팅한다.
(13) 제1부팅단계(1st.S)의 ext_dl이 EX_DL_MAG값과 같은 지 확인한 후,
(14) 오류구문라인(default command line)를 확인하여 오류구문(default command)이 없으면 부팅프롬프트("boot :" prompt)를 출력한 다음 명령어(command)를 받아들이는 곳으로 점프(jump)하게 된다.
(15) 이 명령어(command)를 받아들이는 곳에서 메시지파일(message file)이 있는지를 확인한 후에,
(16) 모니터 화면에 부팅프롬프트("boot :")를 디스플레이(display)한다.
(17) 이 후 상호동작모드(interactive mode)인지 확인함과 동시에 키(key)입력 받는다. 입력된 키(key)의 내용은 명령어라인("cmdline") 다음에 놓이게 된다.
(18) 이 후에 키(key)를 받으면 키(key)값에 대한 DOS나 리눅스 등과 같은 이미지(image)이름과, 맵파일(map file)의 이미지 디스크립터 섹션(Image descriptor section)내에서 같은 이름을 가진 디스크립터(descriptor)를 찾아 시동(start)값으로 취하게 된다.
(19) 다음 이미지 디스크립터 섹션(Image descriptor section)내에서 같은 이름을 가진 디스크립터(descriptor)의 시작포인터(start pointer)를 입력받고,
(20) 시동(start)값으로 취한 이미지명칭(image name)을 모니터 상에 디스플레이(display)한다.
(21) 이 후 맵파일(map file)에서 bx값에 해당하는 디스크립터 섹션(descriper section)의 첫 번째 섹터를 로드(load)한다.
(22) 이 후 부팅에 필요한 내용과 부팅프롬프트 이미지("Boot Image=")를 필요한 번지에 넣게 되는데, 본 실시예에서는 a33f번지의 CL_MAGIC와 부팅프롬프트 이미지("Boot Image=") 의 위치를 0x90020 번지에 넣는다.
(23) 다음으로 해당 이미지(Image)에 대한 이미지 디스크립터(Image descriptor)의 내용을 확인한다.
(24) 이 후 맵파일(map file) 에서 설치(setup)를 로딩한(load) 다음,
(25) 메모리의 0x10000번지에 있는 시스템(system) 즉 커널(kernel)을 로딩하여(system load),
(26) 설치(setup)된 커널(kernel)에 제어권(control)을 넘기게 되므로서,
해당 컴퓨터 시스템은 본 발명에 따른 게임 OS 상태로 기동하게 된다.
결국 이러한 제1 및 제2 부팅단계가 수행됨에 따라 컴퓨터 시스템의 OS는 NOS가 되며, 도 1에 도시한 내용이 NOS가 기동된 상태를 나타내는 것이다. 따라서 도 1과 같이, 다수의 구성부들을 갖는 본 실시예에 따른 게임 OS 즉 NOS는 그 구조가 게임을 원활하게 진행시키기 위한 구성을 가지고 있다.
먼저 본 실시예에 따른 NOS의 핵심인 커널(120, kernel)은 서로 다른 다수개의 파일시스템을 가지는 게임프로그램에 대해 접근이 가능하도록 하는 가상파일시스템을 포함하며, 게임진행을 위한 장치 전반의 운영 및 동작을 총괄적으로 제어하게 된다.
즉 본 실시예의 NOS에 있어서 가장 핵심적인 역할은 커널(120, kernel)이 담당하게 된다. 이러한 커널(120)은 도시한 바와 같이 주기억장치인 메모리에 상주하여, 메모리의 기억위치나 각종 파일, 그리고 주변장치 등과 같은 시스템의 중요 자원들을 관리하게 된다. 아울러 시스템 진행과정(processor)의 관리, CPU 스케쥴링, 입·출력제어 그리고 시스템 자원의 배분 등과 같은 컴퓨터시스템의 운영에 핵심적인 사항들을 처리한다.
커널(120, kernel)의 전단에 위치하게 되는 파티션 테이블(110, partition table)은, NOS의 기동을 원활히 수행하도록 메모리를 일정 공간으로 분리시킨 상태에 대한 정보를 가지고 있다. 따라서 NOS가 기동되어 게임프로그램을 수행하는 과정에서 분리(partition)된 상태를 참조하게 되며 이러한 정보를 가지고 있는 곳이 파티션 테이블(110, partition table)이다.
커널(120, kernel)의 전단에 위치한 제1부트로더(130, primary boot loader)는, 커널(120)의 제어에 따라 제1부팅단계를 실시하게 된다.
제1부트로더(130) 하단의 스택(140, stack)은 커널(120)의 제어에 따라 각 자료의 원소들의 삽입 및 삭제를 제어함으로써 NOS의 부팅시 발생하는 다수의 자료들을 이동과정을 진행시키는 기능을 수행하게 된다.
그리고 제2부트로더(150, secondary boot loader)는 제1부트로더(130)에 의한 제1부팅단계 후 제2부팅단계를 실시하는 기능을 한다.
다음으로 맵로더 공간(160, map loader area)은 역시 커널(120)의 제어에 따라 NOS에서 사용되는 다수의 자료들의 연결상태에 대한 정보들을 저장하고 있으며, NOS의 기동과정에서 저장한 정보들을 제시해 주게 된다.
디스크립터 테이블(170, descriptor table)은 NOS의 기동에 사용되는 복수의 자료파일에 접근하기 위해 해당되는 복수의 자료파일을 분석하여 제공하는 기능을 한다.
이러한 본 실시예의 NOS는 일반 OS와 다른 게임의 특성에 적합하도록 설계됨으로써 게임의 진행, 즉 게임프로그램이 보다 잘 작동될 수 있도록 구조화시키는 기능을 실시한다. 전술한 바와 같이 그래픽 기술의 발달, 게임 진행기술의 다양화 등에 따라 게임프로그램이 동작되는 과정에서 처리해야 할 데이터들이 매우 많다. 아울러 일반 문자(text)들에 의한 워드형태의 파일이나 데이터베이스 자료들과 달리 이미지는 많은 메모리 용량을 소모하게 되며, 그래픽 기술의 발달에 따른 3차원 입체영상과 시뮬레이션, 효과음의 처리이 게임에 도입되는 상황에서는 많은 양의 데이터를 원활히 해줄 수 있는 처리구조가 요구되고 있는 실정이고, 따라서 본 실시예의 게임 OS, 즉 NOS는 게임 프로그램의 원활한 진행을 위해 개발된 OS이다.
도 4은 본 발명의 일실시예에 따른 누리 오퍼레이팅 시스템(NOS)의 주요기능을 설명하기 위한 모식도이다.
본 실시예의 OS인 NOS를 기동시키게 되면, 운영체제(OS)의 명령어 해석기인 쉘(200, shell)이 실행된다. 이러한 쉘(200, shell)은 사용자(user)가 컴퓨터를 켜거나 로그인할 때 가장 먼저 수행되는 프로그램으로, 사용자가 입력한 명령어를 해석하여 수행시키고 시스템의 메시지를 표시해 주는 기능을 수행하게 된다. 이러한쉘(200, shell)은 MS-DOS 상에서는 COMMAND.COM에 비유될 수 있다. 유닉스와 같은 운영체제에서는 C쉘(C Shell)이나 콘쉘(Korn Shell) 등에 비유될 수 있다.
따라서 OS상에서 응용 프로그램을 사용하다가 운영체제의 어떤 기능을 필요로 할 때 명령어 해석기를 불러내어 운영체제의 명령어를 내리게 되며, 그것이 끝나면 원래 사용하던 프로그램으로 돌아오게 된다.
본 실시예의 NOS에 있어서 가장 핵심적인 기능은 커널(120, kernel)이 담당하게 된다. 이러한 본 실시예의 커널(120)의 구조는 후술하겠지만, 주기억장치인 메모리에 상주하여, 메모리의 기억위치나 각종 파일, 그리고 주변장치 등과 같은 시스템의 중요 자원들을 관리하게 된다. 아울러 프로세서(processor)의 관리, CPU 스케쥴링, 입·출력제어 그리고 시스템 자원의 배분 등과 같은 컴퓨터시스템의 운영에 핵심적인 사항들을 처리한다.
이러한 커널(120)에는 NOS 부팅(booting)을 위한 부트섹터(boot sector) 관련 파일(122, Nbootsect.n)들과, NOS의 설치(install)를 위한 설치파일(124, Nsetup.n)들을 포함하고 있다. 아울러 각종 자료들의 효율적인 저장 및 관리를 위해 필요한 압축디코더(126)와, 커널의 효율적인 관리를 위한 파일(128)들을 포함하고 있다.
따라서 커널(120)의 제어에 따라 CPU(300)가 작동하게 되고, 이 CPU(300)는 컴퓨터 시스템의 동작과 각종 주변 장치들(410∼440)을 제어하게 된다.
본 실시예의 NOS는 멀티테스킹(muli-tasking)과 멀티스레딩(muli-threading) 기능을 수행할 수 있도록 구조화되어 있다.
본 NOS에 있어서 테스크(task)란 하나의 작업을 뜻하는 것으로 컴퓨터 시스템에서 다른 프로그램에 영향을 받지 않고 자기 독자적으로 실행될 수 있는 하나의 프로그램을 나타내며, 멀티테스킹(muli-tasking)은 다수의 프로그램이 병렬적으로 실행될 수 있는 기능을 수행하도록 설계되어 있다.
멀티테스킹(muli-tasking)이 가능하게 되는 것은 멀티스레딩(muli-threading)이 지원되는 것에 많은 영향을 받게 된 것에 연유한다. 스레드(thread)라고 하면 진행과정인 프로세스(process)나 태스크(task)보다도 작은 하나의 작업 단위의 작업단위를 나타낸다. 컴퓨터에 있어서 프로세스라(process)는 단위는 너무나 큰 단위가 되는 것이며, 이를 위해 보다 작은 작업개념의 스레드(thread)가 도입되었으며, 통상 스레드(thread)라 하면 동일한 문맥을 사용하는 작업의 단위를 의미하게 된다.
일례로 프로세스 스케쥴링과 스레드 스케쥴링의 차이는 문맥 교체(context switching)에서 나타나게 되는데, 각각의 프로세스에서는 서로 다른 문맥을 사용하기 때문에 프로세스를 교체하는 경우에는 현재 수행되던 프로세스의 문맥을 저장하고 새롭게 수행될 프로세스의 문맥을 읽어와 설치하여야 하지만, 하나의 프로세스 안에서 각각의 스레드는 모두 동일한 문맥을 사용하기 때문에 하나의 프로세스 안에서 스레드의 교체가 이루어지는 경우에는 문맥을 교환할 필요가 없기 때문에 보다 빠르게 작업을 교체하여 실행시킬 수 있다는 특징을 가지고 있다.
본 실시예에서는 멀티스레딩(muli-threading)을 지원하기 때문에 보다 게임프로그램 또는 큰 용량의 게임프로그램을 매우 효과적으로 진행시키게 된다.
본 실시예에서는 다양한 파일구조를 갖는 게임프로그램을 진행시킬 수 있도록 nFAT(n-File Allocation Table) 방식의 파일 할당 테이블(FAT)을 취하고 있다.
FAT(파일 할당 테이블)란 디스크에 존재하는 파일의 정보가 저장되어 있는 섹터들을 찾아 볼 수 있도록 정보를 저장하고 있는 특수 영역으로, 본 실시예에서는 후술한 가상파일시스템과 연관되어 동작됨으로써 다수의 게임프로그램이 실행될 수 있는 구조를 취하고 있다. 이러한 구조는 역시 전술한 OS의 구조에 근거하기 때문에 실행되는 것이다.
본 실시예의 NOS는 도 1에 도시한 바와 같이 주변기기로 통상 모니터(410)을 사용하게 되고, CPU(300)에 제어를 받아 블록개념의 디바이스 드라이버(Block Device Driver)인 RAM(420)이나 디스크(430), 그 외에도 DVD 등을 사용할 수 있으며, 게임을 위한 특정 디바이스 드라이버로 조이스틱(440) 등을 사용할 수 있도록 설계되어 있다.
아울러 본 실시예의 OS는 그래픽 유저 인터페이스(GUI ; Graphic User Interface)를 지원하며, 네트워크 상에서 동작이 가능하도록 한다.
도 5는 본 발명에 따른 엔포크(Nfork)의 실행과정을 설명하기 위한 도면이다.
본 실시예의 NOS는 멀티테스킹(muli-tasking)과 멀티스레딩(muli-threading)과 관련하여 멀티프로세싱(muli-processing)을 가능하도록 하기 위해 엔포크(nfork ; Nuri-fork)를 지원한다.
멀티프로세싱(muli-processing)이란 컴퓨터 시스템에서 주어진 문제를 해결하기 위하여 수행되는 모든 작업을 총칭하는 과정을 가리키게 된다.
일반적으로 포크(fork)란 다중 프로그래밍 시스템(multi program system)에서 하나의 프로세스(process)에서 자식 프로세스(process)를 생성하는 일련의 작업으로서, UNIX의 포크(fork) 함수에 비유될 수 있다. 그러나 본 실시예의 엔포크(Nfork)는 자신과 똑같은 내용을 가지고 있는 자식 프로세스(process)를 생성하는 과정에서 생성된 자식 프로세스(process) 역시 게임이나 게임프로그램의 진행에 적합하도록 생성시키게 되며, 따라서 이러한 엔포크(Nfork)의 수행으로 인해 멀티프로세싱(muli-processing)이 효과적으로 진행된다.
도 6은 본 실시예의 NOS에서 버퍼 작동의 제어상황을 설명하기 위한 도면이다.
본 실시예에 따른 NOS의 버퍼(Buffer)는 데이타가 실제 들어갈 버퍼(Buffer)와 각 버퍼(Buffer)에 대한 정보가 들어갈 버퍼의 헤드(head)를 위한 페이지(page)로 구분된다.
버퍼(Buffer)는 램의 완충작용을 위해 필요한 일시적 기억장치이다. 즉 기억장치인 램을 얼마만큼 효과적으로 사용하는 가에 따라 부팅과정이 보다 효율적으로 수행되는 것이 가능한데, 본 발명에서는 버퍼를 효과적으로 제어하도록 설계함으로써 부팅과정을 효과적으로 수행한다.
따라서 메모리의 크기를 일단 페이지 크기로 구분한 다음, 블록(block)단위를 설정해 주게 된다. 이러한 블록은 메모리를 필요한 크기로 나눈 일정 할당공간이라 할 수 있다. 여기서는 4개의 버퍼블럭을 1페이지로 설정한 예를 기준으로 설명한다.
먼저 (a)와 같이 메모리를 사용하다가 (a)와 같이 메모리크기를 증가시켜야 하는 경우에는 본 실시예의 NOS에서는 처음 8M-8k 형태로 할당했던 메모리의 크기를 바로 8M-12k의 크기로 증가시키도록 작동시킴으로써 게임이 작동하는 과정에서 처리해야 할 자료를 증가시키는 것을 바로 실시할 수 있게 된다. 이러한 과정은 게임을 진행시키는 데 있어서 매우 중요한 개념이다. 즉 전술한 바와 같이 게임의 경우에는 그래픽적인 자료처리가 가속화될 수 있는 OS 구조를 취해야 하는데, 본 실시예의 NOS에서는 일반 OS에서와 달리 보다 가속적으로 버퍼를 기동시킬 수 있게 되어, 게임의 원활한 운영을 실행할 수 있게 된다.
이와 같이 메모리 운영의 효율성을 기하기 위해 버퍼(buffer)를 사용하게 되며, 이러한 메모리 운영과 관련되어 접근성, 즉 액세스(access) 속도를 개선시키기 위한 개념이 후술할 해시테이블(Hash Table)이다. 본 NOS에서는 이러한 해시테이블(Hash Table)의 개념을 도입함으로써 메모리를 효과적으로 사용하고 접근성을 증대시키고 있다.
또한 본 NOS의 커널(120) 역시 LRU(최근최소사용, Least Recently Used) 알고리즘을 채택하고 있다. 즉 컴퓨터 시스템이 작동하는 과정에서 주기억 장치인 메모리에 설치되어 있는 페이지 중에서 프로그램에 의하여 가장 오랜 시간 동안 사용되지 않고 있던 페이지를 지칭하는 것이다.
따라서 LRU(최근최소사용) 알고리즘에 의해 최근에 가장 적게 쓰인 내용이 제거될 가능성이 높음을 의미하며, 본 NOS의 커널(kernel)은 LRU알고리즘을 사용하여 전술한 버퍼의 캐쉬(cache)를 관리한다. 결국 최근에 사용된 자료들은 프리리스트(free list)의 맨 끝으로 보내지게 되고, 오래전에 사용된 것은 점점 프리리스트(free list)의 선두로 오게 되어 다른 장치블록(device block)을 위해 사용될 가능성이 높아지는 것이다.
이러한 과정에서 해시테이블(hash table)에는 사용중인 버퍼(buffer)만이 들어가게 되므로써 결국 접근성을 증대시켜 메모리를 효과적으로 관리하게 되고, 게임을 원활하게 구동시키게 된다.
도 7은 본 실시예에 따른 노드(node) 개념을 설명하기 위한 도면이다.
즉 본 실시예의 NOS에 있어서 해쉬테이블(Hash Table)과 관련된 개념은 본 NOS 파일 관리 구조체인 엔노드(nnode)에도 관련된다.
먼저 (a)와 같이 디스크에 저장된 데이타들은 (b)와 같이 해시테이블(hash table)프리리스트(free list)의 환형체 자료구조에 포함된 다음, (c)와 같이 정렬된 형태의 파일관리 구조체인 엔노드(nnode)로 변환되어 관리된다.
또한 본 NOS에서는 락(lock) 기능도 수행하게 된다. 락(lock) 기능은 일반적인 기능이다. 즉 프로세서(process)가 어떤 버퍼블록(buffer block)에 작업, 즉 읽기, 쓰기 등을 하는 중에는 다른 프로세스(process)가 접근하지 못하도록 n_lock를 세트(set)한다. 그리고 그 때 다른 프로세스(process)는 버퍼블록(buffer block)을 사용할 수 있을 때까지 기다리도록 하게 작동시키게 된다. 그리고 해당 프로세의 작업이 끝나면 슬립(sleep)되어 풀림으로써 또 다른 프로세스가 작동된다.
따라서 본 실시예의 NOS에서는 작은 일련의 프로세서가 서로 실행되는 과정에서 오류를 제거할 수 있는 구조로 설계되어 있으며, 이러한 락(lock) 기능 역시 게임을 보다 원활하게 동작시킬 수 있게 한다.
도 8은 본 발명의 일실시예에 따른 가상파일시스템(Virtual File System)에 대한 모식도이다. 본 실시예의 NOS에 있어서 다양한 호환성을 가지며 다양한 구조의 파일시스템에 접근시킬 수 있도록 하는 것이 가상파일시스템(Virtual File System)이다.
본 실시예의 NOS는 여러가지 다양한 파일 시스템을 포괄적으로 다루기 위하여 가상 파일 시스템 스위치를 두고 있다. 이것은 서로 다른 다양한 파일 시스템에 접근하기 위한 일관성 있는 인터페이스(interface)를 커널(120)에서 제공한다.
아울러 본 실시예에서는 시스템콜(system call) 기능을 수행한다. 이를 위해 본 실시예의 NOS에서는 INT 0x80번지부터 시스템콜(system call)을 위해 사용한다. 시스템콜이 수행되는 과정을 보면, NOS의 매크로는 0x80번지에 인터럽트(interrupt)를 위한 게이트 디스크립터(gate descriptor)를 만든다. 이렇게 만들어진 디스크립터르 시스템콜(system call)영역의 0x80번째에 넣으면 int 0x80 명령에 의해 시스템콜(system call)기능이 수행된다.
도시한 바와 같이, 본 실시예에 따른 NOS에서 시스템콜(system call)을 수행하여 가상파일시스템(Virtual File System)을 작동시키게 되면, 작동시키고자 하는 게임프로그램의 파일구조를 파악하게 되고 해당 파일구조를 기동시키도록 OS 체계를 맞춤으로써 여러 가지 파일구조의 게임프로그램을 실행시킬 수 있게 된다. 따라서 일반 윈도우즈 계열의 FAT32, FAT16은 물론, Ext2fs 형태의 파일구조도 기동시키는 것이 가능하고 기타 다른 구조의 파일시스템에 접근할 수가 있게 된다. 이 후 결정된 파일구조에 맞도록 변화시켜 커널이 전체적인 제어를 하게 되고 따라서 다양한 파일구조의 게임이 실행될 수 있게 된다.
이렇게 다양한 파일구조에 접근한다는 것은 매우 중요한 의미를 갖는다. 종래의 기술에 나타낸 바와 같이, 마이크로소프트(Microsoft)사의 X-box, 소니(SONY)사의 플레이스테이션(Play Station ; PS), 닌텐도(Nintendo)사의 게임큐브(GameCube) 그리고 기타 각 게임프로그램은 저마다의 장점을 부각시키고 있는 실정이고, 이러한 상황은 게임제작사 뿐만 아니라 전세계의 PC체제와도 연관성을 가지고 있기 때문에 해당 게임을 작동시키는 게임콘솔은 다른 게임을 실행할 수 없는 문제점도 있다.
하지만 본 실시예의 NOS는 전술한 가상파일시스템(Virtual File System)을 채택하여 OS를 설계하고 구조화시킴으로 인해, 서로 다른 파일구조의 게임이 작동될 수가 있게 된다. 즉 본 실시예의 가상파일시스템(Virtual File System)이 이러한 호완성을 가능하게 한다.
본 실시예의 NOS에 따른 파일시스템(File System)은 블록디바이스 드라이버(Block Device Driver)상에 위치한다. 이러한 파일시스템블럭(File System Block)은 블록디바이스(Block Device)의 저장 매체로부터 데이타를 읽거나 기록함으로써 파일시스템(File system) 고객층에 대해 저장매체의 데이타들을 파일이라는 논리적인 구조로 접근하도록 설계되어 있다. 일반적인 OS에 있어서 블록디바이스는 전자적인 특성과 기계적인 특성을 함께 가지기 때문에 메모리를 읽고 쓰는 것에 비해 상당히 속도가 느리다. 본 실시예의 NOS는 이러한 두 계층 사이의 현저한 접근(Access) 속도를 극복하기 위해 게임을 보다 원활하게 진행시키는 체제로 변환설계된 캐쉬(Cashe)를 두고 있다.
또한 NOS에 있어서 특정된 테스크(task)를 수행하는 파일에 접근하기 위해서는 우선 파일은 오픈하거나 생성하여야 한다. 파일 핸들(file handle)을 복사하여 기동시키는 것도 가능하지만 보다 안정된 작동을 위해서는 해당 파일을 열거나(open), 열고난 후에 읽고(read) 다시 닫을(close) 수 있는 등 해당 파일에 직접 접근하여 필요한 기능을 수행하는 것이 필요하다. 본 NOS는 이러한 작용이 가능하도록 파일 디스크립터(file descriptor)를 가지고 있다. 이러한 파일 디스크립터(file descriptor)는 해당 게임프로그램에서 보조기억장치에 있는 파일에 보다 쉽게 접근할 수 있도록 여러 가지 파일 정보를 담고 있는 자료 구조이다.
다음에는 이러한 파일 디스크립터(file descriptor)에 의해 해당 파일을 열고(open), 파일내용을 읽고(read), 해당 파일을 닫는(close) 과정을 살펴본다.
도 9는 본 실시예에 따른 파일 디스크립터(file descriptor)를 이용한 파일접근과정을 설명하기 위한 도면이다.
먼저 로컬파일(local file) 상태의 OS 프로그램 내에 파일을 열기 위한 기능문(function text), 'open( )'가 존재하게 되면, 이러한 'open( )'는 글로벌파일(global file)상태에서 'open_file( )'로 전환된다. 이 후 이러한 'open_file( )'은 'Nnode_open_file( )'로 바뀌게 되며, 최종적으로 'Nnode_open( )'로 바뀌어 실행되므로써 파일을 열게 된다. 이 후 해당 기능문(function text)의실행이 종료되는 과정은 그 역 과정으로 진행되어 결국 종료된다. 이외에도 파일내용을 읽고(read), 해당 파일을 닫는(close) 과정, 명칭변경(rename) 과정 등 다른 과정들 역시 동일하게 진행된다.
본 실시예의 NOS에서는 메모리를 효과적으로 사용하기 위해 페이징(paging)이 가능하도록 설계되어 있다. 이러한 페이징(paging) 구현에 따라 기억장치를 동일한 크기의 페이지 단위로 나누고 페이지 단위로 주소 변환 및 대체시킨다.
이 후 페이징시스템(paging system)은 페이지 디렉토리(page directory)와 페이지테이블(page table)이라는 체계로 구조화시킴으로써 선형주소를 통해 물리주소에 접근한다. 따라서 이러한 페이징시스템(paging system)은 전술한 기능들과 유기적인 연계작동을 통하여 게임의 진행을 보다 원활하게 한다.
이러한 페이징(paging)은 메모리 맵핑(memory maping)에 의해 더욱 그 효과를 발휘한다.
도 10은 본 실시예에서 메모리맵핑과정을 설명하기 위한 도면이다.
맵핑(maping)은 하나의 집합에 소속되어 있는 원소를 일정 규칙에 따라 다른 집합에 존재하는 원소에 대하여 하나의 관계를 설정하는 것으로, 도시한 바와 같이 디스크에 저장되어 있는 자료의 일부분(a)을 메모리에 같은 크기로 연결시키는 것이다. 따라서 맵핑(maping)된 메모리에 쓰기(write) 작업을 수행하면 디스크에도 같은 크기로 쓰여(write) 지게 된다. 따라서 이러한 맵핑(maping) 과정이 페이징(paging)과정에도 관여된다.
이러한 과정외에도 본 실시예의 NOS에서는 스택을 세팅(stack set)하고, 데이터의 구조에 페이지 오류(page fault)를 설정하여 게임프로그램의 진행과정에서 발생할 수 있는 오류의 소지를 근본적으로 제거할 수 있도록 설계하고 있다.
또한 게임의 구동에 관련되는 자료들을 효과적으로 제어관리하기 위한 파티션(partition)을 설정하는 등 게임 진행과 관련된 많은 데이터들을 효과적으로 처리할 수 있도록 구조화시키고 있다.
아울러 게임을 실행시키는 데는 일반적인 컴퓨터 시스템의 주변장치와 달리, 조이스틱 등을 사용하게 된다. 아울러 이러한 주변장치의 처리에도 게임과 관련된 방대한 데이터들이 많이 관여하게 되며, 각각의 주변장치와 관련된 디바이스 드라이버(device driver)를 효율적으로 관리하도록 설계되어 있다. 또한 이러한 디바이스 드라이버(device driver)는 하드 파티션(HDD partition)에도 관여하게 된다.
그리고 전술한 일련의 기능이나 동작과정들은 개별적인 것이 아니라 본 NOS를 기동시키는 과정에서 서로 유기적으로 작용하게 되는 연관되는 것이다. 따라서 본 NOS는 게임실행시 발생하는 그래픽 등의 데이터를 효과적으로 처리함으로써 게임의 실행에 적합한 OS로 작동하게 된다.
전술한 바와 같이 본 발명은 게임을 효과적으로 실행시킬 수 있는 체계로 설계되어 게임의 실행시 발생하는 많은 데이터들을 효과적으로 처리할 수 있는 OS로 작용하게 된다. 아울러 서로 다른 파일구조를 갖는 게임을 실행시킬 수 있도록 파일시스템을 설계함으로써 제작된 게임간 호환되지 않은 문제를 근본적으로 해결하고 있다. 따라서 게임을 실행하는 게임콘솔의 설계에 있어서도 많은 장점을 제공할 수 있게 된다.
향후 게임산업은 첨단기술의 도입과 더불어 거대한 무역시장을 형성할 것으로 예상되고 있으며 세계 우수기관의 발표 등은 이러한 발전을 예고하고 있는 실정이다. 따라서 본 발명은 국내 게임산업의 기술수준을 세계 일류기업들에서 전략적으로 육성하고 있는 게임산업의 기술수준으로 끌어올리는 데 일조하여, 게임산업의 경쟁력을 제고에 기여할 것으로 예상된다.

Claims (2)

  1. 게임을 위한 OS(오퍼레이팅 시스템)에 있어서,
    상기 OS의 구조를 메모리장치에 로딩(loading)시키기 위한 로더 프로그램에 의해 로딩시키는 (a)과정과, 상기 제(a)과정에 의해 로딩된 컴파일 코드에 의해 초기 제1부팅단계를 실시하는 (b)과정과, 제2부팅단계를 실시하는 (c)과정으로 부팅되도록,
    서로 다른 다수개의 파일시스템을 가지는 게임프로그램에 대해 접근이 가능하도록 하는 가상파일시스템을 포함하며, 게임진행을 위한 장치 전반의 운영 및 동작을 총괄적으로 제어하는 커널(kernel);
    상기 OS의 기동을 원활히 수행하도록 상기 메모리를 일정 공간으로 분리시켜 작동시키는 파티션 테이블;
    상기 커널의 제어에 따라 제1부팅단계를 실시하는 제1부트로더(primary boot loader);
    상기 커널의 제어에 따라 각 자료의 원소들의 삽입 및 삭제를 제어함으로써 상기 OS의 부팅시 발생하는 다수의 자료들을 이동과정을 진행시키는 스택(stack);
    상기 제1부트로더에 의한 제1부팅단계 후 제2부팅단계를 실시하는 제2부트로더(secondary boot loader);
    상기 OS에서 사용되는 다수의 자료들의 연결상태에 대한 정보들을 저장하여 상기 OS의 기동과정에서 제시해 주는 맵로더 공간(map loader area); 및,
    상기 OS의 기동에 사용되는 복수의 자료파일에 접근하기 위해 해당되는 복수의 자료파일을 분석하는 디스크립터 테이블(descriptor table)를 포함하며,
    상기 각 구성부들은 파일할당구조(FAT)에 의해 유기적으로 연결되어 작동하고 게임이나 게임프로그램의 작동에 적합한 구조로 형성되어 장치시스템의 메모리상에 탑재되는 것을 특징으로 하는, 게임용 누리 오퍼레이팅 시스템(NOS).
  2. 제 1항에 있어서, 상기 가상파일시스템은
    서로 다른 파일구조를 파악하고 해당 파일에 접근하도록 구조화되는 것을 특징으로 하는, 게임용 누리 오퍼레이팅 시스템(NOS).
KR1020010080991A 2001-12-19 2001-12-19 게임용 누리 오퍼레이팅 시스템 KR20030050542A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010080991A KR20030050542A (ko) 2001-12-19 2001-12-19 게임용 누리 오퍼레이팅 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010080991A KR20030050542A (ko) 2001-12-19 2001-12-19 게임용 누리 오퍼레이팅 시스템

Publications (1)

Publication Number Publication Date
KR20030050542A true KR20030050542A (ko) 2003-06-25

Family

ID=29576262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010080991A KR20030050542A (ko) 2001-12-19 2001-12-19 게임용 누리 오퍼레이팅 시스템

Country Status (1)

Country Link
KR (1) KR20030050542A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100751016B1 (ko) * 2005-09-06 2007-08-22 엘지전자 주식회사 파일 시스템 운용 방법 및 그 데이터 처리 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61273634A (ja) * 1985-05-29 1986-12-03 Nec Corp マルチオペレ−テイングシステムパ−ソナルコンピユ−タ
US5475668A (en) * 1990-10-22 1995-12-12 Matsushita Electric Industrial Co., Ltd. Method of producing file management structures, information reproduction apparatus and information reproducing method
US5721948A (en) * 1996-02-29 1998-02-24 Sun Microsystems, Inc. System for creating mount command from verified programmable options compatible with file system types to attach media file system to an existing file system
KR20010058126A (ko) * 1999-12-24 2001-07-05 윤종용 피에스오에스 운영체제 내장 시스템에서의 저장매체사용방법
KR20010106654A (ko) * 2000-05-22 2001-12-07 윤종용 운영체제와 사용자 환경을 포함하는 기록 가능한 광디스크및 이에 적합한 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61273634A (ja) * 1985-05-29 1986-12-03 Nec Corp マルチオペレ−テイングシステムパ−ソナルコンピユ−タ
US5475668A (en) * 1990-10-22 1995-12-12 Matsushita Electric Industrial Co., Ltd. Method of producing file management structures, information reproduction apparatus and information reproducing method
US5721948A (en) * 1996-02-29 1998-02-24 Sun Microsystems, Inc. System for creating mount command from verified programmable options compatible with file system types to attach media file system to an existing file system
KR20010058126A (ko) * 1999-12-24 2001-07-05 윤종용 피에스오에스 운영체제 내장 시스템에서의 저장매체사용방법
KR20010106654A (ko) * 2000-05-22 2001-12-07 윤종용 운영체제와 사용자 환경을 포함하는 기록 가능한 광디스크및 이에 적합한 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100751016B1 (ko) * 2005-09-06 2007-08-22 엘지전자 주식회사 파일 시스템 운용 방법 및 그 데이터 처리 장치

Similar Documents

Publication Publication Date Title
US10552208B2 (en) Migrating a virtual machine that owns a resource such as a hardware device
US8171491B2 (en) Object synchronization in shared object space
US7996785B2 (en) Systems and methods for integrating application windows in a virtual machine environment
JP4979880B2 (ja) グラフィックス処理ユニットのマルチスレッド式カーネル
Bovet et al. Understanding the Linux Kernel: from I/O ports to process management
US7424601B2 (en) Methods and systems for running multiple operating systems in a single mobile device
JP4896376B2 (ja) コプロセッサの性能を強化するシステムおよび方法
KR102047558B1 (ko) 가상 디스크 저장 기술
US7543301B2 (en) Shared queues in shared object space
AU2005232324A1 (en) Systems and methods for virtualizing graphics subsystems
JP4921018B2 (ja) 直接実行機能を提供するためのシステム、コンピュータシステム、方法およびプログラム
Campbell et al. An introduction to virtualization
KR20030050542A (ko) 게임용 누리 오퍼레이팅 시스템
Chakraborty Operating Systems: Evolutionary Concepts and Modern Design Principles
JPS61184643A (ja) 仮想計算機の起動制御方式
Scalzi et al. Enterprise Systems Architecture/370: An architecture for multiple virtual space access and authorization
Alias et al. Fundamental of Operating System Technology
JP4292220B2 (ja) 仮想計算機システム
JP4548514B2 (ja) 仮想計算機システムの制御方法
CN115845368A (zh) 资源管理方法、电子设备及计算机可读存储介质
Edwards Programming Psion Computers
i Chemii AmigaOS–internal structure of operating system
Story Virtual Machines

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application