Linux
kaikai_sk
我的个人主页:https://kaikai-sk.github.io/
爱生活/爱技术
Public:
(1) https://past.date-conference.com/proceedings-archive/2022/html/0878.html
【证书】
软件设计师(软考中级)
展开
-
Linux常见易错题1
系统线程数量上限是多少?Linux 系统中单个进程的最大线程数有其最大的限制 PTHREAD_THREADS_MAX。这个限制可以在/usr/include/bits/local_lim.h中查看 ,对 linuxthreads 这个值一般是 1024,对于 nptl 则没有硬性的限制,仅仅受限于系统的资源。这个系统的资源主要就是线程的 stack 所占用的内存,用 ulimit -s 可以...原创 2019-06-03 15:29:32 · 210 阅读 · 0 评论 -
Linux Systemcall _file op
stat#include <stdlib.h>#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>int main(int argc,char* argv[]){ if(argc<2) { ...原创 2018-04-13 11:09:10 · 226 阅读 · 0 评论 -
Dell Inspiron 3442关机不断电的情况解决
Ubuntu的系统就类似这个样子,会卡死在关机的界面上。windows系统就是关机了但是风扇什么的都没有关。解决方法:刷一个最新的BIOS原创 2018-04-05 17:54:27 · 2343 阅读 · 0 评论 -
Linux系统调用之目录操作
Linux系统调用之目录操作#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <string.h>int main(void){ int fd; int flag; // 测试字...原创 2018-04-15 20:10:10 · 866 阅读 · 0 评论 -
Linux内核开发的特点
概述不能访问c库也不能访问标准的c头文件必须使用GNU C内核编程时缺乏像用户空间那样的内存保护机制内核编程时难以执行浮点运算内核给每个进程只有一个很小的定长堆栈由于内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发要考虑可移植性的重要性无libc库抑或无标准头文件对内核来说,完整的c库——哪怕是它的一个子集,都太大而且太低效了。 内核源代码文件不能包含外部头...原创 2018-03-27 21:19:55 · 516 阅读 · 0 评论 -
控制page cache的大小
控制Cache Memory/Page Cache Size1 怎么样观察当前的cache memory的使用情况?[root@gurkullinux ~]# free -mtotal used free shared buffers cachedMem: 15976 15195 781 0 167 9153-/+ buffers/cache: 5874 101...原创 2018-04-01 21:09:33 · 9345 阅读 · 4 评论 -
linux内核启动参数解析及添加
1.环境:ubuntu16.04Linux jello 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux2.查看当前linux内核的启动参数:cat /proc/cmdline笔者的输出内容如下:BOOT_IMAGE=/boot...转载 2018-03-26 16:14:23 · 6136 阅读 · 0 评论 -
gdb的一些骚报错
“No symbol table is loaded. Use the “file” command.”gcc编译的时候要带一个-g的参数。例如gcc -g main.c -o main原创 2018-03-31 16:21:11 · 415 阅读 · 0 评论 -
Linux中的骚宏
container_of/* 用于从包含在某个结构中的指针获得结构本身的指针。(也就是通过结构体变量中某个成员的首地址 进而获得整个结构体变量的首地址) @ptr:表示结构体重member的地址 @type:表示结构体的类型 @member:表示结构体中的成员 其实现: 1. 定义一个临时的数据类型与ptr相同(通过typeof( ((...原创 2018-03-31 14:00:30 · 173 阅读 · 0 评论 -
UML(User Mode Linux)
一.搭建UML实验环境1.下载Linux Kernel源码 访问https://www.kernel.org/网站,看到现在(2014-3-10)最新的版本为3.13.6,那么就下载它了:cd ~/uml/wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.6.tar.xz2.编译UM配置的Kernel 解...原创 2018-03-19 17:34:00 · 1769 阅读 · 0 评论 -
Linux之make常用操作集锦
patsubst函数不起作用参数之间不能有空格把make的warning和error信息输出到文件里由于make会把warning和error信息输出到标准错误上,所以想把这些信息重定位到文件里,需要先把标准错误重定向到标准输出上下面的命令是有效的做法: make >a.txt 2>&1注意, make 2>&1 >a.tx...原创 2018-03-17 13:10:15 · 239 阅读 · 0 评论 -
用radix tree简单实现java.util.Map的功能
代码地址:https://github.com/kaikai-sk/MyRadixTreeRadixTreeNode.javapackage com.sk.radixtree;import java.io.Serializable;import java.util.Collection;import java.util.Iterator;import java.util.Tr原创 2018-01-28 21:09:30 · 814 阅读 · 0 评论 -
使用Hikey960开发板
一、下载aosp和hikey-linaro的源码。三、编译Hikey-linaro源码cd hikey-linaromake ARCH=arm64 hikey960_defconfigmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-android- -j24一些骚错误1. error: ‘vdso_offset_sigtr...原创 2018-04-20 10:23:08 · 3384 阅读 · 0 评论 -
vim中的骚插件
YouCompleteMe安装git clone https://github.com/Valloric/YouCompleteMe.gitInstall development tools and CMake:sudo dnf install automake gcc gcc-c++ kernel-devel cmakeMake sure you have Pyth...原创 2018-05-19 22:17:13 · 812 阅读 · 0 评论 -
Linux内核之RCU锁
RCU全程read-only-updateRCU机制:RCU记录了所有指向共享数据的指针的使用者,当要修改共享数据的时候,首先创建一个副本,在副本中修改。所有读线程都离开读临界区之后,指针指向新的修改后副本的指针,并且删除旧数据。例子:RCU相关API的使用#include <linux/kernel.h>#include <linux/module.h>#inc...原创 2019-05-27 22:35:18 · 417 阅读 · 0 评论 -
Linux 查看内存品牌和速率
1. dmidecode工具dmidecode 的工具。DMI 表示的是 Desktop Management Interface 桌面管理接口,使用 dmidecode 工具可以查询很多 DMI 表的信息,包括内存,主板等。2. 安装Arch Linux环境下:sudo pacman -S dmidecode3. 使用查看内存槽及内存条: $ sudo dmidecode -t ...转载 2018-12-03 11:01:12 · 7078 阅读 · 0 评论 -
Linux常见易错题
c++内存区域(1)从静态存储区域分配:内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static变量等。(2)在栈上分配:在执行函数时,函数内局部变量的存储单元都在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配:即动态内存分...原创 2018-10-16 19:45:01 · 1038 阅读 · 0 评论 -
Fedora 28 server 配置网络
1. Set static IP address to the server. ( Replace the section [ens3] to your own interface name )# set hostname[root@localhost ~]# hostnamectl set-hostname dlp.srv.world# display devices[root@loc...转载 2018-09-01 18:57:42 · 1941 阅读 · 0 评论 -
远程链接Linux机器
ssh配置/etc/ssh/ssh_config Host gp1Hostname 192.168.3.199User rootPort 22ProxyCommand corkscrew 115.156.135.252 9001 %h %pHost storage04Hostname 192.168.3.28User xyzPort 22ProxyCommand co...原创 2018-07-02 10:21:26 · 660 阅读 · 0 评论 -
ArchLinux踩过的那些坑
1. usb模塊有問題usb3.0的U盤 + usb2.0的電腦 裝不上 usb2.0的U盤 + usb3.0的電腦 裝得上2. 沒有聲音创建/etc/asound.conf或$HOME/.asoundrc,在里面添加:defaults.ctl.card 1 defaults.pcm.card 1千萬不能添加defaults.pcm.device 0...原创 2018-06-25 20:05:56 · 4643 阅读 · 0 评论 -
2018-05-06-Linux IPC
Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。 在进程间完成数据传...原创 2018-06-09 10:04:22 · 166 阅读 · 0 评论 -
GDB调试
hchen/test&gt; gdb tst &lt;---------- 启动GDBGNU gdb 5.1.1Copyright 2002 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License, and you arewelcome to change ...原创 2018-06-09 10:02:58 · 193 阅读 · 0 评论 -
初识Linux系统调用
C库函数文件描述符和虚拟地址空间C库函数和系统函数之间的关系原创 2018-06-13 22:02:31 · 155 阅读 · 0 评论 -
Makefile基本原理
基本原理makefile的编写: 1. makefile的命名 2. makefile的规则: 规则中的三要素: 目标, 依赖, 命令 目标:依赖条件 命令 子目标和终极目标的关系: ...原创 2018-06-13 21:56:52 · 1521 阅读 · 0 评论 -
gcc编译
1.gcc编译2.参数-I 指定头文件的目录 -D 指定宏 -O 对源代码进行优化。0(不优化)、1、2、3(最高等级的优化) -Wall 输出警告信息 -g 添加调试信息3.制作静态库1>. 命名规则 1). lib + 库的名字 + .a 2). libmytest.a 2>. 制作步骤: 1). ...转载 2018-06-13 21:44:05 · 199 阅读 · 0 评论 -
Linux的缓存内存(cache memory)
PS:为什么Linux系统没运行多少程序,显示的可用内存这么少?其实Linux与Win的内存管理不同,会尽量缓存内存以提高读写性能,通常叫做Cache Memory。为什么Linux系统没运行多少程序,显示的可用内存这么少?其实Linux与Win的内存管理不同,会尽量缓存内存以提高读写性能,通常叫做Cache Memory。有时候你会发现没有什么程序在运行,但是使用top或free命令看到转载 2018-01-27 14:55:37 · 17018 阅读 · 0 评论 -
page cache 替换策略
现有的page cache替换策略Linux内核中文件Cache替换的具体过程如图3-1所示:刚刚分配的Cache项链入到inactive_list头部,并将其状态设置为active,当内存不够需要回收Cache时,系统首先从尾部开始反向扫描 active_list并将状态不是referenced的项链入到inactive_list的头部,然后系统反向扫描inactive_list,如果所原创 2018-01-26 21:34:53 · 1488 阅读 · 0 评论 -
Linux下安装Disksim4.0+SSDModel
一、DiskSim 以及 SSD扩展插件简介 DiskSim is a low-level storage simulation tool, which can generate timing-accurate simulation result. It is developed by Greg Ganger. Current version is 4.0 and it is out in Ju转载 2018-01-26 21:05:47 · 967 阅读 · 1 评论 -
linux之shell变量
举个栗子[root@skLinux rootCodeFiles]# vi specialvar.sh#!/bin/sh#usage sh specialvar.sh file1 file2 file3echo '$# is :' $#echo '$* is :' $*echo '$? is :' $?echo '$$ is :' $$echo '$0 is :' $0echo '$1原创 2016-10-05 20:53:16 · 194 阅读 · 0 评论 -
linux之一个简单的shell程序
linux之一个简单的shell程序原创 2016-10-05 18:08:22 · 416 阅读 · 0 评论 -
Linux之常用命令1
grep 搜索内容 未完待续。。。。。。原创 2016-10-05 16:57:00 · 156 阅读 · 0 评论 -
linux 面试笔试常用命令
查找大于100M的所有文件 find -type f -size +1000000k 命令写错退不出来 ctrl+z创建软硬链接 ln -s aaa.txt linkaaa原创 2016-10-05 12:01:56 · 269 阅读 · 0 评论 -
linux之cat和tac
一个有趣的命令原创 2016-10-05 11:49:25 · 452 阅读 · 0 评论 -
linux之简单网络命令
linux之简单网络命令原创 2016-10-05 11:17:27 · 228 阅读 · 0 评论 -
linux之文件系统
linux之文件系统原创 2016-10-27 11:47:20 · 221 阅读 · 0 评论 -
linux之输出重定向
linux之输出重定向原创 2016-10-16 12:12:01 · 258 阅读 · 0 评论 -
linux之系统运行级别和引导流程
linux之系统运行级别和引导流程原创 2016-10-11 11:30:38 · 319 阅读 · 0 评论 -
linux之vi编辑器的常用实例
^P是 ctrl+V ctrl+P或者 ctrl+V+P取消快捷键 unmap 取消ab:unab原创 2016-10-09 16:27:17 · 506 阅读 · 0 评论 -
linux之普通用户具有什么样的权限才能执行shell脚本???
linux之普通用户具有什么样的权限才能执行shell脚本???原创 2016-10-08 21:04:29 · 6068 阅读 · 0 评论 -
linux之read命令
案例:[root@skLinux rootCodeFiles]# vi readparm.sh#!/bin/sh#read命令测试read first second thirdecho "第一个参数是$first"echo "第二个参数是$second"echo "第三个参数是$third"[root@skLinux rootCodeFiles]# sh readparm.sh 100原创 2016-10-05 21:05:55 · 556 阅读 · 0 评论