Ruby On Rails Linux Setting Log

 이번에 학교 연구실 Linux서버에 Ruby on rails를 설치하게 되었다.

여기서는 Ruby on rails를 설치한 일대기를 기록해보기로 한다.

Linux는 Fedora Core 7을 사용하였다.

어떻게 설치를 하였나?

 황대산님이 쓰신 웹개발 2.0 루비 온 레일스 라는 책에서는 Windows와 MAC OS에서 설치하는 방법만 나와있어서 Linux에서 설치하려고 할때에는 어떻게 설치하는지 몰라서 홈페이지에서 찾아보았다.

이번에 Ruby, Ruby on rails 설치는 링크(http://www.dreamincode.net/forums/index.php?showtopic=30705&hl)를 참고로 설치를 하였다.

 

필요한 Fedora package설치

우선 설치하기 전에 httpd와 mysql은 기본적으로 깔려있어야 한다.

혹시나 모를까봐 httpd(웹서버)와 Mysql(DB-데이터베이스)가 설치가 되었는지를 확인해본다.

[root@localhost ~]# yum install httpd mysql-server mysql

깔려져있다는 것을 확인을 하였다.

[root@localhost ~]# yum install httpd mysql-server mysql
Setting up Install Process
Parsing package install arguments
Package httpd - 2.2.8-1.fc7.x86_64 is already installed.
Package mysql-server - 5.0.45-6.fc7.x86_64 is already installed.
Package mysql - 5.0.45-6.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

readline 라이브러리가 이 Linux에 깔려있다는 것을 확인하였다.

[root@localhost ~]# yum install readline
Setting up Install Process
Parsing package install arguments
Package readline - 5.2-4.fc7.i386 is already installed.
Package readline - 5.2-4.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

깔려 있다는 것을 확인하였다.

 

Ruby Package 설치

Ruby는 우선 Fedora core 7 배포판에 있는 것으로 사용하기로 하였다.

[root@localhost ~]# yum install ruby
fedora                    100% |=========================| 2.1 kB    00:00
macromedia                100% |=========================| 1.9 kB    00:00
updates                   100% |=========================| 2.3 kB    00:00
primary.sqlite.bz2        100% |=========================| 3.9 MB    01:59
adobe-linux-i386          100% |=========================|  951 B    00:00
Setting up Install Process
Parsing package install arguments
Package ruby - 1.8.6.114-1.fc7.x86_64 is already installed.
Nothing to do
[root@localhost ~]#

이미 설치가 되어 있다는 것을 확인하였다 -_-;; (언제 깔았는지는 나도 잘 모른다.  컴퓨터를 받은 3월초에 Ruby를 사용한답시고 설치했을듯 하다.)

 

그리고 나서 RubyGems(루비젬)을 설치해보자.

루비젬(RubyGems)은 루비의 각종 라이브러리를 자동으로 설치하고 관리해주는 패키지 관리 유틸리티로 레일즈 설치에 사용된다.

루비젬은 Fedora Core 7 배포판에서 받아 설치를 한다.

 [root@localhost rubygems-1.1.1]# yum install rubygems

설치하면 아래와 같이 다른 프로그램도 깔리게 된다. 이것도 깔아야 설치가 된다.

[root@localhost rubygems-1.1.1]# yum install rubygems
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package rubygems.noarch 0:0.9.4-1.fc7 set to be updated
--> Processing Dependency: ruby-rdoc for package: rubygems
--> Running transaction check
---> Package ruby-rdoc.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Processing Dependency: ruby-irb = 1.8.6.114-1.fc7 for package: ruby-rdoc
--> Running transaction check
---> Package ruby-irb.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 rubygems                noarch     0.9.4-1.fc7      updates           498 k
Installing for dependencies:
 ruby-irb                x86_64     1.8.6.114-1.fc7  updates           274 k
 ruby-rdoc               x86_64     1.8.6.114-1.fc7  updates           342 k

Transaction Summary
=============================================================================
Install      3 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 1.1 M
Is this ok [y/N]:

y(yes)를 입력하고 나서 설치를 한다.

설치를 하면 아래와 같은 글자들이 나온다.

Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: ruby-irb                     ######################### [1/3]
  Installing: ruby-rdoc                    ######################### [2/3]
  Installing: rubygems                     ######################### [3/3]

Installed: rubygems.noarch 0:0.9.4-1.fc7
Dependency Installed: ruby-irb.x86_64 0:1.8.6.114-1.fc7 ruby-rdoc.x86_64 0:1.8.6.114-1.fc7
Complete!
[root@localhost ~]#

그리고는 Complete!라 나오면서 설치가 끝난다.

그리고 나서 나머지도 설치를 한다.

[root@localhost ~]# yum install install ruby ruby-devel ruby-irb ruby-libs ruby-rdoc ruby-ri rubygems

아래와 같이 설치가 된다.

[root@localhost lib]# yum install install ruby ruby-devel ruby-irb ruby-libs ruby-rdoc ruby-ri rubygems
fedora                    100% |=========================| 2.1 kB    00:00
macromedia                100% |=========================| 1.9 kB    00:00
updates                   100% |=========================| 2.3 kB    00:00
primary.sqlite.bz2        100% |=========================| 3.1 MB    00:15
adobe-linux-i386          100% |=========================|  951 B    00:00
Setting up Install Process
Parsing package install arguments
No package install available.
Package ruby - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-irb - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-libs - 1.8.6.114-1.fc7.x86_64 is already installed.
Package ruby-rdoc - 1.8.6.114-1.fc7.x86_64 is already installed.
Package rubygems - 0.9.4-1.fc7.noarch is already installed.
Resolving Dependencies
--> Running transaction check
---> Package ruby-libs.i386 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-devel.i386 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-ri.x86_64 0:1.8.6.114-1.fc7 set to be updated
---> Package ruby-devel.x86_64 0:1.8.6.114-1.fc7 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 ruby-devel              i386       1.8.6.114-1.fc7  updates           770 k
 ruby-devel              x86_64     1.8.6.114-1.fc7  updates           778 k
 ruby-ri                 x86_64     1.8.6.114-1.fc7  updates           2.0 M
Installing for dependencies:
 ruby-libs               i386       1.8.6.114-1.fc7  updates           1.7 M

Transaction Summary
=============================================================================
Install      4 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 5.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): ruby-devel-1.8.6.1 100% |=========================| 778 kB    00:06
(2/4): ruby-ri-1.8.6.114- 100% |=========================| 2.0 MB    00:05
(3/4): ruby-devel-1.8.6.1 100% |=========================| 770 kB    00:03
(4/4): ruby-libs-1.8.6.11 100% |=========================| 1.7 MB    00:05
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: ruby-libs                    ######################### [1/4]
  Installing: ruby-devel                   ######################### [2/4]
  Installing: ruby-ri                      ######################### [3/4]
  Installing: ruby-devel                   ######################### [4/4]

