首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FPGA Xilinx Zynq 系列(三十五)Linux 概览

用 Stallman 所提供的 GNU 工具,Torvalds 做出了 Linux 内核 (在第 23 章会详细讨论),这标志着今天我们所用的 Linux 的起源。...通常,用户空间的程序可能触发导致异常行为的系统调用。用来调试这样的错误的工具是 strace,它从内核直接监控给某个特定调用的所有参数,和对应的返回值,来识别出某个调用是否失败了。...如果返回值与所给的参数对不上,就可以推断被调用的这个函数出问题了 [9]。 还有用来调试 Linux 内核本身存在的错误的工具。...GNU 调试器(gdb)是一个用户空间的程序,有命令行工具也有 GUI,目的是搜寻用户空间程序的错误;也可以用在内核上,通过 gdb (kgdb)协议来做远端主机 Linux 内核的调试器。...还有一些工具用来查看内核代码,比如 Oops[9]。表 22.2 给出了一些可用的调试工具的具体情况。 表 22.2: Linux 调试工具 ? ?

1.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LinuxUnix 基础:什么是 Linux?

    我们的手机,笔记本电脑,PC,汽车甚至冰箱中都用到了 linux 操作系统,在开发人员和普通计算机用户中也很有知名度。...并且保证进程使用实际的物理内存地址来处理彼此的数据。 进程管理: 在进程管理中,进程在被 CPU 调度之前,内核会分配给进程足够的时间和优先级别给进程。...2) 系统库 系统库是一个用来帮助应用程序调用内核功能的特殊程序。因为有一些任务,应用程序必须通过系统调用,触发内核执行任务,才能执行。...Linux 最著名的系统库是 glibc(GNU C 库)。 3) 系统工具 Linux 操作系统有一组比较实用的简单的命令行工具。...工具链是开发人员用来生成有效应用程序的重要开发工具。 5) 用户终端工具 用户可以定制自己系统的终端工具。终端工具对于操作系统不是必需的,但对于用户来说是必需的。

    87820

    吴章金:通过操作 Section 为 Linux ELF 程序新增数据

    背景介绍 Section 是 Linux ELF 程序格式的一种核心数据表达方式,用来存放一个一个的代码块、数据块(包括控制信息块),这样一种模块化的设计为程序开发提供了很大的灵活性。...Section 的操作在 Linux 内核中有着非常广泛的应用,比如内核压缩,比如把 .config 打包后加到内核映像中。 下面介绍三种新增 Section 的方式:汇编、C 和 ELF 工具。...需要补充的是,本文介绍的 .interp 是一个比较特殊的 Section,链接时能自动处理,如果是新增了一个全新的 Section 类型,那么得修改链接脚本,明确告知链接器需要把 Section 放到程序头的哪个.../i386-linux-gnu/ld-linux.so.2 如果系统安装的是 libc6-i386 呢?...小结 以上主要介绍了 Linux ELF 核心数据表达方式 Section 的多种 add 和 update 用法,掌握这些用户可以利于理解 Linux 内核源码中类似的代码,也可以用于实际开发和调试过程去解决类似的需求

    2.9K10

    GNU和GPL

    GNU的内核是自由软件基金会发展的重点,但是其发展尚未成熟。在实际使用上,多半使用Linux内核、FreeBSD等替代方案,作为系统核心,其中主要的操作系统是Linux的发行版。...GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU 开发的编程语言编译器。以及大部分UNIX系统的程序库和工具。...许多UNIX系统上也安装了GNU软件,因为GNU软件的质量比之前UNIX的软件还要好。GNU工具还被广泛地移植到Windows和Mac OS上。...他迄今为止一直是GNU项目的组织者,作为主要开发者的他开发了一些被广泛使用的GNU软件。在1985年10月他创立了自由软件基金会。...其主要工作是运行GNU计划,开发更多的自由软件。 从其创建到1990年代中自由软件基金会的基金主要被用来雇佣编程师来发展自由软件。

    1.1K10

    趣谈自由软件与开源软件(三):一个名称的争议,究竟是该叫Linux还是GNULinux

    严格的说,这不是事实,Linus Torvalds开发的其实是:Linux内核 那Linux内核在操作系统中究竟处于什么地位? Linux内核 简而言之,Linux内核是硬件与软件打交道的中介。...只不过内核是在背后支撑性的,我们使用操作系统压根不可能接触到内核,所以对它可能不太熟知。 我们的Linus Torvalds大神开发的其实是Linux内核。...其实这个列表还有很长,当然最重要的是GNU其实是有自己的内核计划的,那就是Hurd。 但是,GNU自己计划的内核Hurd始终没有稳定,一直在开发中。...而在1991年,众所周知,Linus Torvalds开发了Linux内核。 于是,把GNU的已开发出来的东西和Linux内核一整合,最终推动并发展出了现在的Linux操作系统。...我认为,更重要的事情是,宣扬GNU及其背后的自由软件的理念,才是更需要去做的一件事情。 至于去讨论Linux内核和GNU那些软件,哪个更重要,这种争议并不会产生什么实质价值,只会分裂不同群体而已。

    68430

    xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持

    Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。...它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。...新特性介绍 构建 Linux 内核驱动模块 Xmake 也许是首个提供 Linux 内核驱动开发 内置支持的第三方构建工具了。...也就是说,不管在哪个环境,用户都不需要关心如何去搭建内核驱动开发环境,仅仅只需要一个 xmake 命令,就能搞定一切。...另外一些值得提起的事情 年终总结 这是 2021 年我发布的最后一个版本,这一年下来,经历了很多,Xmake 也在逐渐成长为一个更加强大的构建工具。

    2.6K10

    【GUN和Linux到底是什么关系,gcc,make,cmake,yum是什么】

    这些用户往往认为,Linus Torvalds 在 1991 年开发了整个操作系统,有一点帮助。 Linux内核 和 GNU 系统之间的关系详解 程序员一般都知道Linux是一个内核。...在GNU 宣言中,我们提出了开发一个自由的类 Unix 系统的目标,称为 GNU。GNU 项目的 初始公告还概述了 GNU 系统的一些原始计划。到 Linux 启动时,GNU 几乎完成了。...用来自项目的特定程序来衡量这种项目的贡献是很自然的。 如果我们试图以这种方式衡量 GNU 项目的贡献,我们会得出什么结论?...我们的一些系统组件,即编程工具,自己在程序员中流行起来,但我们编写了许多不是工具的组件 [2]. 我们甚至开发了一个国际象棋游戏 GNU Chess,因为一个完整的系统也需要游戏。...开发这个内核比我们预期的要困难得多; GNU Hurd 于 2001 年开始可靠地工作,但距离让人们普遍使用还有很长的路要走。 幸运的是,由于 Linux,我们不必等待 Hurd。

    2K40

    使用QEMU搭建ARM64实验环境

    1.开场白 环境: 处理器架构:arm64 内核源码:linux-5.9.2 ubuntu版本:20.04.1 代码阅读工具:vim+ctags+cscope 对于Linux爱好者,你是否也有这样的困扰...,为了学习Linux而去购买昂贵的开发版,这大可不必,QEMU模拟器几乎可以满足你的需求,足够你去学习Linux,它能够模拟x86, arm, riscv等各种处理器架构,本文将向你呈现的不是QEMU/...注:这篇文章是之前写的,当时最新内核版本是linux-5.9.2,不想做重复工作,现在基本上都使用linux-5.11内核讲解代码,但是qemu环境搭建基本一致,且本文暂不涉及虚拟化讲解。...2.交叉编译工具链的安装 工欲善其事必先利其器,搭建QEMU的模拟环境首先需要下载安装对应架构的交叉编译工具链(这里是arm64架构): 注:有时候需要安装一些依赖,根据提示安装即可!...文章到这里关于QEMU体验最新的Linux内核已经完成了,当然QEMU有多功能在此不在描述,目前配置的QEMU环境已经足够内核的学习和实际,只有大量的内核源代码+在一种体系架构的处理器上实际内核才能真正的去理解内核的实现机理

    3.3K20

    Linux调试工具

    本节将介绍两个这样的工具,当然还存在其他许多这样的工具(包括GDB的前端GNU insight),它们也被各种开发团队所使用。...从事Linux应用开发一年多了,感觉很不规范很山寨,准备系统地学习一下下linux开发,首先从调试工具的学习开始,以下是从网上看到的一篇linux调试工具介绍,准备好好学习这些工具的使用。...在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号。 ar 建立、修改、提取归档文件。...XBuildStudio是专为提升UNIX/LINUX的程序的开发而设计的在WINDOWS平台上调试UNIX/LINUX程序的开发工具,操作方式类似VC的环境,有效提升您的工作效率. ?...更多uuSpy信息 Linux内核测试工具 CrackerJack Crackerjack Project 是由中日韩三方共同参加开发,该项目主要目的是为Linux内核提供自动化的回归测试功能

    10K43

    初学者级别课程:什么是Linux?

    幸运的是,另一个内核是可用的。Linux被称为Linux。因此,它结合了马萨诸塞州剑桥市GNU提供的必要程序和由芬兰赫尔辛基的Linus Torvalds开发的内核。...由于涉及的物理距离,用于将Linus的内核与GNU程序一起使用的手段是因特网,然后处于初级阶段。那么我们可以说,Linux是一个在互联网上实现的操作系统。...互联网在Linux的后续开发中也是至关重要的,它将协调所有使Linux成为今天的开发者的工作。...Linux是 在1991年后期推出的,Linus Torvalds有自己的内核和一些GNU程序,所以它可以很好地向别人展示他做了什么。这就是他所做的。第一个见到Linux的人知道Linus正在做什么。...开发人员开始为电脑内外的不同显卡,声卡和其他小工具编写驱动程序,可以使用Linux。尽管如此,在1990年代的大部分时间里,Linux并没有走出“GURU”阶段。

    1.1K60

    Linux内核版本_linux最新版本是多少

    大家好,又见面了,我是你们的朋友全栈 Linux版本 linux版本分为两类: 内核版本:免费的,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等,并不给用户提供各种工具和应用软件; 发行版本...GNU和Linux的关系 UNIX操作系统最初是由贝尔实验室开发的,当时的贝尔实验室是电信业巨头AT&T(美国电报电话公司)旗下的一员。...GNU(“GNU’s Not Unix”的递归首字母缩写词)是一个类Unix操作系统,它是由多个应用程序、系统库、开发工具乃至游戏构成的程序集合。...GNU的开发始于1984年1月,称为GNU工程,GNU的许多程序在GNU工程下发布,我们称之为GNU软件包。主要由: GCC:GNU编译器集,它包括GNU C编译器。...许多其他的软件包也是在遵守自由软件的原则和GPL条款的情况下开发和发行的,包括电子表格、源代码控制工具、编译器和解释器、因特网工具、图形图像处理工具(如Gimp),以及两个完整的基于对象的环境(GNOME

    1.8K30

    一次搞定 Arm Linux 交叉编译

    为了让这个流程变得简单,开发者们为不同的芯片开发了不同的编译器,比如针对 Arm 平台的 arm-linux-gcc,针对 mips 平台的 mips-linux-gnu-gcc,这些编译器都是基于 GCC...aarch64-linux-gnu-gcc 带 [] 的是可选部分。...可以用来编译 u-boot、linux kernel 以及应用程序。 另外需要补充一点的是,32 位的 Arm 和 64 位的 Arm,它们的指令集是不同的,所以需要使用不同的工具链。...曾经有个项目使用了一颗四核的 Arm64 芯片,但是内存只有64M,为了节省空间,在 CPU 运行到 U-Boot 之前,我们就把它切到了 32 位模式,后面的 U-Boot、Linux Kernel,...目前用的多的版本应该是 6.x,当然我也看到有些开发组织在使用 7.x 的工具链,比如 Armbian 目前在用 7.4 编译内核。

    29.4K63

    第一章 引言

    Unix 在20世纪80年代初显赫一时(虽然,开发它在更早之前),结果,在普遍地使用图形界面之前,开发了一种广泛的命令行界面。...第四部分 — 常见任务及主要工具 探究了许多命令行经常执行的普通任务。类似于Unix 的操作系统,例如 Linux, 包括许多经典的命令行程序,这些程序可以用来对数据进行强大的操作。...在一台(不用很新)的电脑上安装 Linux。你选择哪个 Linux 发行版安装,是无关紧要的事。虽然大多数人一开始选择安装 Ubuntu, Fedora, 或者 OpenSUSE。...但“Linux”的问题是,没有一个完全正确的方式能命名它,因为它是由许许多多,分布在世界各地的贡献者们,合作开发而成的。从技术层面讲,Linux 只是操作系统的内核名字,没别的含义。...在目前流行的用法中,“Linux”指的是内核以及在一个典型的 Linux 发行版中所包含的所有免费及开源软件;也就是说,整个 Linux 生态系统,不只有 GNU 项目软件。

    18320

    交叉编译学习笔记(二)——交叉编译器的命名规则

    交叉编译学习笔记(二)——交叉编译器的命名规则 在进行嵌入式开发过程中,用到的交叉编译器经常是这样的名称: arm-linux-gcc arm-none-linux-gnueabi-gcc arm-linux-gnu-gcc...常见的值有:gnu, gnueabi, uclibcgnueabi (1) gnu 其实笔者并不知道这里的gnu是不是平常我们所说的gnu…… 那么笔者就默认为是吧…… GNU是一个自由软件工程项目。...EABI与ABI的主要区别,是应用程序代码中允许使用特权指令,不需要动态链接,并且使用更紧凑的堆栈帧组织用来节省内存。广泛使用EABI的有Power PC和ARM。...一般ARM9, ARM11, Cortex-A 内核,带有 Linux 操作系统的会用到。 3. arm-eabi-gcc 该编译器是Android ARM编译器。...armcc一般和ARM开发工具一起,Keil MDK、ADS、RVDS和DS-5中的编译器都是armcc,所以 armcc 编译器都是收费的。

    4.7K50

    速读原著-UnixLinux基础(一)

    GNU计划:GNU是“GNU is Not Unix”的递归缩写,由Richard M.Stallman于1984年创办,旨在开发一个免费、类unix的操作系统-GNU系统及其开发工具;Emacs编辑系统...、BASH shell程序、GCC、GDB等开发工具都是GNU组织的产品。...1.2.6 Linux内核及发行版介绍 Linux内核版本 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。...这些操作系统通常由Linux内核、以及来自GNU计划的大量的函式库,和基于X Window的图形界面,在X Window中用户同样可以通过使用鼠标对窗口、菜单等进行操作来完成相应的工作。...电子政务 随着Linux的快速发展,Linux已逐渐成为Windows系统重要的竞争力量。尤其是Linux在安全性方面的独特优势,又使得Linux在政府应用领域得到很大的发展。

    46520

    Linux内核概述

    在此项计划中,开发出了很多我们现在熟悉的常用的工具,包括GNU编译器套装(GCC)、GNU的C库(glibc)、以及 GNU 核心工具组(coreutils)。...,为了让更多的人同步开发,林纳斯还写了 GIT ,这个让很多协作开发者为之兴奋的工具。...1.9 Linux的现状 今天在 Linus Torvalds 带领下,众多开发共同参与开发和维护 Linux 内核。...一些个人和企业开发的第三方的非 GNU 组件也提供对 Linux 内核的支持,这些第三方组件包括大量的作品,有内核模块和用户应用程序和库等内容。...学习完 Linux 内核你会对整个计算机体系有一个更深刻的认知,作为一个开发者,不管你从事的是驱动开发,应用开发,还是后台开发,你都需要理解计算机操作系统和内核的运行机制,才可能更好的编写你的代码,出现更少的错误

    51120

    6款好用的C语言编译器推荐

    它包括多页面窗口、工程编辑器,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序。它也提供高亮度语法显示的,以减少编辑错误。Dev-C++是一个Windows下的C和C++程序的集成开发环境。...除开GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的GNU 程序开发工具 (比如gawk bison 等等)。...开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在Windows 的人提供一套符合GNU 的工作环境。总体说来,使用MinGW 就是GNU。...WIN-TC简繁双语版可以正常运行于98及其以上的简体及繁体WINDOWS操作系统上 五、Cygwin Cygwin Cygwin是一个用于在Windows上模拟Linux环境的软件。...这些工程在Windows上编译往往很麻烦。我也用它做过X Server来连接一台真正的Linux服务器,用来测试一个用tcl/tk编写的跨平台的用户界面程序。

    12.2K80
    领券