Linux
文章平均质量分 66
。
九阈
进厂了
展开
-
页式存储管理: 最佳置换(OPT)--先进先出页面置换(FIFO)--最久未使用置换(LRU)
实验题目设计和实现最佳置换算法、先进先出置换算法、最近最久未使用置换算法、页面缓冲置换算法;通过页面访问序列随机发生器实现对上述算法的测试及性能比较。实验要求假设前提模拟的虚拟内存的地址为16位,页面大小为1K,模拟的物理内存有32K;页表用整数数组或结构数组来表示;页面访问序列串是一个整数序列,整数的取值范围为0到N - 1。页面访问序列串中的每个元素p表示对页面p的一次访问。性能测评及问题说明测试不同的页面访问序列及不同的虚拟内存尺寸,并从缺页率、算法开销等方面对各个算法进行比较。(转载 2022-04-15 23:17:14 · 5240 阅读 · 0 评论 -
Web server failed to start. Port 8080 was already in use.(Windows10下根据端口,杀死进程)
项目问题(Windows10下根据端口,杀死进程)Description:Web server failed to start. Port 9090 was already in use.①首先 键盘输入(win+r),接着在运行对话框中输入“cmd”,进入命令窗口②输入netstat -ano|findstr "端口号",回车即可查看到端口号对应的进程 我这里测试端口号是9090netstat -ano|findstr "9090"③接着输入tasklist|findstr "44656转载 2022-03-27 21:41:58 · 533 阅读 · 0 评论 -
进程基础练习
getpid获取当前进程IDgetppid获取父进程ID进程fork()实例1fork.c#include<stdio.h>#include<stdlib.h>#include<unistd.h> int main(){ pid_t pid; printf("[%d]:Begin!\n",getpid()); fflush(NULL); pid = fork(); if(pid < 0) { perror("fork()"); e转载 2022-03-22 15:54:57 · 79 阅读 · 0 评论 -
GPIO口工作原理的超详细解释(附电路图)
STM32引脚说明GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。STM32的大部分引脚除了转载 2022-03-17 22:40:04 · 3989 阅读 · 0 评论 -
使用内核模块添加系统调用
以下内容转载于https://www.cnblogs.com/hello-underworld/p/14589102.htmlhttps://blog.csdn.net/thugkd/article/details/50117125https://www.pianshen.com/article/3605500050/推荐https://www.cnblogs.com/wangzahngjun/p/4992045.html1,为什么要使用内核模块的方式添加系统调用?1.1,编译内核的方式费时转载 2022-03-03 22:52:58 · 1233 阅读 · 0 评论 -
printk的使用
参考文章https://blog.csdn.net/wwwlyj123321/article/details/88422640https://blog.csdn.net/m0_46170433/article/details/105263694https://blog.csdn.net/u010948546/article/details/81437676printk在内核源码中用来记录日志信息的函数,只能在内核源码范围内使用。用法和printf非常相似printk函数主要做两件事情:第一件就是转载 2022-03-02 16:00:44 · 2508 阅读 · 0 评论 -
使用 Source Insight 阅读 Linux 内核源码
原文章链接:https://blog.csdn.net/thisway_diy/article/details/108746072推荐https://blog.csdn.net/qq_14843999/article/details/106810969Source Insight 简介Source Insight 是 Source Dynamics 公司出品的源代码编辑器。Source Insight 提供语法突出显示,代码导航和可自定义的键盘快捷键。它不仅仅是一个编辑器,而是一个理解大型源代码转载 2022-03-02 14:16:44 · 1764 阅读 · 0 评论 -
Linux内核驱动学习---编写最简单Linux内核模块HelloWorld
以下内容来源于https://blog.csdn.net/lihaoweiV/article/details/6602261https://blog.csdn.net/sh21_/article/details/60878812https://blog.csdn.net/u010632165/article/details/86541941https://blog.csdn.net/FallingU/article/details/76166194什么是内核模块模块是可以根据实际需要可以动态加转载 2022-02-27 22:21:49 · 1528 阅读 · 0 评论 -
Linux的内核源码树的根目录下的每个文件的含义简介
在下载Linux内核源码包解压后,Linux的内核源码树的根目录的每一个含义看不太明白,估计每个喜欢研究内核源码的小伙伴刚开始都会有此疑问,因此,在这里对Linux内核源码的根目录的每个文件包做些简介,让喜欢研究内核源码的小伙伴对内核这个看起来特别神秘且复杂的东西有个大体的了解。具体的详情请见下表:Linux 内核源码树的根目录描述目录 含义描述arch 特定体系结构的源码block 块设备 I/O层crypto 加密APIDocumentation 内核源码文档drivers 设备驱动程序转载 2022-02-24 10:10:50 · 386 阅读 · 0 评论 -
基于ubuntu14.04下编译linux-2.6.34版本内核的步骤和遇到的一些问题及解决
参考:https://www.linuxidc.com/Linux/2011-08/40124.htmhttps://blog.csdn.net/chenhangx/article/details/106736809https://blog.csdn.net/Big_Rotor/article/details/70137968首先选择Ubuntu镜像http://mirrors.melbourne.co.uk/ubuntu-releases/14.04/Linux2.6所有内核下载地址ht转载 2022-02-23 23:03:10 · 944 阅读 · 0 评论 -
Ubuntu系统各个版本的镜像下载
博客转载自 http://blog.csdn.net/liu1164316159/article/details/45480221下载地址为:http://mirrors.melbourne.co.uk/ubuntu-releases/转载 2022-02-21 21:10:46 · 1384 阅读 · 0 评论 -
Linux文件系统与文件编程
Linux文件基础Linux文件系统原理文件系统的概念(1)需要有一套机制把磁盘上的数据管理起来封装数据信息,给用户的视图是一个个特定的“按名访问”的文件(2)满足各种管理需求文件说明:文件存储和管理信息:如:文件名、文件内部标识、文件存储地址、访问权限、访问时间等文件系统的类型Linux虚拟文件系统及文件系统操作对文件操作的两种IOIO缓冲区文件I/O-文件描述符...原创 2021-12-25 19:45:12 · 527 阅读 · 0 评论 -
unbuntu下MySQL数据库的安装(更改默认用户密码)与彻底卸载
用Qt需要使用Linux中mysql,就把有用的博客整理一下Unbuntu下安装MySQL数据库1. sudo apt-get install mysql-server2. apt-get install mysql-client3. sudo apt-get install libmysqlclient-dev以下内容转载于https://blog.csdn.net/weixin_45525272/article/details/107774685这个下载完需要更改默认用户密码第一步:进入转载 2021-12-23 22:42:10 · 337 阅读 · 0 评论 -
Linux下新建一个MySQL数据库
Unbuntu下安装MySQL数据库其实很简单的,只要中间不出错,几条命令基本就可以搞定了。1. sudo apt-get install mysql-server2. apt-get install mysql-client3. sudo apt-get install libmysqlclient-dev在步骤1 的过程中,会有密码的设置,一定要记住自己设置的密码是什么,因为他就是你以后登录数据库的密码。安装完成之后,用sudo netstat -tap | grep mysql 查看一下,转载 2021-12-21 10:13:18 · 3968 阅读 · 0 评论 -
fatal error: sqlite3.h:没有那个文件或目录
这是因为没有安装sqllite3的相关库,安装以下库即可sudo apt-get install libsqlite3-dev如果出现使用如下命令解除占有sudo rm /var/lib/dpkg/lock-frontend如果是/var/lib/dpkg/lock -open(11:资源暂时不可用)则使用如下命令解除占有(sudo rm /var/lib/dpkg/lock)以上内容链接https://blog.csdn.net/weixin_42403703/article/det.原创 2021-12-20 10:01:04 · 923 阅读 · 0 评论 -
wireshark的简单介绍
▪ WireShark 是一种可以运行在 Windows,UNIX,Linux 等操作系统上的分组分析器。▪ 运行Wireshark,需要有一台支持Wireshark和libpcap或WinPCap分组捕获库的计算机。▪ 安装Wireshark时,如果操作系统中未安装libpcap软件,它将会自动安装。Wireshark(前称Ethereal)是一个网络封包分析软件。功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交原创 2021-12-05 18:02:08 · 4061 阅读 · 0 评论 -
tcpdump参数解析及使用详解
tcpdump介绍tcpdump 是一个运行在命令行下的抓包工具。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。tcpdump 适用于大多数的类Unix系统操作系统(如linux,BSD等)。类Unix系统的 tcpdump 需要使用libpcap这个捕捉数据的库就像 windows下的WinPcap。在学习tcpdump前最好对基本网络的网络知识有一定的认识。tcpdump命令格式及常用参数Tcpdump的大概形式如下:例:tcpdump –i eth0 'por转载 2021-12-05 17:27:32 · 15856 阅读 · 0 评论 -
tcpdump使用案例
tcpdump使用3.1 语法类型的关键字host(缺省类型): 指明一台主机,如:host 210.27.48.2net: 指明一个网络地址,如:net 202.0.0.0port: 指明端口号,如:port 23确定方向的关键字src: src 210.27.48.2, IP包源地址是210.27.48.2dst: dst net 202.0.0.0, 目标网络地址是202.0.0.0dst or src(缺省值)dst and src协议的关键字:缺省值是监听所有协议的信息包f转载 2021-12-05 16:26:55 · 417 阅读 · 0 评论 -
Ubuntu安装telnet
安装# sudo apt-get install xinetd telnetd配置 -> 加入以下选项# sudo vi /etc/inetd.conftelnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd# sudo vi /etc/xinetd.confdefaults {instances = 60 log_type = SYSLOG authpriv log_on_success = HO转载 2021-12-05 15:58:51 · 313 阅读 · 0 评论 -
在Ubuntu 18.04 Linux上安装和使用Wireshark
简介:在本教程中,您将学习在Ubuntu 18.04和其他基于Ubuntu的Linux发行版上安装最新的Wireshark。您还将学习如何在不使用sudo的情况下运行Wireshark,以及如何对其进行设置以进行数据包嗅探。Wireshark 是一个免费开源的网络嗅探器 - 一个用于抓取和分析网络数据包的工具,在全球范围内广泛使用。 Wireshark 可以解码的协议数量巨大,不胜枚举。借助Wireshark,您可以实时捕获网络的传入和传出数据包,并将其用于网络故障排除,数据包分析,软件和通信协议开发等转载 2021-12-05 15:52:14 · 3573 阅读 · 1 评论 -
OSI七层模型及各层作用
网络七层OSI模型(Open System Interconnection)总览:记忆方法All people seem to need data process。这样下来确实好记多了。Application(应用层), Presentation(表示层), Session(会话层), Transport(传输层), Network(网络层), Data Link(数据链路层), Physical(物理层), 分别对应该话每个单词的第一个字母。物理层: 主要定义物理设备标准,如网线的接口类型、各种传转载 2021-11-29 22:53:01 · 7411 阅读 · 1 评论 -
学习程序和库
静态库程序的编译hello.c#include <stdio.h>void main(void){ printf(“Hello World!\n”);}程序的编译及运行命令gcc hello.c./a.out程序的编译过程什么是库在计算机科学中,库是用于开发软件的子程序集合。库和可执行文件的区别是,库不是独立程序,他们是向其他程序提供服务的代码。静态库概念:-将所有相关的目标模块(.o)打包为一个单独的库文件(.a),称为静态库文件。-在构建可执行文件原创 2021-11-22 22:54:47 · 823 阅读 · 0 评论 -
linux编写学生选课系统
2.实验要求:实现学生选课系统管理功能。功能模块至少包含两个模块,学生信息管理模块,可选课程管理模块。1)学生信息包括:学号,姓名,已选课程列表,已选课程总计学分。学生信息管理模块需支持:新增学生信息,修改学生信息,删除学生信息,按学号、姓名查看修改某学生详细信息。2)课程信息包括:课程编号,课程名称,课程性质,授课学时,学分,课程已选人数,课程人数上限。课程管理模块需要支持:新增课程,删除课程,查看某课程详细信息(学分、课时、所选学生列表等),修改某课程的信息(学分、课时、所选学生列表转载 2021-11-02 11:46:52 · 1698 阅读 · 0 评论 -
linux编写学生管理系统
头文件与宏定义#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 30 //宏定义最大学生人数//定义全局变量int num=0; //定义学生编号int x=0; //定义浏览学生信息的个数定义学生信息结构体与声明函数//定义学生信息结构体typedef struct student{ char name[30]; //学生姓名 char se转载 2021-11-02 11:23:10 · 734 阅读 · 1 评论 -
Linux进入root权限的两种方法
首先打开终端(Ctrl+Alt+T)在这里解释一下bwj@ubuntu:~$这句话的含义:bwj是用户名,也就是你自己起的名字。@是分割的符号ubuntu是主机名,也就是你所使用的机器的名称~是当前目录,"~"表示根目录$是提示符,当进入root时,会变成#现在开始介绍第一种方法:sudo(暂时的)如果是使用root权限而不是直接进入,那么sudo + <指令> 即可。如:sudo chmod 777 /etc/sudoers。(这是最常用且推荐的方式) 输入sudo后显转载 2021-10-20 20:37:11 · 13347 阅读 · 0 评论 -
linux shell脚本 静态检查工具 shellcheck 简介
简介shellcheck 是一款实用的 shell脚本静态检查工具。首先,可以帮助你提前发现并修复简单的语法错误,节约时间。每次都需要运行才发现写错了一个小地方,确实非常浪费时间。其次,可以针对你当前不够完善不够健壮的写法,提供建议,帮助你提前绕开一些坑,避免等问题真的发生了才去调试处理。在其介绍中,目标是针对所有用户的,从初学者到高手,都用得上指出并澄清典型的初学者的语法问题,那通常会shell提供神秘的错误消息。指出并澄清典型的中级的语义问题,这些问题会导致shell出现奇怪且反直觉的行为。转载 2021-10-06 17:24:14 · 1435 阅读 · 0 评论 -
shell脚本注射方法以及命名规范
代码注释规范代码文件注释!#/bin/bash脚本的参数脚本的用途脚本的用法及注意事项脚本试用平台脚本的写作时间,作者,版权等各个函数前的说明注释一些较复杂的单行命令注释利用“#”对单行进行注释。示例应用,新建文本,命名为test_single.sh 输入内容:# 单行注释echo '单行注释'echo '123'# echo '456'echo '789'执行结果:【2】多行注释(1)方式一:<<!# 注释内容块!示例应用,新建文本,命名为t转载 2021-10-06 17:11:47 · 859 阅读 · 0 评论 -
shell脚本中sed
什么是Sedsed(stream editor)是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed特点:1、可以编辑一个或多个文件2、简化对文件的反复操作3、由于一次处理一行,读非常大的文件不会出问题,如果全部读取可能会内存溢出或处理速度非常慢。指令形式原创 2021-10-04 12:19:22 · 233 阅读 · 0 评论 -
shell脚本中awk
什么是awk/gawk ?awk是一种程序设计语言,主要用来处理数据和产生报表。它对输入数据(文件、标准输入或命令的输出)逐行进行扫描,匹配指定的模式(pattern),并执行指定的操作(action)。gawk是GNU下开发的awk,经过不断改进和更新,现已包含awk的所有功能。awk/gawk的主要功能就是处理文本文件的数据,它是通过自动将变量分配给每行的每个数据元素实现这一功能。awk/gawk编程基础知识——记录、字段(域)和规则记录记录是单个的、连续长度的输入数据,是awk的操作原创 2021-10-04 10:38:26 · 843 阅读 · 0 评论 -
Linux shell脚本中正则
grep、sed、awk 使用建议grep: 文本过滤工具,如果仅仅是将文本过滤下显示出来的话,建议使用grep。sed:Stream EDitor,流编辑器,默认只处理模式空间,不处理原数据,如果处理的数据是针对行进行处理的,可以使用sed。awk: 数据分析、处理工具,报告生成器,格式化以后显示。如果对处理的数据需要生成报告之类的信息,或者处理的数据是按列进行处理的,最好使用awk。正则表达式是什么:使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。作用从字符串中提取子串查找、替原创 2021-09-29 00:10:05 · 624 阅读 · 0 评论 -
shell基本语法 - 结构化控制语句
分支结构:if语句: if then else 提供条件测试case语句:允许匹配模式、单词或值循环结构:for:每次依次处理列表内的信息,直至循环耗尽。until:条件在循环末尾,至少执行一次。while:条件在循环头部。continue:继续执行下一次循环。break:结束循环,继续执行循环后面的命令。Shell基本语法-结构化控制命令(分支判断if)格式1 if [ 条件 ] then 命令 fi或者格式2 if [ 条件 ]原创 2021-09-27 15:29:42 · 207 阅读 · 0 评论 -
shell基本语法 - 条件测试
条件测试测试命令用于测试表达式的条件的真假。如果条件为真,测试结果为真,并返回一个为0的回传值;如果条件为假,则测试结果为假,并返回一个非0整数值。测试命令有两种结构:test expression[ expression ]——(注意“[”后和“]”前的空格不能少)其中expression可以是数字、字符串、文本和文本属性的比较条件测试-数值比较条件测试-数值比较算术表达式expr命令r=`expr 4 + 5`r=`expr 40 - 5` r=`expr 4 \* 5`原创 2021-09-25 21:28:48 · 91 阅读 · 0 评论 -
shell基本语法-变量
Shell基本语法-变量局部变量变量(variable)由字母、数字和下划线组成必须以字母或下划线开头,而不能是数字每个变量都有一个值(value),是赋与变量的内容或信息变量赋值VARIABLE=value 如:myvar=jinling取变量的值$myvar只读变量:使变量值不可变readonly myvar=0双引号可以关闭大多数字母的特殊意义,例如空格person=“alice and bob”; echo $person person=alice and bob原创 2021-09-25 20:50:30 · 131 阅读 · 0 评论 -
shell基本命令-系统管理命令
用户权限相关命令用户和组账户概述Linux基于用户身份对资源访问进行控制用户帐号:超级用户root:具有使用系统所有权限的用户,其UID 为0普通用户:即一般用户,其使用系统的权限受限,其UID为500-60000之间程序用户:用于维持系统或某个程序的正常运行,其UID为1-499之间组帐号:普通用户组:可以加入多个用户系统组:一般加入一些系统用户私有组(也称基本组):当创建用户时,如果没有为其指明所属组,则就为其定义 一个私有的用户组UID和GID:UID(User I原创 2021-09-25 20:11:25 · 1279 阅读 · 0 评论 -
shell常用命令-目录和文件操作命令
目录命令cd pwd ls mkdir du文件操作命令touch file cp rm mv find tar目录操作命令-pwd、cdpwd命令用途:查看工作目录cd命令用途:切换工作目录格式:cd [目录位置]目录操作命令-lsls命令用途:列表(List)显示目录内容格式:ls [选项]… [目录或文件名]常用命令选项-l :以长格式显示-a:显示所有子目录和文件的信息, 包括隐藏文件-R:递归显示内容目录操作命令mkdirmkdir命令用原创 2021-09-25 19:15:48 · 2023 阅读 · 0 评论 -
shell基本命令-文本与字符串处理
字符串操作例子字符串长度截取子串字符串删除字符串替换原创 2021-09-25 17:21:31 · 65 阅读 · 0 评论 -
shell基本命令-输入输出命令
只记得部分命令关键字:man -k某个命令的简要说明:whatis某个命令的详细介绍:info查看命令的位置:which命令的具体参数及使用方法:man内建命令:是由shell本身所执行的命令,解析内建命令shell不需要创建子进程比如:exit,history,cd,echo等外部命令:在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin…等等,比如:ls、vi等。存在于文件系统中某个目录下的单独的程序如何辨别内建命令和外部命令?使用type可以查原创 2021-09-24 09:08:26 · 2227 阅读 · 0 评论 -
vim和gcc的安装
vim的安装ubuntu系统:普通用户下输入命令:sudo apt-get install vim-gtkcentos系统:普通用户下输入命令:yum -y install vim图片以ubuntu为例4.之后不需要任何操作,等待安装完成。安装完成之后,在命令行敲入vi,按“tab”键。可以看到,已经有vim命令的存在。安装成功。VIM的配置1.刚安装的VIM,可能界面并不是十分友好,这就需要我们去更改vim的配置文件,按照我们的需求去修改它。在命令行下,输入命令:sudo vi转载 2021-09-21 17:39:44 · 2477 阅读 · 0 评论 -
将英文版的Ubuntu 18.04系统改为中文
Ubuntu中文设置方法:1.首先打开Ubuntu Setting(设置),点击右上角的三角,然后点击扳手图标;或者点击左下角,在右面找到设置,如下图所示(两种方式合一截图,都能打开设置)。2.然后在settings对话框依次点击点【Region & Language】-【Manage Installed Languages】,如下图所示。3.在弹出的窗口再点击【install】设置操作,需要下载语言包,安装Ubuntu语言必须联网,如下图所示。4、然后会弹出一个输入框,这个地方输入登转载 2021-09-21 17:18:17 · 9728 阅读 · 1 评论