Installed: ruby-devel.i386 0:1.8.6.114-1.fc7 ruby-devel.x86_64 0:1.8.6.114-1.fc7 ruby-ri.x86_64 0:1.8.6.114-1.fc7
Dependency Installed: ruby-libs.i386 0:1.8.6.114-1.fc7
Complete!
[root@localhost lib]#

설치를 다 하였으면 아래 명령어로 rails를 설치하자.

[root@localhost ~]# gem install rails --include-dependencies

아래와 같이 설치가 된다.

[root@localhost ~]# gem install rails --include-dependencies
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-2.0.2
Successfully installed rake-0.8.1
Successfully installed activesupport-2.0.2
Successfully installed activerecord-2.0.2
Successfully installed actionpack-2.0.2
Successfully installed actionmailer-2.0.2
Successfully installed activeresource-2.0.2
Installing ri documentation for rake-0.8.1...
Installing ri documentation for activesupport-2.0.2...
Installing ri documentation for activerecord-2.0.2...
Installing ri documentation for actionpack-2.0.2...
Installing ri documentation for actionmailer-2.0.2...
Installing ri documentation for activeresource-2.0.2...
Installing RDoc documentation for rake-0.8.1...
Installing RDoc documentation for activesupport-2.0.2...
Installing RDoc documentation for activerecord-2.0.2...
Installing RDoc documentation for actionpack-2.0.2...
Installing RDoc documentation for actionmailer-2.0.2...
Installing RDoc documentation for activeresource-2.0.2...
[root@localhost ~]#

