<?xml version="1.0" encoding="UTF-8"?>
<blogs type="array">
  <blog>
    <author-id type="integer">3</author-id>
    <comments-count type="integer">0</comments-count>
    <created-on type="datetime">2010-03-11T10:24:51-06:00</created-on>
    <description>Ph&#7847;n 2: &quot;c&#224;i &#273;&#7863;t, th&#234;m g&#243;i&quot;:http://viettug.org/blogs/487

Trong ph&#7847;n 2, ta bi&#7871;t c&#225;ch c&#224;i &#273;&#7863;t @microcode@ l&#234;n m&#7897;t m&#225;y &#7843;o, c&#225;ch th&#234;m m&#7897;t g&#243;i c&#243; s&#7861;n b&#7857;ng l&#7879;nh @tce-load@. &#272;i&#7873;u c&#7847;n nh&#7899;,
# L&#7879;nh n&#224;y ch&#7881; &#273;&#432;&#7907;c d&#249;ng khi b&#7841;n &#273;ang &#7903; t&#224;i kho&#7843;n @tc@, ch&#7913; kh&#244;ng ph&#7843;i t&#224;i kho&#7843;n @root@. &#272;&#226;y l&#224; thi&#7871;t k&#7871; an to&#224;n c&#7911;a @microcore@;
# L&#7879;nh n&#224;y c&#243; tham s&#7889; @-w -i@ &#273;&#432;&#7907;c d&#249;ng &#273;&#7875; n&#7841;p g&#243;i t&#7915; m&#7841;ng internet, nh&#432;ng b&#7841;n h&#227;y b&#7887; tham s&#7889; @-w@ &#273;i khi mu&#7889;n n&#7841;p g&#243;i t&#7915; &#7893; c&#7913;ng c&#7911;a b&#7841;n.

Trong b&#224;i n&#224;y, b&#7841;n s&#7869; c&#225;ch t&#7841;o m&#7897;t g&#243;i ri&#234;ng, c&#243; th&#7875; n&#7841;p b&#7857;ng l&#7879;nh @tce-load@. H&#432;&#7899;ng d&#7851;n &#7903; &#273;&#226;y ch&#7881; n&#234;u l&#234;n &#253; ch&#237;nh, c&#242;n chi ti&#7871;t h&#417;n b&#7841;n ph&#7843;i coi &#7903; t&#224;i li&#7879;u g&#7889;c[1].

h4. &#272;&#7883;nh d&#7841;ng. N&#417;i l&#432;u tr&#7919;

G&#243;i c&#7911;a b&#7841;n s&#7869; c&#243; &#273;u&#244;i l&#224; @.tcz@, @.tczl@ (th&#432; vi&#7879;n) ho&#7863;c @.tczm@ (m&#244;-&#273;un cho nh&#226;n). &#272;&#7883;nh d&#7841;ng t&#7853;p tin l&#224; &quot;SquashFS&quot;:http://viettug.org/blogs/488, sau khi k&#7871;t n&#7889;i v&#224;o h&#7879; th&#7889;ng r&#7891;i th&#236; ch&#7883;u ch&#7871;t, kh&#244;ng s&#7917;a &#273;&#432;&#7907;c (ngh&#297;a l&#224; &#273;inh d&#7841;ng @read-only@).

C&#225;c g&#243;i n&#224;y c&#243; th&#7875; l&#432;u tr&#7919; b&#7845;t k&#7923; &#273;&#226;u c&#361;ng c&#243; th&#7875; n&#7841;p b&#7903;i @tce-load@. Tuy nhi&#234;n, m&#7863;c &#273;&#7883;nh @tce-load@ s&#7869; t&#236;m ki&#7871;m trong @/mnt/hda1/tce/optional@. &#272;&#432;&#7901;ng d&#7851;n @/mnt/hda1/@ c&#243; th&#7875; thay &#273;&#7893;i nh&#7901; tham s&#7889; c&#7911;a nh&#226;n khi kh&#7903;i &#273;&#7897;ng, nh&#432; trong ph&#7847;n thi&#7871;t l&#7853;p cho Grub &#7903; &quot;ph&#7847;n 1&quot;:http://viettug.org/blogs/487.

N&#7871;u b&#7841;n n&#7841;p m&#7897;t g&#243;i t&#7915; internet, n&#243; s&#7869; t&#7921; &#273;&#7897;ng n&#7841;p &#7903; l&#7847;n kh&#7903;i &#273;&#7897;ng ti&#7871;p theo. Th&#7853;t ra, danh s&#225;ch c&#225;c g&#243;i &#273;&#432;&#7907;c n&#7841;p khi h&#7879; th&#7889;ng kh&#7903;i &#273;&#7897;ng &#273;&#432;&#7907;c cho trong danh s&#225;ch @/mnt/hda1/tce/onboot.lst@, v&#224; b&#7841;n c&#243; th&#7875; &#273;i&#7873;u ch&#7881;nh d&#7877; d&#224;ng. Khi m&#7897;t g&#243;i &#273;&#227; c&#243; trong @/mnt/hda1/tce/optional/@ nh&#432;ng ch&#432;a c&#243; trong @onboot.lst@, b&#7841;n c&#243; th&#7875; n&#7841;p t&#7915; d&#242;ng l&#7879;nh nh&#7901; @tce-load -i t&#234;n_g&#243;i@.

h4. T&#7841;o m&#7897;t g&#243;i

C&#225;ch th&#7921;c hi&#7879;n gi&#7889;ng nh&#432; c&#225;c g&#243;i @.tar.gz@ (tr&#234;n Slackware, Arch,...). Tr&#432;&#7899;c h&#7871;t, c&#7847;n li&#7879;t k&#234; t&#7845;t c&#7843; c&#225;c t&#7853;p tin c&#7911;a g&#243;i. V&#237; d&#7909;, ta c&#243; g&#243;i @gogo@ v&#7899;i c&#225;c t&#7853;p tin sau:

&lt;pre&gt;
/usr/local/bin/gogo
/usr/local/share/doc/gogo
/usr/local/lib/gogo.so
&lt;/pre&gt;

Ta ch&#7881; vi&#7879;c t&#7841;o m&#7897;t th&#432; m&#7909;c t&#7841;m th&#7901;i, v&#237; d&#7909; @/tmp/gogo.now@ ch&#7913;a c&#225;c t&#7853;p tin c&#7911;a g&#243;i, theo &#273;&#250;ng c&#7845;u tr&#250;c &#7903; tr&#234;n

&lt;pre&gt;
/tmp/gogo.now/usr/local/bin/gogo
/tmp/gogo.now/usr/local/share/doc/gogo
/tmp/gogo.now/usr/local/lib/gogo.so
&lt;/pre&gt;

Sau &#273;&#243;, b&#7841;n d&#249;ng l&#7879;nh @mksquashfs@ &#273;&#7875; &#273;&#243;ng g&#243;i. N&#7871;u ch&#432;a c&#243; l&#7879;nh n&#224;y, b&#7841;n c&#7847;n n&#7841;p g&#243;i @squashfs-tools-4.0.tcz@ tr&#432;&#7899;c khi ti&#7871;p t&#7909;c

