안드로이드 스터디 => 언어만 잘 알면 어플리케이션을 만들 수 있을 것이다!

Slides:



Advertisements
Similar presentations
1/15 16 기 장영일 Ext File System. 2/15 처음에 Minix 가 사용되었다 ( 제약사항 ) 최대로 저장할 수 있는 파일의 크기 – 64M : 16bit 정수로 블록 주소 지정 -> 1024( 블록 기본 사이즈 ) * (2^16) = 64M.
Advertisements

KB 스타 경제 · 금융교실 나는 용돈관리왕. KB 스타 경제 · 금융교실 나는 용돈관리왕 선생님은 ? KB 2  이름 : 김국민  별명 : 스타 왕자  소속 : KB 국민은행 소비자 보호담 당 ( 간단한 자기 소개 : 교육 대상이 흥미 를 가질 수 있는 이미지와.
북한기도제목 1 월 1 주 (1/1-1/7). 1. 북한정치 - 북한의 대남정책 전반을 관장하는 김양건 북한 노동당 비서 겸 통일전선부장이 교통사 고로 지난 29 일 사망했다고 조선중앙통신이 30 일 보도했습니다. 한편 김양건 노동당 비 서의 죽음이 의도적인 암살 가능성이.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
F & KOREA 통신상품 사업제안서. Contents ■ Contents 1. 사업 소개 1. 배경과 목적 2. 통신상품의 특징 3. F&Korea 사업의 장점 I. 회사 소개 II. 제안 사업 III. 기대효과 1 II. 제안 사업 2. 통신상품의 특징 Contents.
김 O O 입사 지원 이력서 및 자기소개서.
한림대학교 임직원 단말 공급 : LTE 기종, 신규 가입 (010/번호이동)
LOGO 주기억장치와 보조기억장치 한재성.
MB노믹스의 실패와 미래 22조 배주환 외 5명.
컴퓨터 일반 모의고사1.
안 보여 줄끼가? 소프트웨어 프로젝트 1 – 제안서 발표 피바다 (A6)조 발표자 : 조기수.
2012년 12월 정기 제직회 기 도 : 김영민 집사 출 석 : 서 기 개회 선언 : 제직회장 (이태환 장로)
프랜차이즈 본사 인트라넷 구축 제안서 제출처 : ㈜마세다린 제출사 : ㈜데이타캠프 제출일 :
오늘 뭐하(조) Software Engineering Team Project APP만들기 팀장 팀원 심중섭
[개인 정보 수집 및 이용에 관한 동의] [민감 정보 수집에 대한 동의] [개인 정보 제 3자 제공에 대한 동의]
보육시설과 운영관리 어린이집 재정 아동보육학과 최은지.
경영 정보 시스템 구축 제안서 가우정보기술주식회사 [신화 제약 주식회사] 1997년 10월 9일 새로운 기법 철저한 사후 관리
Part01. 시스템 해킹을 위한 기초 지식 Chapter01. 운영체제에 대한 이해
2014학년도 중학교 교육과정 편성시 유의사항 울산광역시교육청 교육과정운영과 한 상 철.
제 5장 북한의 당 - 군관계 당 – 군 관계의 특징과 구조 군부 지도층의 특성 당 – 군 관계 실제 민-군 관계
Web Programming 강의 소개
Ⅵ. 메모리와 프로그램 가능한 논리소자 1. 메모리의 개요 2. ROM 3. RAM 4. 프로그램 가능한 논리소자
네트워크 프로그래밍 <네트워크 주문 프로그램 V1.00 >
임베디드 시스템.
3장. 컴퓨터의 기억장치 학번 : 이름 : 김현화.
Complementary Metal Oxide Semiconductor
웹과 PHP를 이해하고 APM 설치 방법을 알아보자!
2. Linux Installation Target Embedded System은 리눅스 환경을 사용한다. 이 장에서는 리눅스 설치부터, 각 설정의 의미들에 대해 이야기 한다.
소프트웨어 공학 Project - 어플리케이션 만들기 ( CS App ) 최종 발표
가속도 감지센서를 이용한 안드로이드 게임 지도교수님 : 전진우 이동훈.
(PROJECT명: Web Server관리)
자격증 모의 테스트 시스템 담당 교수 : 이 상 문 교수님 팀명 : CSCLAB
Ch 08. 부트 프로세스 Flatstar.
멀티미디어 신기술 자기 소개서 윤성필 멀티미디어 전공 자기 소개서.
제 2장 컴퓨터동작의 기본 개념.
쪽지 전송 프로그램 - 최종보고 장승수 최희진 오민영.
Right Now 담당 교수 : 문양세 교수님 팀 원 : 김원모(팀장) 우덕령, 김승선, 김종원, 문경민
Learning PHP, MySQL & JS #2 Jeon Yong ju.
CHAP. 2 안드로이드 개발 도구 설치.
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
홈 네트워크 시뮬레이션 정 찬 번 석 성 환.
글사랑 캡션 편집 안드로이드 앱 담당 교수님 전진우 교수님 진세훈 정상기 글사랑.
CUDA 프로그래밍 1장 왜 CUDA인가? 왜 지금인가? 2장 시작하기 김 태우.
나라장터 사용 방법 공공기관 구매위탁을 위한 사용자 등록 사용자 등록 절차 수요기관 조달청
“정보의 표현” 이 점 숙 컴퓨터와 인터넷 “정보의 표현” 이 점 숙
“소프트웨어의 표현” 이 점 숙 컴퓨터와 소프트웨어 “소프트웨어의 표현” 이 점 숙
MAIL CLIENT 김창우 윤성훈 이경재.
2장. 홈페이지를 만들기 전에 홈페이지 제작 목적과 제작 과정 홈페이지 제작 관련 기술들 홈페이지 제작에 필요한 준비물
초기화면 전 자 우 편 (2) Ⅳ. 컴퓨터와 생활> 2. 인터넷의 활용> 기술·가정 2학년 2학기
알쏭달쏭 요한복음 성경퀴즈.
나는 땅에서 키는 작지만 하늘로부터 재는 키는 이 세상 어느 누구보다도 크다
KB스타 경제·금융교실 은행에 가요.
2015학년도 고등학교 신입생 전형요강 설명회 광주광역시교육청 미래인재교육과 진로진학지원센터.
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
OpenGL Project.
3단원 디지털 세상 속으로 1. 0과 1의 비밀.
기술 진화와 진보.
LOGOTYPE 춤추는 풍선 팀장 : 이준호 팀원 : 장원진.
제4강 학습내용 인텔프로세서의 발전 과정 8086 프로세서와 80i86프로세서 개요 인텔 펜티엄 IV프로세서 개요
2010년 DAEATi 솔루션 사업부 공채 1기 팀 프로젝트 보고
수학8가 대한 108~110 쪽 Ⅴ. 부등식 2. 일차부등식 §1.일차부등식의 풀이(5/10) 일차부등식의 풀이.
대우건설 원시-소사 역사내 수변전실 고체에어로졸 자동소화장치 설치사진 보고
12월 KB손해보험 설계사 시상 Ⅱ. 전략상품 FC 주차시상<닥플(연만기),아이좋은자녀,운전자보험>
CHAP. 2 안드로이드 개발 도구 설치.
천국 가는 길 천국 가는 길 ♧ 천국 가는 길 ♧ 1. 죄와 사망(지옥) 1) 사람의 3가지 공통점 - 죄인, 죽음, 심판
성공적인 입사지원서 작성법 제이비커리어 교육수석 소 은 선.
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
원도우 네트워크 프로그래밍 (TCP/IP 소켓 프로그래밍)
게임 엔진 ~인체 대 탐험~ 조주열.
KB스타 경제·금융교실 화폐가 태어났어요.
Presentation transcript:

