2015년 3월 25일 발간된 WEB+DB Press Vol. 85의 기사- "技術カンファレンス運営の本当の裏側(기술 컨퍼런스 운영의 실제 뒷면)"을 읽어보았습니다. 여기서는 표에 대한 내용만 발췌하여 정리하였습니다.




"技術カンファレンス運営の本当の裏側(기술 컨퍼런스 운영의 실제 뒷면)"에서 일본의 기술 컨퍼런스가 어떻게 운영되는지에 대하여 정리된 표를 보니, 준비를 열심히 해야되는거라는걸 깨달았습니다.

각 이벤트의 운영체제(運營體制)[各イベントの運営体制]

이벤트명 

 참가자수

 주요스태프수

 당일 스태프수

 사용툴(Tool)류

 RubyKaigi

 약 750명

 일본Ruby회이사+감사5명,
기타 5명

 20명 

 GitHub

 YAPC::Asia Tokyo

 약1,300명

 기획+JPA이사,
5~6명의 핵심스태프

 40~50명

 Slack, GitHub

 JANOG

 약1,000명(도쿄)
 약600명(지방)

 위원회제, 전체 30~40명 

 없음

 Mail, ChatWork, Confluence, JIRA

 PyCon JP

 약550명

 위원회제, 전체 30~40명

 없음

 Slack, JIRA


나의 평:

위의 컨퍼런스 참가자 수를 보니 엄청난 수의 일본 개발자들이 컨퍼런스에 참여한다는 것을 알게 됨.

위의 참가자와 발표자를 지원하는 스태프를 약 30~40명정도로 구성되어 도와준다는 걸 보고 대단하다는 생각을 해봄.

그리고 사용 툴을 보니 생각보다 Slack을 많이 사용한다는 것을 느끼게 됨.

예전 2015년 8월 21일~2015년 8월 22일에 열린 YAPC::Asia Tokyo 2015행사를 가봤는데 발표하는 사람이나 참가자나 대부분 Slack으로 의사소통을 하는 걸 보고 신기하다고 느끼던 적이 한둘이 아니였던 강렬한 기억이랄까?

컨퍼런스를 준비하려면 정말 꼼꼼하게 준비해야되는걸 느끼게 된 기사였음.


위의 기사와 관련된 링크 정리

Conference Organizers Summit (Sort Of) https://medium.com/@lestrrat/conference-organizers-summit-sort-of-b84eddf6534b#.jc6lsidgx

技術イベント主催者の本音がココにある! WEB+DB PRESS Vol.85 スペシャル企画でチョロっと出てます http://blog.kushii.net/archives/1951972.html

Software Design 2015/3月号とWeb+DB Press vol 85 http://lestrrat.ldblog.jp/archives/43483020.html



Buy me a coffeeBuy me a coffee


2011/09/18 - [컴퓨터] - Windows 8 Preview 설치후 간단 평

오늘은 Windows 8 Preview 설치 후 여러번 사용하면서 개발툴도 한번 실행해보았습니다.

Windows 8 Preview 첫 실행후 배경화면.

사용자 아이콘

Windows 8 Preview Metro UI로 부팅한 모습입니다. Desktop으로 옮길시 모습

Visual Studio 11 Express for Windows Developer Preview

Rebooting (Restarting)



Visual Studio 2011 도 한번 사용해보았습니다.

windows phone 7개발하는 것과 비슷한 느낌을 가지는 Visual Studio를 볼때... 응용 어플리케이션을 만드는 프로그래머의 진입장벽이 낮아지겠다는 생각을 하였습니다.

MFC보단  UI를 구성하는 XML의 확장인 XAML과 C++/C#을 이용해서 프로그래밍을 장려하듯 MFC(Microsoft Foundation Class Library)개발이 안보입니다. 원래 Visual Studio의  Expression Version 딱지 붙은 프로그램은 MFC관련 한 부분이 제외된 채 배포가 되었으니 MFC가 빠진다는 것은 억측이고, C#, .NET으로 개발을 장려하려는 것이 눈에 보이더군요. 

제대로 된 프로그래머가 되러면 역시 Kernel쪽 개발 또는 많은 아이디어를 가지는 창의적인 프로그래머가 되야 된다는생각?

