Gentoo Linux 下跑 2.4 Kernel + NPTL

顯示結果從第 1 筆 到 6 筆,共計 6 筆
  1. #1
    拉登長官 dou0228 的大頭照
    註冊日期
    2002-08-26
    所在地區
    2M/256K
    討論區文章
    1,073

    Gentoo Linux 下跑 2.4 Kernel + NPTL

    先下載: http://ccrma-www.stanford.edu/planet...l.caps.src.rpm

    再來就是把 rpm 轉成 tgz..
    rpm2targz kernel-2.4.22-1.2140.nptl.caps.src.rpm

    會產生一個 kernel-2.4.22-1.2140.nptl.caps.src.tar.gz

    tar -zxf kernel-2.4.22-1.2140.nptl.caps.src.tar.gz -C nptl

    進到 nptl 目錄.. 準備 把 Linux Kernel 2.4.22 & NPTL ... 解開 & patch..

    存成 runme.sh, 並 chmod +x runme.sh
    語法:
    #!/bin/sh
    
    S_PWD=`pwd`
    K_DIR="/usr/src/linux-2.4.22"
    
    rm -rf $K_DIR /usr/src/linux
    
    echo "Uncompress linux-2.4.22"
    
    tar -jxf linux-2.4.22.tar.bz2 -C /usr/src/
    
    cat kernel-2.4.22-1.2140.nptl.caps.spec | egrep "^Patch" | cut -d " " -f 2 > patch_cmd
    
    #
    ## remove patch `FAILED` patch
    #
    echo "1,$ s/linux-2.4.2-changeloop.patch//g | wq" | ex patch_cmd
    echo "1,$ s/linux-2.4.18-loopfixes.patch//g | wq" | ex patch_cmd
    echo "1,$ s/linux-2.4.18-dmi-hall-of-shame.patch//g | wq" | ex patch_cmd
    echo "1,$ s/linux-2.4.9-fstat.patch//g | wq" | ex patch_cmd
    echo "1,$ s/acpi-20030321-2.4.21-pre5.diff.gz//g | wq" | ex patch_cmd
    echo "1,$ s/memstick.patch//g | wq" | ex patch_cmd
    echo "1,$ s/008_vh_021217_ck_2.4.20.patch.bz2//g | wq" | ex patch_cmd
    echo "1,$ s/rtc-2.4.20-13.1.caps.patch//g | wq" | ex patch_cmd
    
    for i in `cat patch_cmd`; do
    
      echo $i | egrep -q ".gz$"
    
      if [ "$?" == "0" ]; then
        cd $K_DIR && gzip -cd $S_PWD/$i | patch -p1
    
      else
        echo $i | egrep -q ".bz2$"
        if [ "$?" == "0" ]; then
          cd $K_DIR && bzip2 -cd $S_PWD/$i | patch -p1
        else
          cd $K_DIR && patch -p1 < $S_PWD/$i
        fi
      fi
    
      echo "Processed of $i"
    
    done
    
    echo "Finished :)"
    
    echo "replace for Alan Cox NPTL Patch"
    
    #
    # Patch for s/recalc_sigpending(current)/recalc_sigpending()/g
    #           s/p_opptr/real_parent/g
    #           s/sigmask_lock/sighand->siglock/g
    #
    
    cd $K_DIR
    
    list=$(find . -name '*.c' -type f -exec egrep -q "recalc_sigpending\(current\)" {} \; -print); for i in $list; do echo "1,$ s/recalc_sigpending(current)/recalc_sigpending()/g | wq" | ex $i && echo "patched $i" ; done
    list=$(find . -name '*.c' -type f -exec egrep -q "p_opptr" {} \; -print); for i in $list; do echo "1,$ s/p_opptr/real_parent/g | wq" | ex $i && echo "patched $i" ; done
    list=$(find . -name '*.c' -type f -exec egrep -q "sigmask_lock" {} \; -print); for i in $list; do echo "1,$ s/sigmask_lock/sighand->siglock/g | wq" | ex $i && echo "patched $i" ; done
    
    ln -sf /usr/src/linux-2.4.22 /usr/src/linux
    
    cd /usr/src/linux
    echo "1,$ s/gcc32/gcc/g | wq" | ex Makefile
    這樣就可以準備 make 一份 NPTL 的 Kernel 了..

    ... make 好之後, 重開機..

    cd /usr/portage/sys-libs/glibc

    編輯 glibc-2.3.3_pre20040207.ebuild
    把 export MIN_NPTL_KV = "xxx" 改成 export MIN_NPTL_KV="2.4.22"

    再 USE="nptl" emerge glibc-2.3.3_pre20040207.ebuild

    成功之後, /lib/libc.so.6 就會看到類似這樣的畫面..

    語法:
    Compiled by GNU CC version 3.3.3 20040217 (Gentoo Linux 3.3.3, propolice-3.3-7).
    Compiled on a Linux 2.4.22-ac1-nptl system on 2004-04-01.
    Available extensions:
            GNU libio by Per Bothner
            crypt add-on version 2.1 by Michael Glad and others
            NPTL 0.60 by Ulrich Drepper <-- NPTL support 了 ;)
            BIND-8.2.3-T5B
            NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
    Thread-local storage support included.
    Report bugs using the `glibcbug' script to <[email protected]>.
    沒想到我竟然在 4/1 弄 NPTL 到 AM 4:00


    O/S: XPro SP2;Gentoo 05-r1;F-BSD 5.4/N-BSD 2.0.2
    替代役第一梯次, 矯正役笨蛋
    Bug !?
    Red Hat 技術支援的改變引起眾怒_原文出處
    echo $(echo 4jp022f@n5549i5o9or | tr 0-9a-z 0-3d-l6-9m-w4-5) | tr i .
    就讓 LP 去耍, 我們好在旁邊笑
    QoS 沒中文資料!?

  2. #2
    進階會員 repsol 的大頭照
    註冊日期
    2001-06-17
    所在地區
    ADSL 2M/256
    討論區文章
    818

    NPTL ??

    NPTL = Native POSIX Threading Library ??
    看了一點點文件,不知 dou0228 兄用了這個,對Java來說,果真有相當程度的提升 ?
    「遥か昔、正義に生きる悪魔の伝説があった。
    剣を取って戦い、悪魔の侵略を退けた魔剣士。
    その伝説も、やがて人々の記憶から消えて行った。

    だが2000年の時を経て、魔界はより強大になって甦る。
    圧倒的なパワーで押し寄せる魔界の軍勢。
    本格的な人間界侵攻が始まった…。

    再び訪れた人類の危機に一人の男が立ち上がる。
    伝説の魔剣士の血を引く悪魔狩人(デビルハンター)、その名はダンテ!」

  3. #3
    拉登長官 dou0228 的大頭照
    註冊日期
    2002-08-26
    所在地區
    2M/256K
    討論區文章
    1,073
    是的, 正是 Native POSIX Threading Library..

    我試了一下, thread 的 create & join 速度皆有提升..

    pthread_create(), pthread_join()..

    特別的一點是, pthread_create() 之後, 不再像以前一樣, 有一大堆 pid 在那了..

    Java 的話, 那要看是 Native Thread 或是 Green Thread 了..
    不過基本上我還是使用 Thread Pool 在跑..

    雖然 Java 本來就慢的可以, 但是 Thread Pool 或多或少可以提升一點效率
    O/S: XPro SP2;Gentoo 05-r1;F-BSD 5.4/N-BSD 2.0.2
    替代役第一梯次, 矯正役笨蛋
    Bug !?
    Red Hat 技術支援的改變引起眾怒_原文出處
    echo $(echo 4jp022f@n5549i5o9or | tr 0-9a-z 0-3d-l6-9m-w4-5) | tr i .
    就讓 LP 去耍, 我們好在旁邊笑
    QoS 沒中文資料!?

  4. #4
    進階會員 repsol 的大頭照
    註冊日期
    2001-06-17
    所在地區
    ADSL 2M/256
    討論區文章
    818
    之前曾在 FreeBSD 上使用 Linuxthreads,程式一 run 下去,它的確會產生一堆的 PID 在那邊
    ,搞的好像是 multi processes 的東西那樣,也曾把 Mysql 利用 LinuxThreads 來運作, 也是
    一樣的情形,今天聽你一講,才知道原來它在 Linux下面也會這樣。
    (我對 Linux不熟,但是總是拿 Linux 的東西在 FreeBSD 上惡搞 )。

    至於 Java .....
    「遥か昔、正義に生きる悪魔の伝説があった。
    剣を取って戦い、悪魔の侵略を退けた魔剣士。
    その伝説も、やがて人々の記憶から消えて行った。

    だが2000年の時を経て、魔界はより強大になって甦る。
    圧倒的なパワーで押し寄せる魔界の軍勢。
    本格的な人間界侵攻が始まった…。

    再び訪れた人類の危機に一人の男が立ち上がる。
    伝説の魔剣士の血を引く悪魔狩人(デビルハンター)、その名はダンテ!」

  5. #5
    拉登長官 dou0228 的大頭照
    註冊日期
    2002-08-26
    所在地區
    2M/256K
    討論區文章
    1,073
    會有一大堆 PID 是因為 LinuxThread 是 "Lightweight" *Process*
    是使用 clone() 這一個 system call 去完成的..

    會看到一大堆 PID, 說是好處也是, 說是壞處也是..
    好處是, 你可以看到那些 Threads 的 status: sleep, running, ...
    壞處是, 有多少 Threads 就吃掉 Threads + 1 個 pid.. ( 算是一種浪費 )


    O/S: XPro SP2;Gentoo 05-r1;F-BSD 5.4/N-BSD 2.0.2
    替代役第一梯次, 矯正役笨蛋
    Bug !?
    Red Hat 技術支援的改變引起眾怒_原文出處
    echo $(echo 4jp022f@n5549i5o9or | tr 0-9a-z 0-3d-l6-9m-w4-5) | tr i .
    就讓 LP 去耍, 我們好在旁邊笑
    QoS 沒中文資料!?

  6. #6
    進階會員 repsol 的大頭照
    註冊日期
    2001-06-17
    所在地區
    ADSL 2M/256
    討論區文章
    818
    原來是用了clone(),但是一直感覺很像 fork(),原來之間有密切的關係。

    但是 Thread 的確還是 Thread,只是感覺好像應用了 parent process 來控制
    一些生出來的 child processes的資源利用。

    這就非常符合你所說的 Lightweight" *Process*

    child process 所需要的系統資源並不是自己生出來的,而是取於 parent process 所用的(共用的觀念) , 這正是 thread 的重要觀念之一。
    不同於一般 unix 所用的 mutli process,是自己獨占系統資源。

    dou0228兄,多講一些吧。糾正糾正我的觀念吧
    「遥か昔、正義に生きる悪魔の伝説があった。
    剣を取って戦い、悪魔の侵略を退けた魔剣士。
    その伝説も、やがて人々の記憶から消えて行った。

    だが2000年の時を経て、魔界はより強大になって甦る。
    圧倒的なパワーで押し寄せる魔界の軍勢。
    本格的な人間界侵攻が始まった…。

    再び訪れた人類の危機に一人の男が立ち上がる。
    伝説の魔剣士の血を引く悪魔狩人(デビルハンター)、その名はダンテ!」

類似的主題

  1. 【教學】Linux Layer 7 Netfilter QOS 實作成功紀錄 (Kernel 2.6.14)
    作者:apage 所在討論版:-- 網 路 技 術 版
    回覆: 10
    最後發表: 2011-04-29, 07:15 AM
  2. HOWTO setup a home-server(gentoo)
    作者:repsol 所在討論版:-- FreeBSD & Linux 討 論 版
    回覆: 0
    最後發表: 2006-06-21, 12:31 PM
  3. 【求助】請問哪一版的linux可以在vmware下跑x win?
    作者:faq 所在討論版:-- FreeBSD & Linux 討 論 版
    回覆: 6
    最後發表: 2003-02-03, 05:04 PM
  4. 關於FREEBSD or linux 的kernel 的大小?
    作者:chengmou 所在討論版:-- FreeBSD & Linux 討 論 版
    回覆: 3
    最後發表: 2002-01-13, 02:39 PM
  5. ghost 可否在 windows 2000 下跑呀?
    作者:chengmou 所在討論版:-- 其 他 軟 體 討 論 版
    回覆: 1
    最後發表: 2001-07-18, 06:37 PM

 

此網頁沒有從搜尋引擎而來的訪客

發表文章規則

  • 不可以發表新主題
  • 不可以回覆文章
  • 不可以上傳附加檔案
  • 不可以編輯自己的文章
  •