&lt;pre&gt;
$ cd /tmp/
$ mksquashfs gogo.now/ gogo-1.0.tcz
$ mv gogo-1.0.tcz /mnt/hda1/tce/optional
&lt;/pre&gt;

B&#226;y gi&#7901;, b&#7841;n &#273;&#227; c&#243; th&#7875; n&#7841;p ch&#237;nh g&#243;i c&#7911;a m&#236;nh, nh&#7901; 

&lt;pre&gt;
$ tce-load -i gogo-1.0.tcz@  # kh&#244;ng d&#249;ng tham s&#7889; -w
&lt;/pre&gt;

h4. Danh s&#225;ch t&#7853;p tin

Vi&#7879;c t&#7841;o g&#243;i r&#7845;t &#273;&#417;n gi&#7843;n nh&#432; tr&#234;n, nh&#432;ng b&#249; l&#7841;i, vi&#7879;c kh&#243; kh&#259;n nh&#7845;t l&#224; l&#7845;y danh s&#225;ch c&#225;c t&#7853;p tin c&#7911;a m&#7897;t g&#243;i. Vi&#7879;c n&#224;y t&#249;y v&#224;o k&#7929; n&#259;ng c&#7911;a b&#7841;n. D&#432;&#7899;i &#273;&#226;y l&#224; v&#224;i g&#7907;i &#253; c&#243; th&#7875; c&#243; &#237;ch:

# N&#7871;u g&#243;i c&#243; &#237;t t&#7853;p tin, c&#243; th&#7875; ch&#233;p tr&#7921;c ti&#7871;p b&#7857;ng c&#225;ch l&#7879;nh
# N&#7871;u g&#243;i &#273;&#432;&#7907;c c&#224;i b&#7857;ng @make install@, h&#227;y thay &#273;&#7893;i &#273;&#237;ch khi c&#224;i &#273;&#7863;t, v&#237; d&#7909; @make install PREFIX=/tmp/gogo.now/@
# N&#7871;u g&#243;i c&#224;i b&#7857;ng @make@, @setup@,... nh&#432;ng kh&#244;ng th&#7875; &#273;&#7893;i &#273;&#237;ch c&#224;i &#273;&#7863;t, c&#243; th&#7875; s&#7917; d&#7909;ng &#273;&#225;nh d&#7845;u th&#7901;i gian, v&#224; d&#249;ng l&#7879;nh @tar@ &#273;&#7875; gom h&#224;ng

&lt;pre&gt;
$ touch ~/my_marker                                           # t&#7841;o &#273;&#225;nh d&#7845;u
$ make, setup,...                                             # ti&#7871;n h&#224;nh c&#224;i &#273;&#7863;t
$ find /usr/local -not -type d -newer ~/my_mark &gt; ~/file.list # li&#7879;t k&#234; c&#225;c t&#7853;p tin m&#7899;i c&#224;i
$ tar -T ~/file.list -czvf ~/my_package.tar.gz                # d&#249;ng tar &#273;&#7875; gom h&#224;ng
$ mkdir /tmp/gogo.now                                         # t&#7841;o th&#432; m&#7909;c t&#7841;m
$ tar -xzvf ~/my_package.tar.gz -C /tmp/gogo.now              # x&#7843; h&#224;ng v&#224;o /tmp/gogo.now
$ cd /tmp &amp;&amp; mksquashfs gogo.now/  gogo-1.0.tcz               # &#273;&#227; h&#432;&#7899;ng d&#7851;n &#7903; tr&#234;n
&lt;/pre&gt;

--

fn1. Ref.: &quot;TincyCore Linux: HOWTO creating extensions&quot;:http://wiki.tinycorelinux.com/tiki-index.php?page=Creating+Extensions</description>
    <id type="integer">492</id>
    <project-id type="integer">19</project-id>
    <summary>c&#242;n g&#236; kh&#243; h&#417;n &#273;&#226;y?</summary>
    <title>microcore linux: ph&#7847;n 3: t&#7841;o m&#7897;t g&#243;i c&#7911;a b&#7841;n</title>
    <votes-value type="integer">0</votes-value>
  </blog>
  <blog>
    <author-id type="integer">1237</author-id>
    <comments-count type="integer">5</comments-count>
    <created-on type="datetime">2010-03-10T08:08:03-06:00</created-on>
    <description>T&#244;i vi&#7871;t m&#7897;t &#273;o&#7841;n script th&#7871; n&#224;y
&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;
#!/bin/bash

max=-1

ls -lo | awk '{print $4}' |
while read size
do
    if [ &quot;$size&quot; -gt &quot;$max&quot; ]
    then
        max=$size
    fi
done

echo &quot;max size of file in current directory $max&quot;
&lt;/code&gt;&lt;/pre&gt;

M&#7909;c &#273;&#237;ch r&#7845;t r&#245; r&#224;ng, t&#244;i mu&#7889;n in ra dung l&#432;&#7907;ng c&#7911;a file l&#7899;n nh&#7845;t trong th&#432; m&#7909;c hi&#7879;n h&#224;nh. K&#7871;t qu&#7843; &#273;o&#7841;n script tr&#234;n cho @$max@ b&#7857;ng -1. &#272;&#226;y kh&#244;ng ph&#7843;i l&#224; k&#7871;t qu&#7843; t&#244;i mong &#273;&#7907;i.

&gt; L&#7895;i l&#7847;m &#273;&#227; m&#7855;c &#7903; &#273;&#226;u? (h&#432;&#7899;ng d&#7851;n: xem &#273;&#7883;nh ngh&#297;a pipe)

&gt; &#272;&#432;a ra gi&#7843;i ph&#225;p c&#7911;a b&#7841;n (ch&#7881; c&#7847;n 1 gi&#7843;i ph&#225;p)

Tr&#7843; l&#7901;i &#273;&#250;ng 2 c&#226;u tr&#234;n, t&#244;i m&#7901;i b&#7841;n cu&#7889;i tu&#7847;n m&#7897;t ch&#7847;u cafe. C&#242;n ch&#7901; g&#236; n&#7919;a! </description>
    <id type="integer">491</id>
    <project-id type="integer">51</project-id>
    <summary>v&#7851;n c&#242;n nhu c&#7847;u tuy&#7875;n ng&#432;&#7901;i &#273;i u&#7889;ng cafe.</summary>
    <title>What is pipe in Linux ? </title>
    <votes-value type="integer">1</votes-value>
  </blog>
  <blog>
    <author-id type="integer">3</author-id>
    <comments-count type="integer">5</comments-count>
    <created-on type="datetime">2010-03-09T08:46:56-06:00</created-on>
    <description>Bi&#7871;t http://woim.net/ &#273;&#227; l&#226;u nh&#432;ng ch&#432;a nghe m&#7897;t b&#224;i nh&#7841;c n&#224;o tr&#234;n trang n&#224;y. C&#225;ch &#273;&#226;y &#273;&#7897; 2 n&#259;m.