Metro UI가 정말 우아한 화면을 구현하였지만, Desktop으로 쓰기엔 아깝고, Tablet과 Smartphone에서 주로 쓸법하다는 걸 느끼군요.


아직까진 Windows 8 Preview Version의 버그가 눈에 띄게 많이 보여도, M$사의 개발 계획(Milestone)이 Desktop+Tablet+Mobile 3가지를 융합하겠다는 목표가 보입니다!


ps. Google의 Android Tablet버전인 Honeycomb은 어떻게 진화될지, Chrome OS는?, Apple OSX(맥북 등의 맥계열)와 iOS(iPhone&iPad) 와의 진화를 보며 Windows의 진화는 어디까지 갈지 궁금해집니다!

Buy me a coffeeBuy me a coffee

2011년 7월 20일(수)

출처: Apple: Mac OS X Lion to hit the App Store tomorrow

오늘부터 Apple사에서 새로운 운영체제인 Mac OSX 10.7 Lion 을 Mac App Store에 출시하였습니다.


당장 App Store에 Mac OSX 10.7을 구입하여 업그레이드 하고 싶지만... 통장에 당장 돈이 없는 문제로 월급날 후에 바로 지를 예정입니다.


Buy me a coffeeBuy me a coffee


Introducing the Chromebook


Chromebook - Guided Tour

Chromebook - Business and Education Overview


Chromebook - Sync


Chromebook - Apps


Chromebook - Updates


Chromebook - Connectivity


Chromebook - Speed


Chromebook - Security


Buy me a coffeeBuy me a coffee

아래는 Google사에서 자료가 인터넷으로 저장되기때문에 컴퓨터가 문제가 생기거나, 컴퓨터를 고장나도, 다른 컴퓨터에서 인터넷으로 자료를 접근 할수 있다는 동영상입니다.


Chrome OS는 기존의 운영체제와 다르게 로컬 디스크에 자료를 저장하는 것이 아니라, 클라우드 컴퓨팅으로 인터넷으로 접근하여, 인터넷 서버(구글 웹 서비스 서버)에 자료를 저장합니다.

Chrome OS에서 서버 접속하려면 부팅 후 네트워크 연결을 우선 하여 클라우드에 등록된 계정으로 로그인을 해야합니다. 로그인 이후, 항상 자신의 데이터를 서버에서 바로 불려서 사용할 수 있으며, 로그인 할 단말기가 어느 PC이든 상관 없이 접근 할수 있다는 개념으로 구상되었습니다.

아래는 컴퓨터를 계속 부셔도 항상 데이터가 인터넷에 저장(실제로는 구글의 웹서비스 서버에 저장됨)되기 때문에 자료 손실이 없다는 것을 보여주고 있습니다.

(그러나 불시의 정전으로 인하여 웹서비스가 중단되면? 서버 해킹당하여 데이터가 손실된다면면?, DDoS와 같은 사이버 공격으로 서버 접근 못하면? 이란 이슈는 아직도 해결 못했습니다)


http://www.businessweek.com/technology/content/dec2009/tc20091211_347388.htm 

위의 링크에 있는 글 처럼 클라우드의 발전은 멈추지 않는다는 견해가 지배적이긴 하다만... 2년전 동영상과 지금의 상황을 봐도 아직도 클라우드 컴퓨팅은 멀었다는 생각을 가끔씩 합니다.


‪How to remain calm, despite what's about to happen to your Chrome notebook‬

Chrome UX designer Glen Murphy demonstrates some advantages of using a Chrome notebook. 25 computers were harmed in the making of this video. Fortunately, no data was lost.

아래는 Chrome OS가 탑재된 노트북을 부시고 있는 동영상들입니다. (참고로 노트북이 아깝습니다 ㅠㅠ)

DemoLab: Ninja

Your data is safe, even if your notebook isn't.

DemoLab: Firecracker

Your data is safe, even if your notebook isn't.


Buy me a coffeeBuy me a coffee

관련 링크
The Chromium Project
Chromium OS


관련 서적

