2005/11/04

NV17 nVidia Corporation NV17 [GeForce4 440 Go] xorg.conf sample

Dell에서 19인치 LCD를 사용하는 환경에서 쓰던 xorg.conf입니다.
노트북이나 더 작은 크기의 디스플레이에서는 해상도를 낮추어야 합니다.

----

# /etc/X11/xorg.conf (xorg X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
# (Type "man /etc/X11/xorg.conf" at the shell prompt.)
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xorg
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following commands:
#
# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.custom
# sudo sh -c 'md5sum /etc/X11/xorg.conf >/var/lib/xfree86/xorg.conf.md5sum'
# sudo dpkg-reconfigure xserver-xorg

Section "Files"
FontPath "unix/:7100" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/share/fonts/truetype/ttf-bitstream-vera"
FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
FontPath "/usr/share/fonts/truetype"
FontPath "/usr/share/fonts/truetype/dustin"
FontPath "/usr/share/fonts/truetype/X-TT"
FontPath "/usr/share/fonts/truetype/kochi"
FontPath "/usr/share/fonts/truetype/openoffice"
FontPath "/usr/share/fonts/truetype/cdac"
FontPath "/usr/share/fonts/truetype/freefont"
FontPath "/usr/share/fonts/truetype/ms"
FontPath "/usr/share/fonts/truetype/latex-xft-fonts"
FontPath "/usr/share/fonts/type1/gsfonts"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection

Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "speedo"
Load "type1"
Load "vbe"
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
Option "XkbOptions" "ctrl:nocaps,compose:menu"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/psaux"
Option "Protocol" "PS/2"
Option "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
Identifier "Generic Mouse"
Driver "mouse"
Option "Device" "/dev/input/mice"
Option "SendCoreEvents" "true"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
EndSection

Section "Device"
Identifier "nVidia Corporation NV17 [GeForce4 440 Go]"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "UseFBDev" "true"
EndSection

Section "Monitor"
Identifier "Dell Latitude"
Option "DPMS"
HorizSync 29-75
VertRefresh 40-60
EndSection

Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation NV17 [GeForce4 440 Go]"
Monitor "Dell Latitude"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 24
Modes "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Generic Mouse"
EndSection

Section "DRI"
Mode 0666
EndSection

2005/09/11

솔라리스 10에서의 자원의 설정 : 가용 file descriptor의 변경

솔라리스 9전에는 애플리케이션이 사용하고자하는 최대 오픈 가능한 화일을 조정하기 위하여 화일 디스크립터(fd)의 수를 /etc/system에 추가해서 변경하였었다.

/etc/system :
set rlim_fd_cur=2048 ; 애플리케이션에 기본으로 할당되는 fd 개수, soft limit
set rlim_fd_max=4096 ; 애플리케이션 내에서 시스템콜(setrlimit)으로 변경(증가)시킬 수 있는 최대의 fd 수, hard limit

그리고, reboot이 반드시 필요했다.

솔라리스 9이후부터는 특히, 솔라리스10에서는 이러한 자원의 설정과 변경의 개념은 '사용자'와 '프로젝트'라는 특별히 확장된 형태의 '그룹'의 개념을 기반으로 자원을 동적으로 설정 및 변경할 수 있도록 바뀌었다. 동적이란 말은 당연히 설정 이후에 시스템 '재부팅'이 전혀 필요없음을 의미하는 것이다.

실제 어떻게 적용하는 지를 보기위해서 아래 예를 보도록 하자.
솔라리스 10에서 apache라는 사용자를 만들어서, apache라는 사용자가 웹서버를 운영한다고 가정하자.
apache라는 사용자로 로그인을 한후 apache의 각종 리소스가 어떻게 설정되어 있는 지를 확인하기 위해서는 다음과 같이 실행하면 볼 수 있다.
#prctl -P $$ more

그중에서 file-descriptor를 보기위해서는
#prctl -P $$ fgrep -i file-des
을 실행하게 되면,
process.max-file-descriptor basic 256 - deny 1113
process.max-file-descriptor privileged 65536 - deny -
process.max-file-descriptor system 2147483647 max deny -
와 같은 결과를 볼 수 있게 된다.

위에 나타난, 'basic'은 일반 사용자, 'privileged'는 root권한 혹은 그에 대응하는 권한을 가진 사용자, system은 전체 시스템 최대값을 의미하게 된다.

사용자의 애플리케이션이 privleged 권한으로 수행할 수 있고, 코드안에서 setrlimit을 사용하여 필요한만큼 증가하는 구조를 가지고 있다면, 솔라리스10의 기본 설정은 결코 부족하지 않게 된다.그러나, 일반 사용자인 경우 'basic'의 숫자는 때로는 모자랄 수 있으며, 이런 경우에는 기본 값을 증가시킬 필요가 있다.

이때 이 basic 값을 증가시키기 위해서는 다음과 같이 실행한다.
일단 해당 사용자(여기서는 apache)의 기본 프로젝트를 확인한다.
기본 프로젝트를 확인하기 위해서는
#projects -d
를 실행한다.

만약 'default'라고 나온다면

자원의 기본 설정을 변경하기 위해서 다음과 같이 실행한다.
#projmod -K "process.max-file-descriptor=(basic,2048,deny)" default




참고적으로, root 사용자로 웹 서버를 돌리는 행위는 보안적인 측면에서나 관리측면에서 매우 어리석은 짓이다. 설사 웹서버가 80포트에 바인딩하기 때문에 root Privilege가 필요하다 하더라도
일반 사용자가 RBAC기능을 이용하여 80포트를 바인딩하도록 하는 것이 바람직하다.
RBAC 기능은 후에 언급하도록 하겠다.

2005/08/24

썬에 입사한지 내일 정확하게 9년하고 반이 지나는 시점에서
나를 돌아볼 기회가 생겼습니다.
오랜 동안 어설프게 알아오면서 익히게된 솔라리스가 이제는
상당히 친한 친구가 되었습니다. 가끔 미운 마음도 들때가
있지만, 여전히 내가 외로울때 나를 지켜주었고, 용기를
주었던 솔라리스에 대한 얘기를 나누고 싶다는 생각이 들었습니다.

솔라리스에 관한 내 생각..
자잘한 솔라리스 기술들...
솔라리스 기반의 좋은 아키텍쳐들...

뭐 이런 것들을 실어볼 까 합니다.
많은 호응이 있기를 바라겠습니다.

주의 : 이곳에 나오는 그 어떤 내용도 저의 개인적인 견해이며
제가 소속한 한국썬마이크로시스템의 견해가 아님을 미리 밝혀둡니다.