안드로이드 스터디 => 언어만 잘 알면 어플리케이션을 만들 수 있을 것이다! • 당시목표 : 참신한 아이디어가 담긴 어플리케이션을 하나 만들자! => 언어만 잘 알면 어플리케이션을 만들 수 있을 것이다!

과정 JAVA + xml

과정 Database , FTP 서버

과정 웹 프로그래밍 언어 => php, asp

과정 Eclipse

운영체제 만들기의 목표 => 여러가지 툴 사용법을 익히고, 언어와 컴퓨터 구조 등을 제대로! 이해하는 것 만드는 것 자체에 목적을 두는 것 보다는, 이 과정을 통해서 얻어갈 수 있는 실전지식을 최대한 쌓아가자! => 여러가지 툴 사용법을 익히고, 언어와 컴퓨터 구조 등을 제대로! 이해하는 것

운영체제 만들기에 앞서 ▶ 준비물 • NASM – 어셈블러(어셈블리어 -> 기계어) • Visual Studio 2010 Express • QEMU – 가상머신 • EditPlus – 어셈블리어 작성을 위한 툴 * 학습 방법 : 책과 블로그 참조 •

컴퓨터의 부팅과정 ① 컴퓨터의 전원버튼을 누른다. ② BIOS가 실행된다. 검사한다. => POST(Power On Self Test) ④ POST가 무사히 끝나면 부팅이 시작된다. - 순서대로 각 이동장치에서 첫 번째 섹터를 뒤진다. - 부트로더가 발견이 되면 BIOS는 이 부트로더를 메모리 0x7C00번지에 로드한다. 그리고 0x7C00 번지로 점프한다.