H&#244;m nay t&#236;nh c&#7901; b&#7855;t g&#7863;p m&#7897;t b&#7841;n &#273;ang nghe d&#7903; d&#7915;ng b&#224;i nh&#7841;c tr&#234;n Woim.net (tr&#236;nh nghe nh&#7841;c &#273;ang &#7903; tr&#7841;ng th&#225;i @Pause@.) B&#224;i &#273;&#7845;y l&#224; @Afterlife love@, trong tuy&#7875;n t&#7853;p @New Element of Hi-Fi@. Th&#7853;t b&#7845;t ng&#7901;... v&#7873; ti&#234;u &#273;&#7873; v&#224; c&#225;i u s&#7847;u trong b&#7843;n nh&#7841;c. Kh&#225;c v&#7899;i b&#7843;n ti&#7871;ng Vi&#7879;t v&#7851;y hay nghe.

T&#7889;i nay v&#7873;, t&#236;m c&#225;ch l&#7885;c h&#224;ng t&#7915; Woim.net. Cu&#7889;i c&#249;ng &#273;&#227; t&#236;m ra: nh&#432; nhi&#7873;u trang web kh&#225;c, Woim.net d&#7921;a v&#224;o bi&#7871;n @User-Agent@ &#273;&#7875; h&#7841;n ch&#7871; b&#259;ng th&#244;ng kh&#244;ng c&#7847;n thi&#7871;t t&#7915; b&#234;n ngo&#224;i trang web. Nh&#432;ng c&#225;ch l&#7885;c @User-Agent@ c&#7911;a Woim.net th&#7853;t _gi&#7843;n d&#7883;_, so v&#7899;i ch&#7859;ng h&#7841;n Facebook.com

&lt;pre&gt;
$ curl                   -I http://woim.net/some_file_to_be_loaded.mp3  # ==&gt; l&#7895;i
# curl -A &quot;I_am_Mozilla&quot; -I http://woim.net/the_above_file.mp3          # ==&gt; l&#432;&#7907;m h&#224;ng
&lt;/pre&gt;

Kh&#7903;i &#273;&#7847;u thu&#7853;n l&#7907;i. Hy v&#7885;ng l&#224; Woim.net s&#7869; kh&#244;ng &#273;&#243;ng h&#7871;t c&#225;c c&#7917;a, tr&#432;&#7899;c khi m&#236;nh vi&#7871;t m&#7897;t @client@ t&#7889;t &#273;&#7875; nghe nh&#7841;c t&#7915; n&#243; ;) Thanks in advance :D
</description>
    <id type="integer">489</id>
    <project-id type="integer">19</project-id>
    <summary>kool site!</summary>
    <title>woim.net: i'm your killer!</title>
    <votes-value type="integer">0</votes-value>
  </blog>
  <blog>
    <author-id type="integer">3</author-id>
    <comments-count type="integer">0</comments-count>
    <created-on type="datetime">2010-03-09T08:15:11-06:00</created-on>
    <description>SquadshFS l&#224; g&#236; m&#236;nh c&#361;ng ch&#7859;ng hi&#7875;u n&#7919;a. Gi&#7843;i th&#237;ch d&#224;i l&#242;ng th&#242;ng &#7903; &#273;&#226;y http://en.wikipedia.org/wiki/Squashfs :))

D&#432;&#7899;i &#273;&#226;y l&#224; v&#224;i l&#7879;nh c&#243; &#237;ch

&lt;pre&gt;
$ mksquashfs ./some_dir/ output.tcz
$ unsquashfs -l output.tcz
&lt;/pre&gt;

L&#7879;nh &#273;&#7847;u ti&#234;n s&#7869; t&#7841;o t&#7853;p tin @output.tcz@ theo &#273;&#7883;nh d&#7841;ng @squashfs@, s&#7917; d&#7909;ng c&#225;c t&#7853;p tin trong @./some_dir/@. Khi t&#7841;o nh&#432; v&#7853;y, th&#432; m&#7909;c @some_dir@ s&#7869; &#273;&#432;&#7907;c coi l&#224; th&#432; m&#7909;c g&#7889;c v&#224; thay th&#7871; b&#7903;i @squashfs-root@.

L&#224;m th&#7871; n&#224;o &#273;&#7875; k&#7871;t n&#7889;i t&#7853;p tin @.tcz@ v&#224;o h&#7879; th&#7889;ng nh&#432; l&#224; m&#7897;t thi&#7871;t b&#7883; @loop-back@? T&#7915; t&#7915; t&#236;m hi&#7875;u v&#7853;y!</description>
    <id type="integer">488</id>
    <project-id type="integer">19</project-id>
    <summary>lolz</summary>
    <title>SquashFS</title>
    <votes-value type="integer">1</votes-value>
  </blog>
  <blog>
    <author-id type="integer">3</author-id>
    <comments-count type="integer">0</comments-count>
    <created-on type="datetime">2010-03-09T01:20:36-06:00</created-on>
    <description>Ph&#7847;n 1: &quot;nh&#236;n s&#417; qua m&#7897;t ph&#225;t&quot;:http://viettug.org/blogs/486
Ph&#7847;n 3: &quot;t&#7841;o m&#7897;t g&#243;i c&#7911;a b&#7841;n&quot;:http://viettug.org/blogs/492

K&#7875; t&#7915; b&#224;i n&#224;y, ta &#273;&#7893;i ch&#7911; &#273;&#7873; t&#7915; @tinycore@ th&#224;nh @microcore@ &#273;&#7875; ch&#7881; r&#245; r&#7857;ng, ta b&#7855;t &#273;&#7847;u m&#7885;i vi&#7879;c v&#7899;i b&#7843;n ph&#226;n ph&#7889;i 6MB c&#243; t&#234;n @microcore@.

h4. Chu&#7849;n b&#7883;

&#272;&#7875; c&#224;i &#273;&#7863;t @microcore@, b&#7841;n d&#249;ng m&#7897;t m&#225;y &#7843;o (trong VirtualBox ch&#7859;ng h&#7841;n), v&#7899;i

