zoukankan      html  css  js  c++  java
  • busybox 注意事项

    http://busybox.net/downloads/BusyBox.html

    LIBC NSS

    GNU Libc (glibc) uses the Name Service Switch (NSS) to configure the behavior of the C library for the local environment, and to configure how it reads system data, such as passwords and group information. This is implemented using an /etc/nsswitch.conf configuration file, and using one or more of the /lib/libnss_* libraries. BusyBox tries to avoid using any libc calls that make use of NSS. Some applets however, such as login and su, will use libc functions that require NSS.

    GNU Libc使用NSS来配置C库的行为,比如读取passwords和group。这是通过/etc/nsswitch.conf 和/lib/libnss_* 库来实现的。busybox避免使用libc的NSS,但是一些命令,如login和su还是使用libc的NSS

    If you enable CONFIG_USE_BB_PWD_GRP, BusyBox will use internal functions to directly access the /etc/passwd, /etc/group, and /etc/shadow files without using NSS. This may allow you to run your system without the need for installing any of the NSS configuration files and libraries.

    如果启用CONFIG_USE_BB_PWD_GRP,busybox会用内部的函数来访问/etc/passwd, /etc/group, and /etc/shadow 等文件。当程序中使用用户名和密码时要注意!

    When used with glibc, the BusyBox 'networking' applets will similarly require that you install at least some of the glibc NSS stuff (in particular, /etc/nsswitch.conf, /lib/libnss_dns*, /lib/libnss_files*, and /lib/libresolv*).

    Shameless Plug: As an alternative, one could use a C library such as uClibc. In addition to making your system significantly smaller, uClibc does not require the use of any NSS support files or libraries.

    当使用glib时,busybox的网络相关命令(如ping)需要glibc和 NSS。如果ping 域名不同,可能就是少了这些库。

    另外,可以参考我之前的文章:

    http://www.cnblogs.com/cute/archive/2011/05/03/2035645.html

    libnss_dns

    NSS routines for DNS.

    Loaded automatically by the glibc NSS

    libnss_files

    NSS routines for file lookups.

    Loaded automatically by the glibc NSS

    libnss_hesiod

    NSS routines for Hesiod name service.

    Loaded automatically by the glibc NSS

    libnss_nis

    NSS routines for NIS.

    Loaded automatically by the glibc NSS

    libnss_nisplus

    NSS routines for NIS plus.

    Loaded automatically by the glibc NSS

    getpwnam失败,cp libnss-files过去就可以了。参考

    Library Dependency 的議題要點 http://www.jollen.org/blog/2006/10/library_dependency_1.html

    还可以通过strace来跟踪:http://www.xxlinux.com/linux/article/accidence/technique/20080221/13957.html

    ----------------------------------------------------------------------------------------------------------------

    http://www.jollen.org/blog/2006/10/name_service_switch.html

    http://www.jollen.org/blog/2006/10/name_service_switch_1.html#more

    root@james-desktop:/opt/qt-everywhere/marvell/SDK/initramfs/lib# arm-mv5sft-linux-gnueabi-readelf -s ./libnss_dns.so.2 | grep gethostbyname
        37: 00001e2c   564 FUNC    GLOBAL DEFAULT   12 _nss_dns_gethostbyname3_r@@GLIBC_PRIVATE
        39: 00002100    56 FUNC    GLOBAL DEFAULT   12 _nss_dns_gethostbyname2_r@@GLIBC_PRIVATE
        40: 00002060   160 FUNC    GLOBAL DEFAULT   12 _nss_dns_gethostbyname_r@@GLIBC_PRIVATE
    root@james-desktop:/opt/qt-everywhere/marvell/SDK/initramfs/lib# arm-mv5sft-linux-gnueabi-readelf -s ./libnss_files.so.2 | grep gethostbyname
        68: 00004ea4  1412 FUNC    GLOBAL DEFAULT   12 _nss_files_gethostbyname_@@GLIBC_PRIVATE
        97: 00004928  1404 FUNC    GLOBAL DEFAULT   12 _nss_files_gethostbyname2@@GLIBC_PRIVATE

    root@james-desktop:/opt/qt-everywhere/marvell/SDK/initramfs/lib# grep -rn "gethostbyname" *
    二进制文件 libc-2.8.so 匹配
    二进制文件 libc.so.6 匹配
    二进制文件 libnss_dns-2.8.so 匹配
    二进制文件 libnss_dns.so.2 匹配
    二进制文件 libnss_files-2.8.so 匹配
    二进制文件 libnss_files.so.2 匹配
    二进制文件 libresolv-2.8.so 匹配
    二进制文件 libresolv.so.2 匹配

    root@james-desktop:/opt/qt-everywhere/marvell/SDK/initramfs/lib# arm-mv5sft-linux-gnueabi-readelf -s ./libc.so.6 | grep gethostbyname
       692: 000dbfa8   808 FUNC    GLOBAL DEFAULT   11 gethostbyname_r@@GLIBC_2.4
       769: 000dbc6c   828 FUNC    GLOBAL DEFAULT   11 gethostbyname2_r@@GLIBC_2.4
      1291: 000db7c4   592 FUNC    GLOBAL DEFAULT   11 gethostbyname@@GLIBC_2.4
      1699: 000dba14   600 FUNC    GLOBAL DEFAULT   11 gethostbyname2@@GLIBC_2.4

  • 相关阅读:
    [C++]C++指针和引用及区别
    FMX画图实例
    VCL画图实例
    DelphiXE FireMonkey 如何画图
    教程-Delphi 启动流程
    Delphi类引用示例
    手机UC下载视频M3U8转MP4
    ComputeShader中Counter类型的使用
    ComputeShader中Consume与AppendStructuredBuffer的使用
    通过一个小Trick实现shader的像素识别/统计操作
  • 原文地址:https://www.cnblogs.com/cute/p/2373681.html
Copyright © 2011-2022 走看看