06Àå



Similar documents
교육지원 IT시스템 선진화

Microsoft PowerPoint - LN_8_Linux_INT_Module.ppt [호환 모드]

untitled

Microsoft PowerPoint - Chapter_05.pptx

K&R2 Reference Manual 번역본

슬라이드 1

p529~802 Á¦5Àå-¼º¸í,Ç×ÀÇ

01_피부과Part-01

KEY 디바이스 드라이버


슬라이드 1

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

01....b

00목차

(291)본문7

2007백서-001-특집

Chapter #01 Subject

호랑이 턱걸이 바위


망고100 보드로 놀아보자 -13

chap7.key

<C1D6BFE4BDC7C7D0C0DA5FC6EDC1FDBFCF28B4DCB5B5292E687770>

시편강설-경건회(2011년)-68편.hwp

정 관

untitled

DocHdl2OnPREPRESStmpTarget

°ø°³¼ÒÇÁÆ®-8È£

282서비스업관리-마트

Embeddedsystem(8).PDF

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8AEB4AABDBAC4BFB3CEC7C1B7CEB1D7B7A1B9D62D352E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

리눅스커널-06

PART

Part Part

£01¦4Àå-2

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

商用

교육지원 IT시스템 선진화

<4D F736F F F696E74202D205BBAB0C3B75D20B8AEB4AABDBA20B5F0B9D9C0CCBDBA20B5E5B6F3C0CCB9F620B8F0B5A82E >

歯9장.PDF


C++-¿Ïº®Çؼ³10Àå

, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

untitled

Adding a New Dev file

6주차.key

Èñ¸Á27È£0918

untitled

......

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

chap10.PDF

Sena Technologies, Inc. HelloDevice Super 1.1.0

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

Microsoft PowerPoint - 10-EmbedSW-11-모듈

<4D F736F F D20C3A520BCD2B0B32DC0CCB7B2B0C5B8E9B3AAB6FBBFD6B0E1C8A5C7DFBEEE322E646F63>

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

우루과이 내지-1

본 강의에 들어가기 전

제1장 Unix란 무엇인가?

(Microsoft PowerPoint - Device Driver [\310\243\310\257 \270\360\265\345])

삼외구사( 三 畏 九 思 ) 1981년 12월 28일 마산 상덕법단 마산백양진도학생회 회장 김무성 외 29명이 서울 중앙총본부를 방문하였을 때 내려주신 곤수곡인 스승님의 법어 내용입니다. 과거 성인께서 말씀하시길 道 를 가지고 있는 사람과 어울려야만 道 를 배울 수 있

05.PDF

(Microsoft PowerPoint - Device Driver [\310\243\310\257 \270\360\265\345])

제12장 파일 입출력

p103~241 Á¦2Àå-ÆíÇù°ú¾ð·ÐÀÚÀ¯

2. GCC Assembler와 AVR Assembler의차이 A. GCC Assembler 를사용하는경우 i. Assembly Language Program은.S Extension 을갖는다. ii. C Language Program은.c Extension 을갖는다.

10.

Microsoft PowerPoint - chap6 [호환 모드]

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

p367~520 Á¦4Àå-¼¼¹Ì³ª,³í¹®


IAEA

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - lab14.pptx

교육지원 IT시스템 선진화

윤성우의 열혈 TCP/IP 소켓 프로그래밍

ABC 11장

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

2007_2_project4

이명숙초고.hwp

분 후 가구수 현 행 조 후 가구수 가구수 비 장호원 진암5 468 부 발 무촌3 579 백 사 현방 증포1 448 증 포 갈산1 769 진암5 281 기존 자연마을 진암 코아루아파트 369세대 무촌3 271 기존 자연마을 무촌 효

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

ePapyrus PDF Document

untitled

untitled

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

/chroot/lib/ /chroot/etc/

PowerPoint 프레젠테이션

Chapter_02-3_NativeApp

MPLAB C18 C

Transcription:

Chapter 5 Chapter 6 Chapter 7 chapter 6 Part 1 6.1 Part 2 Part 3 145

146

Chapter 5 Chapter 6 Chapter 7 Part 1 Part 2 Part 3 147

148

Chapter 5 Chapter 6 Chapter 7 Part 1 Part 2 Part 3 149

150

Chapter 5 Chapter 6 Chapter 7 6.2 Part 3 Part 2 Part 1 151

152

Chapter 5 Chapter 6 Chapter 7 Part 3 Part 2 Part 1 153

154

Chapter 5 Chapter 6 Chapter 7 6.3 Part 1 Part 2 Part 3 155

#ifndef _ASM_I386_UNISTD_H_ #define _ASM_I386_UNISTD_H_ /* * This file contains the system call numbers. */ #define NR_exit 1 #define NR_fork 2 #define NR_read 3... #define NR_getdents64 220 #define NR_fcntl64 221... #ifndef _ASM_I386_UNISTD_H_ #define _ASM_I386_UNISTD_H_ /* 156

Chapter 5 Chapter 6 Chapter 7 * This file contains the system call numbers. */ #define NR_exit 1 #define NR_fork 2 #define NR_read 3... #define NR_getdents64 220 #define NR_fcntl64 221 #define NR_mysyscall 222 //... Part 1... #include <linux/config.h> #include <linux/sys.h> #include <linux/linkage.h> #include <asm/segment.h> #define ASSEMBLY #include <asm/smp.h> EBX ECX... = 0x00 = 0x04 Part 2 Part 3 157

... ENTRY(sys_call_table).long SYMBOL_NAME(sys_ni_syscall) /* 0. old "setup()" system call*/.long SYMBOL_NAME(sys_exit).long SYMBOL_NAME(sys_fork)....long SYMBOL_NAME(sys_getdents64) /* 220 */.long SYMBOL_NAME(sys_fcntl64).long SYMBOL_NAME(sys_mysyscall) /* 222 */.long SYMBOL_NAME(sys_ni_syscall) /* reserved for TUX */... /* Sys_mysyscall() */ #include <linux/unistd.h> #include <linux/errno.h> #include <linux/kernel.h> #include <linux/sched.h> asmlinkage int sys_mysyscall() { printk("hello Linux Kernel Programming!\n"); return 0; } 158

Chapter 5 Chapter 6 Chapter 7... O_TARGET := kernel.o export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o printk.o Part 1 Part 2 Part 3 obj-y = sched.o dma.o fork.o exec_domain.o panic.o printk.o \ module.o exit.o itimer.o info.o time.o softirq.o resource.o \ sysctl.o acct.o capability.o ptrace.o timer.o user.o \ signal.o sys.o kmod.o context.o... 159

... O_TARGET := kernel.o export-objs = signal.o sys.o kmod.o context.o ksyms.o pm.o exec_domain.o printk.o obj-y = sched.o dma.o fork.o exec_domain.o panic.o printk.o \ module.o exit.o itimer.o info.o time.o softirq.o resource.o \ sysctl.o acct.o capability.o ptrace.o timer.o user.o \ signal.o sys.o kmod.o context.o mysyscall.o... /* */ mysyscall.c #include <linux/unistd.h> _syscall0(int, mysyscall); 160

Chapter 5 Chapter 6 Chapter 7 main() { int i; i = mysyscall(); } $ vi mysys.c /* mysys.c */ #include <linux/unistd.h> _syscall0(int, mysyscall); $ gcc -c mysys.c $ ls mysys.c mysys.o $ ar -r libmy.a mysys.o $ ranlib libmy.a $ vi mysyscall1.c /* mysyscall1,c */ main() Part 3 Part 2 Part 1 161

{ int i; i = mysyscall(); } $ gcc -o mysyscall1 mysyscall.c -L /root/lib -lmy $ mysyscall1 /* module.c */ #define KERNEL #define _LINUX #define MODULE #include <linux/kernel.h> #include <linux/module.h> 162

Chapter 5 Chapter 6 Chapter 7 int init_module() { printk( Hello Module Programming!\n ); return 0; } void cleanup_module() { printk( Good-Bye Module!\n ); } Part 1 $ ls module.c $ gcc -c module.c $ ls module.c module.o $ insmod module.o Hello Module Programming! $ lsmod Module size used by module 340 0(unused) $ rmmod module Good-Bye Module! Part 2 Part 3 163

/* new_write.c new_write() */ #define MODULE #define KERNEL #include <linux/sched.h> #include <linux/kernel.h> #include <linux/string.h> #include <asm/io.h> #include <linux/module.h> #include <asm/uaccess.h> #include <sys/syscall.h> extern void *sys_call_table[]; ssize_t (*old_write)(int f, const void *b, size_t n); ssize_t new_write(int fd, const void *buf, size_t count) { char *write_buf = (char *)kmalloc(count + 1, GFP_KERNEL); copy_from_user(write_buf, buf, count); if(current->uid!= 0) 164

Chapter 5 Chapter 6 Chapter 7 } { } if(strstr(write_buf, "2004")!= NULL) printk("happy New Year!\n"); kfree(write_buf); return old_write(fd, buf, count); Part 1 int init_module(void) { old_write = sys_call_table[sys_write]; sys_call_table[sys_write] = new_write; } return 0; void cleanup_module(void) { sys_call_table[sys_write] = old_write; } Part 2 $ echo "2004 01 01" $ Happy New Year! 2004 01 01 Part 3 165

166

Chapter 5 Chapter 6 Chapter 7 >>> Key word Part 3 Part 2 Part 1 167

>>> Question 01. 02. 03. 05. 06. 07. 04. 08. 09. 168

Chapter 5 Chapter 6 Chapter 7 10. Part 3 Part 2 Part 1 169

170