# &#7892; c&#7913;ng d&#7841;ng fixed-size[1] v&#224; dung l&#432;&#7907;ng kho&#7843;ng 2000MB. Con s&#7889; 2000 g&#7845;p nhi&#7873;u l&#7847;n so v&#7899;i 6, l&#224; b&#7903;i b&#7841;n s&#7869; ph&#7843;i t&#7843;i v&#224; bi&#234;n d&#7883;ch r&#7845;t nhi&#7873;u g&#243;i kh&#225;c nhau trong qu&#225; tr&#236;nh th&#7917; nghi&#7879;m. T&#7845;t nhi&#234;n, b&#7841;n c&#243; th&#7875; b&#7893; sung c&#225;c &#7893; c&#7913;ng kh&#225;c khi c&#7847;n thi&#7871;t;
# M&#7897;t thi&#7871;t b&#7883; m&#7841;ng ch&#7841;y &#7903; @bridge-mode@, &#273;&#7875; b&#7841;n c&#243; th&#7875; truy c&#7853;p m&#225;y qua @ssh@ (nh&#7901; &#273;&#243;, c&#244;ng vi&#7879;c s&#7869; d&#7877; d&#224;ng h&#417;n); v&#224; t&#7845;t nhi&#234;n, m&#225;y &#7843;o n&#224;y s&#7869; &#273;&#432;&#7907;c n&#7889;i m&#7841;ng internet &#273;&#7875; c&#243; th&#7875; c&#224;i th&#234;m c&#225;c g&#243;i;
# H&#7895; tr&#7907; ACPI &#273;&#432;&#7907;c b&#7853;t, v&#236; n&#7871;u kh&#244;ng th&#236; qu&#225; tr&#236;nh kh&#7903;i &#273;&#7897;ng c&#7911;a @microcore@ s&#7869; l&#226;u h&#417;n m&#7897;t t&#237; (nh&#432; v&#7853;y, h&#7895; tr&#7907; n&#224;y ch&#7859;ng qua l&#224; v&#236; l&#253; do ti&#7879;n l&#7907;i)
# L&#7847;n &#273;&#7847;u ti&#234;n, m&#225;o &#7843;o s&#7869; &#273;&#432;&#7907;c kh&#7903;i &#273;&#7897;ng t&#7915; t&#7853;p tin @microcore-current.iso@ &#273;&#432;&#7907;c t&#7843;i v&#7873; t&#7915; trang ch&#7911; c&#7911;a TinyCore

C&#225;c b&#432;&#7899;c c&#224;i &#273;&#7863;t ho&#224;n to&#224;n t&#432;&#417;ng t&#7921; nh&#432; h&#432;&#7899;ng d&#7851;n &#7903; http://tinycorelinux.com/install.html, nh&#432;ng v&#236; kh&#244;ng c&#243; t&#224;i li&#7879;u ch&#237;nh th&#7913;c cho c&#224;i &#273;&#7863;t kh&#244;ng &#273;&#7891; h&#7885;a, ta ghi l&#7841;i m&#7885;i th&#7913; nh&#432; sau &#273;&#226;y

h4. C&#417; s&#7903;

# Sau khi kh&#7903;i &#273;&#7897;ng t&#7915; @microcore-current.iso@, b&#7841;n s&#7869; &#273;&#259;ng nh&#7853;p t&#7921; &#273;&#7897;ng v&#224;o t&#224;i kho&#7843;n @tc@ c&#7911;a h&#7879; th&#7889;ng
# T&#7915; t&#224;i kho&#7843;n n&#224;y, thi h&#224;nh l&#7879;nh @tce-load -w -i cfdisk.tcz@ &#273;&#7875; n&#7841;p g&#243;i @cfdisk@
# T&#432;&#417;ng t&#7921;, ch&#7841;y l&#7879;nh @tce-load -w -i grub-0.97-splash.tcz@ &#273;&#7875; c&#224;i &#273;&#7863;t @grub@
# V&#224;o t&#224;i kho&#7843;n @root@ c&#7911;a h&#7879; th&#7889;ng b&#7857;ng ch&#236;a kh&#243;a @root@ v&#224; l&#7879;nh @sudo@

h4. Ph&#226;n v&#249;ng &#273;&#297;a

