Linux
文章平均质量分 50
ソフト開発王さん
从工商管理转行计算机,有点经验,仍在奋斗。
展开
-
kmalloc和vmalloc的不同
概述kmalloc/vmalloc获取虚拟地址,但它们具有以下差异。kmallockmaloc以对象为单位(SLAB)获取。该缓存是以8,16,32,…4096,8192大小创建的,用于kmaloc,并获取参数指定大小的相应SLAB。[ root@localhost kitamura]# cat /proc/slabinfo | grep kmallocdma-kmalloc-4096 0 0 4096 dma-kmalloc-2048 0原创 2021-03-11 16:54:27 · 643 阅读 · 0 评论 -
Linux进程间通信
概述Inter Process Communication(IPC)是指在作为程序执行单位的进程之间进行的数据交换。进程的依赖由操作系统管理,以便尽可能松散耦合。因此,IPC必须通过Linux操作系统的功能完成。操作系统提供给进程的数据交换方法不止一种。提供了各具特色的丰富多彩的方法。这里介绍的有以下5个。共享内存信号量Map内存管道(Pipe)socket 通信共享内存优点进程之间共享相同的内存。共享内存的最大优势在于其访问速度。一旦生成共享内存,就可以在不使用内核功能的情况下进行原创 2021-03-01 14:27:56 · 132 阅读 · 0 评论 -
volatile修饰符
什么是volatile修饰符如果加上volatile修饰符进行变量声明的话,那个变量就会从最优化的对象中除去,不再进行分配给寄存器的最优化等。在对volatile指定的变量进行操作时,必须从内存中读取值,然后在操作后将值写入内存。另外,volatile指定变量的访问幅度也不会改变。未指定volatile的变量通过优化分配给寄存器,从内存中加载变量的代码可能会被删除。另外,将相同的值代入volatile未指定的变量时,有时会被解释为冗长的命令,通过优化删除命令。特别是,对于访问外围I/O寄存器的变量,在原创 2021-03-01 09:37:33 · 292 阅读 · 0 评论 -
Linux学习之start_kernel()概述
start_kernel()内容\linux-4.18\init\main.casmlinkage __visible void __init start_kernel(void){ char *command_line; char *after_dashes; set_task_stack_end_magic(&init_task); smp_setup_processor_id(); debug_objects_early_init(); cgroup_init_early原创 2021-02-26 11:21:38 · 895 阅读 · 0 评论 -
Linux C语言中的Segmentation fault错误
Segmentation faults主要的原因有・内存访问违规行为・无限or过深的递归处理调查方法可以使用core dump所谓core dump,是指在执行中的程序因错误而强制结束时,将当时程序使用的存储器空间的内容全部复制并保存在文件中的内容。用于调试工作。例子#include <stdio.h>#include <string.h>#define FNAME "/home/work/coredump/aaa/xxxxxxxxxxxxxxxxx原创 2021-02-26 11:17:51 · 1392 阅读 · 0 评论 -
复制重叠的内存
原因各种各样的标准库函数在将字节序列从一个存储区复制到另一个存储区的作用之中。 当源区域和目标区域重叠时,这些功能大多数都具有不确定的行为。#include <string.h> /* for memcpy() */char str[19] = "This is an example";memcpy(str + 7, str, 10);尝试复制10个字节,其中源存储区和目标存储区重叠三个字节。 可视化: overlapping area原创 2021-01-29 17:56:46 · 427 阅读 · 0 评论 -
MISRA-C 2019
检查器代码描述默认严重性默认情况下是否启用?已创建已修改ABV.ANY_SIZE_ARRAY缓冲区溢出 — 数组索引超出边界1falsePre-9.29.5ABV.GENERAL缓冲区溢出 — 数组索引超出边界1true9.610.1、10.3、10.4、11.0、11.1、11.2, 2017.3ABV.ITERATOR缓冲区溢出 — 数组索引可能超出边界1truePre-9.29.5、10.3ABV.MEMBER缓冲区溢出 —...原创 2021-01-29 17:27:56 · 1021 阅读 · 1 评论 -
MISRA-C 2020
检查器代码描述默认严重性默认情况下是否启用?已创建已修改ABV.ANY_SIZE_ARRAY缓冲区溢出 — 数组索引超出边界1falsePre-9.29.5ABV.GENERAL缓冲区溢出 — 数组索引超出边界1true9.610.1、10.3、10.4、11.0、11.1、11.2, 2017.3ABV.ITERATOR缓冲区溢出 — 数组索引可能超出边界1truePre-9.29.5、10.3ABV.MEMBER缓冲区溢出 —...原创 2021-01-29 17:20:23 · 1019 阅读 · 1 评论 -
嵌入式开发基础从启动例程到硬件之内存和端口
内存和端口概述CPU和设备是如何连接的?概述计算机擅长逻辑性的处理。按照存储在内存中的命令,进行计算和判断。但是,与包括人与人的对话在内的外部世界的交换,仅仅通过内存连接是不能实现的。在嵌入式机器中,您必须控制外围设备(I/O:input/output)。也就是说,驱动电机、鸣响蜂鸣器和读取开关的状态。在这里,让我们来看看计算机是如何操纵逻辑世界,以及外面的世界的。CPU和设备是如何连接的?计算机由CPU和设备(内存和I/O)组成。CPU可以指定带有地址(地址)的地方的内容,以便进行读、写和(访问)原创 2020-11-22 13:57:19 · 225 阅读 · 0 评论 -
微型计算机之GPIO
单靠CPU和内存是不能动的!利用微型计算机所必须的“周边机能”是指?进行电子设备控制的微型计算机由CPU、存储器、周边功能构成(图1)。CPU根据指令(程序)进行运算、数据读写、条件判断等。在内存中存储(存储)该程序。周边机能是方便使用微型计算机的各种机能。例如,为了与CPU交换外部传感器和交换机等信号,需要周边机能“输入/输出端口(I/O端口)”。此外,将模拟输入信号转换为数字值的“A/D转换器”和反过来将数字值转换为模拟输出信号的“D/A转换器”是微型计算机处理各种信号必不可少的周边机能。另外原创 2020-10-19 19:07:36 · 296 阅读 · 0 评论 -
BSP(Board Support Package)学习之硬件资源管理
硬件资源管理从应用程序中看到的内核管理硬件信息从用户应用程序看硬控制装置进程信息和设备信息您可以在不通过设备驱动程序的情况下与内核对话通过伪文件,你可以看到文件访问感觉的硬件信息展示过程信息的机制…/proc文件系统进程以外的内核内部信息也存储在/proc中展示设备相关信息的机制…/sys文件系统物理内存信息不能直接从应用程序接触硬件也是一种障碍如何直接从应用程序访问内核空间…Mmap()系统调用要使用mmap(),物理内存中需要连续的空闲空间硬件资源共享管理(排他控制)信息在同时运行多个程序的Linux环原创 2020-10-13 16:07:04 · 588 阅读 · 0 评论 -
SAN/NAS(和服务器的连接)
连接方法与服务器的连接主要包括SAN和NAS。SAN:通过专用光纤通道连接服务器存储(FC-SAN)SAN是Storage Area Network的缩写。专用于块存储的高速网络。特长连接光纤通道(FC)和存储和多个服务器基于块的数据传输优点可实现高速数据传输(4Gbps、8Gbps),而不会对现有网络带宽造成负载用途面向要求高性能、高信任的数据库和关键业务NAS:将存储直接连接到网络和数据共享NAS是Network Attached Storage的缩写。存储是文件存储,连接原创 2020-10-07 18:26:47 · 2309 阅读 · 1 评论 -
内核空间,用户空间,系统调用三者之间的关系
内核空间,用户空间,系统调用内核在OS启动时部署在内存上称为“内核空间”的区域中并运行,但其他程序在称为“用户空间”的内存区域中运行。Shell也在“用户空间”中运行,从shell调用的程序(命令)也在“用户空间”中运行。这是一个通过分离来保护内核的结构。用户空间上的进程访问内核空间的手段是“系统调用”。正在运行的程序(=进程)可以在自己的内存区域内自由使用(不通过内核),但是在向HDD写入或通过NIC进行网络通信等,在向自己的内存外发送信息时,会问内核。但是,如果进程可以任意处理内核的请求内容,就原创 2020-10-06 15:32:26 · 898 阅读 · 0 评论 -
关于CPU的核心和线程与进程的不同
关于CPU的核心和线程与进程的不同cpu核心进程和线程之间的区别单线程和多线程CPU的指令集架构cpu核心最近的CPU,一个CPU插座有多个核心(实际进行处理的零部件)。例如,在名为Intel Xeon E5-2643V4的CPU中,核心数为6。CPU核心是指实际进行命令的部件,在SMT登场前。“CPU核心数=可以同时执行的指令数”。正在运行的程序称为“进程”,进程具有一个或多个“线程”。由于这个线程给CPU核心指令,所以CPU核心的数量=可以同时执行的线程的数量。进程和线程之间的区别进原创 2020-09-29 16:58:36 · 1074 阅读 · 0 评论 -
停止不必要的服务才是管理的第一步
停止不必要的服务才是管理的第一步概述迈向安全服务器的第一步确认现状确认执行过程(ps)概述大多数服务器管理员将希望,对于自己运行的服务器,第一,服务不会停止,第二,不会被非法入侵。特别是最近几年,由于报告了很多非法入侵的事例,所以想重新审视(再检查)一次服务器的安全性的读者也是其中的一员。在这种情况下,最好是从OS的替换进行,进行考虑到安全性的设定。但是,实际上,既然为顾客等提供服务或作为基础服务器24小时满运转,就不能这么轻易地停止,这是现实。当然,如果服务器冗余,问题将被清除,但在大多数情况下,原创 2020-09-26 18:36:08 · 553 阅读 · 0 评论 -
微型计算机之DSP
DSP概述二级目录三级目录概述DSP(数字信号处理器)是专为在短时间内执行大量复杂操作的应用而设计的计算器。具体应用包括语音处理、图像处理、信号调制/解调、快速傅立叶变换和数字滤波器。微型计算机也有可以进行高速处理的产品,但毕竟是通用产品,所以如果想高速处理复杂的运算,DSP就很方便了。例如,(16位数据×16位数据)±(16位数据×16位数据)+64位数据=64位数据这样的计算,微型计算机必须用多个指令进行处理,但DSP可以用1个指令和1个周期来执行。话虽如此,如果有DSP的话就不需要微型计算机了。原创 2020-08-28 13:29:55 · 473 阅读 · 0 评论 -
BSP(Board Support Package)学习之中断的机制
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2020-08-27 09:31:53 · 499 阅读 · 0 评论 -
微型计算机之堆栈的作用
堆栈概述堆栈的基本操作堆栈指针(SP)堆栈的管理方法概述大家,在工作的途中急急忙忙的新工作进入的时候,到那之前做的工作的内容暂时转移到别的地方,开始新的工作,对吧?当匆忙的新工作结束后,我会重新开始刚才中断的原来的工作。此时,将“暂时转移原来的工作内容的地方”,在微型计算机的情况下称为“堆栈”。现在的工作是主例程,新的工作是“异常处理(中断等)”和“函数处理(子例程等)”。如果在执行主例程时发生“异常处理”等,则会中断主例程,但会将此时的寄存器和程序计数器的值等暂时保存到内存区域(通常是RAM)中(P原创 2020-07-27 19:07:55 · 1411 阅读 · 2 评论 -
微型计算机之DMA
DMADMA优点DMA的基本操作仲裁类型(与CPU共享总线权限)DMA优点“DMA”是Direct Memory Access的缩写。不使用CPU,而是通过总线直接进行外围功能(模拟功能、通信功能等)和存储器间(闪存、ROM、RAM)的数据传输的功能。通常,数据传输由CPU执行,而在装有DMA的微型计算机中,DMA代表CPU传输数据(参见图1)。因此,CPU只需要算术/逻辑运算等CPU才能完成的工作就可以了。其结果是,通过安装DMA,可以综合提高微型计算机的性能。DMA的最大优势是通过硬件直接传原创 2020-07-26 10:13:48 · 1371 阅读 · 0 评论 -
微型计算机之哈佛架构是什么?
“哈佛体系结构”指的是什么?微型计算机处理命令和数据,但是在很久以前的微型计算机中,用命令和数据共享了一条总线。在这种情况下,CPU在读取指令时使用总线,因此无法访问数据,并且在读取指令结束后访问数据。使用这种方法的总线配置的计算机体系结构被称为“诺伊曼体系结构(Von Neumann Architecture)”。另一方面,有将总线用命令和数据分开,使之独立的总线构成方式。使用这种方法,即使CPU读取指令,您也可以使用数据总线访问数据。因此,微型计算机的性能可以比诺伊曼型更高(见图1)。使用这种总线配原创 2020-07-26 08:46:04 · 3690 阅读 · 0 评论 -
如何在RAM中执行指令
如何在RAM中执行指令在RAM中也可以运行程序吗?如果可以在RAM中执行程序,如何才能执行呢?在RAM中执行命令的优点和缺点优点缺点在RAM中也可以运行程序吗?如果可以在RAM中执行程序,如何才能执行呢?根据微型计算机的规格,有即使在内置RAM中也可以执行用户程序的微型计算机。在内置RAM中加载和运行用户程序的方式取决于微型计算机。在微型计算机手册中,检查是否可能,如果可能,请按照手册中列出的方法进行设置。在某些情况下,可以通过集成开发环境(IDE)进行设置,在这种情况下,请检查IDE手册。对于带有A原创 2020-07-24 13:36:09 · 1246 阅读 · 0 评论 -
Linux的进程理解
进程进程是什么进程正在运行的程序进程管理僵尸进程多任务使用方法ps命令pstree命令top命令杀死进程进程是什么进程正在运行的程序所谓进程,只要认为是“正在运行的程序”就可以了。另外,从一个程序生成多个进程的情况也很多。在Linux的情况下,如果是桌面环境,将有100多个进程。可以通过top命令等确认现状。进程管理如果启动了大量进程,当然会消耗计算机资源。管理上“稳定运行时的进程数量是多少?“你应该掌握它。OS将为程序分配适当的计算机资源、存储器和CPU时间等。在分配的资源上,程序作为操作原创 2020-07-23 16:22:06 · 278 阅读 · 0 评论 -
1分钟理解shell是什么
说起来shell是什么?Shell是“用于与操作系统对话的接口”,是控制命令等的“环境”。让他们认为以这种形式覆盖Linux核心内核的外壳就是shell,这很容易理解。如果没有这个shell,即使登录,也不会显示任何东西,或者会返回到登录屏幕。也就是说,几乎什么都做不到。我认为shell、内核和终端变得越来越难理解,这是一种关系,如下图所示。有shell可以接受命令,并与操作系统交互。在CUI环境中,shell是最熟悉的界面。Linux中当前常见的shell是“bash”。Shell脚本和Un原创 2020-07-23 13:50:21 · 1987 阅读 · 0 评论 -
微型计算机之bootloader是什么呢
bootloaderbootloaderbootloader安装GRUB2GRUB Legacy设定例子如下所示LILO设定例子如下所示结束语bootloader当启动计算机系统时,BIOS和UEFI初始化系统(准备好可用状态),并启动“引导加载程序”。OS从引导加载程序启动。也就是说,这是“启动的触发器”。当多个OS安装在HDD或SSD(这些辅助存储介质)上时,从引导加载程序指定并启动OS。在使用传统MBR(MasterBootRecord)环境的情况下,从MBR加载引导扇区,并加载子系统,最终加载原创 2020-07-23 11:41:25 · 267 阅读 · 0 评论 -
ITRON入门之任务(TASK)的理解
任务概述程序的运行有点像工人在工作不配备实时操作系统的程序的挑战LED闪烁的任务每秒钟闪烁LED的任务发出声音的任务蜂鸣声输出的任务任务、线程和进程的关系任务线程进程进程和线程之间的区别概述在具有实时操作系统的系统中,程序以任务的概念运行。了解实时操作系统和ITRON规格时,了解“任务”是一切的开始。ITRON以此任务为中心运行系统。程序的运行有点像工人在工作#include <stdio.h>int main(void){ long calc = 0; calc = 1原创 2020-07-22 22:49:10 · 804 阅读 · 0 评论 -
微型计算机之MMU到底是什么
概述内存管理单元(MMU)是您的工作部件,负责管理内存读/写。用一句话来说明,“管理内存的部件”是“内存管理单元”。也可以省略内存管理单元,并将其表示为“MMU”。举个例子,内存是“电脑工作时使用的桌子”。电脑先生把工作工具摊在桌子(内存)上,勤勤恳恳地工作着。电脑先生根据需要把东西放在这张桌子上。或者,从桌子上取东西。实际上,电脑先生不擅长整理整理。随心所欲地使用的话,桌子上就乱七八糟的,变得很厉害。这种情况很糟糕。这样想的电脑先生雇佣了管理桌子的人。从那以后,电脑先生自己就不会碰桌子了。想原创 2020-07-22 21:37:57 · 829 阅读 · 0 评论 -
微型计算机之Swap分区到底是什么呢
概述简单来说Swap分区就是暂时存储未使用的内存内容的地方。从程序中看到的内存大小和实际粘在计算机上的内存大小是不同的。通过将内存中的任何内容临时存储在硬盘中(通过将硬盘的一部分用作内存),有一种技能使程序产生比实际内存更大的内存的错觉。例如,安装在计算机上的实际内存是10 GB。一般情况下,可以同时运行的程序是内存10 GB,对吧?使用的内存为6 GB的程序和4 GB的程序可以同时运行。6 GB程序和5 GB程序不能同时运行。因为不足1 GB。但是,使用的内存有同时运行6 GB的程序和5 GB原创 2020-07-22 16:05:13 · 494 阅读 · 0 评论 -
ITRON入门之实时操作系统的特点
实时操作系统概述实时操作系统的系统定位安装实时操作系统的优点可以扩大开发规模操作系统为我们提供各种功能可以同时完成很多任务安装实时操作系统的缺点使用CPU/内存资源需要处理实时操作系统的经验移植在目标板上运行是非常困难的概述在嵌入式开发中,有不搭载OS的机器和搭载的机器。没有搭载OS的机器的开发是在微型计算机入门篇中实施的开发形态。实时操作系统的系统定位实时操作系统主要是控制CPU内存中断硬件的模块定位。特别是对于CPU这一硬件,它的特点是从应用程序的角度来看,它具有CPU多重化的功能。应用软件和原创 2020-07-21 22:58:18 · 1643 阅读 · 0 评论 -
ITRON入门学习之实时操作系统的意义与价值
实时操作系统什么是实时操作系统?通用操作系统的类型实时操作系统是什么?TRON项目与ITRON的关系ITRON规格是什么?什么人应该学习实时操作系统比起Windows和Linux这样的操作系统,学习实时操作系统更好吗?在实时操作系统中选择ITRON的原因是什么?ITRON市场规模的广度及技术价值符合ITRON规格的软件是免费的什么是实时操作系统?操作系统(操作系统:Operating System)是一种称为运行计算机的基本软件的软件。通用操作系统的类型对于大家来说,身边的OS是Windows、Ma原创 2020-07-21 22:31:44 · 1473 阅读 · 0 评论 -
通讯方式总结
通讯方式概述用途单播多播广播概述在计算机网络上进行通信时,根据通信方的数量可以分为以下3种通信。通讯方式说明unicast单播是指指定单个地址,一对一进行的数据通信。multicast多播是指通过指定特定地址以一对多个方式执行的数据通信。broadcast广播是指指定相同数据链路中的所有目的地并以一对未指定数量进行的数据通信。用途单播单播通信是指定通信对方进行一对一通信的,可以说是最标准的通信。例如现在,您的PC通过与我的Web服务器进行单播通信来浏览原创 2020-07-21 12:55:16 · 590 阅读 · 0 评论 -
微型计算机入门之内存种类和特点
内存种类和特点微型计算机上搭载的内存大致分为两种。一种是关机后内容不会消失的“非易失性存储器(Non-Volatile Memory)”。另一种是“易失性存储器(Volatile Memory)”,一旦关机,内容就会消失。通常,非易失性存储器是ROM(只读存储器),易失性存储器被称为RAM(Random Access Memory)。最近微型计算机上安装的ROM主要是闪存和EEPROM,而以前主要是掩模ROM和EPROM。另一方面,RAM历来以SRAM为主流。闪存用于不经常重写内容的指令代码,SRAM原创 2020-07-20 17:43:34 · 1075 阅读 · 0 评论 -
车载开发之把FLASH内存和EEPROM
FLASH内存和EEPROM概述FLASH内存EEPROM用FLASH内存替代EEPROM三级目录概述FLASH内存所谓闪速存储器,是利用半导体元件的存储装置之一,可以多次反复写入,即使停止通电也可以维持存储内容。近年来,作为永久保存数据的存储(外部存储装置)产品的存储元件正在迅速普及。EEPROMEEPROM是一种非易失性存储器,即使关闭电源,记录内容也不会消失,并且可以电重写内容。用FLASH内存替代EEPROM三级目录...原创 2020-07-20 13:39:29 · 466 阅读 · 0 评论 -
微型计算机入门之寄存器的作用与使用方法
寄存器配置在内存中的寄存器确认寄存器所在的内存位置三级目录配置在内存中的寄存器硬件控制中不可或缺的东西就是被称为寄存器的特殊内存。从程序控制硬件是通过读写寄存器的内存来完成的。程序是指CPU读写内存信息并进行运算。你可以通过读写这个内存来控制硬件。确认寄存器所在的内存位置微型计算机在内存中提供唯一的寄存器区域。三级目录...原创 2020-07-19 09:02:43 · 1529 阅读 · 0 评论 -
关于自动驾驶的等级划分
自动驾驶等级概述自动驾驶技术的进化SAE自动驾驶Level0 不使用辅助Level1 驾驶支援Level2 特定条件下的自动驾驶功能等级1的组合高级功能Level3 有条件的自动驾驶Level4 特定条件下的完全自动运行Level5 完全自动驾驶结束语概述自动驾驶汽车减少事故和拥堵,作为安全舒适的移动手段熟悉我们的生活。好像马上就能到达那个时代了。现在,许多汽车已经开始安装各种技术来实现其自动驾驶过程。与交通情况协调发展的自动驾驶技术。自动驾驶技术的进化自动驾驶根据搭载的技术分为0~5的等级、现在国原创 2020-07-15 10:54:23 · 2620 阅读 · 0 评论 -
Linux发行版比较
Linux发行版发行版最有代表性的3个系列RedHat系Debian系Slackware系发行版大概比较RedHatEnterpriseLinux(Redhat系)CentOS(Redhat系)Fedora(Redhat系)Debian(Debian系)Ubuntu(Debian系)Slackware(Slackware系)结束语发行版发行版的意思是分布和流通,但是在Linux相关的情况下,可以认为是“种类”。因为Linux是开源的,所以在进化的过程中,从各种各样的分布源开始有各种各样的Linux。由原创 2020-06-26 16:46:04 · 322 阅读 · 0 评论 -
嵌入式开发Linux入门
嵌入式开发导语嵌入式基础概念交叉开发和自助开发嵌入式开发相关术语1.开发计算机(又名:主计算机)2.目标计算机(又名:目标板、目标)3.交叉编译器/汇编程序/链接器4.交叉库(又名:目标库)5.交叉调试器嵌入式开发的流程步骤1:开发引导加载程序步骤2:内核实现步骤3:创建模块(设备驱动程序)步骤4:创建应用程序步骤5(最后一步):系统调整结束语导语近年来,“嵌入式设备”对Linux的采用越来越多。Linux标准拥有的许多功能都符合嵌入式产品的目的,这是最大的原因。安装在嵌入式设备上的Linux通常被原创 2020-06-13 21:09:28 · 1284 阅读 · 0 评论 -
Linux常用命令一览表
Linux常用命令常用命令一览表常用命令一览表命令说明使用例cd目录(文件夹)移动cd要移动的文件夹名称ls以列表格式显示文件夹的转到要查看内容的文件夹mv$11原创 2020-06-11 17:08:10 · 282 阅读 · 0 评论