2017/07/18 - [OS] - 64Bit OS 만들기 Windows Ubuntu Bash 셋업 - 1 저번에는 우분투 bash 켜는 법이였고. 이번에는 우분투 bash로 개발 환경 셋팅입니다.우분투 bash로 개발할 툴들은 GCC 컴파일러와 vim 편집기 nasm 입니다. 먼저 C를 컴파일 하기 위한 GCC를 확인 해보니 gcc가 설치 되어 있지 않다고 합니다.gcc를 설치하기 전에 먼저 apt-get update와 apt-get upgrade를 진행합니다.그러면 종합 개발 환경을 설치해주는 apt-get install build-essential을 설치합니다.그러면 간단한 테스트 소스 코드를 작성하기 위해 vim으로 작성합니다.작성후 저장 및 나가기32비트 컴파일과 64비트 컴파일이 되는지 확인하..
최근 공모전으로 바쁘게 생활하고 있어 OS 진척이 아직도 키보드 드라이버 에서 멈춰서 진행이 안되고 있는데, 사실 요즘 Vulkan 그래픽 API에 꽂혀서 열심히 튜토리얼 문서를 번역하고 있어 나중에 엔진을 따라 만들면서 API를 설명 하려는 강좌를 진행하려고 합니다.쩃든 본론으로 들어가서OS제작 공부를 하면서 Windows OS로 진행을 하기 위해 Cygwin을 설치하여 진행을 했는데, 사실 Cygwin은 불편한 점이 여간 한 두개도 아니고 싫어 하는 사람도 꽤 많더라고요.그러다가 작년 이맘때쯤 Windows에 네이티브로 Linux 쉘이 도입된다는 소식을 듣고 한 번 체험을 해봤는데 꽤나 괜찮던 기억이 있고 지금도 계속 업데이트 되고 있어 Ubuntu의 네이티브적 기능이 점점 늘어 나고 있더라고요 그래..
2017/06/01 - [OS] - 64Bit OS(Operating System, 운영체제) 만들어 보기 - 1 셋업2017/06/03 - [OS] - 64Bit OS 만들어 보기 - 2 운영 모드의 종류 이번 포스팅에서는 몇가지 운영모드에서 사용하는 레지스터들을 알아보도록 하겠습니다. OS를 개발하는 관점에서 운영 모드는 크게 16비트 , 32비트, 64비트 모드로 나눌 수 있는데 앞에 붙은 숫자는 레지스터의 크기와 비례합니다.아래의 사진은 각각 보호모드와 IA-32e 모드에서 사용하는 레지스터들 입니다.(보호모드 레지스터)(IA-32e 모드 레지스터)x86-64 프로세서에는 위의 사진과 같이 많은량의 레지스터가 있지만 OS를 개발하는데에 가장 큰 비중을 차지하는레지스터는 범용 레지스터, 세그먼트 레..
이전 셋업 포스트 --- 2017/06/01 - [OS] - 64Bit OS(Operating System, 운영체제) 만들어 보기 - 1 셋업 일반적으로 사용하는 인텔 64 비트 프로세서는 5가지의 운영 모드가 있는데각각 리얼모드 , 보호모드, IA-32e 모드 그리고 시스템 관리 모드 가상 8086 모드가 존재 하고 있습니다.운영 모드 설명 리얼 모드 프로세서의 초기 상태로 16비트 모드로 동작하여 8086프로세서와 호환되는 모드최대 1MB의 주소 공간을 지원 보호 모드 32 비트 모드로 동작하며 세그먼트, 페이징 , 보호, 멀티 태스킹등의 기능을 제공하는 모드4GB의 주소 공간을 지원 IA-32e 모드 32비트 호환모드와 64비트 모드의 두 가지 서브모드로 구성16EB의 주소 공간을 지원 시스템 관..
오늘 부터 64비트 운영체제 만들어 보겠습니다.프로그래밍을 하다보면 한 번쯤은 운영체제를 만들어 보고 싶다! 라고 생각하신분이 있을꺼라고 생각합니다... 아니면 말고요 게임고의 OS 연구회로써 OS의 기초 상식들은 공부했으나 실제로 제대로 만들어 본적은 없습니다.그래서 선배들에게 추천받은 책인을 구매해서 공부를 하기로 했습니다.사진에서 보면 1 이라고 적혀 있는데 1권과 2 권으로 나뉘어진 책이고 1권 가격만 4만5천원가량에 1600페이지에 육박합니다..!그만큼 64비트 OS가 해야할 내용이 많다는 것이겠지요. 그럼 서론을 벗어나서 OS 개발을 위한 기본 셋업을 하도록 하겠습니다.제 컴퓨터 윈도우 10 64 비트를 기준으로 셋팅을 하겠습니다. 책에서는 Cygwin을 이용해 윈도우에서 리눅스에서 사용하는 ..
참고 : http://forensic-proof.com/archives/181 CMOSCMOS는 Complementary Metal-Oxide Semiconductor의 약자로 한글로 해석 하면 상보성 금속산화막 반도체 라고 해석된다.간단하게 씨모스라고 읽는다.CMOS는 광다이오드를 이용하여 집접회로를 만들기 위한 기술로 CPU,Microcontroller,SRAM과 같은 디지털 논리 회로에 사용된다.메인보드에 보면 RTC/NVRAM이라는 칩이 있는데 RTC(Real-Time Clock)은 시스템의 날짜와 시간을 저장하고 NVRAM(Non-Voltaile RAM)은 비 휘발성 메모리로써 드라이브에 대한 정보, 부팅 순서 등이 들어 있다. 이 RTC/NVRAM이 CMOS기술로 된 칩이고 이 칩이 메인보드 ..
(참고 : http://forensic-proof.com/archives/355) CHS 주소 지정 방식CHS는 Cylinder-Head-Sector의 약자이며 실린더,헤드,섹터로 이루어져있는 하드디스크의 물리적 구조를 기반으로 탐색하는 주소 지정 방식이다.(출처 : http://www.datarecoverytools.co.uk/2009/12/22/chs-lba-addressing-and-their-conversion-algorithms/)여기서 플래터가 3 장이고 헤드가 6개 이므로 각각의 플래터는 양면다 사용이 가능함이 알 수 있다.파일의 입출력이 명령이 떨어지고 파일의 위치가 CHS(10,5,1)이라고 한다면 5번째의 헤드를 10번째 실린더의 1번째 섹터에 위치시키고 데이터르 읽기 시작한다.이렇듯 ..
MBR은 Master Boot Record의 약자이며 파티션된 기억 장치의 첫 섹터인 512바이트의 저장 공간이다.MBR의 구조는 주소(10진수) 크기(Byte) 역할 설명 0 440 부트 코드 부팅을 하기 위한 정보가 들어 갑니다. 440 4 디스크 서명 디스크의 고유한 일련 번호가 들어갑니다 444 2 NULL 446 64 프라이머리 파티션 테이블 각각 16바이트 씩 개의 주 파티션 영역에 대한 정보가 삽입됩니다. 510 2 MBR 시그니쳐 0x55AA 이게 없으면 부트로더로 인식하지 못합니다. 전체 크기 : 446 + 64 + 2 = 512첫 부분인 부트 코드 부분은 부트 로더에 관한 정보가 들어 갑니다 자세한 정보는 밑 부분에서 설명 하겠습니다.440주소 부터 4바이트의 크기에는 해당 디스크의 고..
(대부분)인용 http://forensic-proof.com/archives/178 1. 사용자가 처음 전원 버튼을 클릭하면 파워 서플라이가 외부로 부터 들어온 전압을 검사하여 현재 시스템에서 사용 할 수 있는 전압으로 변환한다. 변한된 전기적 흐름은 CPU로 전달되어 CPU가 지니고 있는 이전의 값을 지우고 PC(Program Counter)를 초기화 시킨다.2. 부트 프로그램은 먼저 CPU의 이상 유무를 테스트한 후 POST(Power On Self-Test)작업을 수행 하기 위한 기본적인 테스트를 수행하며 만약 테스트의 결과가 CMOS에 저장된 값과 일치한다면 POST작업을 수행한다.3. POST작업의 첫 단계로 CPU는 System Bus가 정상적으로 동작하는지 확인 하기 위해 System Bus..
이번 포스팅은 FAT와 NTFS에 대해 설명하도록 하겠습니다. FAT는 File Allocation Table의 약자이며 해석하면 파일 할당 테이블 이라고 할 수 있습니다.FAT 파일 시스템은 1977년 빌 게이츠와 마크 맥도널드가 개발하였으며, 윈도우즈 Me 까지 주로 사용되었습니다.그리고 FAT 시스템은 지금까지도 많은 메모리 카드와 많은 컴퓨터 기기에서 널리 사용되고 있습니다.FAT의 버전은 여러개가 있지만 유명한 버전인 FAT12,FAT16,FAT32,exFAT만 소개 하겠습니다. FAT12 : MS-DOS 초기에 사용이 되었으며 플로피 디스크에는 여전히 사용됩니다. 그러나 요즘은 거의 사용되지 않겟지요.FAT16 : 32메가바이트 이상의 하드디스크 드라이브를 지원하기 위해 만들어졌으며 윈도우즈 ..