¼ÒÇÁÆ®-12È£-ÃÖÁ¾¿Ï¼º



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

K&R2 Reference Manual 번역본

Embeddedsystem(8).PDF

WS2012_r2_À¥ÃÖÁ¾

untitled

Chapter #01 Subject

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


1+2월호-최종2



?햷숏

pdf

wheel+32_ pdf

Low PDF.PDF

untitled

10월 표지 최종

*º¹ÁöÁöµµµµÅ¥-¸Ô2Ä)

Microsoft PowerPoint - Chapter_04.pptx

0312젠-가이드라인-표지최종.ps, page Normalize

歯트렌드리포트.PDF

untitled

0802¼þ½Çµ¿¹®È¸-69È£ÃâÃâ


chap7.key


백서2011표지

휠-맞춤선없이한페이지씩

data driven_3.indd

ÃູÀÇÅë·Î

수기집-내지


µðÇÃ24-Ç¥Áö´Ü¸é


( )업계소식

( )전국네트워크


( )업계소식

( )업계소식(14.01월)

<4D F736F F F696E74202D205BBAB0C3B75D20B8AEB4AABDBA20B5F0B9D9C0CCBDBA20B5E5B6F3C0CCB9F620B8F0B5A82E >

TS for you 10-<D3BC><CE68><D654><BA74><C6A9>.pdf


SW

1 SW

¾Èµ¿±³È¸º¸ÃÖÁ¾

¾Ë±â½¬¿îÀ±¸®°æ¿µc03ÖÁ¾š

#³óÃÌ°æÁ¦ 64È£-Ä®¶ó¸é

?

한류스토리 내지 허경회수정 인디파일(10.07).indd

°¡°Ç6¿ù³»ÁöÃÖÁ¾

03장.스택.key


KEY 디바이스 드라이버

04 08 Industry Insight Mobile Policy Trend Mobile Focus Global Trend In-Depth Future Trend Products Trend Hot Company

도시공간21_내지(후반기).indd


rmi_박준용_final.PDF

사업단소식지7호

화해와나눔-여름호(본문)수정

화해와나눔-가을호(본문)


인산의학_07월호_내지_최종.indd

PowerPoint 프레젠테이션

¿¡À̽º ÃÖÁ¾¿ø°í

PowerPoint 프레젠테이션

?

메트라이프 단일PDF.pdf

47.._....

_....

BFCReportb60¡À»£03ÖÁ¾

Ç¥Áö

13주-14주proc.PDF

¿À¸®ÄÞ40


chungo_story_2013.pdf

*중1부

2

Çѱ¹ÀÇ ¼º°øº¥Ã³µµÅ¥

...._



전반부-pdf

<4D F736F F F696E74202D20312E20B0E6C1A6C0FCB8C15F3136B3E2C7CFB9DDB1E25F325FC6ED28C0BA292E >

_

12월월간보고서내지편집3

에너지포커스 2007년 가을호


01_당선자공약_서울

인권문예대회_작품집4-2




목차

A°ø¸ðÀü ³»Áö1-¼öÁ¤

±¹³»°æÁ¦ º¹»ç1

¿¡³ÊÁö ÀÚ¿ø-Âü°í ³»Áö.PDF

전반부-pdf

뉴스레터6호

Microsoft PowerPoint 하반기 크레딧 전망_V3.pptx

50차 본문 최종

Transcription:

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 66 71 75 2008: 05 03

Special Editorial 04

2008: 05 05

Best Practice 08 전라북도교육정보과학원 - 300개 학교 홈페이지 웹호스팅 및 공개SW 전문 인력 양성 기반 마련 전라북도교육정보과학원은 교수학습도움센터 구축을 위해 통합 웹 서버 구축에 필요한 공개SW 서버 OS를 도입하고, DBMS 역시 공개SW 기반으로 구축했다. 또한 데이터센터를 꾸려 각 학교 홈페이지 호스팅을 제공, 효율적 운영이 가능하도록 했다. 12 경동정보대학 - 공개SW 기반 홈페이지 재구축으로 안정적 관리 가능 경동정보대학은 공개SW 기반의 홈페이지 재구축으로 대구 경북 지역의 최고 대학으로 거듭나기 위해 노력 중이다. 하드웨어 및 공개SW 도입 후 홈페이지 재구축으로 안정적이고 고급화된 기술지원 업무가 가능해졌고 실무담당자의 업무부담이 경감됐다. 16 지렉스소프트 - 온라인 게임 삼국제왕전 공개SW 기반으로 개발 지렉스소프트의 MMORPG 삼국제왕전 은 유닉스 계열의 공개SW FreeBSD 를 기반으로 개발ㆍ운영되고 있다. 기획 단계부터 공개SW를 선택한 지렉스소프트는 비용절감과 자체 개발인력의 기술력 축적이라는 두 마리 토끼를 잡을 수 있었다. 20 McClair Mortgage - 리눅스 이용자들을 고객으로 얻고 개발 유연성까지 획득 미국 미시건 주 McClair Mortgage와 Citizens First Wholesale Mortgage는 윈도 프로그램을 유닉스/리눅스 플랫폼으로 성공적으로 포팅했다. 이를 통해 전체 고객 수에서 2%에 해당하는 리눅스 이용자 신규 고객들을 유치할 수 있었다.

22 24 28 30

Round Up! 08

2008: 05 09

10

Interview 2008: 05 11

Round Up! 12

2008: 05 13

14

Interview 2008: 05 15

Round Up! 16

2008: 05 17

18

Interview - 1 Interview - 2 2008: 05 19

Round Up! 20

2008: 05 21

Round Up! 22

2008: 05 23