구글크롬OS클라우드OS와의첫만남
카테고리 컴퓨터/IT > 대학교재
지은이 코이케 료지 (한빛미디어, 2010년)
상세보기


학회지에 스마트폰 관련 논문을 쓰고 난 후, 넷북, 태블릿에도 관심이 많이 생겼습니다. Google에서 넷북,태블릿으로 탑재하려고 만들고 있는 Chrome OS에 대해서 관심이 있다보니, 모 기자님에게 구글이 취재원에게 잠시빌려준 ChromeOS 탑재 넷북 CR-48을 잠시 만져보기도 하였습니다. 그러나 뭔가 부족한듯한 느낌에 직접 Chrome OS를 빌드해서 사용해보자는 생각이 번쩍떠오르더군요.

2011.05.05

The Chromium Project 에서 Chromium OS 소스를 다운로드 받은 후 컴파일을 하였습니다.

Chromium OS 컴파일 방법은 Chromium OS Developer Guide  를 참조하시면 됩니다.

(64bit 머신에서 컴파일을 해야되더군요. 컴파일하는 방식이 Gentoo Linux 설치하듯 화면이 나와서 뭔가 무섭다는 느낌이 들었습니다. 실제로 OS를 구성하려면 계속 빌드만 몇 시간씩 투자를 해야합니다.

이번에 크롬 OS를 컴파일 해서 설치하려니, 64bit 머신을 구입 후 집에서 빌드 및 서버 굴려야겠단 생각을 계속 하게 되었습니다. - 전기값은 어쩌려고? ㅠㅠ)

Chromium OS의 컴파일이 완려된것을 확인하곤, 2011.05.06 USB메모리에 Chromium OS 부트이미지를 넣고, 컴퓨터에 부팅을 해보았습니다.


첫화면은 언어, 키보드 및 네트워크 설정이더군요.

HTC | HTC Desire | 4.3mm | ISO-53 | 2011:05:06 19:24:28

Chromium OS 시작할때의 화면.


저 화면에서 언어 및 키보드, 네트워크 설정을 하면, 다음 화면에선 구글 계정으로 접속하기 화면이 나옵니다. 구글 계정입력한 후 비밀번호까지 입력하여 로그인을 하면 Chrome 웹브라우저 같은 화면이 나옵니다.

Google사에서 Chrome OS를 탑재한 Cr-48 노트북을 사용해본 사람으로서, 지금은 cr-48경우보다 속도는 빠릿해지고, 플래시도 돌아가고, 버벅거리는 면이 많이 줄었다는 걸 느꼈습니다. 그러나 아직도 불안정적이라 가끔 웹브라우저가 뻗기도 합니다.

페이스북, 트위터를 사용해도 AJAX로 돌아가는 부분도 버벅임도 없고, 심지어 페이스북 앱인 시티빌을 원활하게 할수 있습니다. (시티빌을 할수 있다니 이건 대박)

UI는 Chrome 웹브라우저 쓰는 것과 흡사하다고 보면 됩니다. Chrome 웹브라우저만 쓰는 컴퓨터를 접했다고 보면 이해 되실겁니다.


Chromiu, OS를 사용한 소감: Chrome 웹브라우저만 돌아가는 넷북을 만져보았답니다.

구글의 전략은 유비쿼터스환경에서 클라우드 컴퓨팅으로 구글 서비스를 언제 어디서든 사용하는 것입니다. 안드로이드와 크롬OS는 인터넷을 접속할 수 있는 수단이지요.  크롬OS는 인터넷을 쓰려는 저연령층과 저소득층에 만족스럽게 쓰일듯 합니다.


자세한 생각은 정리해서 다시 블로깅 하기로 하겠습니다.

Buy me a coffeeBuy me a coffee


도전임베디드OS만들기코딩하며배우는운영체제원리
카테고리 컴퓨터/IT > OS > 임베디드시스템
지은이 이만우 (인사이트, 2009년)
상세보기


요즘, 도전 임베디드 OS만들기란 책을 요즘 보고 있습니다.

이지보드가 없는 터라 책에 있는 예제를 보고 따라하려니 qemu 에뮬레이터를 돌려야 하더군요.

맥에서 qemu emulator를 brew로 설치(brew install qemu)하였습니다.

