![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
ZhongNanJingYun_Blog
这个作者很懒,什么都没留下…
展开
-
dcmtk-cmake
dcmtk build原创 2022-09-12 10:49:37 · 383 阅读 · 1 评论 -
ERROR: ld.so: object ‘/lib/libSegFault.so‘ from LD_PRELOAD cannot be preloaded (cannot open shared o
LD_PRELOAD先来了解一下这个环境变量的用户说明 LD_PRELOAD A list of additional, user-specified, ELF shared objects to be loaded before all others. The items of the list can be sepa‐ rated by spaces or colons. This can原创 2020-11-21 23:11:55 · 3551 阅读 · 1 评论 -
Ubuntu cmake 编译环境搭建及编译方法 (lesson 02)
多个文件、目录、动态库编译测试不同目录下的工程编译文件目录执行编译测试不同目录下的工程编译文件目录先看工程文件的结构Demo02love@ubuntu:~/workspace/CMakeProject/Demo02$ tree.├── CMakeLists.txt├── main.c└── Math ├── CMakeLists.txt ├── MathFunction.c └── MathFunction.h1 directory, 5 files参考文件原创 2020-07-07 22:57:40 · 820 阅读 · 0 评论 -
Ubuntu cmake 编译环境搭建及编译方法 (lesson 01)
Linux cmake 使用方法下载cmake 并安装第一个程序下载cmake 并安装下面展示一些操作 内联代码片。sudo apt-get updatesudo apt-get install cmakelove@ubuntu:~$ cmakeUsage cmake [options] <path-to-source> cmake [options] <path-to-existing-build>Specify a source directory t原创 2020-07-06 23:02:53 · 2867 阅读 · 0 评论 -
Debian下磁盘挂载及开机启动设置教程
检查磁盘空间即剩余情况本文是在实际使用过程中真实操作,用于交流和学习;1. 使用fdisk -l命令查看当前磁盘的大小,其中/dev/sda磁盘发现并未使用;使用时,需要切换到root权限 其中,系统默认磁盘是在/dev/sdb1上;root@****# fdisk -lDisk /dev/sda: 3.7 TiB, 4000787030016 bytes, 7814037168 sectorsUnits: sectors of 1 * 512 = 512 bytesSec...原创 2020-06-23 20:44:11 · 10156 阅读 · 0 评论 -
Lesson 2 Linux 内核更新
1. 查看Linux 内核2. Linux 内核下载的网址https://www.kernel.org/https://mirrors.edge.kernel.org/pub/3. 内核升级步骤,这里摘抄了书中一个步骤,作为分享,一般步骤就是下载源码,编译,安装,然后重启用shell程序,一键搞定...原创 2019-04-14 22:32:09 · 109 阅读 · 0 评论 -
Linux 信号通信基本概念
管道可以分为有名管道和无名管道,管道是一种单向队列信号的概念信号的通信框架是,内核中有信号对象,多个用户之间的进程通过方为内核中的信号对象间接来通信。‘内核空间中有很多信号,可以通过kill -l 查看内核可以发送多少种信号内核中总共有64中信号,前面是ID,后面是宏定义信号通信的框架1. 信号的发送(发送信号进程): kill , raise , alarm2. 信号...原创 2019-08-18 17:49:07 · 284 阅读 · 0 评论 -
Linux字符设备驱动开发框架
仅供参考#include <linux/moducle.h>#include <linux/types.h>#include <fs.h>#include <linux/errno.h>#include <linux/mm.h>#include <linux/sched.h>#include <l...原创 2019-08-18 20:13:29 · 131 阅读 · 0 评论 -
Linux 内核及内核编程概念--02
进程调度精确调度控制系统中的多个进程对CPU的访问使得多个进程能在CPU中微观串行,宏观并行的执行。//启动内核的函数int kernel_thread(int (*fn)(void*), void* arg, unsigned long flags);内存管理内存管理的主要作用是控制多个进程安全共享主内存区域。当CPU提供内存管理单元(MMU)时,Linux内存...原创 2019-08-13 23:22:46 · 85 阅读 · 0 评论 -
Linux内核模块简介概念--03
Linux提供了这样一个机制,模块本身不编译在内核中,从而减小了内核的大小,模块可以被加载,与内核配合使用。1. 编写测试用例#include<linux/kernel.h>#include<linux/init.h>#include<linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static i...原创 2019-08-14 00:11:39 · 296 阅读 · 0 评论 -
Linux 设备驱动中的并发控制
并发与竞争并发是指操作系统中,一个时间段中有几个程序都处于启动运行到运行完毕间,且这几个程序都是同一个处理器上运行,但任何一个时间点只有一个程序在处理机器上运行。并发容易导致竞争问题。竞争是两个或者多个进程同时访问一个资源,从而引起的资源错误。原子操作所谓的原子操作就是该操作系统不会在执行完毕前被任何其他任务或者事件打断。也就是说,原子操作是一种不可以被打断的操作。原子操作...原创 2019-08-19 23:45:40 · 196 阅读 · 0 评论 -
Linux 设备驱动开发 --01基本概念
本文摘录参考书《Linux设备驱动开发详解》--宋宝华驱动程序就是搭起应用软件和硬件之间的桥梁,做到软硬隔离。1. 无操作系统 的驱动功能单一的硬件设备,比如单片机是无需Linux操作系统的,其驱动程序可以理解为将点亮一个LED灯的写寄存器程序抽象出来,封装为一个借口,应用软件只需要调用该接口即可实现LED灯的控制,其架构可以理解为:2. 有操作系统的驱动1. 一个复...原创 2019-08-12 22:16:21 · 332 阅读 · 0 评论 -
Linux设备驱动中的阻塞和同步机制
阻塞非阻塞阻塞调用是指调用结果返回之前,当前线程会被挂起,函数只有在得到结果之后才会返回。非阻塞指在不能得到结果之前,该函数不会阻塞当前线程,二回立刻返回。阻塞对象上可以有非阻塞的调用方式,我们可以通过一定的API去轮询状态,在适当的时候调用阻塞函数,可以避免阻塞。而对于非阻塞对象,调用特殊的函数也可以进入阻塞调用。等待队列等待队列的基本数据结构是一个双向链表,...原创 2019-08-20 23:51:37 · 414 阅读 · 0 评论 -
Linux 内核编译及驱动
Linux所有的内核下载https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/内核的升级不对破坏现有的内核,也不会破坏文件上的文件等资源。#!/bin/bash# this file set in the linux-kernel directorycd / mkdir linux-2.6.29.4cp linux-2.6...原创 2019-08-18 15:50:46 · 400 阅读 · 0 评论 -
嵌入式开发总结--01
一、硬件介绍1. 嵌入式系统架构2. 硬件基本结构3. 嵌入式系统具有操作系统的最基本的功能:n进程调度n内存管理n设备管理n文件管理n操作系统接口(API调用)4. 嵌入式操作系统具有的特点:n系统可裁减,可配置.n系统具备网络支持功能n系统具有一定的实时性5. 操作系统实时性n实时系统的定义:能够对外部事件做出及...原创 2019-08-28 23:20:11 · 274 阅读 · 0 评论 -
linux之NFS服务(转载)
https://www.cnblogs.com/sunny18/p/8287934.htmlNFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。...转载 2019-09-02 23:30:11 · 85 阅读 · 0 评论 -
socket通信原理学习(转载)
以下内容属于转载,用于学习总结,相关内容请查看原链接https://www.cnblogs.com/fuchongjundream/p/3914696.html一、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 1、消息传递(管道、FIFO、消息队列) 2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)...转载 2019-09-06 23:38:31 · 189 阅读 · 0 评论 -
Linux 驱动之编译到内核
当编译了模块没有问题时,如果想要随内核一起启动,需要将模块编译到内核中。具体步骤如下:1. 编写Linux驱动模块2. 测试模块的功能是否正常3. 将驱动文件拷贝到Linux内核源码的驱动模块目录下,4. 新建一个属于自己的驱动模块的目录5. 添加本目录下的Kconfig和Makefile文件6. 修改上级目录,driver目录下的Kconfig和Makefile文件...原创 2019-08-18 17:45:42 · 290 阅读 · 0 评论 -
Linux 驱动之模块参数
模块时为了完成某种特定的任务而设计的,其功能比较单一,为了丰富系统的功能,所以模块之间唱歌需要通信,它们之间可以共享数据,变量,也可以调用对方提供的功能参数。模块2的加载过程如下:1. 使用insmod 加载模块22. 内核为模块2分配空间,然后将模块的代码和数据装入分配的内存中3. 内核发现符号表中有函数1,函数2可以导出,于是将其内存地址记录在内核符号表中模...原创 2019-08-18 17:14:37 · 582 阅读 · 0 评论 -
Linux 下编译静态库和动态库
1. 静态库的制作2. 制作动态库动态库的调用是动态加载的,一般需要指定动态库的位置,编译文件执行时找到现在有三种方法解决这个问题1. 将动态库文件放置到/usr/lib或者/lib目录下2. 将当前动态的路径,导出环境变量3.在配置文件中添加当前动态库的路径4. 在/etc/profile文件中添加环境变量,指定库的路径方法1 实现,...原创 2019-05-30 23:53:17 · 164 阅读 · 0 评论 -
Linux 内核修改及静默启动
前言引用网友的的文字:Linux的图形界面实在是太耗资源了,同时开几个虚拟机感觉已经hold不住了,赶紧把这些Linux服务器的图形界面都关掉。CLI:command Line Interface,命令行界面。现在的Linux发行版默认登陆界面几乎都是默认为GUI界面,如果按照旧版本的修改inittab文件,在一些比较新的版本是没有这个文件的(Linux的启动服务机制发生改变)...原创 2019-05-22 15:48:55 · 1173 阅读 · 0 评论 -
Linux 虚拟机创建与Windows的共享目录
1. 首先在Windows下的磁盘中,创建一个目录2. 在虚拟机中选择共享目录3. 打开Linux虚拟机,并且安装VMware Tool 工具,并在桌面上生成一个磁盘的图标3. 双击该磁盘图标,会生成一个压缩包,并且解压该文件到桌面4.执行安装程序,首先要获取root 权限,遇见Yes的选Yes,遇见No的选择No,遇见提示信息,直接回车。...原创 2019-05-25 00:33:33 · 1055 阅读 · 0 评论 -
Linux 获取root权限
首次安装linux操作系统,一开始登录为普通用户,如果需要获取root用户权限,需要如下操作原创 2019-05-25 00:21:22 · 3834 阅读 · 0 评论 -
Unbuntu 虚拟机安装
1. 下载Ubuntuubuntu 14.04:http://mirrors.aliyun.com/ubuntu-releases/14.04/ubuntu 16.04:http://mirrors.aliyun.com/ubuntu-releases/16.04/ubuntu 18.04:http://mirrors.aliyun.com/ubuntu-releases/18.04...原创 2019-05-24 23:23:15 · 1193 阅读 · 0 评论 -
转发,在Linux下通过Wake On LAN实现网络唤醒远程开机
https://blog.csdn.net/fullbug/article/details/53197132详细介绍了Linux支持网络唤醒功能的技术实现转载 2019-05-24 13:52:32 · 1093 阅读 · 0 评论 -
lesson 1 . Linux 入门与实战
Linux 操作系统与驱动的关系应用程序——系统调用——内核空间——驱动程序——硬件对于大多数操作系统都具有多任务的特性,驱动程序需要考虑并发、阻塞的问题用户态和内核态,两者有一些指令运行上的限制,特殊指令只能在内核态运行。程序运行比如系统调用时需要先从用户态切换到内核态,调用结束后再切换回来,继续执行应用程序。/* driver module file*/#incl...原创 2019-04-09 23:47:51 · 124 阅读 · 0 评论 -
Linux下安装eclipse
1. 去官网上下载eclipse 软件和Java安装包https://www.eclipse.org/downloads/packages/2. 解压Java安装包3. 将JAVA的路径添加到系统环境变量中,通过/etc/profile进行配置4. 查看JAVA版本是否安装成功5. 解压下载OK的eclipse包,然后配置环境变量,启动ecli...原创 2019-04-13 00:07:31 · 2698 阅读 · 1 评论 -
在 Linux 虚拟机中手动安装 VMware Tools
参考VMware官网教程https://docs.vmware.com/cn/VMware-Workstation-Pro/15.0/com.vmware.ws.using.doc/GUID-08BB9465-D40A-4E16-9E15-8C016CC8166F.html对于 Linux 虚拟机,您可以从命令行手动安装 VMware Tools。对于更高版本的 Linux 发行版,...原创 2019-04-11 23:38:46 · 1479 阅读 · 0 评论 -
在虚拟机中新建VMTool 共享文件
1. 在虚拟机中进行设置,本地目录,参照如下进行设置2. 在虚拟机上找到相应的工具,已经提示下载成功3. 将该文件进行解压,如果提示磁盘只读,可以修改权限,如果还是无法解决,就将整个文件拷贝其它公盘进行解压4. 解压完成后,如下5. 下面就是进入解压后的目录,直接运行*** .pl文件,可以加sudo权限,也可以不加,只要一路点击Yes或者Enter即可...原创 2019-04-11 23:35:29 · 154 阅读 · 0 评论 -
Pstree
root@gpc:~# pstreesystemd─┬─ModemManager─┬─{gdbus} │ └─{gmain} ├─NetworkManager─┬─{gdbus} │ └─{gmain} ├─accounts-daemon─┬─{gdbus} │...原创 2019-04-10 19:52:52 · 111 阅读 · 0 评论 -
Unbuntu 下载地址
实测可以ubuntu 14.04:http://mirrors.aliyun.com/ubuntu-releases/14.04/ubuntu 16.04:http://mirrors.aliyun.com/ubuntu-releases/16.04/ubuntu 18.04:http://mirrors.aliyun.com/ubuntu-releases/18.0...原创 2019-03-21 20:03:43 · 2124 阅读 · 0 评论 -
Linux Shell case 语句使用方法
参考说明:https://www.runoob.com/linux/linux-shell-process-control.htmlShell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:case 值 in模式1) command1 command2 ... comma...转载 2019-05-31 11:28:24 · 2351 阅读 · 1 评论 -
C++ boost::interprocess::shared_memory_object 分析详解
关于C++ 使用boost库,创建进程间的共享内存,是一种常见的方式,需要注意的就是读写之间的的时间同步1. boost::interprocess::shared_memory_object 类// In header: <boost/interprocess/shared_memory_object.hpp>class shared_memory_object {...原创 2019-05-28 17:18:20 · 2819 阅读 · 0 评论 -
Ubuntu 搭建boost开发环境
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。一般的C++开发中,为了提高开发效率和代码的稳定性,经常用到Boost库。因此需要搭建Boost的开发环境。1. 下载boost库源码,选择linux平台,或者unixhttps://beta.boost.org/users...原创 2019-07-31 23:03:48 · 717 阅读 · 0 评论 -
Linux (Ubuntu)build the samba service
Base on the Vmware Unbutun system1. check the Linux IP2. install the samba3. edit samba/smb.conf file4. add the configure file5. creat the directory6. restart the sam...原创 2019-07-22 23:27:45 · 170 阅读 · 0 评论 -
Unbutu Instll source Insight
When use the Unbutn to do some deveopment , we may choose the IDE to edit the Code ,but which one is suit to yourself ?Maybe someone like Vim or Emacs, the other like the gedit , nano ,any IDE if yo...原创 2019-07-22 23:03:29 · 156 阅读 · 1 评论 -
Unbuntu交叉编译环境的搭建
文章参考诸多大神的帖子,基于此做验证测试:https://www.linuxidc.com/Linux/2011-04/34049.htm1. 安装基本的编译环境:2. 检查gcc, g++, make ,gdb 的安装情况3. 这个下载arm-linux-gcc压缩包的路径链接:https://pan.baidu.com/s/1_bH0raAvmE6Ph4QH1...原创 2019-07-29 23:10:07 · 585 阅读 · 0 评论 -
Linux VNC 设置
VNC 是一种软件的统称. 只要你的 Linux 架设好了一个服务器 (Server) 的 VNC, 客户端, 以下步骤可以利用VNC Viewer登录远程服务器。1.Linux服务器中VNC下载,执行:sudo apt-get install x11vnc.2. 利用windows电脑的远程登录,用Xrdp+Xvnc虚拟出一个display,并进入3)搜索并打开刚刚下载的x11v...原创 2019-07-29 10:28:33 · 1186 阅读 · 0 评论 -
Linux 修改时间
1. 查看当前时间date2. 修改时间sudo date -s "2019-07-29 09:40:00"3. 时间同步sudo hwclock -w原创 2019-07-29 09:49:17 · 90 阅读 · 0 评论 -
Linux xrdp 问题(解决远程访问失败问题)
开发中偶发机器无法远程登录服务器,本地启用mstsc连接失败,解决方法如下:查看xrdp状态,发现进程挂掉2. 查看主分区,发现主分区权限为只读,正常是读写权限3. 查看失败原因:分区挂载失败,导致远程失败4. 手动挂载主分区5. 重启xrdp,恢复正常...原创 2019-07-19 13:57:38 · 4579 阅读 · 0 评论