== JinLiveCD/ToDo ==

=== 작업할 내용 ===
 * csh 을 busybox 로 변경 ( done )
  * 계속 발전가능성이 있고, debug 하기가 좋다.
 * cloop 를 squashfs 로 변경 ( done )
  * 성능의 장점도 있지만, unionfs 와 같이 사용하면, 전체 파일시스템을 몇개의 압축 파일로 나눌 수 있으므로, 개발 환경이 나아진다.
  * 몇개의 파일로 나눌 경우 성능의 저하 문제는 검토해 보아야 한다.
 * unionfs 사용 ( done )
  * 아직 개발 중인 파일 시스템이지만, 프로젝트가 2006 년까지는 확실히 계속될 것이고, 많은 live cd 에서 채택을 하고 있으므로, 빠른 속도로 수정 보완될 것이다.
  * 아직 레이어를 두 개 밖에 사용할 수 없음.
  * 3 개를 사용할 경우, mv 에 의해 Ooops 발생 
 * uClibc ( not yet )
  * 확실히 실행 파일의 크기가 크면, 속도가 저하되는 것 같다.
  * live cd 를 만드는데 필요한 파일들은 가능한 한, uClibc 를 사용하여 컴파일한다.
 * sysvinit ( need update )
  * cdrom eject 를 위해서는 sysvinit 의 변경이 필요하다.
  * 좀 더 연구하여 보다 빠르게 만들어야 한다.
  * 이제는 필요 없슴.
  * 단지 init 와 halt 를 묶는 것만이 필요함.
  * update 필요함.
 * bootsplash ( done )
 * gfxboot ( done )
 * installer 만들 것 ( not yet )
 * livecd2win ( not yet )
 * 하드디스크 관련 작업 넣을 것인가?
 * security 를 위한 패키지 넣을 것인가? 
 * bootsplash, usplash, fbsplash

=== 배포판과 관련된 작업 ===
 * 커널은 두개로 만들어야 한다.
  * squashfs 와 unionfs, 그리고 필요한 파일 시스템 모듈
  * 속도를 생각하여 불필요한 모듈을 지울수도 있슴.
 * 하드웨어 설정
  * 하드웨어 설정은 배포판의 하드웨어 설정 프로그램들과 관계가 있으므로, 배포판의 설치 프로그램에서 수행하는 작업을 수행해야 한다.
  * 이 부분은 rc.sysinit 에서 수행
  * cdrom eject 를 위해 unionfs umount, squashfs umount 를 수행하고, cdrom eject 를 수행하도록 해야 한다.
  * 이 부분은 halt 에서 수행.

=== 패키지 관리 ===
 * 패키지 관리라고 하기보다, 필요한 작은 패키지들을 쉽게 설치, 사용할 수 있도록 하는 것이다.
 * 꼭 필요한 update 도 있을 것이다.
 * 현재 unionfs 에 문제가 있기는 하지만, 이를 이용하면 쉽게 처리할 수 있을 것 같다.
 * klik 의 cmg 방식을 고려할 필요가 있는가?
  * static 로 가능한 프로그램이 아니면, 의존성의 문제를 야기 시킬 것이므로 많은 작업이 필요해 질 수 있다.

=== 하드디스크에 설치하는 작업 ===
 * 이 부분은 아직 꼭 필요한 작업은 아니지만 앞으로 필요하다.
 * option 을 어떻게 정할 것인가가 문제일 뿐이다. 

=== busybox ===
 * http://www.busybox.net/
 * busybox-1.01.tar.gz     16-Aug-2005 18:32  1.1M 

=== squashfs ===
 * http://sourceforge.net/project/showfiles.php?group_id=63835
 * squashfs2.2 2005-07-03 18:53
 * kernel 에 패치를 적용하여 모듈을 만듬.
 * cd /usr/src/linux
 * patch -p1 < /root/squashfs2.2/linux-2.6.12/squashfs2.2-patch

=== unionfs ===
 *
 * http://www.unionfs.org/
 * kernel module 만을 생성할 수도 있고, kernel 에 추가하여 생성할 수도 있게 되어 있지만, fedora core 4 의 kernel-2.6.12-1.1398_FC4.src.rpm 에 적용할 경우 오류가 발생함.
 * unionctl 과 uniondbg 는 uClibc 를 사용하여 만든다.

 * 2.6.13 의 경우, 모듈만 만들 경우, bad format 발생
 * 커널에 넣을 경우, 만들어 지기는 하지만, 오류 투성이로 보임


=== uClibc ===
 * http://www.uclibc.org/
 * uClibc-0.9.28.tar.gz    17-Aug-2005 15:52  2.3M 
 * root_fs_i386.ext2.bz2   12-Jan-2005 00:09   21M
 * http://buildroot.uclibc.org/downloads/snapshots/
 * buildroot-20050819.t..> 18-Aug-2005 23:15  1.5M

 * kernel 을 2.6.13 을 사용할 경우 linux-libc-header 가 없어서 uclibc 를 사용하는 것이 곤란함.
 * dietlibc 를 시험해 보아야 함.

