GVKun编程网logo

不管人工智能发展如何,开发者都有必要了解 Linux 内核(linux内核必须开源吗)

2

这篇文章主要围绕不管人工智能发展如何,开发者都有必要了解Linux内核和linux内核必须开源吗展开,旨在为您提供一份详细的参考资料。我们将全面介绍不管人工智能发展如何,开发者都有必要了解Linux内

这篇文章主要围绕不管人工智能发展如何,开发者都有必要了解 Linux 内核linux内核必须开源吗展开,旨在为您提供一份详细的参考资料。我们将全面介绍不管人工智能发展如何,开发者都有必要了解 Linux 内核的优缺点,解答linux内核必须开源吗的相关问题,同时也会为您带来alpine linux 执行文件崩溃 报错 找不到/lib/x86_64-linux-gnu/libc.so 解决方法、arch-linux – Arch Linux 64bit Android ADB?、arch-linux – 在Android设备上启动原生Arch Linux、arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别的实用方法。

本文目录一览:

不管人工智能发展如何,开发者都有必要了解 Linux 内核(linux内核必须开源吗)

不管人工智能发展如何,开发者都有必要了解 Linux 内核(linux内核必须开源吗)

Linux 内核在计算机世界的地位有目共睹,称它为计算机世界的基石也不为过。而且它还是全球最大的开源项目,几乎最知名的科技公司都参与其中,包括谷歌、Red Hat、SUSE、Intel、Facebook、甲骨文和华为等。当然还包括 Linux 的竞争对手 —— 微软。

然而人工智能的发展在近两年是如此的迅猛,技术圈内几乎每个领域都表示要拥抱人工智能,惟怕稍有走神就会全盘落后。对于 Linux 内核,大家对它的关注度似乎没有那么高,即便它也一直在活跃地更新。

提到 Linux,开发者对于 Linux 发行版的熟悉程度远高于 Linux 内核。不过这也正常,毕竟不是每个开发者都需要去研究内核。

Linux 内核的关注度低也可以理解,毕竟它是如此的繁复庞大,而且大多数时候,开发者并不需要对它进行深入研究。学习曲线陡峭,应用场景较少,这两个原因打消了大部分开发者对 Linux 内核进行深入研究的欲望。

但事实上,Linux 内核作为一个操作系统的核心,了解 Linux 内核对于大多数开发者都有意义。

比如说 Linux 驱动开发工程师必须要了解 Linux 内核运作的原理;而应用程序开发工程师也需要深入了解 Linux 内核才能写出高效的程序。应用程序开发者都比较熟悉 malloc() 或者 mmap() 这些常用 libc 的 API 函数,但如果不了解它们内部的运作机制,当面对莫名其妙的 bug 时就会一头雾水,找不到方向。

再比如 Linux 运维工程师,他们也需要深入了解 Linux 内核,仅仅懂得安装和敲几个命令是远远不够的。

所以,看起来似乎和底层开发打交道的程序员会比较关注内核,其实不仅仅和底层开发打交道的程序员会关注内核,还有很多其他方向的程序员都会关注内核,比如运维人员、上层应用开发人员、Android 程序设计人员等等。因此,不管是做底层还是做上层开发的开发者都有必要了解 Linux 内核的工作原理。

Linux 内核已经进入 4.x 时代了,按照版本发行说明,4.0 内核发布将让 Linux 系统彻底告别计算机重启时代。数字的递进并没有非常根本性、引人注目的大变化,但每个大版本中都有一些或大或小的功能改变。主版本号只是一个数字而已。在 Linus Torvalds 这个“超级项目经理”的绝对掌控下,Linux 内核正在稳步地发展着。虽然在外界看来,Linux 内核近年来并没有很大的特性变化,主要还是对其进行优化的更新。

事实上,Linux 4.x 内核带来了很多相当吸引人的特性,例如调度器、文件系统、内存调用等方面的更新。

希望了解 Linux4.x 内核最新特性?想要深入熟悉 Linux 内核的学习,那千万不要错过开源中国于12 月 23 日在北京举办的源创会年终盛典 ——