rails를 설치를 하였으면 mongrel를 설치하기로 한다.

아래와 같이 명령어 쳐서 설치하면 된다.

[root@localhost ~]# gem install gem_plugin daemons capistrano --include-dependencies

[root@localhost ~]# gem install mongrel mongrel_cluster railsmachine --include-dependencies

아래와 같이 설치가 된다.

[root@localhost ~]# gem install gem_plugin daemons capistrano --include-dependencies
Successfully installed gem_plugin-0.2.3
Installing ri documentation for gem_plugin-0.2.3...
Installing RDoc documentation for gem_plugin-0.2.3...
Successfully installed daemons-1.0.10
Installing ri documentation for daemons-1.0.10...
While generating documentation for daemons-1.0.10
... MESSAGE:   Unhandled special: Special: type=33, text="All"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/daemons-1.0.10/ri --quiet lib README Releases TODO
(continuing with the rest of the installation)
Installing RDoc documentation for daemons-1.0.10...
Successfully installed capistrano-2.3.0
Successfully installed net-ssh-2.0.1
Successfully installed net-sftp-2.0.0
Successfully installed net-scp-1.0.0
Successfully installed net-ssh-gateway-1.0.0
Successfully installed highline-1.4.0
Installing ri documentation for capistrano-2.3.0...
While generating documentation for capistrano-2.3.0
... MESSAGE:   Unhandled special: Special: type=33, text="Notes"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/capistrano-2.3.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-ssh-2.0.1...
While generating documentation for net-ssh-2.0.1
... MESSAGE:   Unhandled special: Special: type=33, text="This"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-ssh-2.0.1/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-sftp-2.0.0...
While generating documentation for net-sftp-2.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="Net::SFTP"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-sftp-2.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-scp-1.0.0...
While generating documentation for net-scp-1.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="Provides"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-scp-1.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for net-ssh-gateway-1.0.0...
While generating documentation for net-ssh-gateway-1.0.0
... MESSAGE:   Unhandled special: Special: type=33, text="A"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/net-ssh-gateway-1.0.0/ri --quiet lib
(continuing with the rest of the installation)
Installing ri documentation for highline-1.4.0...
While generating documentation for highline-1.4.0
... MESSAGE:   Unhandled special: Special: type=33, text="A"
... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/highline-1.4.0/ri --title HighLine Documentation --main README --quiet lib README INSTALL TODO CHANGELOG LICENSE
(continuing with the rest of the installation)
Installing RDoc documentation for capistrano-2.3.0...
Installing RDoc documentation for net-ssh-2.0.1...
Installing RDoc documentation for net-sftp-2.0.0...
Installing RDoc documentation for net-scp-1.0.0...
Installing RDoc documentation for net-ssh-gateway-1.0.0...
Installing RDoc documentation for highline-1.4.0...
[root@localhost ~]#
[root@localhost ~]# gem install mongrel mongrel_cluster railsmachine --include-dependencies
Select which gem to install for your platform (x86_64-linux)
 1. mongrel 1.1.4 (ruby)
 2. mongrel 1.1.4 (java)
 3. mongrel 1.1.4 (x86-mswin32-60)
 4. mongrel 1.1.3 (java)
 5. mongrel 1.1.3 (i386-mswin32)
 6. mongrel 1.1.3 (ruby)
 7. Skip this gem
 8. Cancel installation
> 1
Select which gem to install for your platform (x86_64-linux)
 1. fastthread 1.0.1 (mswin32)
 2. fastthread 1.0.1 (ruby)
 3. fastthread 1.0.1 (i386-mswin32)
 4. Skip this gem
 5. Cancel installation
> 2
Building native extensions.  This could take a while...
Building native extensions.  This could take a while...
Successfully installed mongrel-1.1.4
Successfully installed fastthread-1.0.1
Successfully installed cgi_multipart_eof_fix-2.5.0
Installing ri documentation for mongrel-1.1.4...
Installing ri documentation for fastthread-1.0.1...

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
Installing ri documentation for cgi_multipart_eof_fix-2.5.0...
Installing RDoc documentation for mongrel-1.1.4...
Installing RDoc documentation for fastthread-1.0.1...

