![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
补丁_1024
Software Engineer
展开
-
静态库和动态库的区别
静态库静态库在程序编译时会被连接到目标代码中,程序运行时将不在需要该静态库。编译之后的程序文件大,但加载快,隔离性也好。之所以称为静态库,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。静态库特点如下:静态库对函数库的链接是放在编译时期完成的程序在运行时与函数库再无瓜葛,移植方便。浪费空间和资源,因为所有相关的目标文件与牵扯到的函数库被链接合成一个可执行文件。Linux下使用ar工具、Windows下vs使用lib.exe原创 2021-10-20 15:34:14 · 294 阅读 · 0 评论 -
git教程-概念、原理及使用
提示:查看本文的方式,不懂的先略过,看了后面的篇幅可能就懂了。git和Github概念git — 版本控制工具(命令)。工具介绍官方网站:http://git-scm.com工具下载地址:http://git-scm.com/download/git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。git是个工具,在linux里面也...转载 2018-02-25 14:49:15 · 398 阅读 · 0 评论 -
操作系统学习:分布式系统结构
分布式系统是一组不共享内存和时钟的处理器的集合,即每个处理器都有它自己的内存,处理器之间的通信可通过各种通信网络加以实现。一、动机 建立分布式系统主要由4个方面的原因: 1、资源共享 2、加快计算速度 3、可靠性 4、通信 不同站点可以有机会交换信息二、分布式操作系统的类型 1、网络操作系统 通过远程登录或从远程机器传送数据到自己机器的方式来访问远程资源。易...转载 2018-02-21 13:54:51 · 467 阅读 · 0 评论 -
操作系统学习:linux内存管理
摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市...转载 2018-02-20 16:00:23 · 312 阅读 · 1 评论 -
内核printk打印级别
/proc/sys/kernel/printkPrintk 共有4个参数Cat /proc/sys/kernel/printk7 4 1 7(1)第一个参数 7表示小于7优先级消息才会被输出到控制台。(2)第二个参数4 表示默认的printk消息优先级别,即printk(“hell world”);优先级为4, 由...原创 2018-02-07 22:13:07 · 426 阅读 · 0 评论 -
操作系统学习:Linux内核并发机制
Linux包含了在其他UNIX系统中出现的所有并发机制,其中包括管道、消息队列、共享内存和信号,除此之外,Linux2.6还包含了一套丰富的并发机制,这套机制是特别为内核态线程准备的。换言之,它们是内核中的并发机制,提供内核代码执行的并发性。原子操作 Linux提供了一组操作对变量的原子操作。这些操作能够用来避免简单的竟态条件(race condition)。原子操作执行时不会...原创 2018-02-14 15:13:39 · 388 阅读 · 0 评论 -
操作系统学习:UNIX并发机制
Unix为进程间的通信和同步提供了各种机制。这里只介绍最重要的几种:管道 消息共享内存信号量信号管道、消息和共享内存提供了进程间传递数据的方法,而信号量和信号则用于触发其他进程的行为。管道 UNIX对操作系统开发最重要的贡献之一就是管道。受协同程序概念的启发,管道是一个环形缓冲区,允许两个进程以生产者消费者的模型进行通信。因此,这是一种先进先出(FIFO)队列,...原创 2018-02-14 10:36:00 · 351 阅读 · 0 评论 -
操作系统学习:进程与线程
什么是进程书上的定义是:一个正在执行中的程序 。一个正在计算机上执行的程序实例 。能分配给处理器并由处理器执行的实体 。一个具有以下特征的活动单元:一组有序列的执行、一个当前状态和相关的系统资源集 。线程 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数...原创 2018-02-13 12:58:00 · 193 阅读 · 0 评论 -
操作系统学习:计算机系统概述
基本构成 处理器(Processor) :控制计算机的操作,执行数据的处理,通常指CPU。在处理中含有寄存器,寄存器相对内存来说容量很小,但存取速度相当快,可以用来暂存指令和数据等。寄存器有多种不同的分类。如地址寄存器和指令寄存器等。地址寄存器存放下一步需要从存储器中读取的存储器地址,指令寄存器存取当前正在执行的程序指令。 存储器(Main memory):分为内存和外存。主要用于存...原创 2018-02-12 18:24:30 · 387 阅读 · 0 评论 -
vi配置文件
在用vi编程时,如果不配置,会感觉会不舒服。tab键的格数,背景色,这样会让看起来舒服些,用起来也方便些。这里转发一个vi的配置文件,可以复制到.vimrc文件,如果是usr放到/home/username/.vimrc 如果是root则放到/etc/vimrc这样vim的配置基本也结束了。在下边的文件中有几...转载 2018-02-11 13:37:46 · 338 阅读 · 0 评论 -
repo 的一些用法和理解
repo的用法(zz) 注:repo只是google用Python脚本写的调用git的一个脚本,主要是用来下载、管理Android项目的软件仓库。(也就是说,他是用来管理给git管理的一个个仓库的)下载 repo 的地址: http://android.git.kernel.org/repo ,可以用以下二者之一来下载 repowget http://android.git.kerne转载 2018-01-27 12:34:27 · 1461 阅读 · 0 评论 -
Linux基本命令
git init # 初始化本地git仓库(创建新仓库)git config --global user.name "xxx" # 配置用户名git config --global user.email "xxx@xxx.com"原创 2018-01-26 13:25:18 · 127 阅读 · 0 评论 -
嵌入式Linux系统启动过程
嵌入式Linux系统启动过程系统启动过程 一个嵌入式 Linux 系统从软件角度看可以分为四个部分:引导加载程序(Bootloader), Linux 内核,文件系统,应用程序。 当系统首次引导时,或系统被重置时,处理器会执行一个位于Flash/ROM中的已知位置处的代码,Bootloader就是这第一段代码。它主要用来初始化处理器及外设,然后调用 Li转载 2018-02-01 13:55:20 · 397 阅读 · 0 评论 -
嵌入式Linux系统的构成和启动总结
在我们的周围,大量的嵌入式设备都是基于Linux系统来构建的,嵌入式Linux与主机Linux相比有着自己的一些特点,本文就嵌入式Linux系统的构成和启动过程做一些总结。 一、嵌入式Linux系统构成上图是一个嵌入式Linux系统的典型结构,划分成了4个区:1、Bootloader区存放的是Bootloader,它负责嵌入式系统最初的硬件初始化、驱动和内核加载。2、参数区不是必须的,通常存放了一转载 2018-02-01 13:41:39 · 187 阅读 · 0 评论 -
Linux 内核是如何构建的
我不会告诉你怎么在自己的电脑上去构建、安装一个定制化的 Linux 内核,这样的资料太多了,它们会对你有帮助。本文会告诉你当你在内核源码路径里敲下make 时会发生什么。当我刚刚开始学习内核代码时,Makefile 是我打开的第一个文件,这个文件看起来真令人害怕 :)。那时候这个 Makefile 还只包含了1591 行代码,当我开始写本文时,内核已经是4.2.0的第三个候选版本 了。这个转载 2018-01-24 20:17:26 · 213 阅读 · 0 评论 -
Linux下查看硬件信息以及驱动设备的命令
用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)查看CPU信息:cat /proc/cpuinfo查看板卡信息:cat /proc/pci查看PCI信息:lspci (相比cat /proc/pci更直观)查看内存信息:cat /proc/meminfo查看USB设备:cat /proc/bus/usb/devices查看交换分区信息: cat转载 2018-01-31 17:59:24 · 2874 阅读 · 0 评论 -
ARM Linux设备树(Device Tree)
1. ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-x转载 2018-01-23 14:57:16 · 273 阅读 · 0 评论 -
I2C总线协议
I2C总线定义 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系转载 2018-01-22 18:59:33 · 239 阅读 · 0 评论 -
I2C总线协议详解
1.1 I2C总线知识1.1.1 I2C总线物理拓扑结构 I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来 产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。1.1.2 I2C总线特征 I2C总线上的转载 2018-01-22 18:30:36 · 247 阅读 · 0 评论