uclibc

【整理】uclibc,eglibc,glibc之间的区别和联系

筅森魡賤 提交于 2021-02-03 07:09:42
【glibc,uclibc,eglibc的简介】 1.Glibc glibc = GNU C Library 是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。 目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。 其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。 2.uClibc 一个小型的C语言标准库,主要用于嵌入式。 其最开始设计用于uClinux(注:uClinux不支持MMU),因此比较适用于微处理器中。 对应的,此处的u意思是μ,Micro,微小的意思。 uClibc的特点: (1)uClibc比glibc要小很多。 (2)uClibc是独立的,为了应用于嵌入式系统中,完全重新实现出来的。和glibc在源码结构和二进制上,都不兼容。 3.EGLIBC EGLIBC = Embedded GLIBC EGLIBC是,(后来)glibc的原创作组织FSF所(新)推出的,glibc的一种变体,目的在于将glibc用于嵌入式系统。 EGLIBC的目标是: (1)保持源码和二进制级别的兼容于Glibc 源代码架构和ABI层面兼容 如果真正实现了这个目标,那意味着,你之前用glibc编译的程序,可以直接用eglibc替换,而不需要重新编译。

PHTunnel集成Openwrt,不到一小时?安排上!

醉酒当歌 提交于 2020-08-08 19:33:11
花生壳phtunnel嵌入Openwrt 详细介绍如何将 phtunnel 封装成一个 openwrt 标准组件,并编译到自己的 openwrt 固件中。 phtunnel 组件制作下载 下载自己的编译平台的二进制 phtunnel 文件是第一步要做的,我们可以到 oray 的官方 github 网站进行下载,根据自己的型号进行下载,比如我的路由器是基于 MIPSel , c 库使用的是 uclibc ,那么我可以进入 xxxxx ,进入 xxxxxxxx ,并下载 mipsel-uclibc-phtunnel 文件。 规划目录结 构接 下来的任务是规划自己的 phtunnel 组件安装后,在 openwrt 系统上是怎样的目录结构。 首先核心的应用程序 phtunnel 我们可以放在 /usr/bin 目录下,因为它是一个非管理员应用,所以一般比放在 /usr/sbin 目录下要更科学一些。 uci 配置文件:由于 openwrt 的 uci 是常用的配置解决方案 ( 不理解 uci 可参阅其他文档 ) ,所以需要一个 uci 配置文件,该文件通常放在 /etc/config 目录下,同时我们取名同样为 phtunnel ,这样就可以使用 uci set phtunnel.xx.xx 等操作 phtunnel 的配置了。 根据 phtunnel 列出的参数, uci 的配置如下:

Mirai-botnet 环境搭建步骤

我的梦境 提交于 2020-04-18 21:03:46
一、准备 1.Mirai 使用了 C,Go 两种编程语言,使用数据库存储数据,因此提前安装需要软件如下命令: sudo apt- get install git sudo apt - get install gcc sudo apt - get install golang sudo apt - get install electric- fence sudo apt - get install mysql-server mysql-client 2.下载源码 git clone https: // github.com/jgamblin/Mirai-Source-Code 3.修改参数,配置CNC cd mirai/tools && gcc enc.c -o enc. out // 编译enc可执行文件,用于ip地址异或 ./enc. out string cnc.changeme.com // 会返回一串“\x”字符串 (其实就是加密了 cnc.changeme.com) ./enc. out string report.changeme.com // 会返回一串“\x”字符串 分别替换 tables.c 文件中的18行和21行的“\x”字符串和后面的另一个参数 记得:要修改两个参数!(\x字符串和后面的长度的参数) 4.配置数据库 cd ../../scripts //

Mirai-botnet 环境搭建步骤

限于喜欢 提交于 2020-04-18 19:51:51
一、准备 1.Mirai 使用了 C,Go 两种编程语言,使用数据库存储数据,因此提前安装需要软件如下命令: sudo apt- get install git sudo apt - get install gcc sudo apt - get install golang sudo apt - get install electric- fence sudo apt - get install mysql-server mysql-client 2.下载源码 git clone https: // github.com/jgamblin/Mirai-Source-Code 3.修改参数,配置CNC cd mirai/tools && gcc enc.c -o enc. out // 编译enc可执行文件,用于ip地址异或 ./enc. out string cnc.changeme.com // 会返回一串“\x”字符串 (其实就是加密了 cnc.changeme.com) ./enc. out string report.changeme.com // 会返回一串“\x”字符串 分别替换 tables.c 文件中的18行和21行的“\x”字符串和后面的另一个参数 记得:要修改两个参数!(\x字符串和后面的长度的参数) 4.配置数据库 cd ../../scripts //