No definition for dummy_dump

No definition for dummy_dump

No definition for rb_queue_marshal_load

No definition for rb_queue_marshal_dump
Installing RDoc documentation for cgi_multipart_eof_fix-2.5.0...
Successfully installed mongrel_cluster-1.0.5
Successfully installed railsmachine-1.0.0
[root@localhost ~]#

For the last install, it may ask which version you want, choose the latest ruby versions.

마지막 설치에서 어떤 버전을 원하는지를 물어보는데 나는 최신 Ruby 버전을 선택하였다.

Select which gem to install for your platform (x86_64-linux)
 1. mongrel 1.1.4 (ruby)
 2. mongrel 1.1.4 (java)
 3. mongrel 1.1.4 (x86-mswin32-60)
 4. mongrel 1.1.3 (java)
 5. mongrel 1.1.3 (i386-mswin32)
 6. mongrel 1.1.3 (ruby)
 7. Skip this gem
 8. Cancel installation
> 1
Select which gem to install for your platform (x86_64-linux)
 1. fastthread 1.0.1 (mswin32)
 2. fastthread 1.0.1 (ruby)
 3. fastthread 1.0.1 (i386-mswin32)
 4. Skip this gem
 5. Cancel installation
> 2

이유는 간단하다. 웹페이지에 쓰여져 있기 때문이다. 물어보는것도 Platform을 어떤 것으로 하는 가를 물어보기 때문에 선택할 것이 Ruby밖에 없었다. (Ruby 설치하는 법도 잘 모르므로 -_-;; 자세한 것은 고수님 Help~)

 

 

Mongrel 설정

root권한에서 설정을 하였다.

* Creating a mongrel user to run mongrel as: /usr/sbin/adduser -r mongrel
* Create mongrel conf directory: mkdir /etc/mongrel_cluster
* Symlink mongrel initscript
ln -s /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/mongrel_cluster
* Make it executable chmod 755 /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster
* Add it to chkconfig chkconfig --add mongrel_cluster
* Enable it in chkconfig chkconfig mongrel_cluster on

여기서 중요한 점은 mongrel_cluster 버전이 뭔가에 따라 폴더이름이 다르다. 이 점을 유의해야 한다.

 

후기