이후 책의 예제를 컴파일 한 후에 qemu를 실행하려니 아래와 같은 에러가 계속 뜨는겁니다 -ㅁ-

$ qemu-system-arm -M connex -pflash u-boot.bin -nographic

qemu: Error registering flash memory. 


이런 낭패가... 구글링한결과 아래와 같이 실행하면 된다는군요 -_-;; (책의 내용이 약간 예전 내용이라서 현재 버전과 안맞는 경우가 약간은 있더군요 ㅠㅠ)

dd of=flash bs=1k count=16k if=/dev/zero
dd of=flash bs=1k conv=notrunc if=u-boot.bin 

qemu-system-arm -M connex -pflash flash -monitor null -nographic

아래는 맥에서 테스트했을때 화면입니다.


'컴퓨터 > Embedded' 카테고리의 다른 글

qemu: Error registering flash memory. 해결방법  (0) 2011.03.27
AVR 책을 삼  (6) 2006.12.27
부품이 왜이리 비싸?  (5) 2006.12.22
윤교수의 마이크로프로세서 월드  (0) 2006.09.18
CISC와 RISC의 차이점?  (2) 2006.09.18
Buy me a coffeeBuy me a coffee

2009년 7월 7일엔 무슨 일이 있었을까요?

1년전의 일을 생각하는 건 그리 쉽지 않습니다. 그러나 2009년 7월 7일에 일어난 일들이 너무나 강렬하여 아직도 제 기억엔 많이 남습니다.

첫번째로는 7.7. DDoS사태

두번째로는 티맥스 윈도우 발표

이렇게 2가지의 엄청난 사건으로 기억이 남습니다.



첫번째로는 7.7. DDoS 대란입니다.

나라를 떠들썩하게 했던 7.7 DDoS 공격이 있었습니다.

[7.7DDoS 1년]7.7 DDoS 공격, “어떤 사건이었나?”

보안뉴스에 있는 자료를 보면 국내·외 주요 사이트들에 DDoS공격이 있었습니다.

출처: 보안뉴스 [7.7DDoS 1년]7.7 DDoS 공격, “어떤 사건이었나?”

2009년 7월 4일 미국 주요사이트들을 대상으로 공격이 시작되어 지난 2009년 7월 7일부터 7월 10일까지 국내·외 주요 웹사이트를 대상으로 동시다발적으로 DDoS 공격이 발생했다.


당시 DDoS 공격을 유발했던 좀비PC 악성코드 특징은 기존과 다른 양상을 보였다. 우선 다른 DDoS 공격에서는 실시간으로 이용됐던 C&C서버(명령제어 서버)가 실시간이 아니라 정해진 스케줄대로 진행됐다는 점이 돋보였다.


당시 악성코드는 실시간 명령을 받는 것이 아니라, 악성코드의 기능 및 공격대상을 업데이트 할 수 있는 숙주서버에 특정시간에 일정 주기로 접속해 공격대상 및 공격 시간 스케쥴링 명령을 받게 돼 있었다. 공격대상과 공격시간을 명령받은 십만 대 이상의 좀비PC는 이미 정해진 명령에 따라 공격대상 웹사이트를 동시에 공격했다. 기존 DDoS 공격의 경우 공격자가 C&C 서버에서 실시간으로 명령을 받았을 때 공격을 진행했다.


▲7.7 DDoS 침해사고 개요도 ⓒ방통위

▲7.7 DDoS 침해사고 개요도 ⓒ방통위 - 출처: 보안뉴스


[TV 7.7 DDoS 대란 1년 특집] 이명수 한국인터넷진흥원 단장 인터뷰

[TV 7.7 DDoS 대란 1년 특집] 구자만 다음커뮤니케이션 정보보호팀장

두번째로는 티맥스 윈도우 발표.




황우석 사태의 재판으로 불리고 싶습니다.

황우석 연구팀이 월화수목금금금 이렇게 연구하여서 조작한것처럼, 티맥스 윈도우 개발팀도 월화수목금금금 그리고 제대로 돌아가지 않는 OS를 공개하려고 하는 것을 보고 엄청나게 실망하였습니다.