Mirai-botnet 环境搭建步骤

荒凉一梦 提交于 2020-04-17 09:33:22
【推荐阅读】微服务还能火多久?>>> 一、准备 1.Mirai 使用了 C,Go 两种编程语言,使用数据库存储数据,因此提前安装需要软件如下命令: sudo apt- get install git sudo apt - get install gcc sudo apt - get install golang sudo apt - get install electric- fence sudo apt - get install mysql-server mysql-client 2.下载源码 git clone https: // github.com/jgamblin/Mirai-Source-Code 3.修改参数,配置CNC cd mirai/tools && gcc enc.c -o enc. out // 编译enc可执行文件,用于ip地址异或 ./enc. out string cnc.changeme.com // 会返回一串“\x”字符串 (其实就是加密了 cnc.changeme.com) ./enc. out string report.changeme.com // 会返回一串“\x”字符串 分别替换 tables.c 文件中的18行和21行的“\x”字符串和后面的另一个参数 记得:要修改两个参数!(\x字符串和后面的长度的参数) 4.配置数据库 cd

Sample example program to get the malloc consolidate error

大憨熊 提交于 2020-04-10 05:52:49
问题 I want to test the mcheck functionality on my PC first to detect the malloc consolidate error. This way, i will be sure that this will help to figure out a similar crash on embedded-linux box. Unfortunately, the crash takes atleast 3-4 days. Thus, I am looking for a sample program that will generate the similar kind of crash as shown below. Program terminated with signal 6, Aborted. #0 0x2c73ebb8 in __syscall_kill (pid=900, sig=6) at kill.c:15 15 static inline _syscall2(int, __syscall_kill, _

How to modify the source of Buildroot packages for package development?

时光怂恿深爱的人放手 提交于 2020-01-27 04:34:08
问题 I've been using buildroot in order to build a toolchain using uclibc . Now, buildroot downloads all the packages, extract them and build them all.. I want to change the toolchain's uclibc source and then recompile the toolchain with the new source and i just can't understand how it can be done in the pretty way.. After it finishes building, all of the extracted sources are found in the " <buildroot-src>/output/build ". But changing them won't give me a thing because buildroot only uses this

ARM gentoo crossdev with uclibc: need OABI rather than EABI

旧城冷巷雨未停 提交于 2019-12-22 06:28:12
问题 Can anyone help with my ARM + GCC + UCLIBC linking issue with crossdev? Also posted to Gentoo Forums here: http://forums.gentoo.org/viewtopic-t-925012.html Recently, I was assigned to a project that has executables developed using an old GCC with OABI. As a point of reference, here's a header output from readelf of an executable that runs just fine on the system: ELF Header: Magic: 7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1

buildroot file system & cross compiling: dynamically linked application fails but static ok. How to link against uClibc

我是研究僧i 提交于 2019-12-12 22:02:04
问题 I have a buildroot created file system, and I am trying to execute some c-code on lighttpd server. I have created a simple C module that just prints out few lines of html. Code looks like this: #include "stdio.h" int main(void) { printf( "Content-Type: text/plain\n\n" ); printf("testing C code\n"); return 0; } I'm using compiler from Ubuntu repository, to compile it arm-linux-gnueabi-gcc -o test.cgi test.c . If I compile with -static flag, it will run just fine, and I can see the html

cross-compiled Valgrind does not detect obvious leaks

萝らか妹 提交于 2019-12-10 15:32:08
问题 I cross compiled Valgrind to openwrt x86 platform. It doesn't detect any leaks when running on target. On Ubuntu, it works fine. My test program is simple main() { char *p = malloc(10000); *(p-1) = 1; } Relevant compilation steps i486-openwrt-linux-uclibc-gcc -c -o leak.o -pipe -march=i486 -fhonour-copts -I/home/r2/external/openwrt/staging_dir/target-i386_uClibc-0.9.30.1/usr/include -I/home/r2/external/openwrt/staging_dir/target-i386_uClibc-0.9.30.1/include -I/home/r2/external/openwrt/staging