_(b&#7841;n c&#243; th&#7875; d&#249;ng @fdisk@ &#273;&#227; c&#243; s&#7861;n trong @microcore@)_

# S&#7917; d&#7909;ng @cfdisk@ &#273;&#7875; ph&#226;n v&#249;ng &#273;&#297;a @/dev/hda@ v&#224; t&#7841;o ra m&#7897;t partion @/dev/hda1@. L&#432;u &#253; r&#7857;ng, n&#7871;u &#7893; &#273;&#297;a &#7843;o c&#7911;a b&#7841;n &#273;&#227; c&#243; ph&#226;n v&#249;ng s&#7861;n, v&#7899;i &#273;&#7883;nh d&#7841;ng @ext3@, th&#236; coi nh&#432; ti&#234;u, b&#7841;n kh&#244;ng kh&#243; c&#243; c&#417; h&#244;i &#273;&#7883;nh d&#7841;ng l&#7841;i do h&#7879; th&#7889;ng b&#225;o l&#7895;i b&#7853;n (ch&#7895; n&#224;o c&#243; l&#7869; l&#224; l&#7895;i c&#7911;a @tinycore@).
# X&#225;c &#273;&#7883;nh r&#7857;ng h&#7879; th&#7889;ng c&#243; th&#7875; kh&#7903;i &#273;&#7897;ng &#273;&#432;&#7907;c t&#7915; ph&#226;n v&#249;ng @/dev/hda1@
# Sau khi tho&#225;t @cfdisk@, thi h&#224;nh l&#7879;nh @mkfs.ext3 /dev/hda1@ &#273;&#7875; &#225;p &#273;&#7883;nh d&#7841;ng @ext@ l&#234;n ph&#226;n v&#249;ng &#273;&#227; ch&#7885;n
# Cu&#7889;i c&#249;ng, thi h&#224;nh l&#7879;nh @rebuildfstab@ v&#224; sau &#273;&#243; l&#224; @mount /dev/hda1@ &#273;&#7875; k&#7871;t n&#7889;i ph&#226;n v&#249;ng v&#224;o @/mnt/hda1@.

h4. C&#224;i &#273;&#7863;t grub

C&#225;c b&#432;&#7899;c sau &#273;&#432;&#7907;c ch&#233;p nguy&#234;n xi t&#7915; h&#432;&#7899;ng d&#7851;n http://tinycorelinux.com/install.html. Do &#273;&#243;, v&#7873; chi ti&#7871;t, b&#7841;n h&#227;y tham kh&#7843;o &#7903; &#273;&#7883;a ch&#7881; v&#7915;a n&#234;u. Ri&#234;ng ph&#7847;n thi&#7871;t l&#7853;p cho @grub@ c&#243; hi&#7879;u ch&#7881;nh &#273;&#7875; ph&#249; h&#7907;p v&#7899;i c&#225;c &#7843;nh m&#7899;i.

Chu&#7849;n b&#7883; c&#225;c th&#432; m&#7909;c c&#7847;n thi&#7871;t

&lt;pre&gt;
$ su       root                # th&#7921;c ra, &#7903; tr&#234;n &#273;&#227; th&#7921;c hi&#7879;n
$ mount    /mnt/hda1           # th&#7921;c ra, &#7903; tr&#234;n &#273;&#227; th&#7921;c hi&#7879;n
$ mkdir -p /mnt/hda1/boot/grub
$ mount    /mnt/hdc
$ cp -p    /mnt/hdc/boot/*     /mnt/hda1/boot/
$ mkdir -p /mnt/hda1/tce
$ touch    /mnt/hda1/tce/mydata.tgz 
&lt;/pre&gt;

C&#224;i &#273;&#7863;t v&#224; thi&#7871;t l&#7853;p cho @grub@.

&lt;pre&gt;
$ cp -p    /usr/lib/grub/i386-pc/*        /mnt/hda1/boot/grub/
$ cat &gt;    /mnt/hda1/boot/grub/menu.lst   &lt;&lt;EOF
  default  0
  timeout  10
  title    microcore
  kernel   /boot/bzImage quiet tce=hda1 home=hda1 opt=hda1 max_loop=256
  initrd   /boot/microcore.gz
EOF
$ grub --batch &lt;&lt;EOF
  root     (hd0,0)
  setup    (hd0)
EOF
&lt;/pre&gt;

K&#7871;t qu&#7843; c&#7911;a l&#7879;nh @grub@ c&#243; th&#7875; xem m&#7851;u t&#7841;i http://gx.viettug.org/zen/kyanh/jobs/microcore_e1.jpg.html.

h4. Xong r&#7891;i &#273;&#7845;y!

Xong, sau l&#7879;nh cu&#7889;i c&#249;ng (@grub@) &#7903; tr&#234;n, b&#7841;n c&#243; th&#7875; kh&#7903;i &#273;&#7897;ng l&#7841;i m&#225;y &#7843;o, b&#7887; &#273;i k&#7871;t n&#7889;i m&#225;y &#7843;o v&#7899;i t&#7853;p tin @micro-current.iso@ v&#224; n&#7871;u may m&#7855;n, b&#7841;n s&#7869; v&#224;o &#273;&#432;&#7907;c h&#7879; th&#7889;ng @microcore@ &#273;&#227; c&#224;i th&#224;nh c&#244;ng tr&#234;n &#7893; c&#7913;ng &#7843;o @/dev/hda1@ :)

Trong h&#432;&#7899;ng d&#7851;n tr&#234;n, b&#7841;n c&#361;ng th&#7845;y s&#7917; d&#7909;ng l&#7879;nh @tce-load -w -i cfdisk.tcz@ &#273;&#7875; n&#7841;p g&#243;i @cfdisk@ t&#7915; m&#7841;ng internet. L&#7879;nh n&#224;y kh&#244;ng th&#7875; ch&#7841;y v&#7899;i quy&#7873;n @root@, do &#273;&#243;, c&#243; th&#7875; tr&#432;&#7899;c khi d&#249;ng, b&#7841;n ph&#7843;i chuy&#7875;n qua t&#224;i kho&#7843;n @tc@.

Danh s&#225;ch t&#7845;t c&#7843; c&#225;c g&#243;i &#273;&#227; c&#243; s&#7861;n c&#243; th&#7875; &#273;&#432;&#7907;c t&#236;m th&#7845;y &#7903; &#273;&#7883;a ch&#7881; ph&#7847;n *Repository of Extensions* c&#7911;a trang *Download* c&#7911;a @tinycore@.


--

fn1. &#7892; c&#7913;ng v&#7899;i k&#237;ch c&#7905; c&#7889; &#273;&#7883;nh theo quy &#432;&#7899;c c&#7911;a VirtualBox. Xem v&#7845;n &#273;&#7873; li&#234;n quan: http://tinycorelinux.com/forum/index.php?topic=5284.0</description>
    <id type="integer">487</id>
    <project-id type="integer">19</project-id>
    <summary>b&#233; n&#224;o l&#224; b&#233; h&#7841;t ti&#234;u!</summary>
    <title>microcore linux: ph&#7847;n 2: c&#224;i &#273;&#7863;t, th&#234;m g&#243;i</title>
    <votes-value type="integer">0</votes-value>
  </blog>
  <blog>
    <author-id type="integer">3</author-id>
    <comments-count type="integer">0</comments-count>
    <created-on type="datetime">2010-03-08T04:40:06-06:00</created-on>
    <description>Ph&#7847;n 2: &quot;c&#224;i &#273;&#7863;t, th&#234;m g&#243;i&quot;:http://viettug.org/blogs/487

&quot;TinyCore Linux&quot;:http://tinycorelinux.com/ l&#224; m&#7897;t phi&#234;n b&#7843;n Linux b&#233; t&#237; teo. Phi&#234;n b&#7843;n m&#7899;i nh&#7845;t l&#224; 2.9.

Sau khi t&#7843;i v&#7873; t&#7853;p tin @.iso@ ch&#7881; kho&#7843;ng 10MB, ch&#7881; v&#7899;i v&#224;i b&#432;&#7899;c t&#7841;o m&#7897;t m&#225;o &#7843;o trong VirtualBox (ho&#7863;c c&#225;c VM t&#432;&#417;ng t&#7921;), b&#7841;n c&#243; m&#7897;t h&#7879; th&#7889;ng &#273;&#7891; h&#7885;a, v&#7899;i chu&#7897;t, h&#236;nh n&#7873;n, thanh c&#244;ng c&#7909; (@taskbar@),... T&#7845;t nhi&#234;n, ch&#7881; v&#7899;i 10MB th&#236; b&#7841;n ch&#7881; &#273;&#432;&#7907;c mi&#7871;ng &#8220;b&#249;i nh&#249;i&#8221; &#273;&#7847;u ti&#234;n c&#243; th&#7875; b&#233;n l&#7917;a.
_
&#8220;Mi&#7871;ng b&#249;i nh&#249;i&#8221;_ &#273;&#243; l&#224; c&#244;ng c&#7909; c&#224;i &#273;&#7863;t c&#225;c g&#243;i tr&#7921;c ti&#7871;p t&#7915; @internet@. &#272;i&#7873;u n&#224;y th&#7875; hi&#7879;n m&#7897;t trong c&#225;c &#253; t&#432;&#7903;ng thi&#7871;t k&#7871; c&#417; b&#7843;n c&#7911;a @tinycore@ l&#224; _&#8220;&#273;&#225;m m&#226;y&#8221;_. Sau khi kh&#7903;i &#273;&#7897;ng, to&#224;n b&#7897; h&#7879; th&#7889;ng c&#417; b&#7843;n s&#7869; &#273;&#432;&#7907;c n&#7841;p l&#234;n b&#7897; nh&#7899; RAM, v&#224; ng&#432;&#7901;i d&#249;ng c&#243; th&#7875; t&#7843;i th&#234;m v&#7873; c&#225;c g&#243;i t&#7915; _&#8220;m&#7841;ng internet&#8221;_, t&#7915; tr&#236;nh duy&#7879;t @firefox@ cho &#273;&#7871;n ch&#432;&#417;ng tr&#236;nh nh&#7855;n tin @pidgin@, tr&#236;nh so&#7841;n th&#7843;o @geany@,... &#273;&#7875; s&#7917; d&#7909;ng. C&#225;c g&#243;i t&#7843;i v&#7873; n&#224;y c&#243; th&#7875; &#273;&#432;&#7907;c l&#432;u tr&#7919; tr&#234;n &#7893; c&#7913;ng &#273;&#7883;a ph&#432;&#417;ng (@local hard disk@) v&#224; nh&#7901; &#273;&#243;, l&#7847;n kh&#7903;i &#273;&#7897;ng ti&#7871;p theo b&#7841;n s&#7869; kh&#244;ng ph&#7843;i m&#7845;t c&#244;ng t&#7843;i l&#7841;i.

M&#7895;i g&#243;i c&#7911;a @tinycore@ &#273;&#432;&#7907;c &#273;&#243;ng g&#243;i &#7903; d&#7841;ng @squashfs@, v&#224; &#273;&#227; &#273;&#432;&#7907;c l&#432;&#7907;t b&#7887; &#273;i nh&#7919;ng th&#7913; kh&#244;ng c&#7847;n thi&#7871;t. Vi&#7879;c &#273;&#243;ng g&#243;i c&#361;ng r&#7845;t &#273;&#417;n gi&#7843;n, g&#7847;n nh&#432; l&#224; _&#8220;sao ch&#233;p&#8221;_ t&#7915; m&#225;y n&#224;y sang m&#225;y kh&#225;c. Kh&#244;ng g&#236; d&#7877; h&#417;n. C&#243; ph&#7847;n gi&#7889;ng v&#7899;i ki&#7875;u &#273;&#243;ng g&#243;i @.tar.gz@, nh&#432;ng &#7903; &#273;&#226;y l&#224; &#273;&#7883;nh d&#7841;ng @squashfs@ kh&#244;ng ph&#7909; thu&#7897;c v&#224;o h&#7879; th&#7889;ng t&#7853;p tin c&#7911;a m&#225;y. Vi&#7879;c d&#249;ng &#273;&#7883;nh d&#7841;ng n&#243;i n&#224;y qu&#7843; l&#224; m&#7897;t &#253; t&#432;&#7903;ng th&#244;ng minh :)

Nh&#432; v&#7853;y, @tinycore@ th&#237;ch h&#7907;p v&#7899;i c&#7843; ng&#432;&#7901;i d&#249;ng _&quot;m&#236; &#259;n li&#7873;n&quot;_ (&#7891;, t&#7845;t nhi&#234;n l&#224; ph&#7843;i bi&#7871;t ch&#7871; n&#432;&#7899;c s&#244;i), v&#224; ng&#432;&#7901;i ph&#225;t tri&#7875;n.

@tinycore@ &#273;&#432;&#7907;c c&#244;ng b&#7889; v&#7899;i hai b&#7843;n: m&#7897;t b&#7843;n c&#243; &#273;&#7891; h&#7885;a, v&#224; m&#7897;t b&#7843;n c&#242;n nh&#7887; h&#417;n n&#7919;a, g&#7885;i l&#224; @microcore@ (ch&#7881; c&#243; h&#417;n 6MB). B&#7843;n sau n&#224;y r&#7845;t th&#237;ch h&#7907;p &#273;&#7875; nghi&#234;n c&#7913;u ho&#7841;t &#273;&#7897;ng c&#7911;a h&#7879; th&#7889;ng Linux v&#224; &#273;&#243;ng g&#243;i c&#225;c ph&#7847;n m&#7873;m.

T&#7841;m th&#7901;i v&#7853;y, ph&#7847;n 2 s&#7869; n&#243;i v&#7873; c&#224;i &#273;&#7863;t m&#7897;t g&#243;i cho @tinycore@ t&#7915; ch&#7871; &#273;&#7897; d&#242;ng l&#7879;nh, b&#234;n trong @microcore@. V&#7899;i phi&#234;n b&#7843;n th&#244;ng th&#432;&#7901;ng, &#273;&#227; c&#243; chu&#7897;t, m&#224;n h&#236;nh m&#224;u s&#7855;c xanh &#273;&#7887; r&#7891;i, th&#236; c&#244;ng vi&#7879;c &#273;&#417;n gi&#7843;n h&#417;n v&#224; b&#7841;n c&#243; th&#7875; t&#7921; ti&#7871;n h&#224;nh &#273;&#432;&#7907;c.</description>
    <id type="integer">486</id>
    <project-id type="integer">19</project-id>
    <summary>phi&#234;n b&#7843;n linux nh&#7887; nh&#7845;t th&#7871; gi&#7899;i :)</summary>
    <title>tinycore linux: ph&#7847;n 1: nh&#236;n s&#417; qua m&#7897;t ph&#225;t</title>
    <votes-value type="integer">0</votes-value>
  </blog>
  <blog>
    <author-id type="integer">3</author-id>
    <comments-count type="integer">0</comments-count>
    <created-on type="datetime">2010-03-07T08:29:14-06:00</created-on>
    <description>M&#7845;y h&#244;m nay &#273;&#7885;c b&#225;o th&#7845;y ng&#432;&#7901;i ta d&#249;ng t&#7915; @lai d&#7855;t@: &#8220;lai d&#7855;t &#273;&#7889;t h&#7847;m Th&#7911; Thi&#234;m&#8221;. Qu&#225;i l&#7841;, ch&#7859;ng hi&#7875;u t&#7915; n&#224;y l&#224; th&#7871; n&#224;o!

Theo t&#7921; &#273;i&#7875;n Vdict.com, @&#8220;lai&#8221;@ &#273;&#7875; ch&#7881; vi&#7879;c _&#273;&#432;a &#273;i k&#232;m theo_ b&#7857;ng ph&#432;&#417;ng ti&#7879;n v&#7853;n t&#7843;i &#273;&#432;&#7901;ng th&#7911;y. V&#237; d&#7909; (c&#7911;a vdict.com): &#8220;can&#244; lai ph&#224; c&#7853;p b&#7871;n&#8221;.

Theo Lu&#7853;t H&#224;ng h&#7843;i Vi&#7879;t Nam (1990), Ch&#432;&#417;ng X, &#273;i&#7873;u 159, th&#236; _&#8220;lai d&#7855;t tr&#234;n bi&#7875;n l&#224; vi&#7879;c th&#7921;c hi&#7879;n t&#225;c nghi&#7879;p lai, k&#233;o, &#273;&#7849;y ho&#7863;c h&#7895; tr&#7907; t&#7847;u bi&#7875;n v&#224; c&#225;c ph&#432;&#417;ng ti&#7879;n n&#7893;i kh&#225;c tr&#234;n bi&#7875;n v&#224; c&#225;c v&#249;ng n&#432;&#7899;c li&#234;n quan &#273;&#7871;n bi&#7875;n m&#224; t&#7847;u bi&#7875;n &#273;&#432;&#7907;c ph&#233;p ho&#7841;t &#273;&#7897;ng, ngay c&#7843; khi t&#7847;u lai ch&#7881; t&#250;c tr&#7921;c b&#234;n c&#7841;nh &#273;&#7875; h&#7895; tr&#7907; khi c&#7847;n thi&#7871;t.&#8221;_

B&#226;y gi&#7901; th&#236;... hi&#7875;u r&#7891;i :)

Ref.: http://vdict.com/
Ref.: &quot;Lu&#7853;t h&#224;ng h&#7843;i Vi&#7879;t Nam&quot;:http://www.luatgiapham.com/phap-luat/luat-kinh-doanh/190-bo-luat-hang-hai.html?start=10</description>
    <id type="integer">485</id>
    <project-id type="integer">50</project-id>
    <summary>b&#7919;a ni m&#7899;i bi&#7871;t</summary>
    <title>lai d&#7855;t</title>
    <votes-value type="integer">0</votes-value>
  </blog>
  <blog>
    <author-id type="integer">1237</author-id>
    <comments-count type="integer">7</comments-count>
    <created-on type="datetime">2010-03-06T20:38:56-06:00</created-on>
    <description>Ta bi&#7871;t *Init* process t&#7891;n t&#7841;i trong su&#7889;t qu&#225; tr&#236;nh h&#7885;at &#273;&#7897;ng c&#7911;a h&#7879; th&#7889;ng. *Init* process c&#243; *pid* (process id) = 1. L&#7879;nh *kill()* &#273;&#432;&#7907;c d&#249;ng &#273;&#7875; g&#7903;i t&#237;n hi&#7879;u t&#7899;i m&#7897;t (ho&#7863;c nhi&#7873;u) process. T&#244;i s&#7869; g&#7903;i &quot;t&#237;n hi&#7879;u&quot; v&#7899;i signum (signal number) *0* t&#7899;i process *1* (t&#7913;c l&#224; Init process). Th&#7921;c s&#7921; n&#7871;u d&#249;ng signum *0*, th&#236; kh&#244;ng c&#243; t&#237;n hi&#7879;u n&#224;o &#273;&#432;&#7907;c g&#7903;i &#273;&#7871;n process *1*. Nh&#432;ng trong tr&#432;&#7901;ng h&#7907;p n&#224;y h&#224;m *kill()* v&#7851;n &#273;&#432;&#7907;c thi h&#224;nh, d&#7921;a tr&#234;n gi&#225; tr&#7883; tr&#7843; v&#7873; c&#7911;a h&#224;m ta bi&#7871;t process *1* c&#243; t&#7891;n t&#7841;i hay kh&#244;ng (m&#7897;t k&#297; thu&#7853;t ki&#7875;m tra s&#7921; t&#7891;n t&#7841;i c&#7911;a process r&#7845;t hay!).

??N&#7871;u h&#224;m th&#224;nh c&#244;ng (tr&#7843; v&#7873; 0), ta bi&#7871;t process *1* t&#7891;n t&#7841;i.??
??N&#7871;u h&#224;m th&#7845;t b&#7841;i (tr&#7843; v&#7873; -1), ta bi&#7871;t process *1* kh&#244;ng t&#7891;n t&#7841;i.??


&lt;pre&gt;
&lt;code class=&quot;c&quot;&gt;
#include &lt;stdio.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;signal.h&gt;

int main()
{
    if( kill(1, 0) == 0 )
        printf(&quot;Init process exists\n&quot;);
    else
        printf(&quot;Init process does NOT exist\n&quot;);

    return 0;
}
&lt;/code&gt;
&lt;/pre&gt;

Sau khi bi&#234;n d&#7883;ch source code th&#224;nh file th&#7921;c thi _checkprocess_. T&#244;i ch&#7841;y file th&#7921;c thi, th&#236; output xu&#7845;t ra th&#244;ng b&#225;o Init process kh&#244;ng t&#7891;n t&#7841;i!

??chuot@cuong ~ $./checkprocess??
??Init process does NOT exist??
??chuot@cuong ~ $??

&gt; + S&#7917;a c&#225;i g&#236; &#273;&#7875; ch&#432;&#417;ng tr&#236;nh ch&#7841;y &#273;&#250;ng nh&#432; m&#236;nh mong mu&#7889;n ? (t&#7913;c l&#224; ch&#7855;c ch&#7855;n ph&#7843;i l&#224; Init process &#273;ang t&#7891;n t&#7841;i)

&gt; + T&#7841;i sao c&#7847;n ph&#7843;i s&#7917;a nh&#432; v&#7853;y, ch&#432;&#417;ng tr&#236;nh m&#7899;i th&#7921;c thi &#273;&#250;ng nh&#432; m&#236;nh mong mu&#7889;n ?


Tr&#7843; l&#7901;i &#273;&#250;ng 2 c&#226;u h&#7887;i tr&#234;n, b&#7841;n s&#7869; &#273;&#432;&#7907;c m&#7901;i m&#7897;t ch&#7847;u caf&#234;. C&#242;n ch&#7901; g&#236; n&#7919;a m&#224; kh&#244;ng &#273;i u&#7889;ng caf&#234; free!

PS: m&#7897;t v&#7845;n &#273;&#7873; m&#236;nh mu&#7889;n n&#243;i th&#234;m &#7903; &#273;&#226;y l&#224; ta g&#7903;i signum 0 &#273;&#7871;n process X, th&#7853;t s&#7921; kh&#244;ng c&#243; t&#237;n hi&#7879;u n&#224;o g&#7903;i &#273;&#7871;n process X c&#7843;. N&#234;n vi&#7879;c b&#7855;t (d&#249;ng signal() ho&#7863;c sigaction()) v&#224; x&#7917; l&#253; (b&#7857;ng c&#225;ch g&#7885;i h&#224;m signal handler) signum 0 l&#224; &#273;i&#7873;u ngu ng&#7889;c, v&#224; &#273;i&#7873;u n&#224;y m&#236;nh &#273;&#227; t&#7915;ng g&#7863;p. </description>
    <id type="integer">483</id>
    <project-id type="integer">51</project-id>
    <summary>&#273;i u&#7889;ng caf&#234; mi&#7877;n ph&#237; kh&#244;ng m&#7885;i ng&#432;&#7901;i ?</summary>
    <title>Init process doesn't exist !</title>
    <votes-value type="integer">1</votes-value>
  </blog>
  <blog>
    <author-id type="integer">3</author-id>
    <comments-count type="integer">0</comments-count>
    <created-on type="datetime">2010-03-03T19:50:29-06:00</created-on>
    <description>&#272;&#226;y l&#224; m&#7897;t b&#224;i vi&#7871;t m&#7899;i v&#7873; n&#7897;i dung &#273;&#227; c&#361;: l&#7899;p h&#7885;c v&#7873; TeX, n&#259;m 2008, t&#7841;i khoa To&#225;n, tr&#432;&#7901;ng &#272;&#7841;i h&#7885;c S&#432; ph&#7841;m Th&#224;nh ph&#7889; H&#7891; Ch&#237; Minh.

L&#7899;p n&#224;y &#273;&#432;&#7907;c khoa To&#225;n (th&#7847;y Nguy&#7877;n Th&#225;i S&#417;n) ch&#7911; tr&#236;, nh&#7857;m h&#432;&#7899;ng d&#7851;n TeX cho c&#225;c sinh vi&#234;n (n&#259;m 3, n&#259;m 4) &#273;ang h&#7885;c t&#7841;i khoa To&#225;n. N&#7897;i dung c&#225;c bu&#7893;i h&#7885;c n&#224;y t&#7915;ng &#273;&#432;&#7907;c l&#432;u gi&#7919; t&#7841;i &#273;&#7883;a ch&#7881; -http://kyanh.zapto.org:9999-/ nh&#432;ng v&#236; m&#7897;t s&#7921; ch&#7853;m tr&#7877; m&#224; t&#234;n mi&#7873;n _kyanh.zapto.org_ &#273;&#227; b&#7883; m&#7845;t. Cho &#273;&#7871;n h&#244;m qua, K&#7923; Anh m&#7899;i t&#236;m &#273;&#432;&#7907;c c&#225;c d&#7919; li&#7879;u g&#7889;c v&#224; kh&#244;i ph&#7909;c l&#7841;i h&#7847;u h&#7871;t c&#225;c n&#7897;i dung c&#7911;a c&#225;c l&#7899;p h&#7885;c t&#7841;i trang wiki c&#7911;a TeX.

C&#225;c b&#7841;n c&#243; th&#7875; tham kh&#7843;o t&#7841;i [[tex:TeXBasic 200810]]. Sau l&#7899;p n&#224;y, c&#242;n c&#243; ph&#7847;n n&#226;ng cao [[tex:TeXOption 200811]]. &#272;&#7863;c bi&#7879;t, c&#225;c b&#7841;n &#273;&#227; tham gia c&#225;c kh&#243;a h&#7885;c c&#243; th&#7875; s&#7917; d&#7909;ng l&#7841;i t&#224;i li&#7879;u n&#224;y cho vi&#7879;c nghi&#234;n c&#7913;u TeX v&#7873; sau.

Nh&#226;n &#273;&#226;y, m&#236;nh c&#7843;m &#417;n m&#7897;t l&#7847;n n&#7919;a t&#7845;t c&#7843; c&#225;c b&#7841;n sinh vi&#234;n &#273;&#227; d&#224;nh nhi&#7873;u th&#7901;i gian v&#224; ki&#234;n nh&#7851;n tham gia kh&#243;a h&#7885;c, c&#7843;m &#417;n s&#7921; gi&#250;p &#273;&#7905; c&#7911;a th&#7847;y Nguy&#7877;n Th&#225;i S&#417;n (_&#273;&#227; h&#7895; tr&#7907; nhi&#7879;t t&#236;nh v&#224; nhi&#7873;u m&#7863;t cho l&#7899;p h&#7885;c_), th&#7847;y T&#259;ng Minh D&#361;ng (_ph&#7909; tr&#225;ch ph&#7847;n &#273;&#7891; h&#7885;a_), Ph&#432;&#7899;c Tu&#7845;n, A. Ph&#432;&#417;ng (_h&#7895; tr&#7907; v&#7873; h&#7879; th&#7889;ng_), th&#7847;y Vinh (_ph&#7847;n tr&#236;nh chi&#7871;u_), L&#226;m H&#7919;u Ph&#432;&#7899;c (_&#273;&#227; chu&#7849;n b&#7883; [[Table Basic]]_), Phan T&#7845;n Ph&#250; (_&#273;&#7891; h&#7885;a, metapost_).

</description>
    <id type="integer">481</id>
    <project-id type="integer">16</project-id>
    <summary>L&#7899;p h&#7885;c c&#259;n b&#7843;n v&#7873; TeX n&#259;m 2008</summary>
    <title>TeXBasic 200810</title>
    <votes-value type="integer">2</votes-value>
  </blog>
  <blog>
    <author-id type="integer">1237</author-id>
    <comments-count type="integer">2</comments-count>
    <created-on type="datetime">2010-03-03T11:28:27-06:00</created-on>
    <description>Hi&#7879;n nay l&#7853;p tr&#236;nh multi-threading tr&#234;n Linux, ng&#432;&#7901;i ta th&#432;&#7901;ng s&#7917; d&#7909;ng chu&#7849;n POSIX. Khi &#273;&#7885;c c&#225;c trang man c&#7911;a POSIX functions, ta &#273;&#432;&#7907;c khuy&#234;n r&#7857;ng ph&#7843;i bi&#234;n d&#7883;ch code v&#7899;i tham s&#7889; *&quot;-lpthread&quot;* ho&#7863;c *&quot;-lrt&quot;*. T&#244;i vi&#7871;t th&#7917; m&#7897;t ch&#432;&#417;ng tr&#236;nh &#273;&#417;n gi&#7843;n khi ch&#7841;y process g&#7891;m c&#243; 2 threads. V&#224; code &#273;&#432;&#7907;c bi&#234;n d&#7883;ch tham s&#7889; *&quot;-lpthread&quot;* ho&#7863;c *&quot;-lrt&quot;* &#273;&#7873;u &#7893;n. 
V&#7853;y c&#243; g&#236; kh&#225;c bi&#7879;t gi&#7919;a *libpthread* v&#224; *librt* ?
C&#226;u l&#7879;nh *mn* &#273;&#432;&#7907;c d&#249;ng &#7903; &#273;&#226;y &#273;&#7875; xem x&#233;t s&#7921; kh&#225;c bi&#7879;t c&#7911;a 2 object files *libpthread.a* v&#224; *librt.a*. &#205;t nh&#7845;t l&#224; ta c&#7847;n xem 2 th&#432; vi&#7879;n n&#224;y cung c&#7845;p c&#225;c API c&#243; h&#242;an to&#224;n gi&#7889;ng nhau kh&#244;ng.

??nm -g /usr/lib/libpthread.a
nm -g /usr/lib/librt.a??

So s&#225;nh 2 k&#7871;t qu&#7843; t&#7915; 2 c&#226;u l&#7879;nh ta th&#7845;y: *libthread* kh&#244;ng h&#7895; tr&#7907; asynchronous I/O functions, trong khi *librt* th&#236; c&#243;; ng&#432;&#7907;c l&#7841;i *librt* kh&#244;ng h&#7895; tr&#7907; POSIX semaphore, trong khi *libthread* th&#236; c&#243;. Nh&#7853;n th&#7845;y &#273;i&#7875;m kh&#225;c bi&#7879;t n&#224;y, n&#243; ph&#7847;n n&#224;o gi&#250;p t&#244;i th&#243;at kh&#7887;i s&#7921; b&#7889;i r&#7891;i khi ph&#7843;i ph&#226;n bi&#7879;t *libpthread* v&#224; *librt*. 
Hai th&#432; vi&#7879;n n&#224;y c&#243; r&#7845;t nhi&#7873;u API m&#224; t&#244;i ch&#432;a bao gi&#7901; &#273;&#7909;ng &#273;&#7871;n, n&#234;n ch&#7855;c r&#7857;ng c&#242;n nhi&#7873;u &#273;i&#7875;m kh&#225;c bi&#7879;t gi&#7919;a ch&#250;ng. R&#7845;t hy v&#7885;ng &#273;&#432;&#7907;c c&#225;c b&#7841;n ch&#7881; b&#7843;o th&#234;m v&#7873; v&#7845;n &#273;&#7873; n&#224;y!
     </description>
    <id type="integer">480</id>
    <project-id type="integer">51</project-id>
    <summary>- What is &quot;nm&quot; for ?
- list symbols from object files. </summary>
    <title>GNU development Tools - nm </title>
    <votes-value type="integer">1</votes-value>
  </blog>
</blogs>