在源创会年终盛典的综合会场,将会对 Linux 4.x 内核的一些重大新特性进行介绍,并和大家分享学习 Linux 内核的经验。

最新 Linux4.x 内核最新特性介绍及 Linux 内核学习经验分享

 

讲师简介

笨叔叔,上海一家芯片公司 软件工程师,内心 90 后的憨豆中年男子,沪上紫竹某小公司的小 FAE。虽笨手笨脚,每日坚持奔跑。Linux 社区吃瓜叔叔,但热爱开源技术,闲暇之余写点 Linux 小段子。

主题介绍(综合会场

虽然现在人工智能的热度超越了 Linux 内核,但是依然有很多在校学生或者刚毕业的小伙伴想深入学习和了解 Linux 内核。本讲座主要是和大家分享最新 Linux 4.x 内核的一些重大特性,以及本人在学习 Linux 内核的一些经验,希望能对想学习或者想深入熟悉 Linux 内核的小伙伴有所帮助。

 

开源中国一直致力于为开发者提供最热门的技术干货,想要了解更多技术的最新前沿发展?赶快登录 https://www.oschina.net/2017-beijing-ceremony 进行报名吧!

alpine linux 执行文件崩溃 报错 找不到/lib/x86_64-linux-gnu/libc.so 解决方法

alpine linux 执行文件崩溃 报错 找不到/lib/x86_64-linux-gnu/libc.so 解决方法

原因:

原因:

大多数 Linux 软件都与 glibc 相连接,GNU libc 库(libc 提供标准的 c 库和 POSIX API)。

大多数 Linux 发行版都基于 glibc。

Alpine Linux 基于 musl libc 库,这是一个最小的实现,并且严格遵循 POSIX。

例如,基于 glibc 发行版构建的可执行文件依赖于/lib/x86 _ 64-linux-gnu/libc.so. 6,而 Alpine 上不能使用这些文件(除非静态链接)。

解决方法:

方法1,安装 libc6兼容包: apk add libc6-compat。这个包装提供了一个轻量级的 glibc 兼容层。对于简单的应用程序,这就足够了。

方法2,在 Alpine 上安装适当的 glibc,提供所有 glibc 方法和功能。Alpine 可以使用 glibc 构建,它应该安装在以下程序中(例如) :

# Source: https://github.com/anapsix/docker-alpine-java

ENV GLIBC_REPO=https://github.com/sgerrand/alpine-pkg-glibc
ENV GLIBC_VERSION=2.30-r0

RUN set -ex && \
    apk --update add libstdc++ curl ca-certificates && \
    for pkg in glibc-${GLIBC_VERSION} glibc-bin-${GLIBC_VERSION}; \
        do curl -sSL ${GLIBC_REPO}/releases/download/${GLIBC_VERSION}/${pkg}.apk -o /tmp/${pkg}.apk; done && \
    apk add --allow-untrusted /tmp/*.apk && \
    rm -v /tmp/*.apk && \
    /usr/glibc-compat/sbin/ldconfig /lib /usr/glibc-compat/lib

方法3,使用静态链接的可执行文件。静态可执行文件不带动态依赖项,可以在任何 Linux 上运行。

方法4,该软件执行文件 可以在alpine上构建

 

 

arch-linux – Arch Linux 64bit Android ADB?

arch-linux – Arch Linux 64bit Android ADB?

我试图在Arch Linux 64bit上使用Android SDK,但是当我尝试从正确的目录运行ADB时,它说文件不存在,但它就在那里.在你遇到这个问题的Ubuntu上安装ia32-lib但是在Arch Linux中没有.有什么我必须做的.

解决方法:

“无此类文件或目录”消息实际上是指32位可执行文件的加载程序,这是执行32位可执行文件所必需的.有关更详细的说明,请参阅Getting “Not found” message when running a 32-bit binary on a 64-bit system.您需要在Arch Linux上安装32位支持.

遗憾的是,Arch Linux没有一种简单的方法来安装32位支持.目前,您需要通过将这些行添加到pacman.conf来启用[multilib]存储库:

[multilib]
Include = /etc/pacman.d/mirrorlist

有关详细信息,请参阅Wiki上的Arch64 FAQ和Using 32-bit-applications on Arch64.

arch-linux – 在Android设备上启动原生Arch Linux

arch-linux – 在Android设备上启动原生Arch Linux

我有一个galaxy Note 10.1(n8010),我想让它本地启动Arch Linux.我的意思是启动Arch Linux而不是android.我需要的只是改变initramfs,这是我在世界上任何地方都找不到的.我的问题:

>我是否只需要更改initramfs,或者我还需要处理其他事情? (比如内核本身)
> [DONE]我在哪里获得CyanogenMod 10.1的官方initramfs(也许是github)?或者我必须自编译CyanogenMod的内核并从zImage中提取它?
> [可能]我可以在Android数据分区中安装Arch linux root吗? (例如/ data / linux)或者我必须购买SD卡?
>我还需要知道/做什么?

编辑:我发现如何更改initramfs

arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别

arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别

在下载gcc for arm的时候,往往会有很多个版本:

这些版本的区别是什么?我该下载哪个版本?

区别无外乎几个:大端 or 小端、ARMv7 or ARMv8、32位 or 64位、裸机 or 嵌入式Linux

multiarch name

syscall ABI

instruction set

endian­ness

word size

description

spec documents

aarch64-linux-gnu

linux

ARMv8

little

64

aarch64 Linux Platform

AAPCS64 (ARM IHI 005A)1
ELF for the ARM 64-bit Architecture2

aarch64_be-linux-gnu

linux

ARMv8

big

64

aarch64 Linux Platform

AAPCS64 (ARM IHI 005A)1
ELF for the ARM 64-bit Architecture2

aarch64-linux-gnu_ilp32

linux

ARMv8

little

32

aarch64 Linux Platform

 

aarch64_be-linux-gnu_ilp32

linux

ARMv8

big

32

aarch64 Linux Platform

 

arm-linux-gnu

linux

ARMv7

little

32

Old ARM ABI

APCS (ARM DUI 0041 chapter 9)4

arm-linux-gnueabi

linux

ARMv7

little

32

ARM EABI, soft-float

AAPCS (ARM IHI 0042D)5
ARM GNU/Linux ABI Supplement6

arm-linux-gnueabihf

linux

ARMv7

little

32

ARM EABI, hard-float

AAPCS (ARM IHI 0042D)5 and
XXXXX (TBD)

armeb-linux-gnueabi

linux

ARMv7

big

32

ARM EABI, soft-float

AAPCS (ARM IHI 0042D)5
ARM GNU/Linux ABI Supplement6

armeb-linux-gnueabihf

linux

ARMv7

big

32

ARM EABI, hard-float

AAPCS (ARM IHI 0042D)5 and
XXXXX (TBD)

armv8l-linux-gnueabihf

linux

ARMv8

little

32

ARMv8 EABI, hard-float

 

arm-eabi

Bare-Metal

ARMv7

little

32

ARM EABI, soft-float

 

armeb-eabi

Bare-Metal

ARMv7

big

32

ARM EABI, soft-float

 

aarch64-elf

Bare-Metal

ARMv8

little

64

ARMv8 EABI, hard-float

 

aarch64_be-elf

Bare-Metal

ARMv8

big

64

ARMv8 EABI, hard-float

 

 

 

 

 

今天关于不管人工智能发展如何,开发者都有必要了解 Linux 内核linux内核必须开源吗的讲解已经结束,谢谢您的阅读,如果想了解更多关于alpine linux 执行文件崩溃 报错 找不到/lib/x86_64-linux-gnu/libc.so 解决方法、arch-linux – Arch Linux 64bit Android ADB?、arch-linux – 在Android设备上启动原生Arch Linux、arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别的相关知识,请在本站搜索。

本文标签: