슬라이드 1
|
|
- 지후 시
- 5 years ago
- Views:
Transcription
1 7 장 파일시스템 파일시스템의개요 ext2 파일시스템 파일시스템관련자료구조 NFS 파일시스템 proc 파일시스템 한빛미디어 ( 주 )
2 Section 01 파일시스템의개요 파일 디스크와같은물리적인저장매체에저장되는프로그램 데이터정보에대한논리적인저장단위 파일시스템 파일을어떻게관리할것인가에대한정책 파일을저장하고또한찾기가용이하도록유지및관리하는방법 파일 + 디렉토리구조 ext2, ext3, ex4, msdos, ntfs, iso9660, minix, vfat, proc, smb, ncp, sysv, hpfs, affs, ufs 다양한파일시스템을지원하기위해가상파일시스템 (VFS:Virtual File System) 을도입 2
3 Section 01 파일시스템의개요 가상파일시스템 (abstraction layer) 다양한파일시스템을일관된형태로인식할수있도록하는기법 [ 그림 7-1] 가상파일시스템의역할 3
4 Section 01 파일시스템의개요 파일저장공간의할당방법 파일시스템은파일을디스크블록이라는논리적인단위의집합으로관리 사용자가파일을디스크에저장하기를요청하면파일은이블록단위로분할되어파일시스템의정책에따라일정한장소에내용을기록 블록의크기 1KB, 4KB, 16KB, 64KB 등 디스크블록과대응되는섹터 (512 byte) 들을매핑하는역할은디스크디바이스드라이버 ( 디스크컨트롤러 ) 가수행 (p271 예 ) 파일크기 100KB, 블록크기 4KB: 25 개디스크블록 (200 개섹터 ) 할당 연속할당 vs 불연속할당 4
5 Section 01 파일시스템의개요 연속할당 디스크내의연속된블록을하나의파일에순차적으로할당하는방법 가용공간을선택하는방법 최초적합 (first-fit), 최적적합 (best-fit), 최악적합 (worst-fit) 방법 외부단편화발생 파일의크기가가변적으로변화되는경우연속적인할당이불가능 해결방법은? [ 그림 7-2] 디스크블록할당예 5
6 Section 01 파일시스템의개요 불연속할당 불연속적인공간에흩어진디스크블록에나누어저장하는방법 구현방법 연결할당 (Linked Allocation), 인덱스할당 (Indexed Allocation) 기법 연결할당 흩어진블록들을연결리스트로관리하는기법 순차접근인경우에는효과적인지만직접접근방식에서는매우비효율적» DOS와같은운영체제 : FAT 기법사용 인덱스할당 디스크블록에대한위치정보를가지고있는인덱스블록을사용» 블록이할당될때마다해당엔트리에정보를기록» 직접접근문제는해결, 인덱스블록을유지하는비용문제가발생 파일이커지면하나의인덱스블록만으로관리불가능» 여러개의인덱스블록이필요하면이를연결리스트로관리 리눅스는 inode를이용한 inode 기법을사용 6
7 Section 02 ext2 파일시스템 ext2 파일시스템의이해 EXT(Extended File System) EXT2 EXT3 EXT4 EXT3 파일시스템 EXT2 파일시스템에저널링기능을추가 데이터의신뢰성을강화하고, 속도를향상시킨파일시스템 mke2fs 파일시스템을만드는명령어 블록의크기 -b 옵션을사용하여 1024, 2048, 4096를지정가능» 생략시
8 Section 02 ext2 파일시스템 ext4: Extended File System 4 또는 ext4 는차세대저널링파일시스템이며이전파일시스템인 ext3 과의호환성도제공 Linux 를지원하는최초의파일시스템은 Minix 파일시스템이었지만이파일시스템에는몇가지심각한성능문제가있었기때문에 Extended File System 이라는파일시스템이 Linux 를위해특별히개발되었다. Remy Card 가설계한첫번째 Extended File System(ext) 은 1992 년 4 월에 Linux 에채택되었다. ext 파일시스템은 0.96c 커널에구현된 VFS(Virtual File System) 스위치를최초로사용했으며최대 2GB 크기의파일시스템을지원했다. 두번째 Extended File System(ext2) 또한 Remy Card 가구현했으며 1993 년 1 월에발표되었다. 이파일시스템은 Berkeley FFS(Fast File System) 와같은당시의다른파일시스템의발전된아이디어를채택했다. Ext2 에서는지원되는파일시스템의크기가 2TB 로확장되었으며 2.6 커널에서는 ext2 파일시스템의최대크기가 32TB 로확장되었다. 세번째 Extended File System(ext3) 은일부경쟁파일시스템에비해성능이떨어지기는했지만 Linux 파일시스템의맥락에서는크게발전한모습을보여준파일시스템이다. ext3 파일시스템에서는예기치않게시스템이중단되었을때파일시스템의신뢰성을높여주는저널링개념이도입되었다. Silicon Graphics 의 XFS 및 IBM JFS(Journaled File System) 와같은경쟁파일시스템의성능이더좋기는했지만 ext3 은이미 ext2 를사용하고있는시스템에서직접업그레이드할수있는기능을지원했다. Ext3 은 2001 년 11 월에발표되었으며 Stephen Tweedie 가구현했다. 현재, 네번째 Extended File System(ext4) 이발표되었다. Ext4 에는성능, 확장성및신뢰성을향상시킨수많은새기능이도입되었다. 가장눈에띄는특징은 ext4 가 1EB(exabyte) 의파일시스템을지원한다는것이다. Ext4 는 ext3 를유지관리해온 Theodore Tso 가이끄는개발자팀에의해구현되어 커널에채택되었다. 그리고지금은 커널에이르러안정적인상태로유지되고있다 (2008 년 12 월현재 ). Ext4 에는다양한경쟁파일시스템의유용한개념이적용되었다. 예를들어, 익스텐트를사용하여블록을관리하는방법은 JFS 에서구현했으며또다른블록관련기능인지연된할당은 XFS 와 Sun Microsystems 의 ZFS 에서구현했다. 새로운 ext4 파일시스템에서는혁신적으로개선된다양한기능을볼수있다. 새롭게추가된기능, 현재파일시스템의한계를뛰어넘은우수한확장성, 오류에효과적으로대응할수있는신뢰성및뛰어난성능에이르기까지파일시스템의모든부분에서개선된사항을발견할수있다. 8
9 Section 02 ext2 파일시스템 ext2 파일시스템의블록구성 GRUB [ 그림 7-3] ext2 파일시스템의블록구성 첫번째블록 ( 블록 0) 파티션부트섹터 (partition boot sector) 를위해예약 부트로더인 LILO 또는 GRUB이들어감 두번째블록 ( 블록 1) 부터 block group 0 이시작 파일시스템전체는여러개의 block group 으로구성 9
10 Section 02 ext2 파일시스템 block group 구성 super block, group descriptor, block bitmap, inode bitmap, inode tab le, data block 로구성됨 data block 들사이에는 directory block 도함께위치 block bitmap 1 개의블록을차지하며각 bit 가한블록의사용상태 (yes/no) 를나타냄 block bitmap 이관리할수있는블록의갯수» 블록크기 4Kbyte 로가정» 4K(=4096) x 8(bit)= 개» 블록 부터 2 번째블록그룹이시작 블록그룹 1 개의크기 블록크기에의해결정 크기가 4KB 이면 4K x 8(bit)x 4K byte=128mbyte 10
11 Section 02 ext2 파일시스템 수퍼블록 (Super block) 수퍼블록의이해 블록크기나 free 블록개수등파일시스템에전체에관한내용이포함 이부분은각그룹마다내용이동일 파일시스템이깨지는경우를대비하기위해수퍼블록의복사본을둠 1 번째그룹 ( 그룹 0) 의수퍼블록과 2 번째그룹 ( 그룹 1) 의수퍼블록의내용이동일 수퍼블록의자료구조 include/linux/ex2_fs.h 파일내에 373 행 : ext2_super_block 구조체로정의 dumpe2fs 명령 파일시스템전체정보를볼수있는명령어 ext2_super_block 구조체의멤버변수들을참조하여해당정보를보여줌 $ mount ( 또는 $ df ) 로파일시스템구조확인 $ dumpe2fs /dev/sda1 more 11
12 Section 02 ext2 파일시스템 dumpe2fs 수행화면 [ 그림 7-4] dumpe2fs /dev/hda2 수행화면 12
13 Section 02 ext2 파일시스템 수퍼블록에포함되는정보들 Magic Number(s_magic) 마운트하는커널로하여금이것이진짜 EXT2 파일시스템의수퍼블록임을확인할수있게한다. 0xEF53 을가짐 Revision Level(s_rev_level) major revision 번호와 minor revision 번호로구성 어떤특정한버전에서만지원되는기능여부를체크할때사용 Mount Count(s_mnt_count, s_max_mnt_count) 파일시스템이마운트될때마다 1 씩증가한다. Maximum Mount Count 와 Mount Count 값이같아지면최대마운트값에도달» 파일시스템체크프로그램 (e2fsck) 를실행 " 메시지표시 Block Count(s_blocks_count) 디스크블록수 13
14 Section 02 ext2 파일시스템 Block Size(s_log_block_size) 이파일시스템의블록크기를바이트단위로표시 Blocks per Group(s_blocks_per_group) 하나의그룹에속하는블록의개수 블록크기와마찬가지로파일시스템을만들때정해짐 Free Blocks(s_free_blocks_count) 파일시스템내의 free block 수 Free Inode(s_free_inodes_count) 파일시스템내의 free inode 수 Inodes per group(s_inodes_per_group) 각그룹당 inode 개수 14
15 Section 02 ext2 파일시스템 그룹디스크립터 (Group Descriptor) 각블록그룹을관리하는정보 전체적으로는하나의그룹디스크립터테이블형성 실제로사용되는것은블록그룹 0에있는첫번째복사본 나머지는원본이손상될경우를대비 ext2_group_desc 구조체에정의 Blocks Bitmap(bg_block_bitmap) 그룹내의블록의할당상태를나타내는 block bitmap 블록의위치를가리킴 Inode Bitmap(bg_inode_bitmap) 그룹내의 inode 의할당상태를나타내는 inode bitmap 블록의위치를가리킴 Inode Table(bg_inode_table) 그룹내의 inode 테이블의시작블록의위치를가리킴 15
16 Section 02 ext2 파일시스템 Free Blocks Count(bg_free_blocks_count) 그룹내의 free block 개수 Free Inode Count(bg_free_inodes_count) free 그룹내의 free inode 개수 Used Directory Count(bg_used_dirs_count) 그룹내에서사용된디렉토리개수 블록비트맵 (Block Bitmap) 각 bit는그룹내각블록의사용상태 (yes/no) 를나타냄커널은비어있는블록을찾을때이 block bitmap을참조파일시스템정보를담은블록 처음부터사용중으로표시 super block, group descriptor block, inode table block 등해당 16
17 Section 02 ext2 파일시스템 Inode bitmap 그룹내각 inode 의사용상태 (yes/no) 를나타냄 Inode table 각각의 inode 에대한정보를나타내는 inode descriptor 들로구성 하나의파일은 1 개의 inode 를가짐 ext2 파일시스템의 inode 자료구조는 ext2_inode 구조체 (include/linux/ex2_fs.h 242 행 ) 로정의 inode descriptor 의항목 Mode 파일 mode, 즉 read/write/execute 권한등을나타내는퍼미션 Owner Info(User ID 와 Group ID) 이파일 ( 또는디렉토리 ) 에대한사용자와그룹식별자 이정보를이용하여파일시스템은접근권한 (access permission) 을관리 Size: 파일의크기를바이트단위로가짐 Timestamps inode 가만들어진시간과최종적으로수정된시간을기록 17
18 Section 02 ext2 파일시스템 Blocks pointers array 파일의실제데이터가저장된위치 (= 블록번호 ) 를가리키는 15 개의포인터배열 blocks pointers 는동작방식에의해아래의 4 가지로나누어짐 Direct blocks pointer» 파일데이터가저장된블록에대한직접포인터 Indirect blocks pointer» 파일데이터가저장된블록에대한간접포인터 Double indirect pointer» 파일데이터가저장된블록에대한이중간접포인터 Triple indirect pointer» 파일데이터가저장된블록에대한삼중간접포인터 18
19 Section 02 ext2 파일시스템 Blocks pointers 동작 [ 그림 7-5] blocks pointers 동작 19
20 Section 02 ext2 파일시스템 지원가능한최대파일크기 가정 : a logical block=4kb Max. file size 1. Direct 12 entries : 48KB ( 4KB * 12 ) 2. Single indirect 1 entry : 4MB» 인덱스블록에는 1024 개의포인터가존재» 디스크블록에존재하며크기는 4KB» 디스크블록을가리키는포인터로구성, 각포인터를위해 4byte 가필요» 각포인터는 4KB 크기의블록을하나씩가리킴» 1024 * 4KB = 4MB 3. Double indirect 1 entry : 4GB» 1024 * 1024 * 4KB = 4GB 4. Triple indirect 1 entry : 4TB ( 아직까지는사용하지않음 )» 1024 * 1024 * 1024 * 4KB = 4TB ( 문제 ) 블록크기가 1KB 인경우의 Max.file size 는? 최대크기 : 48KB + 4MB + 4GB + 4TB 개념상 4TB 정도의파일지원가능 실제로 4GB(2GB) 까지지원» 리눅스의경우, 파일시스템의내부함수들이 32 비트로구현된인자나변수를사용되어있기때문에 4GB( 또는 2GB) 까지지원 20
21 Section 02 ext2 파일시스템 data block 파일의실제데이터가들어가는부분 파일시스템공간의대부분을차지 inode descriptor 의블록포인터는파일이저장되는블록번호를가리킴 directory block 필요에따라데이터블록사이사이에위치 해당디렉토리의엔트리 ( 즉파일, 디렉토리 ) 에대한정보를가짐 Inode Number inode table 내에서의 inode descriptor 위치를가리키는 inode 번호 File Name 파일 ( 디렉토리 ) 이름을가짐 256 byte 이며이름이들어가고남는 byte 는 0 으로채워짐 21
22 Section 03 파일시스템관련자료구조 task_struct 내의 files 와 fs 멤버변수 struct fs_struct *fs; (include/linux/sched.h 1266 행 ) struct files_struct *files; (include/linux/sched.h 1268 행 ) fs_struct (include/linux/fs_struct.h 6 행 ) 이구조체를사용하고있는프로세스의수에대한정보 루트디렉토리와현재작업디렉토리정보를갖는멤버변수로구성 files_struct (include/linux/fdtable.h 41 행 ) 파일을관리하기위한정보들 fd_array 변수 struct file * fd_array[nr_open_default]; NR_OPEN_DEFAULT : 32 로정의, 한번에열수있는파일의수 첫번째항 (fd_array[0]) 은표준입력, 두번째항은표준출력, 세번째항은표준에러로설정, 그다음부터는새로운파일을열때마다태스크가할당되어사용 struct fs_struct { int users; rwlock_t lock; int umask; int in_exec; struct path root, pwd; }; 22
23 Section 03 파일시스템관련자료구조 file 구조체의멤버변수 (include/linux/fs.h 838 행 ) f_dentry dentry 구조체를가리킴 f_pos 이구조체내의 d_inode 변수가 inode 를가리킴» 태스크의파일에대한 inode 는이와같은연결고리로 task_struct 와연결 현재파일에서읽거나쓸위치를나타냄 파일이처음열리면 0 으로설정 읽기또는쓰기연산이수행됨에따라위치가이동 f_op file_operations 자료구조를가리키는포인터 include/linux/fs.h 23 struct files_struct { /* * read mostly part */ atomic_t count; struct fdtable *fdt; struct fdtable fdtab; /* * written part on a separate cache line in SMP */ spinlock_t file_lock cacheline_aligned_in_smp; int next_fd; struct embedded_fd_set close_on_exec_init; struct embedded_fd_set open_fds_init; struct file * fd_array[nr_open_default]; }; struct file { union { struct list_head fu_list; struct rcu_head fu_rcuhead; } f_u; struct path f_path; #define f_dentry f_path.dentry #define f_vfsmnt f_path.mnt const struct file_operations *f_op; atomic_long_t f_count; unsigned int f_flags; fmode_t f_mode; loff_t f_pos; struct fown_struct f_owner; const struct cred *f_cred; struct file_ra_state f_ra; u64 f_version; void *private_data; struct address_space *f_mapping; };
24 Section 03 파일시스템관련자료구조 file_operations lseek, read, write, open 등과같은파일관련연산변수들로구성 각변수에는실제연산을수행하는함수의시작주소가등록 리눅스는정규파일, 디렉토리, 블록디바이스파일, 문자디바이스파일외에파이프, 링크, 소켓등다양한유형의파일을지원 커널은요청된파일이어떤유형인가에따라각파일에적합한함수를서비스함» file_operations 자료구조가이용됨 ext2 파일시스템에서파일을읽는방법과 NFS 의파일을읽는방법이다름 파일연산은각파일의유형에따라서로다른함수로구현됨 ext2 파일 : fs/ext2/file.c NFS 파일 : fs/nfs/file.c 사용자는일반함수사용으로파일사용가능 open() 또는 read() 함수로파일을열거나읽을수있음 파일이 ext2 파일시스템에속한경우에는 generic_file_open() 또는 generic_file_read() 함수를호출하여처리 24
25 Section 03 파일시스템관련자료구조 ext2 파일시스템의 file_operations 구조체 (fs/ext2/file.c 45 행 ) struct file_operations ext2_file_operations = { llseek: generic_file_llseek, read: generic_file_read, write: generic_file_write, ioctl: ext2_ioctl, mmap: generic_file_mmap, open: generic_file_open, release: ext2_release_file, fsync: ext2_sync_file, }; 25
26 Section 03 파일시스템관련자료구조 NFS 에서의 file_operations 구조체 (fs/nfs/file.c 61 행 ) struct file_operations nfs_file_operations = { llseek: generic_file_llseek, read: nfs_file_read, write: nfs_file_write, mmap: nfs_file_mmap, open: nfs_open, flush: nfs_file_flush, release: nfs_release, fsync: nfs_fsync, lock: nfs_lock, }; 26
27 Section 04 NFS 파일시스템 NFS 파일시스템의이해 TCP/IP 네트워크를통해다른컴퓨터의파일시스템을마치자신의로컬파일시스템처럼사용할수있게해줌 다른컴퓨터의하드디스크일부를내컴퓨터에부착된하드디스크처럼사용할수있음을의미 [ 그림 7-8] NFS 동작 27
28 Section 04 NFS 파일시스템 NFS 서버쪽 /etc/exports 파일설정 형식 : share-directory client1(options,,,) client2(options,,,) share-directory : 공유할디렉토리명 client1 options : 공유디렉토리에접근할수있도록허용된호스트들 : 접근권한설정 options ro : 클라이언트는공유디렉토리에대해읽기만가능하다. rw : 클라이언트는공유디렉토리에대해읽기 / 쓰기가가능하다. no_root_squash : 클라이언트의 root 는서버의 root 와같은권한을가진다. No_subtree_check : 공유된디렉토리내에있는서브디렉토리들을공유에서제외시키는경우설정 /etc/exports 파일설정예 # vi /etc/exports /home/user01 *.incheon.ac.kr(ro) /export/ftp/pub / (ro) / banana(rw),kiwi(rw,no_root_squash) 8. Networking 28 28
29 Section 04 NFS 파일시스템 서버쪽방화벽이가동되고있다면공유가되지않는다. 따라서방화벽을꺼준다. # /sbin/service iptables stop 또는 # /etc/init.d/iptables stop 서버쪽 portmap 과 nfs 서비스를가동한다. * nfs 서비스는 portmap 서비스에의존하여가동되기때문에 portmap 서비스를먼저가동해야한다. # /sbin/service portmap start 또는 # /etc/init.d/portmap start Starting portmapper: [ OK ] # /sbin/service nfs start 또는 # /etc/init.d/nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ] 8. Networking 29 29
30 Section 04 NFS 파일시스템 NFS 클라이언트설정 # /etc/init.d/nfslock start or # /sbin/service nfslock start # mount.nfs Server IP Address:Server directory pass mount directory pass -v o proto=udp mount 예 # mount.nfs :/export/myshare /mnt -v o proto=udp 마운트실행시사용할수있는옵션들 -o timeo=10 : NFS 서버와연결이끊어진경우 timeo 에서지정한시간 (1/10 초단위 ) 기다렸다가경고메시지를발생 -o rsize=1024 wsize=1024 : 읽고 / 쓰기버퍼의크기를설정한다.(1024KB=1M) -o soft : remote mount 를실행할때성공하지못하면 timeo 까지만 retry 후에러메시지를발생하고종료 -o hard : remote mount 가성공할때까지무한시재시도한다. ( 디폴트값이다 ) -o bg : 첫번째마운트시도가실패인경우백그라운드로계속마운트를재시도한다. 시스템부팅시자동으로서버의파일시스템을마운트하도록설정한다. # vi /etc/fstab Server IP Address:Server directory pass mount directory pass nfs defaults NFS- 서버 :/export/myshare /mnt nfs defaults 8. Networking 30 30
31 Section 05 proc 파일시스템 proc 파일시스템의이해 디스크상에위치하는대신메모리상에위치하는파일시스템 /proc 시스템의정보나커널및현재실행중인태스크의각종정보포함 /proc/meminfo: 메모리사용의세부사항 /proc/version : 커널버전 /proc/devices : 설정되어있는장치의목록 /proc/dma : DMA 채널과관련된정보 /proc/filesystems : 설정된파일시스템의목록 /proc/interrupts : 현재사용중인인터럽트, 사용빈도에대한통계 /proc/ioports : 현재사용중인 I/O 포트들 /proc/kcore : 수행되고있는커널의실행이미지 /proc/kmsg : 커널이출력하는메시지 /proc/ksyms : 커널이사용하는심볼들의목록 /proc/loadavg : 시스템의평균부하량 /proc/modules : 현재사용중인커널모듈목록 lsmod 명령으로확인가능 /proc/net : 네트워크프로토콜들의상태정보 /proc/stat : 시스템의상태에관련된정보들 31
32 Section 05 proc 파일시스템 /proc 디렉토리내에숫자로표시되는디렉토리 태스크의 PID 로, 하위디렉토리에해당태스크의관련정보를담고있음 /proc/pid 에서제공하는태스크정보들 cmdline : 명령행옵션 cwd : 작업디렉토리링크 exe : 태스크를실행시킨명령어링크 fd : 파일디스크립터목록을가지는디렉토리 maps : 태스크의메모리맵 mem : 태스크가사용중인메모리 root : 태스크의루트디렉토리 stat : 태스크상태 statm : 태스크의메모리상태 status : 태스크의각종정보및메모리정보 32
33 Section 05 proc 파일시스템 디렉토리생성함수 proc_mkdir() proc 파일시스템의최상위디렉토리 (/proc) 를기준으로디렉토리생성 내부적으로 proc_mkdir_mode() 함수를호출하여수행하고 proc_dir_entry 구조체의주소를반환 인자» name : 생성할디렉토리이름» parent : name 으로만들어진디렉토리가위치할디렉토리. NULL 값을가지면 /proc 디렉토리를의미 proc_dir_entry 구조체 생성된디렉토리에관련된정보 ( 또는파일에관련된정보 ) 를담는멤버변수로구성 include/linux/proc_fs.h 디렉토리생성과정 proc_dir_entry 구조체의변수선언후 proc_mkdir() 함수로디렉토리생성 예 ) /proc 하위에 dt 디렉토리생성 struct proc_dir_entry *proc_dir = NULL; proc_dir = proc_mkdir("dt", 0 ); 33
34 Section 05 proc 파일시스템 파일생성함수 create_proc_entry( ) 함수 struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, struct proc_dir_entry *parent) name : proc 파일이름 mode : 생성할파일의접근권한, 일반파일에서사용되는권한부여와동일 parent : name 으로만들어질파일이위치할디렉토리 예 ) dt 디렉토리내에 file 이라는파일을생성 struct proc_dir_entry *proc_fp = NULL; proc_fp = create_proc_entry("file", 755, "proc_dir" ); 파일또는디렉토리제거함수 remove_proc_entry() 함수 void remove_proc_entry(const char *name, struct proc_dir_entry *parent) 예 ) 생성한디렉토리 dt와파일 file을제거 struct proc_dir_entry *proc_fp = NULL; proc_fp = create_proc_entry("file", 755, "proc_dir" ); 34
35 Section 05 proc 파일시스템 읽기 / 쓰기함수 해당함수구현후 proc_dir_entry 구조체에있는 read_proc, write_proc 변수에대입 예 ) 생성한 dt 디렉토리내의 file 에데이터읽고쓰기 proc_fp->data = str; proc_fp->read_proc = read_file; proc_fp->write_proc = write_file; 해당함수의구현형식 typedef int (read_proc_t)(char *page, char **start, off_t off, int count, int *eof, void *data); typedef int (write_proc_t)(struct file *file, const char *buffer, unsigned long count, void *data); 35
36 Section 05 proc 파일시스템 읽기함수 사용자영역의태스크로부터요청들어오면 커널메모리영역에서데이터를읽어와적정포맷으로변경한후태스크로되돌려줌 통상적으로 copy_to_user() 함수를이용 쓰기함수 사용자영역의태스크로부터데이터를받아커널에게넘겨줌 통상적으로 copy_from_user() 함수를이용 proc 파일시스템에서의데이터는커널메모리상에저장 36
37 [ 실습 7-1] proc 파일시스템에디렉토리와파일생성하기 문제 모듈을이용하여 proc 파일시스템에자신의학번디렉토리 ( 예 : ) 를생성하고, B, C 의두개의파일을생성해보자. "B" 파일은소유자, 그룹, 일반유저모두가읽기 / 쓰기가가능 "C" 파일은모두읽기만가능한접근권한을부여 사용자가 B 파일에데이터를쓰면모듈내에서내부적으로복사본을 C 파일에저장 [ 실행화면예 ] 37
38 [ 실습 7-1] proc 파일시스템에디렉토리와파일생성하기 (1) 모듈프로그램작성 01 #include <linux/module.h> 02 #include <linux/kernel.h> 03 #include <asm/uaccess.h> 04 #include <linux/proc_fs.h> 05 #include <linux/init.h> 06 #define EOF (0) struct proc_dir_entry *dir_fp = NULL; 09 struct proc_dir_entry *B_fp = NULL; 10 struct proc_dir_entry *C_fp = NULL; char strb[255]; 13 char strc[255]; int read_file(char *page, char **start, off_t off, int count, int *eof, void *data) 16 { 17 int len; 18 len = sprintf( page, "%s", (char*)data ); 19 return len; 20 } 38 [ 소스 7-1]
39 [ 실습 7-1] proc 파일시스템에디렉토리와파일생성하기 (1) 모듈프로그램작성 ( 계속 ) 21 int copy_read_file(char *page, char **start, off_t off, int count, int *eof, void *data) 22 { 23 int len; 24 data = strb; 25 len = sprintf( page, "This is copy file \n %s", (char*)data ); 26 return len; 27 } int write_file( struct file *file, const char *buffer, unsigned long count, void *data) 30 { 31 int i; 32 char *kdata; kdata = (char *) data; 35 i = copy_from_user(kdata, buffer, count); 36 kdata[count] = EOF; 37 return count; 38 } 39 39
40 [ 실습 7-1] proc 파일시스템에디렉토리와파일생성하기 (1) 모듈프로그램작성 ( 계속 ) 40 int init_module(void) 41 { 42 dir_fp = proc_mkdir(" ", 0 ); 43 B_fp = create_proc_entry("b", 0644, dir_fp); 44 if( B_fp ) 45 { 46 B_fp->data = strb; 47 B_fp->read_proc = read_file; 48 B_fp->write_proc = write_file; 49 } C_fp = create_proc_entry("c", 0444, dir_fp); if( C_fp ) 54 { 55 C_fp->data = strc; 56 C_fp->read_proc = copy_read_file; 57 } 40
41 [ 실습 7-1] proc 파일시스템에디렉토리와파일생성하기 (1) 모듈프로그램작성 ( 계속 ) 58 return 0; 59 } void cleanup_module(void) 62 { 63 remove_proc_entry("c", dir_fp ); 64 remove_proc_entry("b", dir_fp ); 65 remove_proc_entry(" ",0 ); 66 } MODULE_LICENSE("GPL"); 1 14 행 ~19 행 파일 B의읽기함수 파일 B의내용 (data) 을읽어서출력하고내용의크기를반환 data는 init_module에서정의한 strb와연결된데이터 41
42 [ 실습 7-1] proc 파일시스템에디렉토리와파일생성하기 2 21 행 ~27 행 파일 C 의읽기함수 사용자가파일을읽으면파일 B 의내용을복사하여출력해주며파일의첫부분에 "This is copy file" 문자열을포함시킴 3 29 행 ~37 행 파일 B 의쓰기함수 vi 에디터나 echo 명령을사용하여파일에쓰기를하면 copy_from_user 함수를사용하여사용자공간의데이터를커널공간으로복사 kdata[count] = EOF; 부분은쓰여진데이터의마지막을가리키기위해 null 문자를삽입하는부분 EOF 는 5 행의 define 문에서 0 으로정의된상수값 4 40 행 ~59 행 모듈이적재될때학번디렉토리와파일 B, C 를생성 이때접근권한과데이터및읽기 / 쓰기함수를지정하는부분을포함 5 61 행 ~66 행 모듈이제거되면생성된디렉토리와파일을제거 42
43 [ 실습 7-1] proc 파일시스템에디렉토리와파일생성하기 (2) 컴파일및모듈적재 #make #insmod proc_file.ko (3) 실행과정 1 #cd /proc -> #ls 명령으로학번디렉토리가생성되었는지확인 2 3 #cd 명령으로디렉토리이동후 #ls -l 명령으로파일 B,C 의생성확인 접근권한도확인한다. #vi B 명령을실행후몇줄을에디팅한후저장 이때쓰기함수에해당하는 write_file() 함수실행 4 #vi B 또는 #cat B 명령으로파일의내용을읽기 이때읽기함수에해당하는 read_file() 함수실행 #vi C 또는 #cat C 명령으로파일의내용읽기 이때읽기함수에해당하는 copy_read_file() 함수실행 #echo "test" > B 명령으로파일의내용변경 다시 4 를실행하면한줄의문자열로내용이변경되었음을확인 35 행의 kdata[count] = EOF; 문이빠져있으면이전에편집한다른내용도함께출력됨 echo 명령으로사용한문자열의마지막에 null 문자가포함되지않기때문 43
44 [ 실습 7-2] 현재시스템시간을저장하는 proc 파일구현하기 문제 현재시스템시간을확인하여 /proc 디렉토리하위에 systemtime 파일에저장하는프로그램을구현해보자. 여기서는실습 [7-1] 과마찬가지로모듈로구현 (proc_clock.c) 현재시간을 xtime 변수를통해알아낸다. proc 파일의이름은 clock 으로하며읽기전용의권한을부여한다. 파일생성과초기화를한번에처리할수있는 create_proc_read_entry() 함수사용법을익힌다. [ 실행화면예 ] 44
45 [ 실습 7-2] 현재시스템시간을저장하는 proc 파일구현하기 (1) 모듈프로그램작성 01 #include <linux/kernel.h> [ 소스 7-2] 02 #include <linux/module.h> 03 #include <linux/types.h> 04 #include <linux/proc_fs.h> 05 #include <linux/time.h> static int read_clock( char *page, char **start, off_t off, int count, int *eof, void *data ) 08 { 09 int len; 10 struct timeval ktv; cli(); 13 ktv = xtime; 14 sti(); len = sprintf(page, "%ld %ld\n", ktv.tv_sec, ktv.tv_usec); 17 return len; 18 } 19 45
46 [ 실습 7-2] 현재시스템시간을저장하는 proc 파일구현하기 (1) 모듈프로그램작성 ( 계속 ) 20 int init_module() 21 { 22 create_proc_read_entry("clock",0444, 0,read_clock, NULL); 23 return 0; 24 } 25 void cleanup_module() 26 { 27 remove_proc_entry("clock",0); 28 } 29 MODULE_LICENSE("GPL"); [ 소스 7-2] 46
47 [ 실습 7-2] 현재시스템시간을저장하는 proc 파일구현하기 1 7 행 ~19 행 읽기함수 xtime 변수를통해초와마이크로초값을가져옴 이때이값을읽기전에인터럽트를금지하고읽은후에는다시인터럽트를허용한다. sprintf() 함수를사용하여파일에시간을쓴다 행 ~25 행 create_proc_read_entry 함수를사용하여파일의생성과초기화를함께수행 이함수의인자는순서대로파일이름, 접근모드, 파일이생성될디렉토리, 읽기연산을수행할함수의포인터및데이터값이다. 생성되는파일의이름은 "clock", 접근모드는읽기전용. 이파일은 /proc 하위에바로생성 읽기연산을수행할함수는 read_clock 이고초기데이터값은 NULL 임 3 26 행 ~29 행 모듈이제거되면 clock 파일을제거하는부분 47
48 [ 실습 7-2] 현재시스템시간을저장하는 proc 파일구현하기 (2) 컴파일및모듈적재 #make #insmod proc_clock.o (3) 실행과정 1 #cd /proc -> #ls 명령으로 clock 파일이생성되었는지확인 2 #cat clock 명령으로초와마이크로초단위의시간이출력되는것을확인 48
Chapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More information<4D F736F F F696E74202D205BBAB0C3B75D20B8AEB4AABDBA20B5F0B9D9C0CCBDBA20B5E5B6F3C0CCB9F620B8F0B5A82E >
안드로이드환경에서의 리눅스디바이스드라이버 문자디바이스드라이버설명 Table of contents 디바이스드라이버구조 시스템구조 모듈의기본골격 드라이버 IO 제어 안드로이드환경에서의 한백전자교육사업부 리눅스디바이스드라이버 시스템구조 쉘 응용프로그램 표준라이브러리 시스템콜 가상파일시스템 (VFS) 버퍼캐시 네트워크시스템 문자디바이스드라이버 블럭디바이스드라이버 네트워크디바이스드라이버
More informationuntitled
Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II
More informationMicrosoft PowerPoint - 10-EmbedSW-11-모듈
11. 개요 proc 파일시스템 순천향대학교컴퓨터학부이상정 1 개요 순천향대학교컴퓨터학부이상정 2 개요 커널프래그래밍 커널의일부변경시커널전체를다시컴파일해야하는번거로움 해당모듈만컴파일하고필요할때만동적으로링크시켜커널의일부로사용할수있어효율적 자주사용하지않는커널기능은메모리에상주시키지않아도됨 확장성과재사용성을높일수있음. 순천향대학교컴퓨터학부이상정 3 모듈 (module)
More informationEmbeddedsystem(8).PDF
insmod init_module() register_blkdev() blk_init_queue() blk_dev[] request() default queue blkdevs[] block_device_ops rmmod cleanup_module() unregister_blkdev() blk_cleanup_queue() static struct { const
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수
3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수있다. 학습내용 1 : 현재디렉토리확인 1. 홈디렉토리 - 로그인을한후, 사용자가기본으로놓이게되는디렉토리위치를홈디렉토리 (home directory)
More information슬라이드 1
/ 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information7장. 교착상태(deadlock)
11 장. 파일시스템구현 목표 local 파일시스템및디렉토리구조의구현을설명 remote 파일시스템구현을설명 블록할당과자유블록알고리즘논의 2 11.1 File-System 구조 File system 은보조저장장치 ( 디스크 ) 에위치. 블록단위전송 I/O 효율성향상 block size: one or more sectors sector size: 32 4KB (usually
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More information슬라이드 1
/ 임베디드시스템개요 / 임베디드운영체제 / 디바이스드라이버 01 Linux System Architecture Application Area Application System Call Interface BSD Socket Virtual File System INET(AF_INET) Kernel Area Buffer Cache Network Subsystem
More informationPowerPoint 프레젠테이션
Linux Kernel and Device Driver Jo, Heeseung 커널과의관계 시스템이지원하는하드웨어를응용프로그램에서사용할수있도록커널에서제공하는라이브러리 응용프로그램이하드웨어를제어하려면커널에자원을요청 - 응용프로그램에서는 C 라이브러리같은함수를호출 - 라이브러리내부에서는커널에게시스템콜을호출 - 커널로제어가넘어가게되면 ( 커널모드 ) 를통해서하드웨어를제어
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More information02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
More information망고100 보드로 놀아보자 -13
리눅스디바이스드라이버개요 http://cafe.naver.com/embeddedcrazyboys http://www.mangoboard.com 디바이스드라이버개요 디바이스 (Device ) 네트워크어댑터, LCD 디스플레이, PCMCIA, Audio, 터미널, 키보드, 하드디스 크, 플로피디스크, 프린터등과같은주변장치들을말함 디바이스의구동에필요한프로그램, 즉디바이스드라이버가필수적으로요구
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>
#include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 5 장 데이터송수신 (3) 1 파일전송메시지구성예제 ( 고정크기메시지 ) 전송방식 : 고정크기 ( 바이너리전송 ) 필요한전송정보 파일이름 ( 최대 255 자 => 255byte 의메모리공간필요 ) 파일크기 (4byte 의경우최대 4GB 크기의파일처리가능 ) 파일내용 ( 가변길이, 0~4GB 크기 ) 메시지구성 FileName (255bytes)
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More information제1장 Unix란 무엇인가?
1 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.
More information임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 시스템호출개요 리눅스에서는사용자공간과커널공간을구분 사용자프로그램은사용자모드, 운영체제는커널모드에서수행 커널공간에대한접근은커널 ( 특권, priviledged) 모드에서가능 컴퓨팅자원 (CPU, memory, I/O 등 ) 을안전하게보호 커널수행을안전하게유지
More information교육지원 IT시스템 선진화
Module 16: ioctl 을활용한 LED 제어디바이스드라이버 ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 ioctl() 을활용법배우기 커널타이머와 ioctl 을활용하여 LED 제어용디바이스드라이브작성하기 2 IOCTL 을이용한드라이버제어 ioctl() 함수활용 어떤경우에는읽는용도로만쓰고,
More informationPowerPoint 프레젠테이션
KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된
More informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More informationPowerPoint 프레젠테이션
BOOTLOADER Jo, Heeseung 부트로더컴파일 부트로더소스복사및압축해제 부트로더소스는웹페이지에서다운로드 /working 디렉터리로이동한후, wget으로다운로드 이후작업은모두 /working 디렉터리에서진행 root@ubuntu:# cp /media/sm5-linux-111031/source/platform/uboot-s4210.tar.bz2 /working
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More informationMicrosoft PowerPoint - 알고리즘_1주차_2차시.pptx
Chapter 2 Secondary Storage and System Software References: 1. M. J. Folk and B. Zoellick, File Structures, Addison-Wesley. 목차 Disks Storage as a Hierarchy Buffer Management Flash Memory 영남대학교데이터베이스연구실
More informationuntitled
Block Device Driver in Linux Embedded System Lab. II Embedded System Lab. II 2 Define objective of applications using device Study Hardware manual (Registers) (vector number) Understand interface to related
More information커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서
커알못의 커널 탐방기 2015.12 이 세상의 모든 커알못을 위해서 개정 이력 버전/릴리스 0.1 작성일자 2015년 11월 30일 개요 최초 작성 0.2 2015년 12월 1일 보고서 구성 순서 변경 0.3 2015년 12월 3일 오탈자 수정 및 글자 교정 1.0 2015년 12월 7일 내용 추가 1.1 2015년 12월 10일 POC 코드 삽입 및 코드
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More informationGNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6
GNU/ 1, qkim@pecetrirekr GNU/ 1 1 2 2 3 4 31 MS-DOS 5 32 LOADLIN 5 33 DOS- LILO 6 34 DOS- 6 35 LILO 6 4 7 41 BIOS 7 42 8 43 8 44 8 45 9 46 9 47 2 9 5 X86 GNU/LINUX 10 1 GNU/, GNU/ 2, 3, 1 : V 11, 2001
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More informationMango220 Android How to compile and Transfer image to Target
Mango220 Android How to compile and Transfer image to Target http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More information10.
10. 10.1 10.2 Library Routine: void perror (char* str) perror( ) str Error 0 10.3 10.3 int fd; /* */ fd = open (filename, ) /*, */ if (fd = = -1) { /* */ } fcnt1 (fd, ); /* */ read (fd, ); /* */ write
More informationChapter 05. 파일접근권한관리하기
Chapter 05. 파일접근권한관리하기 00. 개요 01. 파일의속성 02. 파일의접근권한 03. 기호를이용한파일접근권한변경 04. 숫자를이용한파일접근권한변경 05. 기본접근권한설정 06. 특수접근권한 파일의속성을이해하고설명할수있다. 접근권한의종류와표기방법을이해하고설명할수있다. 접근권한을바꾸기위해기호모드에서원하는권한을기호로표기할수있다. 접근권한을바꾸기위해숫자모드에서원하는권한을숫자로표기할수있다.
More informationMicrosoft PowerPoint - 03-Development-Environment-2.ppt
개발환경 2 임베디드시스템소프트웨어 I 차례 부트로더의기능, 컴파일방법 커널의기능, 컴파일방법 파일시스템의기능, 생성방법 Host-KIT 네트워크연결방법 (Bootp, TFTP, NFS) 개발환경 2 2 부트로더의기능 하드웨어초기화 CPU clock, Memory Timing, Interrupt, UART, GPIO 등을초기화 커널로드 커널이미지를 flash
More informationKEY 디바이스 드라이버
KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)
More information휠세미나3 ver0.4
andromeda@sparcs:/$ ls -al dev/sda* brw-rw---- 1 root disk 8, 0 2014-06-09 18:43 dev/sda brw-rw---- 1 root disk 8, 1 2014-06-09 18:43 dev/sda1 brw-rw---- 1 root disk 8, 2 2014-06-09 18:43 dev/sda2 andromeda@sparcs:/$
More information제1장 Unix란 무엇인가?
4 장파일 컴퓨터과학과박환수 1 2 4.1 시스템호출 컴퓨터시스템구조 유닉스커널 (kernel) 하드웨어를운영관리하여다음과같은서비스를제공 파일관리 (File management) 프로세스관리 (Process management) 메모리관리 (Memory management) 통신관리 (Communication management) 주변장치관리 (Device
More informationPowerPoint 프레젠테이션
Chapter 05. 파일접근권한관리하기 00. 개요 01. 파일의속성 02. 파일의접근권한 03. 기호를이용한파일접근권한변경 04. 숫자를이용한파일접근권한변경 05. 기본접근권한설정 06. 특수접근권한 파일의속성을이해하고설명할수있다. 접근권한의종류와표기방법을이해하고설명할수있다. 접근권한을바꾸기위해기호모드에서원하는권한을기호로표기할수있다. 접근권한을바꾸기위해숫자모드에서원하는권한을숫자로표기할수있다.
More informationCopyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su
Java Desktop System 2 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. : 817 7757 10 2004 9 Copyright 2004 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A..,,.
More informationMicrosoft Word doc
2. 디바이스드라이버 [ DIO ] 2.1. 개요 타겟보드의데이터버스를이용하여 LED 및스위치동작을제어하는방법을설명하겠다. 2.2. 회로도 2.3. 준비조건 ARM 용크로스컴파일러가설치되어있어야한다. 하드웨어적인점검을하여정상적인동작을한다고가정한다. NFS(Network File System) 를사용할경우에는 NFS가마운트되어있어야한다. 여기서는소스전문을포함하지않았다.
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationThe Pocket Guide to TCP/IP Sockets: C Version
얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow
More informationMicrosoft PowerPoint - ch09_파이프 [호환 모드]
학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 파이프 IT CookBook, 유닉스시스템프로그래밍 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미
More information2009년 상반기 사업계획
파이프 IT CookBook, 유닉스시스템프로그래밍 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 3/20 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More informationMango-AM335x LCD Type 커널 Module Parameter에서 변경하기
Mango-AM335x LCD Type 커널 Module Parameter 에서 변경하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology
More informationPowerPoint 프레젠테이션
Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More informationAdobe Flash 취약점 분석 (CVE-2012-0754)
기술문서 14. 08. 13. 작성 GNU C library dynamic linker $ORIGIN expansion Vulnerability Author : E-Mail : 윤지환 131ackcon@gmail.com Abstract 2010 년 Tavis Ormandy 에 의해 발견된 취약점으로써 정확한 명칭은 GNU C library dynamic linker
More informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More informationUI TASK & KEY EVENT
T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력
More informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More information벤처연구사업(전동휠체어) 평가
운영체제실습 리눅스기본명령어 2019. 4 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 기본명령어 1. 시스템정보 2. 파일및디렉토리명령어 시스템정보 1. 시스템정보출력 시스템정보출력 uname - 시스템정보출력 파일및디렉토리관련 명령어 파일및디렉토리 파일 (File) - 데이터를저장하기위해사용되는객체 ( 텍스트파일,
More informationMicrosoft PowerPoint - o8.pptx
메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)
More informationMicrosoft Word _LT_리눅스 마운트강좌 mount 1편.doc
리눅스마운트강좌 mount 편 ---------------- 목차 ----------------------- 1 : 마운트 (mount) 란무엇을의미하며왜사용하는가? 그, 실질적인의미 2 : 리눅스에장착된 CD-ROM 데이터사용하기실무 3 : 실제로마운트하지않고마운트가능여부만을확인하기 4 : 특정파일시스템을읽기만가능하도록마운트하기 ( 쓰기금지마운트 ) 5 :
More informationChap06(Interprocess Communication).PDF
Interprocess Communication 2002 2 Hyun-Ju Park Introduction (interprocess communication; IPC) IPC data transfer sharing data event notification resource sharing process control Interprocess Communication
More informationPowerPoint 프레젠테이션
(Host) set up : Linux Backend RS-232, Ethernet, parallel(jtag) Host terminal Target terminal : monitor (Minicom) JTAG Cross compiler Boot loader Pentium Redhat 9.0 Serial port Serial cross cable Ethernet
More information경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P
Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows
More information슬라이드 1
파일 (File) Chapter #4 파일관리구조 파일의종류 (1) 트리구조에기반한계층구조 시스템의모든파일이하나의트리구조로구성되어, 계층적으로접근, 관리된다 트리구조의중간노드 : 디렉토리 트리구조의단말노드 : 파일 2 Unix System Programming 파일의종류 (2) 3 Unix System Programming 파일종류 파일의종류 (3) 디렉토리
More informationMicrosoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]
리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual
More information제12장 파일 입출력
제 4 장파일입출력 리눅스시스템프로그래밍 청주대학교전자공학과 한철수 1 시스템호출 (system call) 파일 (file) 임의접근 (random access) 주요학습내용 2 4.1 절 커널의역할 (kernel) 커널 (kernel) 은운영체제의핵심부분으로서, 하드웨어를운영관리하는여러가지서비스를제공함 파일관리 (File management) 디스크 프로세스관리
More informationMicrosoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]
TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 TCP Server Program Procedure TCP Server socket() bind() 소켓생성 소켓번호와소켓주소의결합 listen() accept() read() 서비스처리, write()
More informationECE30076 Embedded System Programming - LED Device Driver
Module 12: LED 제어디바이스드라이버 ESP30076 임베디드시스템프로그래밍 (Embedded System Programming) 조윤석 전산전자공학부 주차별목표 하드웨어제어를위한디바이스드라이버작성방법알아보기 LED 제어용디바이스드라이버작성하기 ioremap 을이용한 LED 제어디바이스드라이버 mmap 을이용한 LED 제어디바이스드라이버 2 디바이스구분
More information<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>
i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,
More informationMicrosoft PowerPoint 웹 연동 기술.pptx
웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우
More informationAdding a New Dev file
Adding a New Dev file - 김성영, 이재혁, 김남현 - 발표자 : 김남현 목차 01 Progress 02 Device file 03 How create dev file 04 Example Progress 4 월 1 일 프로젝트방향설정 4 월 8 일 device file 추가방법조사 mem.c 파일분석 4 월 10 일 알고리즘제시필요한함수분석
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More information61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&
More information기초컴퓨터프로그래밍
구조체 #include int main() { } printf("structure\n"); printf("instructor: Keon Myung Lee\n"); return 0; 내용 구조체 (struct) Typedef 공용체 (union) 열거형 (enum) 구조체 구조체 (structure) 어떤대상을표현하는서로연관된항목 ( 변수 )
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]
More information¼ÒÇÁÆ®-12È£-ÃÖÁ¾¿Ï¼º
IT World 2008. 05 No.12 Focus Interview Best Practice Open Mind 2008. 05 No.12 Contents Special Editorial Best Practice 04 08 12 16 20 22 24 28 30 Insight 34 36 40 42 46 Tech Guide 50 56 62 News & Trend
More information슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
More informationMicrosoft PowerPoint APUE(File InO).pptx
Linux/UNIX Programming 문양세강원대학교 IT대학컴퓨터과학전공 강의목표및내용 강의목표 파일의특성을이해한다. 파일을열고닫는다. 파일로부터데이터를읽고쓴다. 기타파일제어함수를익힌다. 강의내용 파일구조 (UNIX 파일은어떤구조일까?) 파일관련시스템호출 시스템호출의효율과구조 Page 2 What is a File? A file is a contiguous
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More information(Microsoft PowerPoint - Device Driver [\310\243\310\257 \270\360\265\345])
Device Driver 커널프로그램 Kernel program 목차 Kernel program 유의사항 Kernel module 디바이스드라이버 Character/Block device driver Device driver 구조 Device driver 작성절차및 module 등록 LED 디바이스드라이버 Kernel Program (1) 커널프로그램과응용프로그램과비교
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More informationThe Pocket Guide to TCP/IP Sockets: C Version
인터넷프로토콜 03 장 도메인네임시스템과주소 패밀리 (IPv4-IPv6 서비스 ) 1 목차 제 3 장도메인네임시스템과주소패밀리 3.1 도메인네임주소를숫자주소로매핑하기 3.2 IP 버전에무관한주소-범용코드의작성 3.3 숫자주소에서도메인네임주소획득하기 2 getaddrinfo() 를활용한주소 범용 (Generic) 코드 주소범용 (Generic) 코드란? 주소버전
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More informationMicrosoft PowerPoint - 알고리즘_5주차_1차시.pptx
Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1
More informationchap7.key
1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )
More information(Microsoft PowerPoint - Device Driver [\310\243\310\257 \270\360\265\345])
목차 Device Driver 커널프로그램 Kernel program Kernel program 유의사항 Kernel module 디바이스드라이버 Character/Block device driver Device driver 구조 Device driver 작성절차및 module 등록 LED 디바이스드라이버 Kernel Program (1) 커널프로그램과응용프로그램과비교
More informationvi 사용법
네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 16 강. 파일입출력목차 파일입출력기초 파일입출력모드 텍스트파일과이진파일 이진파일입출력 임의접근 1 /18 16 강. 파일입출력파일입출력기초 파일입출력과정 파일스트림객체생성 파일열기 사용 : 기본적으로표준입출력객체 (cin, cout) 사용방법과동일 파일닫기 파일스트림클래스의종류
More information/chroot/lib/ /chroot/etc/
구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More information