설치는 링크(http://www.dreamincode.net/forums/index.php?showtopic=30705&hl)를 참고로 설치를 하였다.

나도 웹에서 보고 찾은 내용들을 한글로 정리하니까 뿌듯(?)까지는 아니지만 한글 Rails문서를 쓴다는 것에 보람을 느낀다.

말로만 듣던 Ruby on Rails를 나도 개발하게 되는 것인가? ㅎㅎ

 

이 글은 스프링노트에서 작성되었습니다.

Buy me a coffeeBuy me a coffee

제 Blog(StudioEgo's Thoughts, seasonⅡ)에 수정 할 것이 있어서 CSS파일을 수정하고 있었습니다.

HTML파일은 수정을 하였는데 CSS설정중에서 마음에 들지 않는 메뉴 간격이 약간 안맞는 문제가 있어서 삽질을 하였습니다.

메뉴 간격을 맞추다 보니 Firefox나 IE7에서도 잘 보이는지 Test를 하다 뭔가 미묘한 5px를 발견을 하였습니다.
5px를 줄일까 말까 고민을 하는데 정말 애매하다고 할까요?
Me2day란 메뉴과 Sprong Log란 메뉴 Profile이란 메뉴를 추가하는데 픽셀이 서로 미묘하게 물려서 CSS작업을 삽질로 했습니다.

픽셀 조정하면서 갑자기 이 포스트(미묘한 10픽셀)가 떠올리면서 애니메이션이 생각나버렸군요.

아래는 포스트(미묘한 10픽셀) 내용입니다.

me: 미묘한 그 10픽셀을 ㅠ_ㅠ

graphittie:

me: 아, 설마 0 10px 0 10px 때문에 밀리고 있는걸까 하는 생각이.. 맞네요 해결 완료 ..

graphittie: 헤더에 뭔가 있군요 흐흐흐흐

me: 그러고보니 미묘하게 10픽셀 이라고 하니 어째서 럭키스타가 생각이 났을까......

저는 항상 Blog에서 CSS 수정할때마다 애매한 3cm라고 시작되는 그 노래가 바로 생각 나버리더군요.
제가 좋아하는 らき☆すた(럭키☆스타)라는 애니메이션에 나오는 오프닝 곡(もってけ!セ―ラ―ふく )이죠.
여기에 나오는 曖昧3センチ(애매한 3cm)라는 문구가 자꾸 머릿속에 떠올려진다는 것이죠.

もってけ!セ―ラ―ふく 이 노래가 떠올리는 것은 뭐시란 말인가? -_-;;
 

Buy me a coffeeBuy me a coffee
요즘 잡지(마이크로소프트웨어)나 여러 기사들을 보면 Ruby란 것을 많이 듣게 됩니다.
제가 많이 쓰는 Me2day나  스프링노트, 스프링로그, 다음 캘린더 등등 여러 Web Application들이 Ruby on Rails를 이용하여 만들었다는 것을 알게 됩니다.

이런 추세를 보아할때 Ruby, Ruby on railsJAVA보다 더 많이 유행 할 것같은 예감도 듭니다.

실제로 Ruby on Rails관련 책을 읽어볼때마다, Perl같은 언어의 간결함에 놀라고, 코딩할때의 삽질이 많이 없다는 것에 놀랍니다. (그렇다고 Ruby에 익숙해지기 위해선 오랜 시간이 걸리긴 합니다.)
Perl이나 함수형언어인 Prolog를 처음 접해보았을때 당황했던 기억을 Ruby에서 경험한다는 말이죠. ㅎ

참고로 Ruby, Ruby on rails에 대해서 알아볼까요?
Ruby는 1995년 마츠모토 유키히로(松本行弘, Matsumoto Yukihiro) 가 소개한 OOP(객체지향프로그래밍 언어)입니다.
※ 국내에 번역된 책들을 보면 Ruby 창시자를 유키히로 마츠모토라고 하는데 영어를 무작정 번역하다 보니 이름-성을 부르는 것이다.
2001년도 데이브 토마스와 앤드류 헌트의 『Programming Ruby』출판을 계기로 전세계에 알려지기 시작하여 웹어플리케이션작성 언어로 많이 쓰여지는 것 같다.

Ruby는 Smalltalk, 함수형언어인 Lisp, Perl의 영향을 받았으며, C나 자바같은 언어에서 찾아볼수 없는 여러가지 강력한 기능을 제공한다.

Rails는 Ruby 프로그래밍 언어로 만들어진 웹 개발 프레임워크로 덴마크의 데이빗 해너마이어 한슨(David Heinemeier Hansson)에 의해 2004년 7월 처음 공개되었다.

다들 Ruby on rails라 하니 대세를 따라 Ruby on rails를 공부하게 되었습니다.
요즘 제가 보고 있는 Ruby on rails 책이다.
웹 개발 2.0 루비 온 레일스 상세보기
황대산 지음 | 에이콘출판 펴냄
즐겁고 빠른 웹 개발! 차세대 웹 개발 프레임워크 레일스와 함께! 루비 온 레일스 입문서. 이 책은 레일스 1.2를 중심으로 기초부터 활용까지 다양한 예제를 중심으로 설명한다. 레일스 개발에 필요한 각각의 메뉴와 블로그 애플리케이션 만들기 실전 예제 등을 담았다. 또한 책 뒤편에는 루비 주요 클래스 API와 레일스 명령어, 메소드 요약표를 함께 설명한다.


책을 보면서 Ruby on rails를 프로그래밍을 습득을 할수 있지만 웹사이트에서 15분간 투자를 하면 Ruby를 맛볼수 있는 사이트가 있는 것을 알았습니다.
http://tryruby.hobix.com/

http://tryruby.hobix.com 사이트 화면

http://tryruby.hobix.com/ 사이트 화면입니다. Ruby에 대해 15분만에 알수 있는 사이트라고 합니다.


위 사이트에서는 Ruby를 15분만 투자해보면 금방 배울수 있다고 하더군요.
한번 해보니까 책을 보고 타이핑하는 것보다 재미가 있습니다.
저는 Ruby의 세계에 빠져보아야 할듯 합니다. ㅎㅎ

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

Android SDK 설치  (0) 2008.12.14
오랜만에 만져본 JAVA  (2) 2008.12.02
MVC Pattern  (1) 2008.07.21
내가 보아야 할 Ruby 관련 책들  (2) 2008.05.14
10.Raw Socket  (0) 2008.04.29
Buy me a coffeeBuy me a coffee

Raw Socket

Network Layers/Protocol Stack

networkstack.PNG

Raw Socket

  • 기존의 소켓 프로그래밍 방식

    • Application layer에서 프로그래밍
    • 사용할 transport layer protocol을 TCP, UDP 중 선택
    • TCP/UDP이외의 transport protocol의 사용 또는 수현하는 방법은?

      • raw socket 을 이용
  • Raw Socket의 기능

    • Transport 또는 IP(Internet) layer 에서의  프로그래밍 허용
    • ICMP, IGMP 패킷 송수신
    • 커널이 처리하지 않는 프로토콜 번호를 갖는 IP datagram의 송수신
    • IP header의 사용자 직접 작성 허용

IP Header

ipheader.PNG

Raw Socket의 생성

  1. sockfd = socket(AF_INET, SOCK_RAW, protocol);
  2. //IP header의 직접 작성
    setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on));

 

