linux操作系统
linux操作系统使用的问题
fxfreefly
注重技术落地的应用型工程师
展开
-
CRC校验的原理及实现方法
一、CRC校验介绍原创 2020-12-11 19:07:20 · 19864 阅读 · 3 评论 -
Ubuntu系统svn的安装及常用命令说明
1、安装 svn客户端 使用命令sudo apt-get install subversion,然后根据提示一步一步,就完成了 svn的安装。2、建立svn文件夹 在合适的位置建立一个文件作为svn的工作文件夹。3、检出进入到上一步建立的文件夹下,使用命令svn checkout svn://192.168.32.13/project/mine_truck_auto_driving_system来检出文件,按照提示输入用户名和密码,可以实现检出。4、添加文件要...原创 2020-10-10 14:56:05 · 490 阅读 · 0 评论 -
嵌入式Linux系统uart串口编程详解及实例分析
近来在一个项目开发中,在一个新的硬件平台下的linux系统,使用uart串口进行通讯,结果通讯不畅。代码是以前在其他硬件平台下验证完全没问题的代码,为什么会出问题呢?经过各方面查资料,最终定位为uart串口初始化的问题。在linux系统下,串口的初始化比较复杂,需要设置的东西比较多,如果有一些默认的配置与硬件和应用程序不匹配,而又没有重新配置,就会导致通讯失败的情况。经过对linux系统下串口初始化的进行了整理梳理,最终解决了问题。记录这批位置可以为其他小伙伴提供参考。一、termios...原创 2020-07-30 12:29:25 · 3410 阅读 · 0 评论 -
如何实现ubuntu虚拟机与windows系统之间复制粘贴
在使用ubuntu虚拟机时,有时需要在虚拟机与windows系统之间进行文件或者字符串的复制和粘贴。比如:某个文件在主机上,但是开发时需要在虚拟机中使用,需要把这个文件导入到虚拟机中。其实这个功能通过简单的复制粘贴就可以实现。但是新安装的虚拟机往往不支持该功能。需要进行配置。首先,执行下面的命令 sudo apt-get autoremove open-vm-tools...原创 2020-02-24 16:07:25 · 16883 阅读 · 18 评论 -
如何在ubuntu系统中搭建nfs服务器
摘要:NFS,Network file system,即网络文件系统,它允许网络中的计算机共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NF...转载 2020-02-09 16:03:51 · 641 阅读 · 0 评论 -
字符设备驱动例程分析(附源码)
在linux系统应用中,设备驱动程序编写是比较困难的,初学者往往摸不着头绪。在这片文章中,我给大家讲解一个实例,带大家进行一步一步的分析字符设备驱动程序的编写方法。1、功能实现 首先我们先来介绍一下,我们用这个实例来做什么。我们做的这个驱动程序的作用是将用户空间的一块1KByte的内存模拟成一个设备,并设计了这个设备的打开、关闭、读写等功能的驱动,并用一个应用程...原创 2020-01-29 23:15:01 · 1012 阅读 · 0 评论 -
mmap函数的用法详解及实例分析
1、mmap函数是一个比较神奇的函数,它可以把文件映射到进程的虚拟内存空间。通过对这段内存的读取和修改,可以实现对文件的读取和修改,而不需要用read和write函数。如下图所示,为mmap实现原理的示意图。在这个图中,off为映射的部分在文件中的偏移量,len为映射的长度。2、下面我们来看一下mmap函数的原型void *mmap(void *addr, size_t len,...原创 2020-01-29 12:21:56 · 21226 阅读 · 5 评论 -
linux系统下timer的用法详解
我们在写程序时,很多时候希望程序能够按照固定的周期执行。比较笨的办法是用一个while(1)循环,在循环里用一个sleep或者usleep函数延时,延时到一定时间执行需要执行的代码。这种方法忽略了程序代码运行的时间,所以程序循环的时间就不准了。为了能够活动比较准的定时时间,可以使用timer模块。 timer模块的使用方法有2种比较常用的的用法,一种是产生新线程的...原创 2020-01-28 23:42:01 · 3514 阅读 · 1 评论 -
select函数用法详解,及实例分析
select函数是系统调用函数,用于多路监控。当没有一个文件满足要求时,select将阻塞调用进程。在有些情况下,采用select函数可以大大简化程序结构。比如一个系统有10个输入设备,如果想实时读取这10个设备的输入数据,就比较困难,采用查询方式,显然达不到实时的目的;或者可以为每一个设备设计一个线程,每个线程实时对设备的输入进行读取,这样会使程序异常复杂,数据的交互也很混乱。有...原创 2020-01-27 20:57:42 · 7775 阅读 · 0 评论 -
open与fopen,read与fread,write与fwrite函数的区别
在linux系统中,open与fopen,read与fread,write与fwrite函数有着类似的功能,分别是打开文件、读取文件和写入文件的作用,但是他们之间的却别是什么呢? 由于这3组函数的差别方面是一样的,所以我们以read和fread为例进行说明1、首先,fread是ANSI的C标准库函数,而read是linux系统的系统调用函数。fread更加通用...原创 2020-01-27 18:03:16 · 1126 阅读 · 0 评论 -
在ubuntu体统中,搜狗输入法乱码的解决办法
在ubuntu 系统中,在安装了搜狗输入法之后,有的时候好用,有的时候输入的时候,本该显示备选汉子的位置显示的都是乱码,没法正常显示汉子。有的时候重启系统又好用了,有的时候需要反复重启好几次才能用一直比较困扰。 经过查找资料,发现了解决办法。cd ~/.configsudo rm -rf SogouPY* sogou*在终端中执行上面两条命令,再重启...原创 2020-01-27 09:04:25 · 634 阅读 · 0 评论 -
linux系统中copy_to_user()函数和copy_from_user()函数的用法
在编写linux驱动程序的时候会用到copy_to_user()和copy_from_user()这两个函数。那这两个函数的作用是什么呢?为了便于理解,我们先来了解一下用户空间和内核空间。 在linux系统中,每个进程的运行空间分为内核空间和用户空间。之所以划分成这两个空间,是因为在 CPU 的所有指令中,有些指令是非常危险的,如果错用,将导致系统崩溃,比如清内存...原创 2020-01-26 19:03:03 · 14510 阅读 · 0 评论 -
linux系统的内核空间与用户空间理解
在linux系统中,每个进程的运行空间区分内核空间和用户空间。1、内核空间和用户空间的定义 对于 32 位的操作系统,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核,它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作...原创 2020-01-26 18:44:07 · 1173 阅读 · 0 评论 -
linux系统是如何通过相同的系统调用函数实现对不同设备进行操作的
在linux系统中,可以采用open()、read()、write()函数对不同的设备进行访问。比如我们可以用read()来读取一个c文件中的数据,也可以用read()来读取串口发送来的数据。然而c文件和串口的结构显然是不同的,linux是如何通过同一个read()函数来实现不同类型的设备的读取的呢? 首先我们来看一下linux系统设备访问的机制,我们以最常用的字符...原创 2020-01-26 10:22:55 · 293 阅读 · 0 评论 -
内核模块开发中__init和__exit的作用
在内核模块的代码中,经常会用到__init和__exit,如下面的代码static int __init test_init(void){ return 0;}static void __exit test_exit(void){}这两个函数分别是内核模块的初始化和退出的代码。__init和__exit的作用是告诉编译器将这些函数或者数据放入相应的代码段。使...原创 2020-01-25 10:15:51 · 863 阅读 · 0 评论 -
linux系统中如何关闭后台运行的进程
在linux系统中,关闭某个进程的命令是kill,后边需要加进程的进程号。但是关闭进程需要知道进程的进程号,那么怎样才能知道进程的进程号呢?可以使用下面的命令来查看。ps aux执行了这个命令之后,可以看到所有正在运行的进程,格式如下所示USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAN...原创 2020-01-24 07:37:29 · 15604 阅读 · 0 评论 -
什么是软连接,以及软连接在linux系统中的用法
软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。软连接类似与c语言中的指针,传递的是文件的地址;更形象一些,软连接类似于WINDOWS系统中的快捷方式。 例如,在a文件夹下存在一个文件hello,如果在b文件夹下也需要访问hello文件,那么一个做法就是把hello复制到b文件夹下,另一个做法就是在b文件夹下建立hello的软...原创 2020-01-23 21:35:08 · 16154 阅读 · 0 评论 -
Linux系统的复制cp和移动mv的常用命令
linux系统下复制文件或文件夹使用的命令是cp,cp命令相关的参数比较多,我们可以采用下面的命令来查看cp命令的帮助文档man cp执行这个命令之后,发现相关的参数很多。实际上这些参数绝大部分是不常用的,下面我们来介绍几个常用的使用方法。1、复制文件cp path1/a.c path2 这个命令将path1路径下的a.c文件复制到path2路径下,并且...原创 2020-01-23 11:37:33 · 674 阅读 · 0 评论 -
linux内核模块简单例程及编译内核模块的Makefile详解
内核模块相当于是内核的补丁,可以在内核运行时安装到内核之中。如下面一个简单的hello.c,它是一个内核模块的源码。#include <linux/module.h>#include <linux/init.h>static int __init hello_init(void){ printk(KERN_EMERG "Hello world!\...原创 2020-01-22 10:41:25 · 1093 阅读 · 0 评论 -
配置linux内核执行make menuconfig时的若干问题
研究linux内核是一个采坑不断的过程。从配置内核就会遇到各种问题。对于初学者可能就是束手无策了,大大影响学习的积极性以及学习进度。下面对一些常见的问题进行解释。 首先,要配置内核,就需要先下载一个内核版本。可以从官网上下载,http://www.kernel.org,解压之后,进入到内核的目录下。比如我的目录是/home/fxfreefly/Documents/kern...原创 2020-01-19 14:02:00 · 2566 阅读 · 1 评论