황우석 연구팀보다 낫다는 점은 실체가 있다는 정도?

완성도가 낮은 소프트웨어를 가지고 많은 사람들에게 공개하여 망신을 당했습니다. 

만약에 티맥스가 모바일용 OS를 만들었으면 안드로이드의 대항마니, WebOS와 대적하고 삼성 바다OS와 대항할수 있을거니란 칭찬이 들었을겁니다. 

레드오션인 데스크탑 OS에 뛰어들다 말도 안되는 일정을 가지고 개발자들을 혹사시키면서 까지 품질 않은 소프트웨어를 만들어 판다는 Tmax의 무모한 도전은 이미 멸망이 되었고 티맥스 윈도우를 만들던 티맥스 코어는 삼성 SDS에 인수가 되었습니다.

참으로 할말이 안나오던 날이였습니다.

Buy me a coffeeBuy me a coffee

Coffeenix라는 사이트에서 여러 글들을 보다 흥미로운 기사를 보게 되었습니다.

Computer World에서 나온 기사인 Unix turns 40: The past, present and future of a revolutionary OS 이였습니다.




지금 보시는 것 같이 UNIX는 1969년도에 개발되어서 2009년도에 40주년 기념기사(Unix turns 40: The past, present and future of a revolutionary OS )까지 나온 오래된 운영체제입니다.

1969년 8월 Ken Thompson, Dennis Ritchie가 AT&T의 Bell 연구소에서 UNIX를 개발한 후 점차 발전에 발전을 거듭하게 되었습니다. UNIX가 개발되면서 C언어도 1974년도에 Ken Thompson, Dennis Ritchie에 의해 개발되었기 때문에 C언어를 제대로 이해하고 쓰려면 UNIX에 대한 개념이 있어야 하는 구석이 있지요.

(Windows에서 왜 써야하는지에 대한 개념들은 UNIX계열 OS의 시스템 콜 관련 공부하다 보면 이해가 금방되더군요. UNIX의 잔재랄까?) 

이후 시간이 지나 UNIX는 메인프레임, 워크스테이션등 대형컴퓨터에서 주로 사용하던 OS가 되었습니다. 일반적으로 데스크탑, 랩탑 으로 부르는 소형컴퓨터(x86기반)에선 OS를 MS사의 DOS, Windows로 사용하게 되었구요.


시간이 1985년, 스티브 잡스는 본인이 사장으로 있던 Apple사에서 쫒겨나게 됩니다. 그 후에 사람들을 규합하여 1985년도엔 NeXT사를 차려 NEXTSTEP이란 OS를 가지고 워크스테이션(NeXTcube, NeXTstation) 컴퓨터 장사를 했었습니다.


The World's First Web Server
The World's First Web Server by sbisson 저작자 표시비영리변경 금지

위의 사진은 세계 최초의 웹서버입니다. 1991년 Tim-Berners Lee가 NeXT Workstation으로 세계 최초의 웹서버를 만들었습니다.


어느덧 1990년, 핀란드에선 한명의 괴짜가 등장하게 됩니다. Linus Torvalds라는 핀란드 대학원생이 소형컴퓨터(x86 기반)인 데스크탑, 랩탑에 UNIX와 비슷한 시스템을 Linux라는 OS를 만들면서 Open Source로 GPL공개를 선언하고, 돈 받고 소프트웨어를 팔기보단 소스코드를 아예 공개해버리게 됩니다.


Linus Torvalds
Linus Torvalds by theducks 저작자 표시동일조건 변경허락


(참고로 Torvalds는 Linux를 만들기 전, 네덜란드의 Tanenbaum교수가 만든 UNIX 클론의 MINIX를 가지고 OS분석을 하다 Linux OS를 만들었다고 합니다.)

GPL공개를 하여 소스코드가 전부 공개되어서인지 소형컴퓨터(x86 기반)인 데스크탑, 랩탑에 DOS, Windows를 사용하는게 지루했던 Geek들이 Linux를 설치하면서 커뮤티니를 만들게 되고, 점차 쓸만한 운영체제가 되게 되었습니다.


위의 NeXTSTEP, Linux같은 OS를 설명하면서 왜 스마트폰과 연관이 있는가?? 쌩뚱맞는 글을 쓰고 있다고 생각하시면 오산. 

