![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 53
brahmsjiang
这个作者很懒,什么都没留下…
展开
-
《Linux0.11源码解读》理解(五) head之开启分页
一个页表的最后一项在页表中的偏移地址是1023*4 = 4092(表项从0到1023,偏移地址=序号*4)。在保护模式下,ds段选择子,如0x10指向的是全局描述符表中的第二个段描述符(数据段描述符),里面内容中的段基址是 0。然后开启分页(cr0 的PG 标志,位31)。,共有4个页表只需设置4项(页目录和每个页表项本身也占据4K,每项4byte,一共可以设置1k个项/条目)。,共有:4(页表)*1024(项/页表)=4096 项(0 - 0xfff),也即能映射物理内存4096*4K = 16M。原创 2023-07-18 22:45:49 · 485 阅读 · 0 评论 -
《Linux0.11源码解读》理解(一) 从开机到加载bootsec
计算机启动时, 内存(RAM)没有任何东西, 自然也无法跑操作系统. 但是可以执行固化在ROM里面的BIOS程序. 在按下电源键的一刻. CPU的cs和ip寄存器硬件被设置为0xf000和0xfff0, 于是cs:ip也就指向0xffff0这个地址, 而这个地址正是指向了ROM的BIOS范围(这里是0xfe000~0xfffff, 20根地址线全部范围0x0000~0xfffff, 这个范围包括RAM、ROM、其他map的外设).下的程序,它的中断调用都是建立在中断向量表基础上的。原创 2023-04-20 16:09:00 · 468 阅读 · 0 评论 -
将文件中的tab转换为space空格
在Linux中还有其它的方法可以将文件中的tab和space相互转换。来键入的,此方法将所有tab替换为4个空格。使用expand和unexpand命令。,同样将所有tab替换为4个空格。在vi中使用替换命令。转载 2022-11-17 16:07:43 · 888 阅读 · 0 评论 -
Docker设置DNS, 或直接配置静态域名
需要在docker内通过内网域名下载文件. 也许在家办公, 访问DNS服务器的不稳定的原因, 默认的 8.8.8.8 或 8.8.4.4 (Google免费的) 无法解析诸如公司的内部域名 sqbu-github.xxxxx.com. 而在宿主机上可以进行操作:于是乎, 在宿主机通过ping域名, 或者利用nslookup可以获得域名的IP, 以及宿主机所使用的DNS服务器:那么如果让docker内识别出域名sqbu-github.xxxxx.com呢? 经查阅有若干种方式:加入刚.原创 2022-06-22 00:21:21 · 1615 阅读 · 0 评论 -
Linux命令行/vim 常用跳转、删剪粘快捷键备忘
Linux命令行光标到行首: ctrl + a光标到行尾: ctrl + e左移一个单词:Esc + b右移一个单词:Esc + f删除至行首: ctrl + u删除至行尾:ctrl + k删除一个单词: ctrl + wvim(命令模式下)光标到第一行: gg 或输入 :0光标都最后一行: G 或输入 :$光标到行首: ^ 或 0光标到行尾: $光标移动指定行尾: 1$ (当前行尾) 2$(下一行尾)左移一个单词: b右移一个单词: w删除当前行: ...原创 2021-11-12 15:39:04 · 902 阅读 · 0 评论 -
performance调查要点(持续更新)
线程优先级 CPU占用率,使用top原创 2020-06-05 14:56:08 · 130 阅读 · 0 评论 -
linux dlopen 相关
dlopen(3) - Linux手册页名称dladdr,dlclose,dlerror,dlopen,dlsym,dlvsym - 动态链接加载器的编程接口概要#include < dlfcn.h >void * dlopen(const char * f...转载 2019-11-21 10:08:20 · 853 阅读 · 0 评论 -
notify_one与notify_all的区别以及虚假唤醒(spurious wakeup)
notify_all对应linux下的pthread_cond_broadcast:通常表明状态变化,比如某一主线程的任务完成,通知其余子线程开始执行。会使得所有wait在条件变量上的子线程去竞争锁。因为wait()会原子地unlockmutex并进入等待,而被唤醒的线程会在wait()退出时自动重新加锁。notify_one对应linux下的pthread_cond_signal:通常用于资...原创 2019-10-29 17:52:56 · 5734 阅读 · 0 评论 -
socket实现简易echo time等功能
学了APUE里的套接字,敲了实验楼里的epoll例子。却刚意识到从未用POSIX socket API来自己真正写个C/S端。例子也就参照老掉牙的echo,time:客户端发送cmd,服务端根据收到的cmd字符串执行相应的获取时间、回显等功能。C/S编程模型:先上服务端代码:#include //socket#include //setsockopt#include原创 2018-01-01 19:38:46 · 439 阅读 · 0 评论 -
BashShell笔记 (一)
/etc/passwd注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 &> A 重定向标准输出和错误到文件 (0,1,2分别表示标准输入、输出、错误)# seq 1 10结果是1 2 3 4 5 6 7 8 9 10反引号位 (`) 起着命令替换的作用。命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。原创 2017-12-15 11:12:00 · 156 阅读 · 0 评论 -
对象保护计数类
作为CSDN第一篇文中,对Guard类代码进行研读和debug,总结以下几点:1.Guard类内包含core struct,该struct提供实际存入其中的Guard对象的方法,并提供引用计数管理2.Guard类中重载多个构造函数,只有不带参的默认构造函数申明为explicit,即不允许编译器隐式调用该函数3.调用 BJGuard& operator=(const BJGuard& o原创 2017-10-06 01:34:29 · 226 阅读 · 0 评论 -
在shell中使用echo命令输出带颜色的文本
名称 echo - 显示一行文本概要 echo [选项]... [字符串]...描述 向标准输出输出字符串。 -n 不输出换行符 -e 打开反斜杠ESC转义 -E 取消反斜杠ESC转义 (默认) --help 显示帮助 --vers转载 2017-10-07 18:20:44 · 676 阅读 · 0 评论 -
tput命令使用简介
tput 命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特性 对于在Shell下面编写屏幕程序,大家使用echo命令比较多,而且此命令也比较快。下面介绍的是另一方法,只是速度比较慢。要实现这一点,系统上需要一个彩色监视器和tput命令。一转载 2017-10-07 16:30:52 · 1588 阅读 · 0 评论