Linux2009. 3. 17. 13:21
LFS는 Linux From Scratch의 약자이고, RootFS부터 차근차근 올리는 방법이다.
UCK는 Ubuntu Cutomization Kit의 약자이고,GUI 환경에서 배포판을 만들 수 있다고 한다.

Welcome to Linux From Scratch!

Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.

Currently, the Linux From Scratch organization consists of the following subprojects:

  • LFS :: Linux From Scratch is the main book, the base from which all other projects are derived.
  • BLFS :: Beyond Linux From Scratch helps you extend your finished LFS installation into a more customized and usable system.
  • ALFS :: Automated Linux From Scratch provides tools for automating and managing LFS and BLFS builds.
  • CLFS :: Cross Linux From Scratch provides the means to cross-compile an LFS system on many types of systems.
  • HLFS :: Hardened Linux From Scratch focuses on building an LFS system with heightened security.
  • Hints :: The Hints project is a collection of documents that explain how to enhance your LFS system in ways that are not included in the LFS or BLFS books.
  • LiveCD :: The LiveCD project provides a CD that is useful as an LFS build host or as a general rescue CD.
  • Patches :: The Patches project serves as a central repository for all patches useful to an LFS user.

[LFS : http://www.linuxfromscratch.org/]


[UCK : http://uck.sourceforge.net/]

Posted by 구차니
Linux2009. 3. 16. 21:05
filesystem중 고대의 유물(!)인 msdos filesystem으로
vfat filesystem이 mount되면 모든 파일이 8.3 형식으로 출력된다.

8.3 형식이라 함은, 파일명 8자 확장자 3자로 구성된 파일 이름을 의미하며
그 이상의 길이를 지닌 파일은 6자~1.ext 식으로 변환이 된다.
Posted by 구차니
Linux2009. 3. 15. 21:31
The Syslinux Project covers lightweight bootloaders for

MS-DOS FAT filesystems (SYSLINUX),
network booting (PXELINUX),
bootable "El Torito" CD-ROMs (ISOLINUX), and
Linux ext2/ext3 filesystems (EXTLINUX).

The project also includes MEMDISK, a tool to boot legacy operating systems (such as DOS) from nontraditional media; it is usually used in conjunction with PXELINUX and ISOLINUX.

[출처 : http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project]
[공식 : http://syslinux.zytor.com/]


F:\syslinux\syslinux.cfg
default vesamenu.c32
timeout 100

menu background splash.jpg
menu title Welcome to F10-i686-Live!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color timeout_msg 0 #ffffffff #00000000
menu color timeout 0 #ffffffff #00000000
menu color cmdline 0 #ffffffff #00000000
menu hidden
menu hiddenrow 5
label linux0
  menu label Boot
  kernel vmlinuz0
  append initrd=initrd0.img root=UUID=00CB-3317 rootfstype=vfat rw liveimg overlay=UUID=00CB-3317 quiet  rhgb
menu default
label check0
  menu label Verify and Boot
  kernel vmlinuz0
  append initrd=initrd0.img root=UUID=00CB-3317 rootfstype=vfat rw liveimg overlay=UUID=00CB-3317 quiet  rhgb check
label memtest
  menu label Memory Test
  kernel memtest
label local
  menu label Boot from local drive
  localboot 0xffff

APPEND options...

Add one or more options to the kernel command line. These are added both for automatic and manual boots. The options are added at the very beginning of the kernel command line, usually permitting explicitly entered kernel options to override them. This is the equivalent of the LILO "append" option.


APPEND -

Append nothing. APPEND with a single hyphen as argument in a LABEL section can be used to override a global APPEND.


이 외계어들은 머냐면, 문득 liveCD가 어떻게 작동되는지 궁금해서 뒤져보다가 발견한 것들이다.
일단 syslinux 라는 것을 기반으로 USB liveCD가 작동이 되는데, 그 syslinux의 환경설정파일은
syslinux.cfg 파일의 내용 중, persistent overlay를 설정한것과 안한 것의 차이는 저 append의 내용 차이뿐이었다.


 897        initrd=         [BOOT] Specify the location of the initial ramdisk
1882 root= [KNL] Root filesystem
1889 rootfstype= [KNL] Set root filesystem type
1904 rw [KNL] Mount root device read-write on boot

[출처 : http://lxr.linux.no/linux/Documentation/kernel-parameters.txt]

rhgb = redhat graphical boot - This is a GUI mode booting screen with most of the information hidden while the user sees a rotating activity icon spining and brief information as to what the computer is doing.

quiet = hides the majority of boot messages before rhgb starts. These are supposed to make the common user more comfortable. They get alarmed about seeing the kernel and initializing messages, so they hide them for their comfort.


[출처 : http://www.redhat.com/archives/fedora-list/2004-May/msg07775.html]


찾아봐도 이정도 밖에 나오지 않는데, syslinux에서 제공하는건지 overlay에 대한 단서는 막막하다.
아무튼 root 와 overlay가 동일한 이름으로 되어 있는 것으로 봐서는, 어떠한 연관이 있어 보인다.
Posted by 구차니
Linux2009. 3. 5. 20:21
$ tree -d /usr/share/fonts/korean/
/usr/share/fonts/korean/
|-- TrueType
`-- misc

TrueType의 아래에는 ttf 폰트가 있고, 윈도우에서도 쓸수 있다.
(다르게 말하면 윈도우용 트루타입 폰트를 이곳에 복사하면 리눅스에서도 사용할 수 있다는 의미이다)

현재 리눅스(FC6 기준)에는 백묵폰트가 기본으로 들어 있으며

백묵돋음
백묵굴림
백묵바탕
백묵헤드라인

네가지가 포함되어 있다.

-rw-r--r-- 1 root root 13939436 Jul 12  2006 batang.ttf
-rw-r--r-- 1 root root  3066060 Jul 12  2006 dotum.ttf
-rw-r--r-- 1 root root      560 Jan 21 07:13 fonts.dir
-rw-r--r-- 1 root root      560 Jan 21 07:13 fonts.scale
-rw-r--r-- 1 root root 10385096 Jul 12  2006 gulim.ttf
-rw-r--r-- 1 root root  1203464 Jul 12  2006 hline.ttf

[백묵폰트 공식 : http://font21.com/]
Posted by 구차니
Linux2009. 3. 2. 13:44
 RDATE(1)                            Red Hat                           RDATE(1)

NAME
       rdate - get the time via the network

SYNOPSIS
       rdate [-p] [-s] [-u] [-l] [-t sec] [host...]

DESCRIPTION
       rdate  connects  to  an  RFC 868 time server over a TCP/IP network, printing the returned time and/or setting the
       system clock.

   OPTIONS
       -p     Print the time returned by the remote machine.
       -s     Set the system time to the returned time.
       -u     Use UDP instead of TCP as the transport.
       -l     Use syslog to output errors (cron.warning) and output (cron.info).
       -t     Set timeout in seconds for every attempt to retreive date.

HISTORY
       2004-03-16 Johan Nilsson <joh-nils@dsv.su.se>
              Timeout support added.

       2002-11-06 Elliot Lee <sopwith@redhat.com>
              Patch from Tomek Orzechowski <orzech@pld.org.pl> - alarm(10) to not wait forever for connections.

       2001-05-23 Phil Knirsch <pknirsch@redhat.com>
              Added UDP protocol support.  Close the connection after message handling in conformance to RFC 868.

       2002-03-07 Elliot Lee <sopwith@redhat.com>
              Add syslog functionality.

       2000-02-04 Elliot Lee <sopwith@redhat.com>
              Wrote it (previous incarnation had license problems, all 200 lines of it).

Utilities                          May 2001                           RDATE(1)

rdate는 NTP(Network Time Protocol)을 이용하여 시간을 동기화 시켜 주는 유틸리티 이다.
윈도우에서 사용하는 기본 타임 서버는

time.windows.com
time.nist.gov

이며, 국내에서 사용하는 타임서버로는
time.kriss.re.kr
time.bora.net
등이 있다.

Fedora 에서는

0.fedora.pool.ntp.org
1.fedora.pool.ntp.org
2.fedora.pool.ntp.org
을 사용한다.

2010.02.25 추가
# rdate -s time.bora.net
[링크 : http://www.superuser.co.kr/superuserboard/view.html?id=14&code=linuxcom&start=0&position]
Posted by 구차니
Linux2009. 2. 24. 13:51
hexdiff 라는 윈도우 프로그램도 있긴 하지만 유료인데다가 비교 성능이 그리 좋지 않다.
차이점 부분 내부를 비교 하지 않고 다르다는 정도만 출력한다랄까..
그리고 16M 짜리 바이너리 2개 비교하면 거의 시스템이 죽어 버릴 듯 간당간당하다.

번지를 보면 알 수 있겠지만, 내용이 다르다고 완전 밀어내고 다르다고 표시를 해 놓는 바람에 내용 비교를 할 수 없다.

hexidff[windows]의 단점
드래그 안됨
두개 비교 할려면 매우 번거로움
용량이 크면 비교 하는데 오래걸림
차이점을 제대로 보여주지 못함
EFT Studio 홈페이지 도메인 팔린 듯 (2009.02.24 기준)


그래서 짜증나는 관계로 텍스트 모드이긴 하지만 빠르게 작동하는 녀석을 찾게 되었다.
이름은 Visuel HexDiff
unix 호환버전이고, rpm은 존재하지 않으며 make 해서 설치 해야 한다.

visuel hexdiff의 단점은
address가 16진수가 아닌 10진수로 나온다(옵션 발견 못함) 정도 이다.

사용 방법은 vi와 유사하게 n을 누르면 다음 차이점으로 이동을 한다.
H를 누르면 옆의 주소가 16진수/10진수로 출력이 가능하다.

참고로 아래의 도움말은 ?을 누르면 나온다.
hexdiff --help 해도 아무런 것이 안나오니 다른데서 헤매지 말고 아래의 '?' 페이지를 기억하자


[공식 : http://tboudet.free.fr/hexdiff/]
[다운 : http://tboudet.free.fr/hexdiff/hexdiff.tar.gz]
Posted by 구차니
Linux2009. 2. 23. 17:34
카페에서 우연히 주워들은 프로그램이름인데..
검색해보니 readelf가 조금 더 분석에 강력하다고 한다.

#include <stdio.h>

void main()
{
        unsigned char b = 0xF1;
        unsigned short c = 0xF1;
        unsigned int d = 0xF1;

        printf("%X\n",b);
        printf("%X\n",c);
        printf("%X\n",d);
}


위의 소스를 분석한 내용이다. 내용이 많으므로 눌러서 보기바람.

$ gcc -S test.c
$ more test.s

$ gcc -Wl,-Map -Wl,test.map test.c
$ more test.map

$ gcc test.c
$ objdump -x a.out

$ readelf -a a.out

$ ldd a.out

솔찍히 머가 먼지 모르겠다.

덧 : 생각해보니 이것저것 생각나는거 다 붙이다 보니 제목이 안 맞네 ㄱ- 바꿔야 하나?

'Linux' 카테고리의 다른 글

rdate - get the time via the network  (0) 2009.03.02
Visuel Hexdiff - console based visual hex diff  (4) 2009.02.24
ln의 반대말은? - unlink  (0) 2009.02.23
sleep 함수들  (0) 2009.02.22
ls 와 친해지기 - 디렉토리만 봅시다!  (0) 2009.02.22
Posted by 구차니
Linux2009. 2. 23. 10:50
ln -s 로 심볼릭 링크를 만들면 만들어 지는데...
문제는 rm으로 삭제가 안된다.

이럴 때 어떻게 지우냐면은... X-window에서 지운다 -_-v
콘솔에서 명령으로는 어떤것을 사용해야 하는지 몰랐기에 어쩔 수 없는 선택이었지만 말이다 ㄱ-

아무튼 mount의 반대는 umount 이듯
ln의 반대는 unlink랜다

먼가 이상한데? 왜 unln이 아니라 unlink일까? -ㅁ-

[발견 : http://www.newlinuxuser.com/howto-remove-a-symbolic-link/]



궁금중 해결!
ln and link are not same commands.
Link supports Files only. you can't link directories with link command. please check man pages of both commands again.

link and ln (without -s option) are same. Bot creates hard links.
ln with -s option creates soft link.


[발견 : http://www.linuxforums.org/forum/linux-programming-scripting/89240-link-ln.html]
Posted by 구차니
Linux2009. 2. 22. 22:06
$ man -k sleep
Time::HiRes          (3pm)  - High resolution alarm, sleep, gettimeofday, interval timers
apmsleep             (1)  - go into suspend or standby mode and wake-up later
clock_nanosleep      (2)  - Suspend execution of the currently running thread
clock_nanosleep      (3p)  - high resolution sleep with specifiable clock (ADVANCED REALTIME)
nanosleep            (2)  - pause execution for a specified time
nanosleep            (3p)  - high resolution sleep (REALTIME)
sleep                (1)  - delay for a specified amount of time
sleep                (1p)  - suspend execution for an interval
sleep                (3)  - Sleep for the specified number of seconds
sleep                (3p)  - suspend execution for an interval of time
usleep               (1)  - sleep some number of microseconds
usleep               (3)  - suspend execution for microsecond intervals
usleep               (3p)  - suspend execution for an interval

usleep은 1초 까지만 잠재울수 있는 제약이 있다.(1,000,000usec = 1,000msec = 1sec)
USLEEP(P)                  POSIX Programmer’s Manual                 USLEEP(P)

NAME
       usleep - suspend execution for an interval

SYNOPSIS
       #include <unistd.h>

       int usleep(useconds_t useconds);

DESCRIPTION
       The  usleep()  function  shall cause the calling thread to be suspended from execution until either the number of
       realtime microseconds specified by the argument useconds has elapsed or a signal  is  delivered  to  the  calling
       thread  and  its action is to invoke a signal-catching function or to terminate the process.  The suspension time
       may be longer than requested due to the scheduling of other activity by the system.

       The useconds argument shall be less than one million. If the value of useconds is 0, then the call has no effect.

sleep은 1초 단위로 무제한으로 쓸수 있다.(실질적인 제약은 시스템에 따라 다르지만 32bit / 64bit unsigned int)
SLEEP(P)                   POSIX Programmer’s Manual                  SLEEP(P)

NAME
       sleep - suspend execution for an interval of time

SYNOPSIS
       #include <unistd.h>

       unsigned sleep(unsigned seconds);

DESCRIPTION
       The  sleep() function shall cause the calling thread to be suspended from execution until either the number of
       realtime seconds specified by the argument seconds has elapsed or a signal is delivered to the calling  thread
       and its action is to invoke a signal-catching function or to terminate the process. The suspension time may be
       longer than requested due to the scheduling of other activity by the system.

       If a SIGALRM signal is generated for the calling process during execution of sleep() and if the SIGALRM signal
       is  being  ignored or blocked from delivery, it is unspecified whether sleep() returns when the SIGALRM signal
       is scheduled. If the signal is being blocked, it is also unspecified whether it remains pending after  sleep()
       returns or it is discarded.

nanosleep은 REALTIME 확장인 듯 한데.. 먼지 모르겠다 ㄱ-
일단은 위의 sleep, usleep과는 다르게 include 파일이 다르다.
NANOSLEEP(P)               POSIX Programmer’s Manual              NANOSLEEP(P)

NAME
       nanosleep - high resolution sleep (REALTIME)

SYNOPSIS
       #include <time.h>

       int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);

DESCRIPTION
       The  nanosleep()  function shall cause the current thread to be suspended from execution until either the time
       interval specified by the rqtp argument has elapsed or a signal is delivered to the calling  thread,  and  its
       action  is to invoke a signal-catching function or to terminate the process. The suspension time may be longer
       than requested because the argument value is rounded up to an integer multiple  of  the  sleep  resolution  or
       because  of the scheduling of other activity by the system. But, except for the case of being interrupted by a
       signal, the suspension time shall not be less than the time specified by rqtp, as measured by the system clock
       CLOCK_REALTIME.

       The use of the nanosleep() function has no effect on the action or blockage of any signal.



Posted by 구차니
Linux2009. 2. 22. 18:46
예전에 DOS에서는 dir /ad 하면 디렉토리만 볼 수 있었는데
리눅스에서는 옵션을 몰라서 디렉토리만 보려고 하다가 내용까지 보여서 번거로웠다.

LS(1)                            User Commands                           LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

         ..... 중략 .....

       -d, --directory
              list directory entries instead of contents, and do not dereference symbolic links

dir 도움말
C:\>dir /?
디렉터리에 있는 파일과 하위 디렉터리 목록을 보여줍니다.

DIR [드라이브:][경로][파일 이름] [/A[[:]특성]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]정렬 순서]] [/P] [/Q] [/S] [/T[[:]시간 필드]] [/W] [/X] [/4]

  [드라이브:][경로][파일 이름]
              나타낼 드라이브, 디렉터리 및/또는 파일을 지정합니다.

  /A          지정된 특성을 가진 파일을 보여줍니다.
  특성        D  디렉터리                   R  읽기 전용 파일
              H  숨김 파일                  A  기록 파일
              S  시스템 파일                -  부정을 뜻하는 접두사
  /B          최소 형식을 사용합니다 (머리말 정보나 요약 없음).
  /C          파일 크기에 1000단위로 분리 기호를 보여줍니다. 이것은 기본값
              입니다. 분리 기호를 표시하지 않으려면 /-C를 사용하십시오.
  /D          /W와 같으나 세로로 배열하여 보여줍니다.
  /L          소문자를 사용합니다.
  /N          파일 이름이 제일 오른쪽에 오도록 새로운 긴 목록 형식을
              사용합니다.
  /O          파일을 정렬된 순서로 보여줍니다.
  정렬순서    N  이름순(문자 순서)    S  크기순(작은 것 먼저)
              E  확장명순(문자 순서)  D  날짜/시간순(가장 이전 것 먼저)
              G  그룹 디렉터리 먼저         -  순서를 반대로 하는 접두 기호
  /P          정보가 한 화면에 꽉 차면 잠깐 멈춥니다.
  /Q          파일 소유자를 보여 줍니다.
  /S          지정한 디렉터리와 하위 디렉터리를 포함하여 보여줍니다.
  /T          정렬에 사용할 시간 필드를 지정합니다.
  시간필드   C  작성한 시간
              A  마지막 액세스한 시간
              W  마지막 기록한 시간
  /W          이름만 가로로 배열하여 보여줍니다.
  /X          8.3 파일 이름이 아닌 파일에 대한 짧은 이름을 보여줍니다.
              이 형식은 긴 이름 앞에 짧은 이름이 추가된 것으로 /N 형식과
              같습니다. 짧은 이름이 없으면 공백을 보여줍니다.
  /4          4자리수 연도를 표시합니다.

스위치를 DIRCMD 환경 변수로 미리 설정할 수 있습니다. 하이픈(-)을
스위치 앞에 접두 기호로 주면 미리 설정된 스위치에 우선합니다. (예, /-W)



Posted by 구차니