제가 소개를 하였던 NeXTSTEP은 1997년 스티브 잡스가 Apple사로 다시 컴백을 하면서 Mac OS X 10의 기반이 되었습니다. 스티브 잡스가 Apple사로 다시 돌아오면서 1997년 10억 달러의 적자를 낸 애플사를 1년 만에 4억 달러 가까운 흑자를 내게 만드는 기염을 토하게 되었죠.

그 후 스티븐 잡스는 컴퓨터시장뿐만 아니라  OSX10기반으로된 iPod라는 MP3가 나왔고 iPhone이 출시되고 iPad까지 출시가 됩니다.


wwdc-keynote_125
wwdc-keynote_125 by Dekuwa 저작자 표시비영리동일조건 변경허락


Linux는 GPL로 공개가 된후, 점차 소형컴퓨터(X86기반)뿐만 아니라 임베디드 장비에도 차츰 많이 들어가게 되었습니다.

그러다 2005년도, 구글은 Android사를 인수하게 됩니다. Android사는 안드로이드 OS를 Linux기반으로 만들던 회사였는데 구글이 인수함으로 모바일 OS를 구글이 원하는데로 제작하게 됩니다.

이후 2008년 10월 21일에 Android OS가 공개가 됩니다. 이후 Google은 hTC와 상호간 파트너쉽을 맺고 여러가지의 Android폰을 제작하게 됩니다.

Android Dev Phone 1 - G1 in Tagzania
Android Dev Phone 1 - G1 in Tagzania by tagzania 저작자 표시동일조건 변경허락


Spotify
Spotify by Johan Larsson 저작자 표시



Andy Rubin, Google
Andy Rubin, Google by Erwin Boogert 저작자 표시비영리

위의 분은 Google의 부사장 Andy Rubin 입니다.

지금까지 제가 UNIX의 역사를 이야기 하다 UNIX라는 것이 발전되어 NeXTSTEP-MacOSX-iOS(IPhoneOS), Linux-Android등의 소개를 하게 되었습니다.

쉽게 말해서 Mac OS는 UNIX의 후손, iPhone에 들어간 iOS도 UNIX의 후손입니다. 

Linux는 UNIX의 복제품이고, Android OS는 Linux의 자손. 대부분 스마트폰은 UNIX계열이란 결론이 나게 됩니다.

1969년도에 개발된 UNIX의 후손들은 PC시장에선 MS사의 Windows때문에 힘을 못쓰지만, 스마트폰시장에선 MS사의 Windows Phone이 삽질을 너무 많이 한 탓에 UNIX계열인 iPhone, Android가 강세인거지요.

UNIX family tree를 보다 스마트폰의 조상도 따져보면 UNIX, Linux라는 걸 알게 되니 UNIX란 OS를 40여년전에 설계한 Ken Thompson, Dennis Ritchie가 대단하다고 느껴집니다.

그 당시에 이렇게 컴퓨터의 개념이 확장될줄도 몰랐을것이고 대형 컴퓨터에서 사용하던 개념이 조그마한 장비에도 들어갈 줄은 누가 감히 생각하겠습니까?

UNIX의 설계를 아주 확장성 있게 한 것으로 40년전의 OS의 기본개념이 지금까지도 지속된것 같습니다.

결론: iPhone, Android 스마트폰의 원류는 UNIX였다.

Buy me a coffeeBuy me a coffee


관련포스트
Inside the C Programming - 아쉽지만 원 저자의 요청으로 비공개가 되었습니다.

관련내용
GNUPro Toolkit Manuals 4. Basic Principles of the Tools


2010년 5월 30일 오후 2시경.

강남구 아무개동 아무개회사에서 GNU Korea의 blueguy님의 세미나가 있었습니다.

제목은 Inside the C Programming 이라는 것이였습니다.

세미나 내용은 Inside the C Programming 의 내용 그대로 진행하였습니다.

Inside the C Programming 의 내용을 보면 학부 3~4학년때 배우는 과목인 System Programming+Operating System+Compiler(앞부분)을 종합하여 넣은 것이라 내공이 상당하게 쌓이지 않은 이상 쉽게 설명하려고 해도 안드로메다로 넘어갈수 있습니다.