Round Up! 24

2008: 05 25

26

2008: 05 27

Best Practice E S B T COMPANY 28

Interview 2008: 05 29

Best Practice E S B T COMPANY 30

2008: 05 31

Insight 34 36 40 42 46

Insight Blog&OpenSource Software 34

2008: 05 35

Insight 36

2008: 05 37

38

2008: 05 39

Insight 40

2008: 05 41

Insight 42

2008: 05 43

44

2008: 05 45

46

2008: 05 47

TechGuide 50 Let's Try - 누구나 쉽게 배우는 임베디드 리눅스 56 Open Guru - Step by Step 커널 프로그래밍 강좌 62 Useful Tips - 막힌 벽을 뚫어라 Linux Tips & Tricks

Tech Guide 50

2008: 05 51

52

2008: 05 53

54

2008: 05 55

Tech Guide struct inode { struct hlist_node i_hash; struct list_head i_list; struct list_head i_sb_list; struct list_head i_dentry; unsigned long i_ino;... uid_t i_uid; gid_t i_gid; dev_t i_rdev; 56

... unsigned int i_blkbits; unsigned long i_blksize; unsigned long i_version; unsigned long i_blocks; unsigned short i_bytes; unsigned char i_sock;... struct inode_operations *i_op; struct file_operations *i_fop; /* former i_op default_file_ops */ struct super_block *i_sb; struct file_lock *i_flock; struct address_space *i_mapping; struct address_space i_data;... /* These three should probably be a union */ struct list_head i_devices; struct pipe_inode_info *i_pipe; struct block_device *i_bdev; struct cdev *i_cdev;... unsigned long i_state; unsigned long dirtied_when; /* jiffies of first dirtying */ unsigned int i_flags; atomic_t i_writecount; void *i_security; union { void *generic_ip; } u; }; static struct inode *alloc_inode(struct super_block *sb) { static struct address_space_operations empty_aops; static struct inode_operations empty_iops; static struct file_operations empty_fops; struct inode *inode; if (sb s_op alloc_inode) inode = sb s_op alloc_inode(sb); else inode = (struct inode *) kmem_cache_alloc(inode_cachep, SLAB_KERNEL); if (inode) { struct address_space * const mapping = &inode i_data; inode i_sb = sb; inode i_blkbits = sb->s_blocksize_bits; inode i_flags = 0; atomic_set(&inode i_count, 1); inode i_sock = 0; inode i_op = &empty_iops; inode i_fop = &empty_fops; inode i_nlink = 1; atomic_set(&inode i_writecount, 0); inode i_size = 0; inode i_blocks = 0; inode i_bytes = 0; inode i_generation = 0; #ifdef CONFIG_QUOTA memset(&inode i_dquot, 0, sizeof(inode i_dquot)); #endif inode i_pipe = NULL; inode i_bdev = NULL; inode i_cdev = NULL; inode i_rdev = 0; inode i_security = NULL; inode dirtied_when = 0; if (security_inode_alloc(inode)) { 2008: 05 57

if (inode i_sb s_op destroy_inode) inode i_sb s_op destroy_inode(inode); else kmem_cache_free(inode_cachep, (inode)); return NULL; } mapping a_ops = &empty_aops; mapping a_ops = &empty_aops; mapping host = inode; mapping flags = 0; mapping_set_gfp_mask(mapping, GFP_HIGHUSER); mapping assoc_mapping = NULL; mapping backing_dev_info = &default_backing_dev_info; } /* * If the block_device provides a backing_dev_info for client * inodes then use that. Otherwise the inode share the bdev's * backing_dev_info. */ if (sb s_bdev) { struct backing_dev_info *bdi; bdi = sb s_bdev bd_inode_backing_dev_info; if (!bdi) bdi = sb s_bdev bd_inode i_mapping backing_dev_info; mapping backing_dev_info = bdi; } memset(&inode u, 0, sizeof(inode u)); inode i_mapping = mapping; } return inode; 58

static struct address_space_operations rkfs_aops = {.readpage = rkfs_readpage,.writepage = rkfs_writepage,.prepare_write = rkfs_prepare_write,.commit_write = rkfs_commit_write } 2008: 05 59

rkfs_root_inode i_op = &rkfs_iops; // set the inode ops rkfs_root_inode i_mode = S_IFDIR S_IRWXU; rkfs_root_inode i_fop = &rkfs_fops; static struct inode_operations rkfs_iops = { lookup: rkfs_inode_lookup } static struct file_operations rkfs_fops = { open: rkfs_file_open, read: &generic_file_read, readdir: &rkfs_file_readdir, write: &generic_file_write, release: &rkfs_file_release, fsync: simple_sync_file } struct dentry * d_alloc_root(struct inode * root_inode) { struct dentry *res = NULL; if (root_inode) { static const struct qstr name = {.name = "/",.len = 1 }; } res = d_alloc(null, &name); if (res) { res d_sb = root_inode i_sb; res d_parent = res; d_instantiate(res, root_inode); } } return res; 60

mnt mnt_sb = sb; mnt mnt_root = dget(sb s_root); mnt mnt_mountpoint = sb s_root; mnt mnt_parent = mnt; mnt mnt_namespace = current namespace; 2008: 05 61

Tech Guide Linux Tips & Tricks Linux Tips & Tricks 62

2008: 05 63

64

News&Trend 66 71 75

News Trend 66

2008: 05 67

News Trend 68

News Trend 2008: 05 69

News Trend 70

Special Report 2008: 05 71

72

2008: 05 73

74

News Trend 2008: 05 75

News Trend 76

2008: 05 77

Epilogue 78

Digilog Essay