부트로더의 조건 첫 번째 섹터에 있는 내용물이 부트로더인지 어떻게 구분할까? ① 크기가 512byte 여야 한다. ② 511번째 바이트에는 55, 512번째 바이트에는 AA 문자가 저장 돼 있다.

부트로더 만들기 다른 가능한 방법도 있겠지만, 어셈블리어로 도전! • boot.asm

부트로더 만들기 • nasm 으로 컴파일하여 가상 이미지 파일로 만들었다. => * 컴파일 : 어셈블리어 -> 기계어

부트로더 만들기 • 가상 이미지를 qemu로 실행 • 실행 결과 -L . => 바이오스 파일을 불러오는 명령어 -hda=> 뒤에 경로를 0번 하드디스크로 사용하겠다는 의미 • 실행 결과

부트로더 만들기 • 수정하고 실행해 볼 때마다 일일이 명령어를 치기 불편하므로 배치파일(make.bat)을 생성.

부트로더에서 글자 출력 글자를 출력하려면 비디오 메모리라는 것을 사용

세그먼트-오프셋 방식 • 16비트 CPU시절 메모리 주소 방식 16비트는 16진수 네 자리 이므로, 0x0000~0xFFFF 까지 사용 => 메모리 총 64kb(2의 16승)까 지 사용 가능 (직접 접근 방식)

세그먼트-오프셋 방식 • 인텔은 새로운 CPU를 1MB까지 인식 가능하도록 설계 함 1메가 바이트면 주소를 표현하는데 20비트를 사용한다는 것 16비트 레지스터 두 개를 사용함

세그먼트-오프셋 방식 비디오 메모리인 0xB800:0000 은 결국 0xB8000 • 16비트 레지스터 두 개를 사용하는 방식 : 세그먼트 – 오프셋 방식 • 0x2000 : 0x0111 0x20000(세그먼트) => 한자리 수 올려서 더함 + 0x0111(오프셋) -------------- 0x20111 비디오 메모리인 0xB800:0000 은 결국 0xB8000

글자출력 - 레지스터? • es, ax, ah, al, ax?

레지스터?

레지스터?

레지스터?

레지스터?

글자출력

커널 • 커널의 필요성 부트섹터에는 512바이트 밖에 기록하지 못함 => 이 작은 공간에 운영체제의 여러 기능을 추가할 수 없음. => 결국 다른 영역에 커널을 작성하여 이것을 부트섹터에서 불러오는 것으로 구성.

커널 • 시스템의 자원을 관리한다. • 모든 시스템이 원활하게 작동할 수 있도록 제어하는 소프트웨어다. • 운영체제를 구성하고 있는 핵심으로써 DRAM에 상주하여 시스템 구동에 필요한 환경설정과 수행되는 프로그램을 스케줄링하는 소프트웨어다. • 커널의 기능에는 프로세서 관리, 메모리 관리, 파일시스템 관리, 네트워크 관리, 디바이스 관리가 있다.

커널로 넘어가기 ① 바이오스는 부트섹터를 읽어와서 메모리에 올려놓는다. ② 부트섹터에 존재하는 부트 코드는 커널을 로드한다.

커널로 넘어가기 - 하드디스크 읽기 • 부트 프로그램이 디스크의 일정부분(커널)을 메모리에 올리기 위해서는 디스크를 읽어야 한다. • 읽는 과정은 OS또는 BIOS에 의해 제공되는 인터럽트 바이오스 콜 13 이용 가능. • 결국 부트 로더에서는 간단히 이미지를 디스크에서 메모리로 로딩하는 역할만 한다.