=== sysvinit ===
 * ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/
 * sysvinit-2.86.tar.gz  	97 KB  	2004년 12월 10일  	00:00:00
 * fedora core 4 의 SysVinit-2.85-39.src.rpm  	128 KB  	2005년 05월 21일 은 uClibc 를 사용하여 컴파일 하기가 힘듬.
  * libselinux 와 libsepol 이 필요하고, 이를 컴파일 하기 위해서는 다른 것들이 또 필요함.

=== kudzu ===
 * 이를 uClibc 에서 컴파일하기 위해 시도해 보았지만, 너무 많은 문제가 있슴.

=== fbui ===
 * http://fbui.org/
 * 많은 노력을 들였지만, 아직 쓸만한 상태는 아님.

=== gfxboot ===

 * http://cvs.sourceforge.net/viewcvs.py/morphix/

=== usplash ===

 * http://bugzilla.ubuntu.com/buglist.cgi?query_format=advanced&resolution=DUPLICATE&resolution=---&bugidtype=include&cmdtype=doit&component=usplash


=== busybox 설치 ===
 * uclibc 의 busybox 사용
{{{
Currently defined functions:
        [, [[, ash, awk, basename, busybox, cal, cat, chgrp, chmod, chown,
        chroot, chvt, clear, cp, cut, date, dd, df, dirname, dmesg, du,
        dumpleases, echo, egrep, env, expr, false, fdisk, fgrep, find,
        free, grep, gunzip, gzip, hdparm, head, id, insmod, kill, killall,
        klogd, ln, logger, losetup, ls, lsmod, mkdir, mkfifo, mknod, mkswap,
        modprobe, more, mount, mv, pivot_root, ps, pwd, readlink, realpath,
        reset, rm, rmdir, rmmod, sed, sh, sleep, sort, swapoff, swapon,
        sync, syslogd, tail, tar, tee, test, touch, tr, true, tty, udhcpc,
        udhcpd, umount, uname, uniq, unzip, uptime, vi, wc, which, whoami,
        xargs, yes, zcat

}}}
 * slax 는 busybox 의 ash 를 변형한 것으로 보임.
 * busybox 의 명령들을 ash 에 추가한 것 같음.
 * ash 의 builtin function
 * mount 에 문제가 있음.
 * fedora core 4 의 busybox 를 사용해 볼 것 
 * 실패. 
 * make menuconfig 에서 busybox snapshot 을 사용하지 않음.
 * busybox 1.0.1 을  사용함. 성공

 * ash 에 builtin function 을 만들 것인가?
  * http://tree.celinuxforum.org/pipermail/test1/2005/000027.html
{{{
static int catcmd(int, char **);

알파벳 순서에 따라 추가해야 함.
    { BUILTIN_REGULAR       "cat", catcmd },

static int
catcmd(int argc, char **argv)
{
    bb_applet_name = argv[0];
    optind=0;
    return cat_main(argc, argv);
}

main function 에서 해야 할 일
 1. bb_show_usage (void) 를 찾아서 수정 필요.
 2. exit 를 찾아서 수정 필요.
 exit 을 return 으로 만들어야 ash 에서 빠지지 않음.
 생각이 필요함.
}}}
{{{
slax            knoppix         busybox
[
                awk             editor
basename                        coreutil
cat             cat             coreutil
cd              cd              cd
                                chdir
chmod           chmod           coreutil
                chown           coreutil
cp              cp              coreutil
cut                             coreutil
                df              coreutil
                du              coreutil
echo            echo            echo
egrep           egrep           finding
                                eval
exec            exec            exec
                expr            coreutil
fdisk                           system
                gawk
                hash
grep                            finding
gunzip                          archival
hdparm                          misc
head                            coreutil
insmod                          module
                ln              coreutil
ls                              coreutil
mkdir                           coreutil
mknod                           coreutil
mount           mount           system
read            read            read
rm              rm              coreutil
rmdir                           coreutil
                rsync
sed             sed             editors
sleep           sleep           coreutil
                tail            coreutil
                test            test
                trap
umount          umount          system
uname                           coreutil
unset

무조건 다 ash builtin 으로 하는 것은 문제가 있슴.
앞으로 busybox 가 version up 할 경우 수정의 문제
시험 환경의 문제
오류가 발생했을때의 문제
속도의 문제
}}}

 * chroot root su - 의 문제점.
  * : applet not found
  * make menuconfig +su
 * chroot root su -
{{{
BusyBox v1.01 (2005.08.22-19:28+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

-sh: can't access tty; job control turned off
}}}
 * /dev 가 잘 못 만들어진 때문임. 
 * rm -Rf customize pcmcia hostap
 * acpid DHCP dm e2fsprog file hotplug itables libelf
 * libpcap ltp-testsuite lvm2 microcom mkdosfs ntp

 * http://www.uclibc.org/toolchains.html 의 
 * These are currently available for arm, armeb, i386, mips, mipsel, powerpc, and sh4.

 * 만들어진 것을 사용했을 때, 생성되는 실행파일의 크기와 내가 만든 것에서 만든 실행파일의 크기에 차이가 남.
 * 설정 문제를 알아 볼 것 
 * uclibc 에 locale 을 적용할 경우 lib 가 커짐.
 * 이를 죽이고, 다시 만듬. make clean 을 꼭 해야함.



----
gblic를 쓰면 기존의 모든 패키지를 그대로 가져와 쓸 수 있으나, uClibc를 쓰면 그게 불가능해지게 되겠죠. 그에 뒤따르는 엄청난 삽질을 ... --WkPark
모든 것을 필요로 하지는 않습니다.
단지 cd 의 배포판을 찾아서 올리는 작업과 끝낼 때 cdrom 을 eject 하는 작업이 필요할 뿐입니다.

{{{
mandrake
Currently defined functions:
        basename, busybox, cat, chgrp, chmod, chown, chroot, chvt, clear,
        cp, cut, date, dd, df, dirname, dmesg, du, echo, env, false, find,
        free, grep, gunzip, gzip, halt, head, id, init, kill, killall,
        klogd, linuxrc, ln, logger, ls, lsmod, mkdir, mknod, mkswap, more,
        mount, mv, poweroff, ps, pwd, reboot, reset, rm, rmdir, sed, sh,
        sleep, sort, swapoff, swapon, sync, syslogd, tail, tar, touch,
        true, tty, umount, uname, uniq, uptime, wc, which, whoami, xargs,
        yes, zcat

slax
Currently defined functions:
        [, ash, basename, busybox, cat, chmod, chown, chroot, clear, cp,
        cut, dd, df, dirname, du, echo, egrep, expr, false, fdisk, fgrep,
        find, free, grep, gunzip, halt, hdparm, head, insmod, kill, killall,
        last, ln, logger, losetup, ls, lsmod, md5sum, mkdir, mkfifo, mknod,
        mkswap, mktemp, modprobe, more, mount, mv, pivot_root, poweroff,
        ps, pwd, readlink, realpath, reboot, rm, rmdir, rmmod, sed, sh,
        sleep, sort, swapoff, swapon, sync, tail, tar, tee, test, touch,
        tr, true, umount, uname, uniq, vi, wc, xargs, zcat
knoppix
bg break continue cd chdir .  echo eval exec exit export readonly
false fg getopts hash jobid jobs lc local pwd read return set setvar
shift test [ trap : true umask unset wait umount mount cat insmod
rmmod lsmod sleep losetup

adios
Currently defined functions:
        [, [[, ash, awk, basename, bunzip2, busybox, bzcat, cat, chgrp,
        chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut, date, dd,
        deallocvt, df, dirname, dmesg, du, echo, egrep, eject, env, expr,
        false, fdisk, fgrep, find, free, freeramdisk, getopt, grep, gunzip,
        gzip, hdparm, head, hexdump, hostname, id, ifconfig, insmod, kill,
        killall, klogd, length, ln, logger, losetup, ls, lsmod, md5sum,
        mesg, mkdir, mkfifo, mknod, mkswap, mktemp, modprobe, more, mount,
        mv, nameif, nc, netstat, nice, nslookup, od, openvt, patch, pidof,
        ping, pivot_root, printf, ps, pwd, rdate, readlink, renice, reset,
        rm, rmdir, rmmod, route, sed, seq, sh, sleep, sort, stat, strings,
        stty, sum, swapoff, swapon, sync, sysctl, syslogd, tail, tar,
        tee, test, tftp, time, top, touch, tr, traceroute, true, tty,
        udhcpc, umount, uname, uniq, unzip, uptime, usleep, vi, wc, wget,
        which, whoami, xargs, yes, zcat
}}}

=== Korean codeset ===
 * Korean EUC (Extended UNIX Code) : eucKR
 * KSC5601 : CP949 micorsoft
 * ISO-2022-KR
 * UCS-2/UCS-4 : ISO/IEC 10646 standards
 * UTF-8 : ISO/IEC 10646 standards

=== bison, flex ===
{{{
Bison is a general-purpose parser generator that converts a grammar description for an LALR context-free grammar into a C program to parse that grammar. Once you are proficient with Bison, you can use it to develop a wide range of language parsers, from those used in simple desk calculators to complex programming languages.
}}}
{{{
Flex is a fast lexical analyser generator. It is a tool for generating programs that perform pattern-matching on text. There are many applications for Flex, including writing compilers in conjunction with GNU Bison. Flex is a free implementation of the well known Lex program. It features a Lex compatibility mode, and also provides several new features such as exclusive start conditions.
}}}

=== /mnt/sda15 ===
download kernel
patch squashfs
patch bootsplash
http://www.bootsplash.de/

{{{
vesafb: framebuffer at 0xd0000000, mapped to 0xf8880000, using 3072k, total 16384k
vesafb: mode is 1024x768x16, linelength=2048, pages=9
vesafb: protected mode interface info at c000:5890
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
Console: switching to colour frame buffer device 128x48
fb0: VESA VGA frame buffer device
FrameBuffer UI (0.9.14) by Zack T Smith: operational on fb0
sizeof (struct fbui_window)=184
sizeof (struct fbui_processentry)=440
sizeof (struct fbui_font)=36
vga16fb: initializing
vga16fb: mapped to 0xc00a0000
fb1: VGA16 VGA frame buffer device
}}}

== packages ==

=== communition ===
 * e-mail client : thunderbird
 * instant messaging : gaim
 * web browser : firefox
 * voice over ip : openwengo

=== education ===

=== finance ===

=== development ===
 * framework/platform : mono
 * IDE : eclipse
 * IDE for c# and vb.net : sharpdevelop
 * windows installer : nullsoft scriptable system, inno setup

=== games ===

=== productivity ===
 * Database : openoffice(base)
 * mind mapping : free mind
 * pdf creator : pdf creator
 * presentation : openoffice(impress)
 * report creator : jasperreports
 * spreadsheet : openoffice(calc)
 * word processor : openoffice(writer)
 * scientific word processor : Lyx

=== management ===
 * gantt chart : ganttproject
 * project management : openworkbench

=== misc ===

=== multimedia ===
 * 3d animation : blender
 * 3d graphics : pov-ray
 * 3d game development kit : crystal space

 * audio editing : audacity
 * audio palyer : cpplplayer, zinf
 * mp3 ripper : cdex
 * volume normalizer : mp3gain

 * diagram editor : dia
 * image editing : gimp
 * vector drawing : inkscape
 * vector drawing : sodopodi

 * media player : vlc media player
 * web design : nvu

 * video capture : visualdub
 * video editing : jashaka

=== security ===
 * 802.1x client : securew2
 * anti-spyware : winpooch
 * anti-virus : clamwin
 * network protocol analyzer : ethereal
 * password safe : keepass password safe, password safe
 * vpn client : openvpn client gui for windows

=== utilities ===
 * file compression : 7-zip
 * ftp client : filezilla ftp client
 * statistics : windirstat

=== disk 정리 2005. 12. 19 ===
 * sda5: there are many things to keep
 * sda6: swap
 * sda7: livefc4 2005-07-09
 * sda8: booyo 2005-10-12
 * sda9: fc4 update 2005-11-25
 * sda10: booyo desktop
 * sda11: several things to keep
 * sda12: booyo old one
 * sda13: booyo old one
 * sda14: squashfs
 * sda15: squashfs
 * sda7 을 지우고, 이 곳에 sda11 을 옮긴다.
  * 어떻게 하는 것이 제일 좋을까?
  * parted 문제 있음. fedora 의 문제 or parted 의 문제?
  * fedora 의 경우 ext_attr feature 를 사용함.
  * debugfs -R feature /dev/sda8 (fedora install)
{{{
[root@localhost sbin]# debugfs -R feature /dev/sda8
debugfs 1.37 (21-Mar-2005)
Filesystem features: ext_attr resize_inode filetype sparse_super large_file

ext_attr 은 SElinux 와 관련된 것임.
}}}
  * debugfs -R feature /dev/sda10 (mkfs.ext2)
{{{
[root@localhost sbin]# debugfs -R feature /dev/sda10
debugfs 1.37 (21-Mar-2005)
Filesystem features: resize_inode filetype sparse_super large_file
}}}

 * sda5 는 좀 더 둘 것
 * sda7 에 우선 필요한 것 보관하였슴.
 * sda8-13 지움
 * sda14, 15 가 8,9 로 되어 있음. 우선 나둘 것 
 * sda10 역시 보관 장소로 만들 것
 * 나머지는 다 지운다?
 * sda11 는 linux from scratch 로 사용 (10 G)

=== linux from scratch ===
{{{
 Download or otherwise obtain the following packages:

Binutils (2.16.1) - 12,272 KB:  http://ftp.gnu.org/gnu/binutils/
GCC (4.0.2) - 31,048 KB:  http://ftp.gnu.org/gnu/gcc/
Linux-Libc-Headers (2.6.12.0) - 2,480 KB:  http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
Glibc (2.3.6) - 13,687 KB:  http://ftp.gnu.org/gnu/glibc/
adjusting the toolchain

Tcl (8.4.12) - 2,672 KB:  http://prdownloads.sourceforge.net/tcl/
Expect (5.43.0) - 416 KB:  http://expect.nist.gov/src/
DejaGNU (1.4.4) - 852 KB:  http://ftp.gnu.org/gnu/dejagnu/

GCC (4.0.2) - 31,048 KB:  http://ftp.gnu.org/gnu/gcc/
Binutils (2.16.1) - 12,272 KB:  http://ftp.gnu.org/gnu/binutils/

Gawk (3.1.5) - 1,696 KB:  http://ftp.gnu.org/gnu/gawk/
Coreutils (5.93) - 4,782 KB:  http://ftp.gnu.org/gnu/coreutils/
Bzip2 (1.0.3) - 596 KB:  http://www.bzip.org/
Gzip (1.3.5) - 284 KB:  ftp://alpha.gnu.org/gnu/gzip/
Diffutils (2.8.1) - 648 KB:  http://ftp.gnu.org/gnu/diffutils/
Findutils (4.2.27) - 887 KB:  http://ftp.gnu.org/gnu/findutils/
Make (3.80) - 904 KB:  http://ftp.gnu.org/gnu/make/
Grep (2.5.1a) - 520 KB:  http://ftp.gnu.org/gnu/grep/
Sed (4.1.4) - 632 KB:  http://ftp.gnu.org/gnu/sed/
Gettext (0.14.5) - 4,668 KB:  http://ftp.gnu.org/gnu/gettext/
Ncurses (5.5) - 1,683 KB:  ftp://invisible-island.net/ncurses/
Patch (2.5.4) - 156 KB:  http://ftp.gnu.org/gnu/patch/
Tar (1.15.1) - 1,580 KB:  http://ftp.gnu.org/gnu/tar/
Texinfo (4.8) - 1,492 KB:  http://ftp.gnu.org/gnu/texinfo/
Bash (3.1) - 1,824 KB:  http://ftp.gnu.org/gnu/bash/
M4 (1.4.4) - 300 KB:  http://ftp.gnu.org/gnu/m4/
Util-linux (2.12r) - 1,344 KB:  http://www.kernel.org/pub/linux/utils/util-linux/
Perl (5.8.7) - 9,628 KB:  http://ftp.funet.fi/pub/CPAN/src/

Autoconf (2.59) - 908 kilobytes (KB): http://ftp.gnu.org/gnu/autoconf/
Automake (1.9.6) - 748 KB: http://ftp.gnu.org/gnu/automake/
Bash Documentation (3.1) - 1,994 KB:  http://ftp.gnu.org/gnu/bash/
Bison (2.1) - 982 KB:  http://ftp.gnu.org/gnu/bison/
E2fsprogs (1.38) - 3,120 KB:  http://prdownloads.sourceforge.net/e2fsprogs/
File (4.16) - 399 KB:  ftp://ftp.gw.com/mirrors/pub/unix/file/
Flex (2.5.31) - 672 KB:  http://prdownloads.sourceforge.net/lex/
Groff (1.19.2) - 2,096 KB:  http://ftp.gnu.org/gnu/groff/
GRUB (0.97) - 772 KB:  ftp://alpha.gnu.org/gnu/grub/
Hotplug (2004_09_23) - 40 KB:  http://www.kernel.org/pub/linux/utils/kernel/hotplug/
Iana-Etc (2.00) - 174 KB:  http://www.sethwklein.net/projects/iana-etc/downloads/
Inetutils (1.4.2) - 752 KB:  http://ftp.gnu.org/gnu/inetutils/
IPRoute2 (051007) - 291 KB:  http://developer.osdl.org/dev/iproute2/download/
Kbd (1.12) - 624 KB:  http://www.kernel.org/pub/linux/utils/kbd/
Less (394) - 216 KB:  http://www.greenwoodsoftware.com/less/
LFS-Bootscripts (3.2.1) - 32 KB:  http://downloads.linuxfromscratch.org/
Libtool (1.5.20) - 1,642 KB:  http://ftp.gnu.org/gnu/libtool/
Linux (2.6.12.5) - 36,522 KB:  http://www.kernel.org/pub/linux/kernel/v2.6/
Man (1.6b) - 205 KB:  http://primates.ximian.com/~flucifredi/man/
Man-pages (2.17) - 1,688 KB:  http://www.kernel.org/pub/linux/docs/manpages/
Mktemp (1.5) - 68 KB:  ftp://ftp.mktemp.org/pub/mktemp/
Module-Init-Tools (3.2.2) - 165 KB:  http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/
Procps (3.2.6) - 221 KB:  http://procps.sourceforge.net/
Psmisc (21.9) - 193 KB:  http://prdownloads.sourceforge.net/psmisc/
Readline (5.1) - 1,456 KB:  http://ftp.gnu.org/gnu/readline/
Shadow (4.0.13) - 1,057 KB:  ftp://ftp.pld.org.pl/software/shadow/
Sysklogd (1.4.1) - 72 KB:  http://www.infodrom.org/projects/sysklogd/download/
Sysvinit (2.86) - 88 KB:  ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/
Udev (071) - 427 KB:  http://www.kernel.org/pub/linux/utils/kernel/hotplug/
Udev Rules Configuration - 5 KB:  http://downloads.linuxfromscratch.org/udev-config-5.rules
Vim (6.4) - 3,650 KB:  ftp://ftp.vim.org/pub/vim/unix/
Vim (6.4) language files (optional) - 540 KB:  ftp://ftp.vim.org/pub/vim/extra/
Zlib (1.2.3) - 415 KB:  http://www.zlib.net/

Total size of these packages: 148 MB 
}}}
 * binutils
 * gcc
 * glibc

{{{
binutils pass1

[root@localhost tools]# ls -R
.:
bin  i686-pc-linux-gnu  include  info  lib  man

./bin:
addr2line  as       gprof  nm       objdump  readelf  strings
ar         c++filt  ld     objcopy  ranlib   size     strip

./i686-pc-linux-gnu:
bin  lib

./i686-pc-linux-gnu/bin:
ar  as  ld  nm  objdump  ranlib  strip

./i686-pc-linux-gnu/lib:
ldscripts

./i686-pc-linux-gnu/lib/ldscripts:
elf_i386.x    elf_i386.xdc  elf_i386.xs   elf_i386.xw    i386linux.xr
elf_i386.xbn  elf_i386.xdw  elf_i386.xsc  i386linux.x    i386linux.xu
elf_i386.xc   elf_i386.xn   elf_i386.xsw  i386linux.xbn
elf_i386.xd   elf_i386.xr   elf_i386.xu   i386linux.xn

./include:
ansidecl.h  bfd.h  bfdlink.h  dis-asm.h  symcat.h

./info:
as.info    as.info-2  bfd.info    bfd.info-2     configure.info  ld.info
as.info-1  as.info-3  bfd.info-1  binutils.info  gprof.info      standards.info

./lib:
libbfd.a  libbfd.la  libiberty.a  libopcodes.a  libopcodes.la

./man:
man1

./man/man1:
addr2line.1  c++filt.1  ld.1       objcopy.1  readelf.1  strip.1
ar.1         dlltool.1  nlmconv.1  objdump.1  size.1     windres.1
as.1         gprof.1    nm.1       ranlib.1   strings.1
}}}
{{{
gcc

[root@localhost tools]# ls -R
.:
bin  i686-pc-linux-gnu  include  info  lib  libexec  man  share

./bin:
addr2line  cc      gcov                         ld       ranlib   strip
ar         cpp     gprof                        nm       readelf
as         gcc     i686-pc-linux-gnu-gcc        objcopy  size
c++filt    gccbug  i686-pc-linux-gnu-gcc-4.0.2  objdump  strings

./i686-pc-linux-gnu:
bin  lib

./i686-pc-linux-gnu/bin:
ar  as  ld  nm  objdump  ranlib  strip

./i686-pc-linux-gnu/lib:
ldscripts

./i686-pc-linux-gnu/lib/ldscripts:
elf_i386.x    elf_i386.xdc  elf_i386.xs   elf_i386.xw    i386linux.xr
elf_i386.xbn  elf_i386.xdw  elf_i386.xsc  i386linux.x    i386linux.xu
elf_i386.xc   elf_i386.xn   elf_i386.xsw  i386linux.xbn
elf_i386.xd   elf_i386.xr   elf_i386.xu   i386linux.xn

./include:
ansidecl.h  bfd.h  bfdlink.h  dis-asm.h  mf-runtime.h  symcat.h

./info:
as.info    bfd.info       configure.info     gccinstall.info  standards.info
as.info-1  bfd.info-1     cpp.info           gccint.info
as.info-2  bfd.info-2     cppinternals.info  gprof.info
as.info-3  binutils.info  gcc.info           ld.info

./lib:
gcc            libiberty.a      libmudflap.so.0.0.0  libmudflapth.so.0.0.0
libbfd.a       libmudflap.a     libmudflapth.a       libopcodes.a
libbfd.la      libmudflap.la    libmudflapth.la      libopcodes.la
libgcc_s.so    libmudflap.so    libmudflapth.so
libgcc_s.so.1  libmudflap.so.0  libmudflapth.so.0

./lib/gcc:
i686-pc-linux-gnu

./lib/gcc/i686-pc-linux-gnu:
4.0.2

./lib/gcc/i686-pc-linux-gnu/4.0.2:
crtbegin.o   crtbeginT.o  crtendS.o  install-tools  libgcc_eh.a
crtbeginS.o  crtend.o     include    libgcc.a       libgcov.a

./lib/gcc/i686-pc-linux-gnu/4.0.2/include:
README       iso646.h        mm_malloc.h    root       syslimits.h
X11          libdevmapper.h  mmintrin.h     slang      unwind.h
asm          limits.h        mozilla-1.7.8  stdarg.h   varargs.h
emmintrin.h  linux           openssl        stdbool.h  xmmintrin.h
float.h      mm3dnow.h       pmmintrin.h    stddef.h   zutil.h

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/asm:
posix_types.h

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/linux:
a.out.h

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/mozilla-1.7.8:
nspr  nss

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/mozilla-1.7.8/nspr:
md

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/mozilla-1.7.8/nspr/md:
_darwin.h  _rhapsody.h  _solaris.h

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/mozilla-1.7.8/nss:
jzconf.h  secport.h

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/openssl:
bn.h

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/root:
usr

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/root/usr:
X11R6

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/root/usr/X11R6:
include

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/root/usr/X11R6/include:
X11

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/root/usr/X11R6/include/X11:
Xos.h  Xos_r.h  Xosdefs.h

./lib/gcc/i686-pc-linux-gnu/4.0.2/include/slang:
slang.h

./lib/gcc/i686-pc-linux-gnu/4.0.2/install-tools:
gsyslimits.h  include  macro_list  mkheaders.conf

./lib/gcc/i686-pc-linux-gnu/4.0.2/install-tools/include:
README       iso646.h   mm_malloc.h  stdarg.h   unwind.h
emmintrin.h  limits.h   mmintrin.h   stdbool.h  varargs.h
float.h      mm3dnow.h  pmmintrin.h  stddef.h   xmmintrin.h

./libexec:
gcc

./libexec/gcc:
i686-pc-linux-gnu

./libexec/gcc/i686-pc-linux-gnu:
4.0.2

./libexec/gcc/i686-pc-linux-gnu/4.0.2:
cc1  collect2  install-tools

./libexec/gcc/i686-pc-linux-gnu/4.0.2/install-tools:
fixinc.sh  fixincl  mkheaders

./man:
man1  man7

./man/man1:
addr2line.1  c++filt.1  gcc.1    ld.1       objcopy.1  readelf.1  strip.1
ar.1         cpp.1      gcov.1   nlmconv.1  objdump.1  size.1     windres.1
as.1         dlltool.1  gprof.1  nm.1       ranlib.1   strings.1

./man/man7:
fsf-funding.7  gfdl.7  gpl.7

./share:
}}}

{{{
lfs:/mnt/lfs/sources/gcc-build$ ../gcc-4.0.2/contrib/test_summary > kk
lfs:/mnt/lfs/sources/gcc-build$ vi kk
lfs:/mnt/lfs/sources/gcc-build$ cat kk
cat <<'EOF' |
LAST_UPDATED: Obtained from CVS: -rgcc_4_0_2_release

Native configuration is i686-pc-linux-gnu

                === g++ tests ===


Running target unix
FAIL: g++.dg/template/array14.C (test for excess errors)
XPASS: g++.old-deja/g++.other/init5.C execution test

                === g++ Summary ===

# of expected passes            11130
# of unexpected failures        1
# of unexpected successes       1
# of expected failures          68
# of unsupported tests          56
/mnt/lfs/sources/gcc-build/gcc/testsuite/../g++  version 4.0.2

                === gcc tests ===


Running target unix
XPASS: gcc.dg/vect/vect-22.c scan-tree-dump-times vectorized 3 loops 1

                === gcc Summary ===

# of expected passes            35255
# of unexpected successes       1
# of expected failures          94
# of untested testcases         28
# of unsupported tests          328
/mnt/lfs/sources/gcc-build/gcc/xgcc  version 4.0.2

                === libmudflap tests ===


Running target unix
FAIL: libmudflap.cth/pass40-frag.c execution test
FAIL: libmudflap.cth/pass40-frag.c output pattern test
FAIL: libmudflap.cth/pass40-frag.c (-O2) execution test
FAIL: libmudflap.cth/pass40-frag.c (-O2) output pattern test
FAIL: libmudflap.cth/pass40-frag.c (-O3) execution test
FAIL: libmudflap.cth/pass40-frag.c (-O3) output pattern test

                === libmudflap Summary ===

# of expected passes            1282
# of unexpected failures        6
                === libstdc++ tests ===


Running target unix
XPASS: 22_locale/locale/cons/12658_thread-1.cc execution test

                === libstdc++ Summary ===

# of expected passes            3668
# of unexpected successes       1
# of expected failures          13

Compiler version: 4.0.2
Platform: i686-pc-linux-gnu
configure flags: --prefix=/tools --with-local-prefix=/tools --enable-clocale=gnu --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-libstdcxx-pch --enable-languages=c,c++
EOF
Mail -s "Results for 4.0.2 testsuite on i686-pc-linux-gnu" gcc-testresults@gcc.gnu.org &&
mv /mnt/lfs/sources/gcc-build/./gcc/testsuite/g++.sum /mnt/lfs/sources/gcc-build/./gcc/testsuite/g++.sum.sent &&
mv /mnt/lfs/sources/gcc-build/./gcc/testsuite/gcc.sum /mnt/lfs/sources/gcc-build/./gcc/testsuite/gcc.sum.sent &&
mv /mnt/lfs/sources/gcc-build/./i686-pc-linux-gnu/libmudflap/testsuite/libmudflap.sum /mnt/lfs/sources/gcc-build/./i686-pc-linux-gnu/libmudflap/testsuite/libmudflap.sum.sent &&
mv /mnt/lfs/sources/gcc-build/./i686-pc-linux-gnu/libstdc++-v3/testsuite/libstdc++.sum /mnt/lfs/sources/gcc-build/./i686-pc-linux-gnu/libstdc++-v3/testsuite/libstdc++.sum.sent &&
mv /mnt/lfs/sources/gcc-build/./gcc/testsuite/g++.log /mnt/lfs/sources/gcc-build/./gcc/testsuite/g++.log.sent &&
mv /mnt/lfs/sources/gcc-build/./gcc/testsuite/gcc.log /mnt/lfs/sources/gcc-build/./gcc/testsuite/gcc.log.sent &&
mv /mnt/lfs/sources/gcc-build/./i686-pc-linux-gnu/libmudflap/testsuite/libmudflap.log /mnt/lfs/sources/gcc-build/./i686-pc-linux-gnu/libmudflap/testsuite/libmudflap.log.sent &&
mv /mnt/lfs/sources/gcc-build/./i686-pc-linux-gnu/libstdc++-v3/testsuite/libstdc++.log /mnt/lfs/sources/gcc-build/./i686-pc-linux-gnu/libstdc++-v3/testsuite/libstdc++.log.sent &&
true
}}}

 * 6장 gcc
 * /sources/gcc-build/gcc/Makefile
 * insert -I/usr/include
{{{
# Options to use when compiling crtbegin/end.
CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) -I/usr/include $(MULTILIB_CFLAGS) -g0 \
  -finhibit-size-directive -fno-inline-functions -fno-exceptions \
  -fno-zero-initialized-in-bss -fno-unit-at-a-time

# The GCC to use for compiling libgcc.a and crt*.o.
# Usually the one we just built.
# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -I/usr/include -L$(objdir)/../ld
}}}

 * patch 안 된 것을 사용해야 함.

===  in company ===
 * 6.11 glibc
 * multibyte study
{{{
root:/sources/glibc-build# grep Error glibc-check-log
make[2]: [/sources/glibc-build/posix/annexc.out] Error 1 (ignored)
make[2]: *** [/sources/glibc-build/nptl/tst-attr3.out] Error 1
make[2]: *** [/sources/glibc-build/nptl/tst-clock2.out] Error 1
make[1]: *** [nptl/tests] Error 2
make: *** [check] Error 2
}}}

 * coreutils
 * make NON_ROOT_USERNAME=dummy RUN_EXPENSIVE_TESTS=yes check
 * gettext tar
 * inetutil think about PAM
 * perl tar
 * tar already patch gcc related
 * util-linux tar

=== 2006. 1. 23 ===
 * linux from scratch 를 이용하는 것은 배우는 것은 많이 있겠지만, 여러가지 문제가 있다.
 * centos 를 기반으로 하는 것이 좋을 것 같다.
 * mach 를 이해해야 함.
 * 한글 문제를 이해해야 함.
 * 어디까지를 centos 로 하고, 어디까지를 새로 만들것인가?
 * 우선 centos 에 gnome 설치를 위한 기분 작업을 생각해 보자.
 * gnome 이외에 설치해야 하는 것들은 ?

 * centos 의 core, base 의 dependency graph 만들 것
 * 각 패키지의 source 의 dependency graph 도 만들 것

 * /dev/sda12 centos workstation
 * /dev/sda13 centos minimal
 * /dev/sda14 centos base
 * /dev/sda15 centos dev

 * minimal 과 base 는 동일함.

=== structure ===
{{{
hardware->kernel-modules->kernel->libraries->applications/servers
harware(screen,mouse,hard drive,modem...)
kernel modules allow the kernel to communicate with hardware
the kernel controls the hardware and communicates with libraries
libraries contain common functions or logic that program need
applications do what you want(edit document,read mail)
servers do thing that need to be done without interventions like
printing, apache, disk io, swapping

there is also a desktop view:
video hardware->video kernel modules->kernel->x libs->x
server(xfree/xorg)->display manager->window manager
x libs include kde,qt and gnome libs. there are tool kits for the window
managers to draw widgets and keep track of windows
display managers are xdm,gdm,kdm. this allow you to login to the desktop
environment like twm,gnome,kde
windowmanagers keep track of the windows and give them the 'buttons, 'borders' and
'arrow'.

there is also a unix/pc boot process:
power on-> bios->kernel->hardware/hard disk detection-> sysv init system->start servers->console login
}}}
=== 2006.4.14 ===
{{{
binary package
source package
patch files
binary to source
source to binary
pkg-config
distro version
binary package dependency
source package dependency

configure.in, configure.ac dependency

binary packages install order
source packages install order

package's category

original source code version
distro version
}}}
 * package 분류가 필요한 것은 맞는 것 같은데....

=== debian packages ===
 * base-installer
 * Standard system 
 * Desktop environment 
 * Web server 
 * Print server 
 * DNS server 
 * File server 
 * Mail server 
 * SQL database 
 * Laptop