Raw Socket으로 수신 가능한 패킷

  • UDP, TCP 패킷은 raw socket으로 수신 불가
  • 대부분의 ICMP 패킷 수신 가능
  • 모든 IGMP 패킷의 수신 가능
  • 커널이 처리하지 않는 프로토콜 번호를 가진 IP datagram은 모두 수신 가능

Raw Socket으로 수신 가능한 패킷

  • 다음 조건들에 해당할 때 수신된 패킷이 특정 raw socket으로 전달됨

    • raw socket이 생성되었을 때 0이 아닌 프로토콜번호가 주어졌으면 수신된 패킷의 프로토콜 필드는 이 값과 일치해야 함
    • bind함수에 의해 raw socket이 특정 IP 주소와 연계되었을 경우 수신된 패킷의 목적지 IP주소는 이 주소와 일치해야 함
    • 외부 IP주소가 connect 함수에 의해 raw socket과 연계되었을 경우 수신된 데이타그램의 출발지IP주소는 이 연결된 주소와 일치해야 함

Raw Socket의 전송

  • sendto 또는 sendmsg의 호출, 호출 시 목적지 IP주소를 지정
  • IP_HDRINCL option이 설정되어 있지 않으면 커널이 IP헤더를 자동으로 생성
  • IP_HDRINCL option이 설정되어 있으면 사용자가 IP헤더를 포함한 패킷을 작성
  • 커널은 output interface MTU를 초과하는 패킷들을 작은 조각으로 만듦

ping 프로그램

  • ICMP Echo-request/reply message를 이용 특정 컴퓨터와의 연결 여부 확인
  • ICMP message의 전송과 수신을 위하여 raw socket 사용

 General format of ICMP messages

icmp.PNG

 

 

 

이 글은 스프링노트에서 작성되었습니다.

'컴퓨터 > 프로그래밍' 카테고리의 다른 글

Android SDK 설치  (0) 2008.12.14
오랜만에 만져본 JAVA  (2) 2008.12.02
MVC Pattern  (1) 2008.07.21
내가 보아야 할 Ruby 관련 책들  (2) 2008.05.14
Ruby를 맛봅시다.  (2) 2008.04.30
Buy me a coffeeBuy me a coffee

JAVA기반의 CLE(Collaboration and Learning Environment)툴인 Sakai의 기능을 잘 설명한 pdf파일을 발견하였습니다.
영어가 아니라 국어로 번역되어서 그런지 읽으면서 영어로 읽을때보다 빨리 읽히더군요.
Sakai란 교육협업시스템으로 아래 설명은 Wikipedia에 있는 설명입니다.

