linux
birate_小小人生
专注,自信,坚持
展开
-
fedora 27 配置samba服务器
我配置的时候全程在root里面操作的:su - #进入root用户配置samba: 安装samba service yum install samba.service开始配置samba: smbpasswd -a -U your_username #设置登陆的用户名和密码,你可以运行 whoami 查看你的用户名 systemctl ena...原创 2018-04-09 13:31:27 · 2244 阅读 · 1 评论 -
进程和线程的主要区别(总结)
根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CP...转载 2018-12-06 22:37:27 · 408 阅读 · 0 评论 -
Linux网络概述
网络层协议第一部分为网络层协议。主要包括Internet协议(IP)、网际控制报文协议(ICMP)和地址解析协议(ARP):Internet协议(IP)该协议被设计成互联网分组交换通信网,以形成一个忘记通信环境。他负责在源主机和目的主机之间传输来自其较高层软件的称为数据报文的数据块,它在源和目的之间提供**非连接型传递服务。**只是封装和传递数据,但不向发送者或接收者报告包的状态,不处...原创 2018-12-09 22:48:43 · 240 阅读 · 0 评论 -
Linux网络编程基础
socket有三种类型:流式套接字(SOCK_STREAM),可以提供可靠的、面向连接的通讯流,它使用TCP协议。TCP保证了数据传输的正确性和顺序性。数据报套接字(SOCK_DGRAM)数据报套接字定义了一种无连接的服务、数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错,它使用数据报协议UDP。原始套接字(SOCK_RAW)原始套接字允许使用IP协议,主要用于新的网络...原创 2018-12-11 14:01:37 · 189 阅读 · 0 评论 -
TCP网络设计
基于TCP-服务器创建一个socket,用函数socket()绑定IP地址、端口等信息到socket上,用函数bind()设置允许的最大连接数,用函数listen()等待来自客户端的连接请求,用函数accept()收发数据,用函数send()和recv(),或者read()和write()关闭网络连接代码#include <stdlib.h> #include &...原创 2018-12-11 14:21:00 · 266 阅读 · 0 评论 -
UDP网络设计
基于UDP-服务器创建一个socket,用函数socket()绑定IP地址、端口等信息到socket上,用函数bind()循环接收数据,用函数recvfrom()关闭网络连接#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#inc...原创 2018-12-11 14:30:35 · 266 阅读 · 0 评论 -
Linux驱动第二篇-----内核模块解析
怎样把Linux内核编译成二进制文件呢,怎样剪裁呢。且听这节分享:这篇介绍: Kconfig 配置文件,Kconfig 文件是和编译的 Makemenuconfig 工具配合使用的。最后还需要掌握“.config”文件的作用内核下载:https://mirrors.edge.kernel.org/pub/linux/kernel/Linux 内核配置系统由三个部分组成1.Makefile...原创 2019-01-03 16:38:01 · 341 阅读 · 0 评论 -
Linux驱动第三篇-----把驱动编译到内核中
Linux 内核针对驱动的处理有以下两种方式:第一种方式:把所有需要的功能全部编译到内核中,这种方式会导致重新添加或者删除功能的时候,需要重新编译内核。第二种方式:动态的添加模块,也就是这个实验要介绍的“模块的方式添加驱动”。第二种方式请看第一篇这篇介绍怎么把功能全部都编译进内核里面:1. 首先配置编译器vim .bashrc”打开环境变量文件“.bashrc如下图所示,进入最底...原创 2019-01-03 17:09:52 · 3447 阅读 · 0 评论 -
Linux驱动第四篇-----设备注册
在soc系统中一个驱动对应一个设备,他们都是通过总线来进行匹配的,我们都知道,在linux系统中,把所有的东西都看成了文件。所以在soc系统中所有的设备和驱动都是文件,下面来一张图更好的说明这点。图的左边是设备,中间是总线,右边是驱动。注册一个设备或者是驱动时,就在链表中注册,然然后通过总线进行匹配有没有这个设备文件。在Linux 创立了一种虚拟总线,也叫平台总线或者 platform 总线,...原创 2019-01-05 13:45:24 · 1797 阅读 · 0 评论 -
Linux驱动第一篇-----最简单的内核模块
最简单的内核模块就是从Hello world开始的:首先看下Linux的内核结构再看下Linux目录结构:Linux内核源码采用树形结构。功能相关的文件放到不同的子目录下面,使程序更具有可读行arch目录– arch目录是平台目录。内核支持的所有CPU架构,在该目录下都有对应的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别控制系统引导,...原创 2019-01-02 21:40:34 · 936 阅读 · 0 评论 -
Linux进程通讯-消息队列
unix早期通信机制之一的信号能够传送的信息量优先,管道则只能传送无格式的字节流,这无疑会给应用开发带来不便。消息队列(也叫做报文队列)则克服了这些缺点。消息队列就是一个消息的链表。可以把消息看做一个记录,具有特定的格式。进程可以向中按照一定的规则添加新消息;另一些进程可以从消息队列中独走消息。 目前主要有两种类型的消息队列:POSIX(可移植的操作系统接口)消息队列以及系统V消息队列,系统V消...原创 2018-12-03 15:28:11 · 614 阅读 · 0 评论 -
Linux多线程
创建线程#include <pthread.h>int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,void *(*start_rtn)(void),void *arg)tidp:线程idattr:线程属性(通常为空)start_rtn:线程要执行的函数arg:start_rtn的参数编译的时候需要加...原创 2018-12-08 15:33:05 · 124 阅读 · 0 评论 -
Fedora27关闭防火墙和SELinux
1.先关闭防火墙:systemctl stop firewalld 之后会输入用户密码2.查看防火墙的状态systemctl status firewalld 之后会看到firewalld的状态Active:inactive3.打开防火墙systemctl start firewalld4.禁用防火墙systemctl disable firewalld 关闭SELinux服务,需要修改/e...原创 2018-03-27 13:08:30 · 2882 阅读 · 0 评论 -
Linux的文件IO使用
欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体...原创 2018-11-21 22:12:27 · 497 阅读 · 0 评论 -
Untuntua start job is running for dev-disk-by启动错误
和虚拟机Ubuntu16.04无法进入图形界面The system is running in low-graphics mode问题第一个 Untuntua start job is running for dev-disk-by启动错误Timed out waiting for device dev-disk-by<disk-partition-uuid>Denpenden...转载 2018-11-24 13:08:31 · 941 阅读 · 0 评论 -
Linux进程通信
目的为什么进程间需要通信?1.数据传输一个进程需要将它的数据发送给另一个进程2.资源共享多个进程之间共享同样的资源3.通知事件一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件4.进程控制有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变现在Linux使用的进程间通信方式包括:1、管道...原创 2018-12-02 11:39:04 · 135 阅读 · 0 评论 -
Linux进程通信--无名管道(pipe)和有名管道(FIFO)通信
管道通信管道是单向的、先进先出的,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的尾部写入数据,另一个进程(读进程)从管道的头部读出数据管道创建管道包括无名管道和有名管道两种,前者用于父进程和子进程的通信,后者可用于运行于同一系统中的任意两个进程间的通信。无名管道由pipe()函数创建:int pipe(int filedis[2]);当一个管道建立时,它会创...原创 2018-12-02 13:28:32 · 407 阅读 · 0 评论 -
Linux进程通信-信号通讯
信号(signal)机制是unix系统中最为古老的进程间通讯机制,很多条件可以产生一个信号:1、当用户按某些按键时,产生信号2、硬件异常产生信号:除数为0、无效的存储访问等等。这些情况通常由硬件检测到,将其通知内核,然后内核产生适当的信号通知进程,例如:内核对正访问一个无效存储区的进程产生一个SIGSEGV信号。3、进程用kill函数将信号发送给另一个进程4、用户可用kill命令将信号发送...原创 2018-12-02 14:46:12 · 212 阅读 · 0 评论 -
Linux中的进程管理
我们先来看下基本概念:1.进程进程是一个具有一定独立功能的程序的一次运行活动特点:动态性、并发性、独立性、异步性下面是系统的几个状态一开始的程序都处于就绪状态。2 进程ID进程ID(PID):标识进程的唯一数字父进程的ID:PPID启动进程的用户ID:UID3.进程互斥进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等...原创 2018-11-29 17:38:33 · 123 阅读 · 0 评论 -
Linux进程通信-共享内存
共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。创建共享内存分为两个步骤:1、创建共享内存,使用shmget函数2、映射共享内存,将这段创建的共享内存映射到具体的空间去,使用shmat函数创建int shmget(key_t key,int size,int shmf...原创 2018-12-02 15:17:44 · 345 阅读 · 1 评论 -
Linux中的时间函数
Linux 中常用的函数有以下函数 sleep、usleep、ndelay、udelay、mdelay 等Linux 系统编程下用到的延时函数在头文件“#include <unistd.h>”中,包括函数 sleep、usleep。Linux 内核中用到的延时函数在“#include <linux/delay.h>”中,包括函数 ndelay、udelay、mdelay...原创 2018-11-28 18:18:33 · 592 阅读 · 0 评论 -
Linux驱动第五篇-----驱动注册和生成设备节点
加载驱动的指令是:insmod xx.ko查看驱动的指令是: lsmod卸载驱动的指令是:rmmod xx在include/linux/platform_device.h这个文件中定义了平台驱动注册和卸载文件函数platform_driver_register 和 platform_driver_unregister 函数这个两个函数参数调用了结构体platform_driver...原创 2019-01-08 14:01:30 · 2570 阅读 · 0 评论