학부를 졸업한 사람에게도 내용이 이해되는건 몇개 있고 약간 모르는 내용들이 여러 개씩 나오긴 하지만, 학부생에게 이런 내용 알려주면 거의 상모돌리고 졸아 버릴 위험성이 높겠군요.

Inside the C Programming 에서 다루는 내용을 아래와 같이 압축하여 간단하게 설명하겠습니다.


1. (우선 C언어를 학부때 배웠다는 전제하에서) gcc(the GNU Compiler Collection-GNU C Compiler가 아님.)는 IDE를 가지지 않은 command line compiler이다.

gcc가 하는 일

(1) 사용자에게 옵션과 소스 파일명들의 입력을 받는다.

(2) 소스 파일명의 확장자를 보고 어떤 단계를 처리해야 할지 결정합니다.

(3) 사용자의 옵션을 각각의 단계를 맡고 있는 실행파일의 옵션으로 변경합니다.

(4) 각각의 단계를 맡고 있는 실행파일을 호출(fork와 exec이겠죠?)하여 단계를 수행하도록 한다.

2. gcc는 껍데기이고 내부에서 cpp, as, ld 등에서 처리된다.  (참조: GNUPro Toolkit Manuals 4. Basic Principles of the Tools)

3. 전처리(preprocessing)과정에서는 프로그래밍 컴파일을 하기전 소스코드의 매크로 치환을 합니다. 여기까지는 소스 코드의 parsing을 하지도 않고, 컴파일 과정도 거치지 않으므로 여기까진 어느 플랫폼의 컴파일러가 돌아가던 문제 없이 처리할수 있습니다.
(※ 참고로 전처리 과정은 매크로 치환을 할 뿐이고 에러를 잡을 수 없습니다.)

4. 전처리과정이 끝났으면 C언어 소스의 파싱을 합니다. 여기에서 모든 에러를 걸려줍니다. 전처리과정에선 매크로 치환만 하지 에러는 파싱과정에서 대부분을 잡습니다.

5. 파싱이 끝나고 나선 Assemble 과정을 거칩니다 as(GNU assembler)가 어셈블리 언어로 변환을 해 줍니다.

5. 이후 relocatable object과정을 거칩니다. Assemble과정이 끝나면 Object파일이 생성됩니다. 이 Object파일들을 모아서 어떤 symbol을 참조하는지에 대해서 조사하고 Linking을 하고 메모리상에 Loading을 하게 됩니다. 이를 Linking and Loading이라고 부릅니다.

2시간 동안 진행 되었던 Inside the C Programming (원 저자 요청으로 비공개) 세미나 내용을 매우 압축하여 표현하였으나 여기선 설명이 부족한듯 합니다. -_-;; 상세한 내용은 Inside the C Programming (원 저자 요청으로 비공개)을 보시기 바랍니다.

(참조: GNUPro Toolkit Manuals 4. Basic Principles of the Tools)
Compilation involves up to four stages, always in the following order:

  • preprocessing

  • compiling

  • assembling

  • linking


컴파일러가 컴파일을 하면 preprocessing, compiling, assembling, linking 등의 4단계로 진행된다고 설명할 수 있습니다. 컴파일러가 컴파일하는 것의 내부를 더 뜯어보면 Parsing은 물론이고 컴퓨터 메모리 구조등의 OS 기본지식이 있어야 알수 있는 내용들이 들어있습니다.

역시 컴퓨터공학부 3~4학년 과정 과목인 System Programming, Operating System, Compiler(앞부분) 3과목의 내용을 통틀어 설명하기 때문에 2시간의 세미나가 부족하긴 하더군요. 더 많은 정보를 얻고 싶은 분들은 gcc, cpp, as, ld 등의 manpage와 manual을 참조해야 되는 사실을 보고나선... (한글화가 된 자료는 joinc.co.kr의 내용을 다 읽어보면 빠른 시간내에 이해되실겁니다.)

공부할 것은 많고, 시간은 부족하다.


Buy me a coffeeBuy me a coffee

+ Recent posts