본문 바로가기

프로그래밍131

FPC 로 OS 커널 만들기... - 2 - 오늘 포스팅은 작업 일지에 가까울 거 같습니다. 아무래도 제게 주어진 시간이 많지 않은 관계로 최대한 빨리 작업을 진행하고 있거든요. 말 그대로 닥치는대로 하고있습니다. ^^ 정석대로라면 부트로더를 통해 보호 모드로 진입하고 이후, 인터럽트, 디바이스, 태스크 스위칭, 페이징 등 거의 정해진 절차처럼 커널 개발을 하게 됩니다. 수많은 OS 개발자들이 해왔던 일이고 저도 그 중 한명이 되는 겁니다. 하지만 기왕지사 조금 무리를 하며 일을 진행하는 것인만큼 뭔가 의미가 있어야하지 않을까란 생각이 들었습니다. 즉, 이 일을 해야하는 이유 혹은 가치를 정할 필요가 생겼습니다.(코딩을 하며 멀티 태스킹으로 고민했습니다. ㅋㅋ) 유산의 발굴 2년전 파스칼과 관련한 글을 포스팅한 적이 있습니다. 2012/09/07 .. 2014. 4. 11.
FPC 2.6 지원 CPU 및 OS user.pdf 문서 앞부분 1.2 About the compiler 의 내용입니다. 자꾸 찾아보게 되서... ^^ CPUIntel i386 및 i486, 펜티엄 계열과 상위 버전AMD64/x86_64PowerPCPowerPC64SPARCARMm68k OSDOSLINUXAMIGA (0.99.5 버전만)WINDOWSMac OS XOS/2FREEBSDBEOSSOLARISNETBSDNETWAREOPENBSDMorphOSSymbian 다음은 rtl 소스 디렉토리의 서브 디렉토리 입니다. 정말 다양합니다.ㅎㅎ 일단 당분간 목표는 여기에 개인적으로 작업하고있는 자작 OS 를 추가하는 겁니다. FPC 아니었다면, 컴파일러까지 만들겠다고 생난리를 쳤을텐데 그나마 다행이네요. 아직은 아이디어 단계이긴하지만 자바의 조상이.. 2014. 4. 10.
FPC 로 OS 커널 만들기... - 1 - 예전부터 파스칼 OS 제작을 꿈꿔오고 있었는데요. 현실적인 제약 때문에 그냥 은퇴하면 해야겠거니...하고 생각했습니다. 그러다 최근 시간적 여유가 생겨 미뤘던 작업을 하나 둘 해보고 있습니다.(얼마나 갈런지요? ㅠㅠ 먹고 살아야하니...) 일단, Intel 계열 CPU 의 경우~ 처음 부팅시 리얼 모드에서 동작하다 보호 모드로 전환하는 과정을 거쳐야하는데... 리얼 모드는 16비트 기계어로 동작합니다. 따라서 부팅의 시작을 담당하는 부트로더의 경우, 16비트 기계어 코드가 필요한 것이죠. 약간의 결벽증이 있던 저는 2006년경 TP(Turbo Pascal)로 관련 작업을 해보았습니다. 2012/04/09 - [프로그래밍/OS] - 파스칼로 만든 부트로더... - 1 - 당시에는 TP 와 델파이로만 OS .. 2014. 4. 9.
CodeTyphon 으로 FPC 크로스 컴파일러 생성하기... 수동으로 크로스 컴파일러를 생성하는 방법은 2014/04/04 - [프로그래밍/OS] - FPC 64비트(x86_64) 리눅스에서 32비트(i386) 크로스 컴파일러 생성하기... 를 참고해 주세요. 먼저, CodeTyphon 을 다운로드합니다. http://www.pilotlogic.com/sitejoom/index.php/downloads/finish/30-codetyphon/123-codetyphonins-zip 윈도우, 리눅스 모두 상기 파일을 다운로드하면 됩니다. 아울러 Vista 이후 윈도우의 경우 관리자 권한을 사용하여 설치 과정을 진행하면 되겠습니다. 다운로드한 압축파일을 적당한 곳에 해제한 후, install.bat 를 실행합니다. 아참 아래 스샷에서처럼 CodeTyphon 이라는 디렉토.. 2014. 4. 8.
FPC 64비트(x86_64) 리눅스에서 32비트(i386) 크로스 컴파일러 생성하기... CentOS 에서 라자루스를 설치하였다면, /usr/share/fpcsrc/2.6.2 와 같은 디렉토리에 fpc 의 소스가 설치되어있을 겁니다. 해당 디렉토리 아래 compile 디렉토리로 이동한 후, 아래의 명령어를 입력합니다. cd /usr/share/fpcsrc/2.6.2/compiler make cycle CPU_TARGET="i386" 어차피 리눅스에서 실행하고 32비트 리눅스 컴파일러이기 때문에 OS_TARGET 은 생략하였습니다. 끝에 오류 메시지가 나오는데, compile 디렉토리에 ppcross386 이 무사히 생성되어있길래 그냥 무시하였습니다.(ㅡㅡㅋ) 심볼링 링크를 생성해줍니다. ln -s /usr/share/fpcsrc/2.6.2/compiler/ppcross386 /usr/bin .. 2014. 4. 4.
GRUB Legacy 를 이용한 부팅가능한 CD 이미지 만들기 GRUB 2 와 달리 기존의 GRUB 1 의 경우 GRUB Legacy 로 칭합니다. 먼저, CentOS 에서 관련 패키지들을 설치합니다. 저 같은 경우에는 그냥 설치되어있더군요. yum install genisoimage grub 작업 디렉토리(여기서는 isofiles)를 생성한 후, boot/grub 디렉토리도 생성합니다. mkdir -p isofiles/boot/grub 생성한 grub 디렉토리에 기설치된 grub 패키지의 El Torito 파일들을 복사합니다. 참고로 El Torito 는 CD-ROM 부팅 관련 표준으로 이해하면 되겠습니다.(64비트 CentOS 인 관계로 경로가 x86_64-redhat 이 붙습니다.) cp /usr/share/grub/x86_64-redhat/stage2_elt.. 2014. 4. 3.
라자루스(Lazarus) 한글 주석 입력하기...(뻘팁) 아시다시피 현재 라자루스 IDE 상에서 한글 입력이 직접적으로 되지 않습니다. 특히 주석을 작성할 때, 여러모로 곤란한데요. 이를 극복할 수 있는 방법으로 뭐가 있을까요? 어차피 코딩의 95%는 영문이니까... 기왕지사 100% 로 만들어버린다. 아울러 영문작문법 서적을 구입한다.소스가 제공되니까 라자루스 IDE 를 아주 손쉽게 수정해 버린다.(설마 저한테 이런 걸 기대한 건 아니죠? ㅡㅡa)주석은 필요없다. 코드가 이야기를 한다.다른 에디터에서 한글 주석을 작성한 후 복사하고 이를 붙여넣는다. 저는 인간적인 사람이라 4 의 방식을 선호하는 편인데요. 저처럼 4 에 해당하는 분들을 위한 꼼수입니다. 그냥... Ctrl + Shift + T 를 뙇~ 하고 누르십시요. 네네~ ToDo 입력창이 뜹니다. 후후.. 2014. 3. 24.
라자루스(Lazarus) 자동 완성 기능, 대입 연산자(:=) 앞 뒤 공백 삽입하기.. 라자루스 사용 관련 팁을 짧더라도 그때 그때 포스팅하도록 하겠습니다. ^^ 라자루스에서 코딩을 하다보면 IDE 의 자동 완성 기능이 기존 사용하던 습관과 조금 맞지 않을 때가 있습니다. 물론 사람들 마다 차이가 있을 텐데요. 저는 대입 연산자가 항상 거슬리더군요. 앞 뒤를 꼭 띄어 써야 뭔가 불안(?)하지 않다고 할까요? 다행히 라자루스에는 관련 세부 옵션들이 존재합니다. 먼저, Tools > Options... 메뉴를 실행합니다. 그리고 Codetools 의 Space 항목으로 이동합니다. 그리고 아래 이미지처럼 Symobol 항목을 체크하고 적용합니다. Preview 에 해당 옵션 반영시 나타나는 코드가 샘플로 나오니 꼭 확인하시기 바랍니다. 사실 Codetools 의 옵션값들만 잘 통일 시켜도 프로.. 2014. 3. 24.
라자루스(Lazarus) 파일명 대소문자 혼용 사용하기 라자루스에서 파일을 저장할 때 파일명이 자동으로 소문자로 변경되는 경우, Tools > Options > Environment > Naming 설정을 확인합니다. 만약, Auto rename file lowercase 가 선택되어있다면 자동으로 파일명을 소문자로 변경합니다. 대소문자 혼용으로 사용하실 경우라면 No automatic renaming 을 선택하면 됩니다. 별거 아니지만 은근 신경 쓰이던 부분인데... 찾아보니 역시 관련 옵션이 존재하는군요.^^ 2014. 3. 21.
Lazarus Indy 10 설치하기... - 리눅스 델파이를 사용하든 라자루스를 사용하든 애증의 인디 컴포넌트를 피할 수는 없습니다. 어떤식으로든 다시 만나게 되어있죠. 물론, 델파이라면 기본적으로 인디가 설치되어있지만, 라자루스의 경우라면 직접 소스를 받아 설치를 해주어야합니다. 먼저, 소스를 다운로드합니다.(http://www.indyproject.org/Sockets/fpc/index.EN.aspx) 헌데 자세히 보면 zip 으로 압축되어 올라와있는 소스의 경우, 2007년 11월 13일 이후로 전혀 업데이트가 되어있지 않은 상황입니다. 멋모르고 이 녀석을 다운로드하여 설치하면 쏟아지는 에러를 경험할 수 있게 됩니다. 그럼 어떻게 해야할까요? 별 수 없습니다. 그날 그날 올라오는 인디 소스를 체크아웃하여 쓸 수 밖에... ㅡㅡㅋ 불안하시다고요? 하지.. 2014. 3. 19.
Java IntelliJ IDEA 13 안드로이드 개발 환경 구축 - 1 - IntelliJ 안드로이드 개발 환경 구축을 위하여 다음의 웹 문서들을 참고하였습니다. Prerequisites for Android Development Create a New Android Project Import an Existing Project Explore the Project Structure Build and Runt the Application Edit the UI Layout Using the Designer Edit the UI Layout Through the Text Editor Creating Unit Tests Make the Application Interactive Package the Application for the App Store 먼저 자바 SDK 를 다운로드한 .. 2014. 2. 27.
IntelliJ IDEA 13 설치 & JBuilder 키맵 적용 오랫동안 프로그래밍을 해오다보면, 개발 언어 그 자체보다는 개발 환경에 종속되는 경우가 많습니다. 저 같은 경우 1~2년에 한번 꼴로 자바 프로젝트를 하곤하는데... 걸림돌은 항상 자바 언어 자체 보다는 IDE 가 주는 낯설음이었습니다. 하여 볼랜드 IDE 의 노예인 저는 자바 프로젝트가 있을 경우 JBuilder 를 사용하였습니다. 하지만, 그 마저도 사실상 단종된 상황인지라 최근엔 대안으로 IntelliJ 를 사용합니다.(이유는 아래에...) 애초 웹 개발 용도로 자바를 사용하는 편은 아닌지라, 무료버전인 Community Edition 만으로도 저는 충분히 하고 싶은 것을 다 할 수 있습니다. ^^ http://www.jetbrains.com/idea/download/ 설치 과정에 특별한 부분은 없.. 2014. 2. 26.
sublime text 2, FTP 연동하기....(SFTP 설정) SFTP 패키지를 설치하기 위하여 Package Control 을 사용한다. 참고: 2014/02/10 - [프로그래밍/언어 - 기타] - sublime text 2, 기본 환경 설정(한글, 패키지 관리). 에디터에서 Ctrl+Shift+P 를 누른 후, Install Package 를 선택한다. SFTP 를 검색하고 설치를 진행한다. 아래는 에디터의 하단 상태바에서 설치 진행 중인 상태를 나타낸다. 잠시 후, 설치가 완료되면 메시지 파일을 불러온다. 에디터를 재실행한 후에, SFTP 가 정상적으로 설치되었는지 확인한다. 사용방법은, 연동할 폴더에서 마우스 우클릭으로 팝업 메뉴를 띄운 후 "Map to Remote..." 를 실행한다. 이어 자동으로 생성된 sftp-config.json 파일의 내용을 사.. 2014. 2. 18.
크롬 앱(Chrome Apps) 개발 - 1 - 크롬은 웹앱 외에도 네이티브랑 유사한 형태의 크롬 앱을 지원한다. 물론, 개발 언어는 웹앱과 동일하게 HTML5, JavaScript, CSS 를 사용하지만, 크롬 API 와 기존 웹사이트에서 접근할 수 없는 서비스들을 사용할 수 있다. 크롬 앱으로 개발할 수 있는 것들로 다음과 같은 것이 있다.(정말? @@) Shells (VMWare, Citrix, SSH, RDP or VNC clients)Music/video streamingPhoto/video/music editing 크롬 앱은 설치 후, 로컬에서 실행되므로 네트워크에 의존적이지 않으며 오프라인 상태에서도 동작한다. 이 즈음 하여, 구글 홈페이지(https://developer.chrome.com/apps/first_app.html)에 나와있는.. 2014. 2. 12.
sublime text 2, 기본 환경 설정(한글, 패키지 관리) 먼저, 한글입력이 가능하도록 한다. Preferences > Settings - User 메뉴를 선택한다. 폰트를 지정해준다. 윈도우7 의 대표 폰트인 맑은고딕으로 변경해보았는데, 파일을 저장함과 동시에 IDE 의 폰트가 즉시 변경된다.(현재 시스템에 설치되어있는 폰트 중 사용하고 싶은 폰트를 지정하면 된다.) 다음으로 다양한 패키지를 설치 및 제거, 관리가 가능한 Package Control 을 추가한다. View > Show Console 메뉴를 선택한다. 상기 이미지에서 박스로 지정한 영역에 다음의 코드를 복사하여 붙여넣는다. import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); o.. 2014. 2. 10.