Sakai is a community of academic institutions, commercial organizations and individuals who work together to develop a common Collaboration and Learning Environment (CLE). The Sakai CLE is a free, community source, educational software platform distributed under the Educational Community License (a type of open source license). The Sakai CLE is used for teaching, research and collaboration. Systems of this type are also known as Course Management Systems (CMS), Learning Management Systems (LMS), or Virtual Learning Environments (VLE).

Sakai is a Java-based, service-oriented application suite that is designed to be scalable, reliable, interoperable and extensible. Version 1.0 was released in March 2005.



Sakai Project에 포함된 목록들이 여기 있는 번역본보다는 더 추가되었지만 Sakai에는 어떤 기능이 있는 지를 대략 짐작할수 있는 PDF입니다.
invalid-file

사카이 기능 목록(PDF, 540 KB)


이 파일은 제가 번역한 것이 아니고 한국리눅스센터에서 일하시는 김정규님께서 번역하시고 블로그에(무들 워크샵) 게제를 하였습니다.


Buy me a coffeeBuy me a coffee

Mozilla Community 10주년.., originally uploaded by StudioEgo.

2008년 3월 31일은 Firefox, Thunderbird를 만든 Mozilla Community가 창설된지 10주년이 되는 날입니다.
한국 Mozilla 커뮤니티에서는 10주년을 기념하여 총 100명의 사진 축하 메시지를 받는 이벤트에 참가하였습니다.
(참가 사이트 : http://www.mozilla.or.kr/ko/10th/)
이 날 저는 Mozilla 재단 10주년 축하 메시지 사진을 웹캠에 찍어서 이벤트 홈페이지에 사진을 올렸습니다.

10주년 축하합니다.
대학교 1학년인 2005년도, Web에 관심있게 해준 Firefox를 만들어준 Mozilla Community를 감사하게 생각하고 있습니다.

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

Me2day에서 로그인할때의 버그?  (0) 2008.05.11
미묘한 픽셀 설정  (1) 2008.05.04
Naver SE에 대한 생각.  (4) 2008.02.05
다음 첫화면의 변화  (0) 2008.02.04
Internet Explorer에서만 하라는 TEST  (4) 2008.02.02
Buy me a coffeeBuy me a coffee


이 포스트는 땜빵용(?) 이라고 할까요? Mozilla Firefox 3 Beta 4에서는 Beta3에 비해 어떻게 기능이 향상되었는지를 Test하는 포스트입니다.

TEST
Firefox 3 beta 4를 깔고 나서 뜬 화면

Firefox 3 beta 4를 깔고 나서 뜬 화면입니다. 로봇이 우주외계인의 침략을 막고 있는듯한 그림이 보이군요 ㅎ


Test

Firefox 3 Beta 3에 있었던 JAVA script를 제대로 읽지 못하는 버그는 다 잡힌듯 합니다.
잘 되네요. ㅎㅎ

점차 성능이 향상된다는 것을 느끼게 되는 Firefox 3 Beta 4입니다.
정식버전으로 나오면 Firefox 2에서 갈아탈 예정입니다.

속도도 안정적이니까 예전 Beta3에서 있던 버그는 거의 다 잡은 듯한 느낌이 듭니다. 빨리 정식버전이 나와라~ 얍~

Buy me a coffeeBuy me a coffee
Open Source Project로 운영되고 있는 Sakai Project 동영상입니다.
요즘 Sakai Project에 관심을 가지게 되어서 블로그에도 Sakai Project를 설명하는 비디오을 올리게 되었습니다.

Sakai Project(http://www.sakaiproject.org/)

사카이 프로젝트(Sakai Project)는 오픈소스 커뮤니티를 통한 코드의 공유를 통해 가장 좋은 특성들을 통합한 코스 관리시스템을 제작.배포하는 CMS 공유 프로젝트이다.
※ CMS(course management system): 교수와 학생에게 편리한 학습 환경을 제공하는 인터넷 기반의 강의지원 시스템
  • 고등교육을 위한 “공동연구 및 학습환경(CLE: Collaboration and Learning Environment)” 을 설계, 개발, 활용하는 것을 목적으로 운영
  •  e-러닝에 경험이 있는 유명대학에서 자생적으로 발생 : 미시간, 인디애나, MIT, 스탠포드 대학은 효과적이고 경제적인 방법을 통한 지속적인 학습.교수.연구를 위해 컨소시엄 구성

Sakai Video Report: Sakai Overview
Produced: August 18, 2006
 
This video gives an overview of the Sakai Collaborative and Learning Environment (CLE) product, how Sakai is used in in teaching, learning, collaboration, and portfolios, how the Sakai community works, how Sakai works to improve interoperability through standards, and some technical detail about Sakai. Detail: Flash Video 11 minutes.

 
View other Sakai videos on Google Video
 
Note: If you are having problems viewing the file using a browser, you may want to download the media and play it locally.


Sakai Overview

11 min 19 sec - Aug 18, 2006
Average rating:   (3 ratings)
Description: This video gives an overview of the Sakai Collaborative and Learning Environment (CLE) product, how Sakai is used in in teaching, learning, collaboration, and portfolios, how the Sakai community works, how Sakai works to improve interoperability through standards, and some technical detail about Sakai. Length 10 minutes.

 
Play on Google Video
Windows (323) | Quicktime (1350) | MPEG-2 (1440)
 
Sakai Project
Buy me a coffeeBuy me a coffee
지하철에 배포하는 무가지 신문인 포커스에 파이퍼폭스에 관련한 신문기사가 나왔습니다.
기사를 읽어보니까 무가지신문에서까지 "파이어폭스"가 나왔다는 것이 신기하였습니다.

신문기사 전문을 실는 것은 저작권에 저촉이 될까봐 링크로만 겁니다.
'서프라이즈' 파이어폭스

이 기사를 보면서 흐믓한 점이 있어도, 대한민국의 현실을 아는지 모르는지 단순하게 외국기사를 번역해서 기사를 발행한 감도 있지 않나 봅니다.

기사를 보면서 파이어폭스(Firefox, 불여우)가 인지도가 상승한다는 것을 느끼는 것과 점차 많이 파이어폭스가 쓰여진다는 것을 보니 국내 인터넷 환경이 ActiveX로 떡칠된 것을 바꾸는 것의 기폭제가 되지 않을까 싶습니다.
Buy me a coffeeBuy me a coffee

오랜만의 삽질포스트입니다.

이번에 노트북 하드디스크를 포맷시키면서 이제는 정품만 쓰자는 다짐으로 대부분으 소프트웨어를 정품이나 오픈소스로 깔았습니다.
(그렇다고 불법을 절대로 안쓴 것은 아님을 유의)
노트북 하드디스크를 포맷시키면서 리눅스를 깔고픈 마음이 생겼습니다. 그런데 리눅스를 깔려면 Vitual Machine형태로 깔아야할듯 했습니다.
VMware를 쓰자니 정품도 아닌 어둠의 경로에서 구해야하며, VMware의 Keygen을 쓸려니 바이러스의 걱정도 있고 웬지 범법자같이 쓰는 것 같아서 MS사에서 무료로 나눠주는 Virtual PC를 쓰는 것이 훨씬 마음에서 편안해지는 것 같아서 Vitual PC 2007을 쓰기로 하였다.


우선 MicroSoft사에서 Virtual PC 2007를 다운 받는다.
[English] MS사 Virtual PC 2007 소개 홈페이지
사용자 삽입 이미지

Download를 선택하여 Virtual PC 2007을 다운받는다.
다운 받으면 설치를 하고 나서 Ubuntu CD를 준비한다. (나는 ISO이미지를 준비하였다.)
아래 링크에 있는 것 처럼 깔면 될것이다.
Installing Ubuntu 7.10 Under Virtual PC 2007
이거 구글링하니까 답이 나오군요.
계속 깔다가 화면이 깨지면서 계속 무한루프에 빠지는 등의 에러를 보다가 겨우 해결하였습니다.

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

Fedora Core 7에서 Fedora Core 8로 Upgrade하기  (0) 2008.05.11
Ruby on rails 설치  (0) 2008.05.10
CentOS 5.1를 설치하기로 함.  (1) 2008.02.05
2007 JCO 오픈소스 컨퍼런스에 갑니다  (2) 2007.10.07
Happy 10th Birthday GNOME!  (0) 2007.08.22
Buy me a coffeeBuy me a coffee

+ Recent posts