커널로 넘어가기 – 하드디스크 읽기

커널로 넘어가기 – 하드디스크 읽기 • 인터럽트 바이오스 콜 13 중 읽기 명령인 2번 명령

커널로 넘어가기 – 하드디스크 읽기 • 커널소스

커널로 넘어가기 – 하드디스크 읽기 • 실행 : [부드로더 + 커널] => OS.img

CHS 방식 -> LBA 방식 • 섹터에 접근하기 위해서 필요한 정보 - 실린더, 헤드, 섹터 번호

실린더 6개 헤드 10개 섹터 8개 • 9번 섹터의 데이터를 읽으려 할 때 => 섹터 번호 부분에 ‘9’라는 값을 넣어준다? => X 헤드의 값을 1 증가, 섹터의 값으로 1을 줌. 실린더 6개 헤드 10개 섹터 8개

CHS 방식 -> LBA 방식 • LBA 방식 ( Logical Block Addressing) - 528MB밖에 인식하지 못하는 CHS 방식의 단점을 극복하고자 등장 - 1차원 배열처럼 섹터에 접근하 는 방식

16비트 리얼모드 -> 32비트 보호모드 16비트 리얼모드 컴퓨터를 처음 켜면 16비트 ‘리얼모드’로 부팅 80286 이후의 x86 호환 CPU의 운영 방식이다 컴퓨터를 처음 켜면 16비트 ‘리얼모드’로 부팅 32비트 보호모드로 변경시키는 것은 OS의 역할

16비트 리얼모드 -> 32비트 보호모드 16비트 리얼모드의 단점 16비트 리얼모드의 단점 ① Segment:Offset 주소 방식은 20비트이기 때문에 1MB 이상의 메모리영역에 접근할 수 없다. ② 메모리 접근에 대한 보호를 할 수 없다. 16비트 코드는 물리 메모리 주소에 직접 엑세스 한다. 이게 문제가 되는 이유는 응용프로그램이 실행될 때 메모리의 어딘가에 로드되는데, 실행 중 커널이 로드된 메모리를 갈아 엎을 위험이 있다. 따라서 커널이 죽을 수가 있다.

16비트 리얼모드 -> 32비트 보호모드 32비트 보호모드의 장점 ① 4GB 메모리영역까지 접근이 가능하다. ( 2^32 = 4GB ) ② 메모리 접근에 대한 보호가 가능해진다. CPU에 의해 제공된다. 응용프로그램이 커널이 로드된 메모리를 갈아 엎으려 하면 CPU가 에러를 뿜어낸다. 커널이 그 에러를 적당히 처리해준다. (응용 프로그램을 끄는 등)

16비트 리얼모드 -> 32비트 보호모드 32비트 보호모드의 장점 ③ 보호 모드는 시스템 소프트웨어가 다중작업, 가상 메모리, 페이징, 그리고 응용 소프트웨어를 넘는 운영 체제 제어 능력을 높이기 위해 고안된 운영 체제의 다른 기능들을 이용할 수 있게 도와준다.

16비트 리얼모드 -> 32비트 보호모드 GDT 란 - 여러 개의 세그먼트 디스크립터로 구성

16비트 리얼모드 -> 32비트 보호모드 GDT 란 GDT는 말 그대로 테이블. C언어의 구조체와 비슷. - GDT도 구조체와 마찬가지로 CPU에서 필요로 하 는 정보를 그 규칙에 따라 적어주기만 하면 된다. - GDT에는 다양한 정보가 포함. 메모리의 접근권한 이라던지, 접근방식이라던지.. 시작 위치라던지..

16비트 리얼모드 -> 32비트 보호모드 GDT 작성 1. GDT를 작성한다. 2. GDT를 등록한다. 3. 32비트 모드 스위치를 켠다. CPU에서 필요로 하는 정보를 그 규칙에 따라 적어주기만 하면 된다.

스위치를 켜줌

커널 내에서 비디오 디스크립터를 사용해서 문자출력

C언어로 운영체제 만들기

동일한 컴퓨터라 할지라도 윈도우가 설치되어 있는 컴퓨터와 리눅스가 설치되어 있는 컴퓨터는 같은 애플리케이션이라도 컴파일된 결과물은 다르다. 리눅스 : 010100000010001000100… printf(“감사합니다. “); 윈도우 : 010100111010001010101…

Thanks, See You