
Linux学习
自己的Linux、Linux编程、ARM+Linux学习的笔记及在学习中遇到的问题的解决
爱吃肉的大高个
执着于单片机应用、电子设计大赛、嵌入式开发的有理想的咸鱼
邮箱 gyyjx123024@gmail.com
展开
-
《Linux内核设计与实现》读书笔记:进程调度
多任务系统可划分为:非抢占式多任务和抢占式多任务,区别在于能否发生抢占动作2.5内核开始使用O(1)调度程序,使用了静态时间片算法和针对每一处理器的运行队列该调度算法对于调度那些响应时间敏感(交互进程)的程序先天不足2.6.23内核开始使用“反转楼梯最后期限算法”(RSDL)替代了O(1)算法,它被称为“完全公平调度算法”策略 IO消耗性和处理器消耗性进程 前者...原创 2019-03-08 08:53:13 · 1297 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记:内核简介及进程
前言 开始学习内核了,第一本内核书籍选取了《Linux内核设计与实现》这本书,这本只有300多页的薄薄的书当然是不能涵盖所有内核知识的,但是它的作用是一本提纲掣领为以后的内核学习理顺思路的书籍,里面涉及的东西很多,但是又讲得较浅,初学者好理解,是一本不错的入门书籍。第一章 Linux内核简介 Unix的几个特点 系统调用少 所有东西被当做...原创 2019-03-07 19:33:36 · 1925 阅读 · 0 评论 -
使用阿里云服务器进行frp内网穿透
开学打算在实验室用树莓派配置Gogs服务器,有一个重要的设计要求就是可以实现外网访问,这样就必须进行内网穿透了,开网上的frp的配置和使用是十分的简单,但是我配置了是咋都连不上。。。但最后还是解决,发现是安全组设置的坑,以下就是我的配置流程。 一、首先安装frp并对服务器和客户端进行配置 1、下载wget https://github.com/fatedier/f...原创 2019-02-23 21:19:21 · 10417 阅读 · 2 评论 -
4412开发板学习之Linux系统编程(三):串口编程实战
前言 串口是我们特别常用的一个通讯接口,在Linux下的串口编程使用的就是文件IO的操作,所以说这次来进行串口的应用编程,实现发送接收功能实战Linux串口编程 在单片机串口编程中,需要用户直接对寄存器以及中断进行控制 而在Linux串口编程中,无论是官方直接下载的原生内核还是厂家提供的Linux内核都会将串口驱动写好,所以不需要自己写串口驱动 Linu...原创 2019-03-04 21:01:08 · 3588 阅读 · 0 评论 -
4412开发板学习之Linux系统编程(二):文件IO及字符设备控制
前言 Linux的核心就是一切皆文件,所以Linux下的文件编程至关重要文件IO 普通的IO操作一般会被内核缓存,这种IO被称作缓存IO Linux提供了一种文件访问机制:不经过操作系统内核的缓存,数据直接在磁盘和应用程序地址空间进行传输,该文件访问的机制称作为直接IO,直接IO是一种非常高效的手段 Linux中IO的概念介绍 所有的IO...原创 2019-03-04 20:48:09 · 1794 阅读 · 0 评论 -
4412开发板学习之Linux系统编程(一):最小Linux系统的搭建、tftp服务器搭建与测试、搭建NFS文件系统
前言 Linux系统编程是嵌入式从业人员至关重要的技能,无论是应用工程师还是驱动工程师都应该熟练的掌握Linux编程,我也会话更多的时间再它的学习上,通过阅读讯为的《Linux系统编程》以及《Unix环境高级编程》(APUE)来进一步的学习。 今天搭建了最小Linux系统;搭建并测试了tftp服务器,便于虚拟机与开发板的文件传输;搭建了NFS根文件系统,更加方便了学习与调试的过...原创 2019-03-03 22:19:11 · 1991 阅读 · 0 评论 -
4412开发板学习之入门体验:前言及编译烧写安卓4.0.3
前言 在赶开学的时候买了迅为家的iTop4412开发板,4412是三星的SOC,2012年的产品,曾用在自家旗舰机S3上,魅族等品牌也推出过搭载该SOC的机型,可以说是经历了重重考验,六七年来也有许多的厂商开发了开发板及学习板,资料丰富,同时四核A9,1.4GHZ的主频,可以说是32位ARM的巅峰之作了,再往后的就是64位的ARM芯片了,同时支持双通道DDR3内存、支持电源管理、Mali...原创 2019-03-03 21:56:11 · 1682 阅读 · 0 评论 -
Linux编程学习笔记:网络编程
一、Linux网络概述 Linux为用户提供了完善的、强大的网络功能 1、完善的内置网络,其他操作系统不包含如此紧密的和内核结合的网络部分 2、Linux免费提供了大量支持Internet的软件,Internet是在Unix领域中建立并繁荣起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信 3、用户...原创 2019-02-03 22:34:17 · 3483 阅读 · 0 评论 -
Linux编程学习笔记:多线程编程
一、线程理论基础 优点: 1、非常‘节俭’的多任务操作方式,在Linux系统中,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表类维护它的代码段、堆栈段和数据段,只是一种“昂贵”的多任务工作方式 运行一个进程中的多个线程,他们之间使用相同的地址空间,而且线程间彼此切换所需的时间也远远小于进程间切换所需要的时间,约为进程开销的1/30 2、线程间方...原创 2019-02-02 18:45:14 · 2063 阅读 · 0 评论 -
Linux编程学习笔记:进程间通信(消息队列和信号量)
一、消息队列 定义 Unix早期通信机制之一的信号能够传送的信息量有限,管道则只能传送无格式的字节流,这给程序开发带来了不便,消息队列(也叫作报文队列)则客服了这些缺点 消息队列就是一个消息的链表,可以把消息看做一个记录,具有特定的格式,进程可以向中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息 分类:POSIX消息队列和系统...原创 2019-02-02 14:06:08 · 1710 阅读 · 0 评论 -
Linux编程学习笔记:进程间通信(管道、信号、共享内存)
一、概述 目的 1、数据传输 2、资源共享 3、通知事件 4、进程控制 Linux进程间通信(IPC)由几步发展而来:UNIX进程间通信、基于System V进程间通信、POSIX进程间通信 POSIX 可移植操作系统接口,最初是为了提高UNIX环境下应用程序的可移植性,然而POSIX并不局限于LINUX,其他...原创 2019-02-01 18:30:00 · 1972 阅读 · 0 评论 -
Linux编程学习笔记:进程控制
一、进程控制理论基础 进程是一个具有一定独立功能的程序的一次运行活动 特点: 动态性、并发性、独立性、异步性 进程ID(PID):标识进程的唯一数字 父进程ID(PPID) 启动进程的用户ID(UID) 进程互斥:当有若干进程都要使用某一共享资源时,任何时间最多允许一个进程使用,其他要使用资源的进程必须等待,...原创 2019-01-31 16:47:45 · 1671 阅读 · 0 评论 -
Linux编程学习笔记:文件、时间编程
一、系统调用-文件访问 Linux中文件编程可以使用两种方法 Linux系统调用 C语言库函数 前者依赖LInux系统,后者与操作系统独立,在任何操作系统下库函数操作文件的方法都是相同的 创建 int creat(const char *filename,mode_t mode) filename...原创 2019-01-30 20:49:25 · 1662 阅读 · 0 评论 -
Linux编程学习笔记:Linux编程基础
一、GCC程序编译 GCC是GNU推出的功能强大、性能优越的多平台编译器,gcc可以在多种硬件平台上编译出可执行程序 能将C、C++、汇编编译链接成可执行文件 Linux没有文件后缀,而是看属性来判断能否执行 hello world例程#include <stdio.h>void main(){ ...原创 2019-01-30 12:24:57 · 1772 阅读 · 0 评论 -
Linux学习笔记:进程管理
一、什么是进程 在Linux系统中:触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,成为PID,同时依据启动这个进程的用户与相关属性关系,给予这个PID一组有效的权限设定 如何产生进程:执行一个程序或指令 程序放在实体磁盘当中,然后透过使用者的执行来触发,触发后会加载到内存中成为一个个体,那就是进程,为了操作系统可管理这个进程...原创 2019-02-11 11:28:40 · 2126 阅读 · 0 评论 -
Linux学习笔记:Linux账号管理与ACL权限设定
一、Linux的账号与群组 使用者标识符UID与GID 使用者ID(User ID) 群组ID(Group ID) 文件利用UID与GID来判别它的拥有者和群组 使用者账号 登入主机的流程 (1)在/etc/passwd中找寻是否有你的账号,如果有的话将账号对应的UID与GID(在/etc/gro...原创 2019-01-30 08:40:58 · 1787 阅读 · 0 评论 -
Linux学习笔记:Shell脚本学习
一、什么是Shell Scripts 利用Shell的功能所写的一个程序,使用纯文本文件,将一些shell的语法与指令(含外部指令)写在里面,搭配正则表达式、管线命令与数据流重导向功能,以达到我们所想要的处理目的 就像是DOS年代的批处理文件(.bat) 为什么要学习: 自动化管理的重要依据 追踪和管理系统的重要工作 ...原创 2019-01-28 18:05:06 · 1895 阅读 · 0 评论 -
Linux间Samba共享及文件夹挂载
Samba不仅仅可以用于Linux与Windows之间的文件共享,也可以用于在Linux与Linux之间进行文件的共享,是一个功能十分强的工具,可以将共享文件夹直接挂载,就像是访问u盘一样来访问共享文件夹,十分便捷。 首先需要安装cifs-utils:sudo apt-get install cifs-utils 然后可以在/mnt/下新建一个文件夹来进行挂载(也...原创 2019-01-23 21:42:10 · 7240 阅读 · 0 评论 -
Samba服务器的配置与使用
一、简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,SMB(Server Message Block)服务器消息块 Samba最大的功能是可以用于Linux与windows系统直接的文件共享和打印共享,既可以用于Windows与linux之间的文件共享也可以用于linux与linux之间的资源共享 基于客户机/服务器的协议,因而一台S...原创 2019-01-23 17:15:14 · 32848 阅读 · 2 评论 -
Linux学习笔记:正则表示法与文件格式化处理
一、正则表示法 什么是:正则表示法是处理字符串的方法,是以行为单位来进行字符串的处理行为,透过一些特殊符号的辅助,可以让使用者轻易达到搜寻、删除、取代某特定字符串的处理程序 正则表示法只是一种表示法,只要工具程序支持这种表示法那么该工具程序就可以用来作为正则表示法的字符串处理之用,例如:vi\vim、grep、awk、sed等,如果不支持正则表示法,例如:ls、cp就只能使用b...原创 2019-01-22 11:09:01 · 1873 阅读 · 0 评论 -
Linux学习笔记:认识和学习BASH
一、认识BASH bash是GNU计划中的重要的工具软件之一 LInux发行版本的标准shell bash兼容于sh 命令记忆功能,存放在家目录的.bash_history中(是个隐藏文件),只记录前一次登录以前执行过的指令,这一次登录执行的指令都暂存在内存中,成功注销系统后指令才会记录到.bash_history 别名设定功能 alias...原创 2019-01-19 09:10:06 · 1655 阅读 · 0 评论 -
Linux学习笔记:文件与文件系统的压缩、打包和备份
一、压缩 压缩、解压缩、压缩比 常见的压缩文件扩展名 打包软件tar:将很多文件集结成一个文件 应用度最广的压缩指令gzip 能解开compress、zip和gzip等软件压缩的文件 压缩后的文件为*.gz (ls -ldSr按文件大小从小到大列出) -v:显示压缩比等信息 -#:#为数字表示压缩...原创 2019-01-15 17:36:26 · 2733 阅读 · 0 评论 -
Linux学习笔记:Linux磁盘与文件系统管理
一、磁盘组成磁盘分区表主要有两种格式:MBR和GPT MBR分区表中第一个扇区最重要,里面有主要开机区(MBR)及分区表(partition table),MBR占446KB,partition table占64b GPT分区表除了分区数量扩充较多之外,支持的磁盘容量也可以超过2T实体磁盘/dev/sd[a-p] 分区槽+[1-128]虚拟机磁盘/dev/vd[a-...原创 2019-01-13 21:53:51 · 1633 阅读 · 0 评论 -
Ubuntu及Debian下挂载U盘及exFat文件系统U盘无法挂载的解决
最近开始使用Linux平台,主机使用的是Ubuntu 16.04的版本,树莓派上使用的是基于Debian的Raspbian,本来使用U盘是一个很简单很方便的事情,在Windows上面插上就能使用,点开就能操作,但是在Linux平台我却遇到了不少麻烦,由于我的U盘是exFat的文件系统(可能是那次装完双系统以后格式化手滑了)在俩个系统都是不能自动挂载的,而且按照常规的挂载方法也是无法挂载,经...原创 2018-11-27 19:14:41 · 8663 阅读 · 0 评论 -
Windows 10与UBuntu双系统安装Easy BCD不可用解决方法
在安装双系统的时候在网上的教程看的方法是使用Easy BCD更改启动设置,但是在我的机子上Easy BCD无法在添加新条目中添加Linux系统 如下图: 原因:BIOS(MBR)升级到UEFI(GPT)后,微软就不支持那些legacy和非微软签名的内核的操作系统从BCD目录启动了,也就是微软在限制你只能使用它的操作系统。。。 解决方案:使用Easy UEF...原创 2018-10-07 22:24:31 · 10523 阅读 · 4 评论