Linux/Ubuntu2010. 10. 28. 15:50
"연결을 받아들이도록 자동 네트워크 설정" 을 선택하면 VNC 접속시 암호를 물어보지 않게 설정이 된다.


Posted by 구차니
Linux2010. 10. 5. 17:47
리눅스에서는 매직패킷을 어떻게 보내는지,
어떤 프로그램을 사용하는지 궁금했는데
ether-wake 라는 프로그램이 존재한다고 한다.

 ether-wake - A tool to send a Wake-On-LAN "Magic Packet"
 ether-wake [options] Host-ID

[링크 : http://linux.die.net/man/8/ether-wake]

[링크 : http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/wol-mini-howto-3.html]

Posted by 구차니
Linux/Ubuntu2010. 9. 21. 01:20
시냅틱 패키지로 받아서 설치했는데, 어디서 이 버전 정보가 묻어 온걸까?

./.config:3:# Linux kernel version: 2.6.32.15+drm33.5
./.config:73:CONFIG_VERSION_SIGNATURE="Ubuntu 2.6.32-24.42-generic 2.6.32.15+drm33.5"
./Makefile:4:EXTRAVERSION = .15+drm33.5
./include/config/auto.conf:3:# Linux kernel version: 2.6.32.15+drm33.5
./include/config/auto.conf:955:CONFIG_VERSION_SIGNATURE="Ubuntu 2.6.32-24.42-generic 2.6.32.15 drm33.5"
./include/config/auto.conf.cmd:519:ifneq "$(KERNELVERSION)" "2.6.32.15+drm33.5"
./include/config/kernel.release:1:2.6.32.15+drm33.5
./include/linux/utsrelease.h:1:#define UTS_RELEASE "2.6.32.15+drm33.5"
./include/linux/autoconf.h:3: * Linux kernel version: 2.6.32.15+drm33.5
./include/linux/autoconf.h:956:#define CONFIG_VERSION_SIGNATURE "Ubuntu 2.6.32-24.42-generic 2.6.32.15+drm33.5"

아마.. 최초의 녀석인 Makefile에 기본으로 들어있던 정보 같은데.
이녀석 때문에 /lib/modules에 설치되는 경로도 달라졌고, 그로인해 mkinitramfs 까지 문제가 줄줄이 생겼다.

다음부터는 반드시.. Makefile 에서 EXTRAVERSION 이런걸 좀 확인해야겠다.
Posted by 구차니
Linux2010. 9. 21. 00:32
POSIX는 "유닉스 관련 운영체제에 대한 이동성을 위한 표준" 이라고 하지만
도대체 무슨 의미인지 이해도 안되는데..

POSIX.1


이러한 시스템적인 녀석들에 대한 표준을 규정하고 있다.
하지만, 이녀석 검색을 파고 들다보니 예전에 Windows에서 NFS를 사용하는 방법중 하나인 SFU가 떠올랐고
MS Windows에서 POSIX를 지원하는 내용을 봤던게 떠올랐다.

[링크 : http://en.wikipedia.org/wiki/POSIX]
    [링크 : http://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem[]
    [링크 : http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX]
        [링크 : http://support.microsoft.com/kb/324055]
        [링크 : http://www.microsoft.com/downloads/en/details.aspx] Download Windows Services for UNIX v3.5

물론 POSIX를 지원한다고 해서, 바이너리 수준의 호환성을 지원하는게 아니라
리눅스의 ELF 실행 파일들을 윈도우에서 실행할수도 있는게 아닌데
왜 MS Windows에서 POSIX를 지원하고 그걸 따르려는지는 조금 의문이었다.
(물론 미국정부 입찰시 정부 요구사항으로 POSIX 호환을 요구했다지만..)
FIPS - Federal Information Processing Standard
[링크 : http://en.wikipedia.org/wiki/Federal_Information_Processing_Standard]

개인적으로는 윈도우의 POSIX 를 따르는 것 중 하나가
NT 커널로 오면서 Program Files / Windows / Documents and Users 등의 File system hierachy 등부터
사용자 관리 등을 포함하는게 아닐까 싶었는데 음.. 이것과는 좀 다른것 같기도 하다.
Posted by 구차니
Linux2010. 9. 21. 00:19
애플 빠돌이인 후배에게 MacosX가 좋아?
라는 질문에 문득 맥은 어떤 커널구조인가 호기심 발동.

일단 Mac의 커널은 NeXTstep의 영향으로 micro kernel을 받아들이고 있고,
퍼포먼스 측면의 문제로, 일부는 모노리딕 커널의 형태를 지닌, 결과론적으로 '하이브리드 커널' 형태를 지니고 있다.


모노리딕 커널은 현재 Linux 에서 채용하고 있는 커널의 구조이며,
모든 OS의 기능을 커널 영역(kernel space <-> user spcae)에서 관리자 모드(supervisor mode)로 구동한다.
 A monolithic kernel is a kernel architecture where the entire operating system is working in the kernel space and alone as supervisor mode.

이에 반해, 마하 커널은
최소한의 기능만을 커널 영역에서 관리자 모드로 실행하며, 나머지 기능들을 유저 모드에서 실행을 한다.
다르게 말하면, 사용자별로 분리되어 작동하므로 커널을 침범하지 않아 보안의 문제가 줄어들며
개별유저가 시스템 전체를 망가트릴 정도로 문제가 확대되지 않는 구조적인 장점을 갖는다.

하지만, 이는 프로세스 간의 통신(IPC)에 부하가 많아지므로 전체성능이 오히려 떨어질 수 있는 우려가 있다.
 The microkernel approach consists of defining a simple abstraction over the hardware, with a set of primitives or system calls to implement minimal OS services such as memory management, multitasking, and inter-process communication. Other services, including those normally provided by the kernel, such as networking, are implemented in user-space programs, referred to as servers. Microkernels are easier to maintain than monolithic kernels, but the large number of system calls and context switches might slow down the system because they typically generate more overhead than plain function calls.


간단하게 예를 들자면, 리눅스의 경우 Xwindow와 같은 그래픽 계열은
전부 User spcae에서 돌리는데 이로 인해 초기의 Xwindow는 MS Windows에 비하면 상당히 반응속도도 느렸는데
이는 리눅스는 monolithic kernel + user space Xwindow application 조합이었고
윈도우즈는 커널과 그래픽 부분이 결합되었기 때문에 통신에 대한 부하가 적었기 때문이다.
하지만, 이러한 구조적 차이로 리눅스는 가벼운 커널을 유지한 반면, MS Windows는 무거운 커널을 지니게 되었다.

머.. 현재의 시스템은 충분히 빨라졌고 알고리즘의 향상으로
Xwindow나 MS windows나 아주 큰 속도의 차이는 나지 않는것 같기 때문에 굳이 구분할 이유가 있나 싶기도 하다.
아무튼, 결국에는 하이브리드로 수렴하지 않을까 싶다.

[링크 : http://bugtruck.tistory.com/196]
[링크 : http://en.wikipedia.org/wiki/Kernel_%28computing%29]
    [링크 : http://en.wikipedia.org/wiki/Monolithic_kernel]
    [링크 : http://en.wikipedia.org/wiki/Hybrid_kernel]
    [링크 : http://en.wikipedia.org/wiki/Mach_kernel]
[링크 : http://en.wikipedia.org/wiki/Mac_OS_X]

'Linux' 카테고리의 다른 글

WOL on Linux - ether-wake  (0) 2010.10.05
POSIX - Portable Operating System Interface [for Unix]  (6) 2010.09.21
bash - 이전 디렉토리로 이동하기 move to previoud directory  (2) 2010.09.19
mkinitramfs  (0) 2010.09.19
top (1) - load average ?  (4) 2010.09.12
Posted by 구차니
Linux2010. 9. 19. 21:44
완전 다른 디렉토리로 이동할때 가끔 이전의 경로로 돌아가고 싶은 때가 있다.
귀찮지만 일일이 치곤했는데, 귀차니즘(실은 모토쿼티에서 일일이 치긴 곤혹이라..) 때문에 다시 찾아보니
간단한 해결 방법이 있었다.

 cd $OLDPWD
 cd -

두가지 모두 bash 쉘에서 작동을 한다.
그래도 cd - 가 타수가 적어지니 더 편한듯!


OLDPWD
The previous working directory as set by the cd command.

[링크 : http://linux.die.net/man/1/bash]

you can go back to the previous directory without having to type in the entire directory path by using the command “cd –”.

[링크 : http://techie-buzz.com/.../how-to-go-back-to-previous-directory...putty.html]


'Linux' 카테고리의 다른 글

POSIX - Portable Operating System Interface [for Unix]  (6) 2010.09.21
커널의 종류(kind of kernels)  (0) 2010.09.21
mkinitramfs  (0) 2010.09.19
top (1) - load average ?  (4) 2010.09.12
curl  (0) 2010.09.11
Posted by 구차니
Linux2010. 9. 19. 14:04
mkinitramfs는 initrd.img 파일을 만드는 스크립트이다.
$ whereis mkinitramfs
mkinitramfs: /usr/sbin/mkinitramfs /usr/share/man/man8/mkinitramfs.8.gz

$ ll mkinitramfs*
-rwxr-xr-x 1 root root 9588 2010-04-27 00:16 mkinitramfs*
-rwxr-xr-x 1 root root 1931 2010-04-27 00:16 mkinitramfs-kpkg*

$ file mkinitramfs*
mkinitramfs:      POSIX shell script text executable
mkinitramfs-kpkg: POSIX shell script text executable

이 녀석의 인자로는 [version] 이라는 값이 들어가는데,
이 값은, /lib/modules/[version] 값의 경로에서 필요한 데이터를 추출한다.
$ mkinitramfs

Usage: /usr/sbin/mkinitramfs [OPTION]... <-o outfile> [version]

Options:
  -d confdir  Specify an alternative configuration directory.
  -k          Keep temporary directory used to make the image.
  -o outfile  Write to outfile.
  -r root     Override ROOT setting in mkinitrd.conf.

See mkinitramfs(8) for further details.

아무튼 나의 경우에는, apt-get으로 받은 우분투 커널 소스를 컴파일 하여 설치된 경로가
/usr/src/linux-source-2.6.32 였고, 컴파일 하여 생성되는 모듈들의 경로는
/lib/modules/2.6.32.15+drm33.5/ 였다. 이런 이유로, uname 으로 출력되는 경로와 다르게 되어
기본값으로 생성되는 initrd.img의 내용에는 modules.dep 파일이 없어서 구동이 되지 않는다.

물론, initrd.img의 크기는 실제 장착된 메모리의 용량을 넘어서지만 않으면 된다고 하지만,
내가 생성해낸 이 파일의 용량은 65M가 되어서 부팅에 조금 오래 걸리고,
약간의 설정상 문제가 있는지 Xwindow가 구동하지 않았다 -_-

기본적인 우분투의 initrd.img의 크기는 7.6M 정도이다.



'Linux' 카테고리의 다른 글

커널의 종류(kind of kernels)  (0) 2010.09.21
bash - 이전 디렉토리로 이동하기 move to previoud directory  (2) 2010.09.19
top (1) - load average ?  (4) 2010.09.12
curl  (0) 2010.09.11
verbose가 모야?  (4) 2010.07.29
Posted by 구차니
Linux/Ubuntu2010. 9. 18. 11:24
저번에 yaffs2 넣는다고 컴파일 했다가 시스템 날려먹고
겨우겨우 grub 메뉴로 들어가 복구는 했는데.. 이유를 오늘에서야 찾아보게 되었다.
(아.. 직딩의 한이란 ㅠ.ㅠ)

Shift 누르고 GRUB2 메뉴로 들어가서 기존의 커널로 부팅!
아마 update-grub시 1번 메뉴(=기본 선택 부팅)은 시간을 비교해서 최신의 것으로 바뀌는 것으로 추측된다.

안전모드로 부팅해서 죽을때의 메시지.
0.618952 초에 나온 이후의 메시지가 관건이다. sda1 응? "root=" boot option?

그래서 다른 부팅메시지와 비교를 해봤더니
커널 설정 부분의 root= 뒤에 UUID가 들어가냐, 아니면 device 이름이 들어가냐의 차이로 부팅이 안된게 아닐까 추측이 된다.
그리고, initrd가 빠져있었는데 음.. 귀찮은데 다른 버전의 것을 그냥 써줘도 되려나?
menuentry 'Ubuntu, 그리고 Linux 2.6.32.15+drm33.5' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 1e3d003c-6547-40c8-8f7f-32c0156b7ac8
        linux   /boot/vmlinuz-2.6.32.15+drm33.5 root=/dev/sda1 ro   quiet splash
}
}
menuentry 'Ubuntu, 그리고 Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 1e3d003c-6547-40c8-8f7f-32c0156b7ac8
        linux   /boot/vmlinuz-2.6.32-24-generic root=UUID=1e3d003c-6547-40c8-8f7f-32c0156b7ac8 ro   quiet splash
        initrd  /boot/initrd.img-2.6.32-24-generic


UUID는 전세계적으로 유일한 확인자 라는 의미라고 한다.
 Universally unique identifier
[링크 : http://en.wikipedia.org/wiki/Universally_unique_identifier]

귀찮아서 initrd 를 2.6.32.24 걸로 끌어다 썻더니 부팅은 시도하지만
커널과 관련된 파일들이 없어서 부팅이 진행되지는 않는다.

그래서 검색을 해보니, make modules_install 을 해주거나 depmod 를 해주면 되는 것으로 추측된다.
cd linux-2.6.30/drivers/gpu/drm/i915/
patch i915_drv.c /tmp/patch # make any modification you need here
make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules
sudo make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules_install
sudo depmod -a

[링크 : https://wiki.ubuntu.com/KernelCustomBuild]
[링크 : http://linux.die.net/man/8/depmod]

$ make modules_install
  ...
  INSTALL /lib/firmware/yam/9600.bin
  DEPMOD  2.6.32.15+drm33.5


여전히 initramfs 에서 못넘어 간다. 이래저래 initrd.img를 생성해야 할듯 하다.

머 생성해도 달라지는건 별로 없군 ㄱ- busybox 에서 못 넘어 간다 (안해!!!! ㅆㅂ)


다른것들 보다는.. 도대체 왜
 FATAL: Could not load /lib/modules/... : No such file or directory
라는 에러가 발생을 하는지 모르겠다.


---
/dev/sda1 대신 /dev/hda1을 바꾸면 될까 했는데.. 역시나 안되고 -_-
(sda1은 SATA 하드 hda1은 IDE용 하드의 식별자이다)

혹시나 해서 initrd의 내용을 열어보니
conf/conf.d/resume 파일의 내용중 UUID의 값이 /boot/grub/grub.cfg 의 내용과 다르게 들어있었다.
그리고 이 내용은
/etc/initramfs-tools/conf.d/resume에 들어있던 내용이고
mkinitramfs 에 의해 이 내용이 들어간 것으로 보인다.

Extracting initrd image
Initrd image is just cpio-gzip archive. So to extract it:

$ mkdir initrd
$ cd initrd
$ gzip -dc /boot/initrd-2.6.16-026test014.4-smp.cpio | cpio

[링크 : http://wiki.openvz.org/Modifying_initrd_image]

바꾸어서 해보니 안되는건 차이가 없다.
그래서 위의 방법대로 되는 버전의 initrd 와 내가 만든 initrd를 비교해보니
initrd 내부의 /lib/modules/ 에 modules.dep 파일이 빠져있었다 ㄱ-
미네랄!



2010.09.19
문서를 찾아봐도 mkinitramfs 라는 녀석이 끝판왕인데
나의 경우에는 우분투에서 받은 소스의 설치 경로가 달라서인지 제대로 된 initrd.img가 생성되지 않았다.

아무튼 이러한 경로를 참조해서 생성하도록 [version] 값을 넣어주어야 한다.
(-o 옵션 뒤의 값은 생성할 파일의 이름이고, 그 뒤의 이름은 /lib/modules에 존재하는 디렉토리의 이름이다)
 $ ls -al /lib/modules/[version]
 $ mkinitramfs -o initrd.img-[version] [version]


Posted by 구차니
Linux/Ubuntu2010. 9. 18. 11:13
이것저것 깔아놓다 보면 업데이트시 다운로드 용량에 한번 놀라고!
업데이트 주기에 한번 더 놀라고!
업데이스 시간에 한번 더 놀란다 -_-

아무리 공부용/테스트용 우분투 이지만.. 이렇게 많이 깔아 놓다니 후회중 ㅠ.ㅠ

'Linux > Ubuntu' 카테고리의 다른 글

Ubuntu Kernel Compile 버전 정보  (0) 2010.09.21
grub.cfg 설정 + VFS 패닉  (4) 2010.09.18
grub2 메뉴 들어가기  (0) 2010.09.16
grub menu.lst 넌 어디야?!  (0) 2010.09.15
yaffs2 하려는데 왜케 빡시누  (0) 2010.09.14
Posted by 구차니
Linux/Ubuntu2010. 9. 16. 08:51
커널 바꾸고 VFS 패닉나는 관계로.. 복구를 해야 하는데
당췌 우분투 10.04 에서 지원하는 부트로더의 메뉴로 들어가는 법을 찾지 못하고 있었는데..

grub 의 경우 esc
grub2의 경우 shift를 누르고 부팅을 하면 메뉴로 들어간다고 한다.
(USB 로 부팅해서 복구하기 귀찮아서 이러는건 절대 아닐지도 -_-)

부팅되는 동안 시스템이 쉬프트 키(SHIFT key)의 상태를 점검하는데, 만약 결정하지 못했다면, 이에스시 키(ESC key)를 누름으로써 메뉴를 보이게 할 수도 있습니다

[링크 : http://www.xpressengine.com/18965688]

[링크 : http://www.gnu.org/software/grub/]
[링크 : http://www.dedoimedo.com/computers/grub-2.html]
[링크 : http://ubuntuforums.org/showthread.php?t=1195275]


집에와서 해보니, BIOS 에서 부터 Shift를 누르는것은 들어가지지 않고,
BIOS 에서 Bootloader로 넘어가는 시점에서 부터 Shift 키를 누르고 있어야 GRUB loader menu로 진입하였다.
눌렀다 뗐다 하는것도 안되고, 계속 메뉴가 뜰때까지 누르고 있어야 하는데 음.. 이건 촘 아니라는 느낌..

'Linux > Ubuntu' 카테고리의 다른 글

grub.cfg 설정 + VFS 패닉  (4) 2010.09.18
ubuntu 업데이트 시스템의 불편함  (0) 2010.09.18
grub menu.lst 넌 어디야?!  (0) 2010.09.15
yaffs2 하려는데 왜케 빡시누  (0) 2010.09.14
ubuntu 에서 X window 종료시키기  (0) 2010.08.23
Posted by 구차니