![](https://img-blog.csdnimg.cn/20191204111244199.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
文章平均质量分 66
CurryCoder
个人微信公众号:CurryCoder的程序人生
技术交流QQ群:1027579432
所有代码在此https://github.com/cdlwhm1217096231,欢迎各位小伙伴star、follow、fork
个人主页:https://cdlwhm1217096231.github.io/
展开
-
Linux系统调用及测试
Linux内核学习原创 2022-09-18 15:57:41 · 628 阅读 · 1 评论 -
initrd和initramfs的区别
Linux内核学习原创 2022-09-17 22:15:06 · 531 阅读 · 0 评论 -
从编译内核、制作initramfs到使用QEMU运行内核
Linux内核学习原创 2022-09-17 22:14:32 · 733 阅读 · 0 评论 -
使用busybox快速制作initramfs
Linux内核学习原创 2022-09-17 22:13:53 · 661 阅读 · 0 评论 -
命令行工具集合busybox编译
Linux内核学习原创 2022-09-17 22:13:09 · 663 阅读 · 0 评论 -
Linux Kernel compile
Linux内核学习原创 2022-09-17 22:12:07 · 464 阅读 · 0 评论 -
Chapter02-整数的运算
无原创 2022-07-10 12:24:31 · 341 阅读 · 1 评论 -
Chapter02-整数的表示
1.整型数据类型C语言支持多种整型数据类型,例如char、short、int等,64位机器上,不同的数据类型所表示的数值的范围。关于long类型的大小需要注意,取值范围与机器字长有关。在64位机器上,long类型占8个字节;在32位机器上,long类型占4个字节。当变量声明中带有unsigned关键字时,限制了表示的数字只能是非负数。在计算机领域,非负数通常称为无符号数。C语言中支持无符号数和有符号数,有符号数既可以是正数,也可以是负数。2.无符号数unsigned的编码假设一个整数的数原创 2022-04-19 16:58:45 · 723 阅读 · 0 评论 -
Chapter02-信息的存储
1.信息的存储通常情况下,程序将内存视为一个非常大的数组。数组的元素是由一个个的字节组成,每个字节都由一个唯一的数字来表示,称之为地址。这些所有地址的集合称为虚拟地址空间。2.字节1个字节是由8个位组成,在二进制中,每一位的值可能有0或者1两种状态。当这8个位全为0时,表示一个字节的最小值;当这8个位全为1时,表示最大值;如果用十进制来表示,那么一个字节的取值范围就在[0,255]之间。上面这种按照一位一位表示数据的方式称为位模式。3.十六进制表示位模式在C语言中,十六进制数是以0X原创 2022-04-12 17:46:21 · 373 阅读 · 0 评论 -
Chapter01-计算机系统漫游-下
1.操作系统管理硬件(1).真正操纵硬件的是操作系统,操作系统可以看成是应用程序和硬件之间的中间层。所有的应用程序对硬件的操作必须通过操作系统来完成,这样做的目的是:首先,防止硬件被失控的应用程序所滥用;其次,操作系统提供统一的机制来控制这些复杂的底层硬件。(2).为了实现操作系统对硬件的操纵,操作系统引入了几个抽象的概念。文件是对IO设备的抽象、虚拟内存是对内存和磁盘IO的抽象、进程是对处理器、内存及IO设备的抽象。2.进程的解释—以shell命令行中执行./hello命令为例进行说明原创 2022-04-12 17:45:32 · 687 阅读 · 0 评论 -
Chapter01-计算机系统漫游-上
一、整本书的结构1.Chapter01:计算机系统漫游2.Chapter02~Chapter12Part I:程序结构和执行(Chapter02~Chapter06)Part II:在系统上运行程序(Chapter07~Chapter09)Part III:进程间的交互和通信(Chapter10~Chapter12)二、程序编译流程1.编译系统工作流程Stage1(预处理):预处理器会根据以#开头的代码,来修改原始程序,预处理器会读取头文件中的内容,将头文件中的内容直接原创 2022-04-12 17:44:35 · 621 阅读 · 0 评论 -
【硬核干货 | 程序的编译、链接、装载与运行】
点蓝色字关注“CurryCoder的程序人生”微信公众号:CurryCoder的程序人生业精于勤,荒于嬉;行成于思,毁于随1.问题引入学过C语言的小伙伴们,基本上都知道从一个xxx.c的源文件到最后生成的可执行文件,需要经过预处理、编译、汇编、链接这几个步骤。但是,这几个步骤详细的过程我一直没搞清楚,本文将深度剖析这几个步骤。例如,在Windows/Linux系统中,一个C源文件从编写完成到最终被CPU执行,中间要经历一系列复杂而又漫长的过程,如下图所示:2.编译编译.原创 2021-06-06 16:47:33 · 763 阅读 · 1 评论 -
操作系统知识点总结
1.内核同步的原因在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实像多进程多线程编程一样,也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。2.同步方式原子操作、信号量(semaphore)、读写信号量(rw_semaphore)、自旋锁(spinlock)、大内核锁(BKL,...原创 2019-06-03 22:11:29 · 639 阅读 · 0 评论 -
进程VS线程
进程与线程的对比1.进程进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位;进程有独立的地址空间,线程没有;进程是 操作系统进行资源分配和调度的一个独立单位;进程在执行时通常拥有独立的内存单元,而线程之间可以共享内存2.线程线程是进程的一个实体,一个进程中包含多个线程。是CPU调度和分派的基本单位,是比进程更小的能独立运...原创 2019-06-03 21:54:30 · 339 阅读 · 0 评论 -
Linux中的日志系统介绍
一、常见的日志日志是一个系统管理员,一个运维人员,甚至是开发人员不可或缺的东西,系统用久了偶尔也会出现一些错误,我们需要日志来给系统排错,在一些网络应用服务不能正常工作的时候,我们需要用日志来做问题定位,日志还是过往时间的记录本,我们可以通过它知道我们是否被不明用户登录过等等。在 Linux 中大部分的发行版都内置使用 syslog 系统日志,那么通过前期的课程了解到常见的日志一般存放在 /...原创 2019-03-13 10:56:56 · 451 阅读 · 0 评论 -
Linux长文总结
1.在文本环境下,shell作为命令解释器,建立了用户和操作系统之间的接口。当用户键入一个命令时,shell将对该命令进行解释,并调用相应的程序。2.Linux下有多个shell,最常用的3个shell: bash tcsh zsh3.shell 脚本:shell除了具有解释键盘命令并将其发送到操作系统的功能外,shell命令可以安排在一个文件中供以后执行,这些文件在linux系统称为shel...原创 2019-03-12 09:09:13 · 612 阅读 · 0 评论 -
Linux下命令执行顺序控制与管道
一、命令执行顺序的控制顺序执行多条命令通常情况下,每次只能在终端输入一条命令,执行完成后,再输入第二条命令,然后再按回车执行。要想一次性输入完执行,可以使用简单的顺序执行";"来完成。例如:sudo apt-get updatesudo apt-get install cowsaycowsay hello curry可以一次性输入sudo apt-get update; su...原创 2019-03-07 15:22:05 · 471 阅读 · 0 评论 -
Linux下的任务计划
一、crontab的使用crontab简介crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。通常,crontab存储的指令被守护进程激活,crond为其守护进程,crond常常在后台运行,每一分钟会检查一次是否有预定的作业需要执行。通过crontab命令,可以在固定...原创 2019-03-08 15:56:01 · 391 阅读 · 0 评论 -
Linux下的进程之进程管理
一、进程的查看不管在测试的时候、在实际的生产环境中,还是自己的使用过程中,难免会遇到一些进程异常的情况,所以 Linux 为我们提供了一些工具来查看进程的状态信息。我们可以通过 top 实时的查看进程的状态,以及系统的一些信息(如 CPU、内存信息等),我们还可以通过 ps 来静态查看当前的进程信息,同时我们还可以使用 pstree 来查看当前活跃进程的树形结构。1.1 top工具的使用...原创 2019-03-08 15:57:36 · 390 阅读 · 0 评论 -
Linux中的帮助命令
一、内建命令与外部命令内建命令内建命令实际上是shell程序的一部分,其中包含的是一些比较简单的Linux系统命令,这些命令是写在bash源码的builtins里面的,并由shell程序识别并在shell程序内部完成运行的。通常在Linux系统加载运行时,shell就被加载并驻留在系统内存中。而且解析内部命令shell不需要创建子进程,因此其执行速度比外部命令要快。比如:histor...原创 2019-03-08 15:58:18 · 432 阅读 · 0 评论 -
Linux中的文件系统和磁盘管理
一、简单文件系统操作查看磁盘和目录的容量使用df命令查看磁盘的容量,加上-h参数,以更易读的方式展开:df -h使用du命令查看目录的容量,-d参数指定查看目录的深度:du -h -d 0 ~ 只查看1级目录的信息二、简单的磁盘管理创建虚拟磁盘dd命令简介dd命令用于转换和复制文件,不过它不同于cp。在Linux系统中,一切即文件。硬件的设备驱动(...原创 2019-03-08 15:58:53 · 535 阅读 · 0 评论 -
Linux中的文件打包与压缩方法总结
一、文件打包和解压缩在windows系统上最常见的压缩文件不外乎这三种*.zip,*.rar,*.7z后缀的压缩文件,而在Linux系统上常见常用的除了以上的三种之外,还有*.gz,*.xz,*.bz2,*.tar,*tar.gz,*tar.xz,*.tar.bz2等后缀的压缩文件。.zip压缩打包程序1.1 打包文件夹zip -r -q -o njust.zip /home/c...原创 2019-03-09 08:47:40 · 1297 阅读 · 0 评论 -
Linux中环境变量与文件查找
一、环境变量1.变量变量,准确的说应该是shell变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值的一一对应的关系,可以通过表达式读取它的值赋值给其他变量,也可以直接指定数值赋值给任意变量。为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值、字符或者字符串等数据类型。shell中的变量也...原创 2019-03-09 08:48:08 · 400 阅读 · 0 评论 -
Linux目录结构和文件基本操作
一、Linux目录结构1.FHS(File System Hierarchy Standrad,文件系统层次结构标准)FHS定义了两层规范,第一层是/下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bin与/sbin则应该要放置可执行文件等等。第二层则是针对/usr和/var这两个目录的子目录来定义的。例如/var/log放置系统登录文件、/usr/share放置共享...原创 2019-03-09 08:48:43 · 335 阅读 · 0 评论 -
Linux中的用户及文件权限管理总结
一、用户1.查看用户:who am I2.创建用户:sudo adduser <用户名>在linux中,root权限拥有至高无上的权利,一般登录系统时都是以普通账户的身份登录的,要创建用户需要root权限,这里就需要用到sudo这个命令。不过使用这个命令有两个前提,一是知道当前登录用户的密码,二是当前用户必须在sudo用户组。如, sudo adduser curry3.切...原创 2019-03-09 08:50:49 · 645 阅读 · 0 评论 -
git常用命令大全
原创 2019-03-09 08:51:26 · 265 阅读 · 0 评论 -
Linux中常见shell命令总结
1.具体的shell命令用法可以通过help或man命令进入手册来查询其具体的用法。2.终端本质上对应着linux上的/dev/tty设备,linux的多用户登录就是通过不同的/dev/tty设备完成的,linux默认提供了6个纯命令行界面的’‘terminal’’(准确的说这里应该是6个虚拟控制台)来让用户登录,在物理机系统上你可以通过ctrl+alt+F1~F6进行切换。当切换到其中一个终端...原创 2019-03-09 08:51:55 · 1276 阅读 · 0 评论 -
Linux中的进程之初步了解
一、概念的理解二、进程的属性一、概念的理解首先程序与进程是什么?程序与进程又有什么区别?程序(procedure):不太精确地说,程序就是执行一系列有逻辑、有顺序结构的指令,帮我们达成某个结果。就如我们去餐馆,给服务员说我要牛肉盖浇饭,她执行了做牛肉盖浇饭这么一个程序,最后我们得到了这么一盘牛肉盖浇饭。它需要去执行,不然它就像一本武功秘籍,放在那里等人翻看。进程(proces...原创 2019-03-07 15:13:23 · 310 阅读 · 0 评论 -
Linux下的软件安装方法介绍
本文目录一、Linux下的软件安装方式二、在线安装三、使用dpkg从本地磁盘安装deb软件包本文目录一、Linux下的软件安装方式通常Linux上的软件安装主要有三种方式:在线安装从磁盘安装deb软件包从二进制软件包安装二、在线安装在不同的linux发行版上面在线安装方式会有一些差异,包括使用的命令及它们的包管理工具,因为我们的开发环境是基于ubun...原创 2019-03-07 15:16:52 · 600 阅读 · 0 评论 -
Linux中的数据流重定向
本文目录数据流重定向本文目录(仅做浏览用,简书中的MarkDown暂时不支持页面内跳转)数据流重定向在之前的操作中,常会看到>或>>操作,它们分别是将标准输出导入到一个文件或追加到一个文件中。这其实就是重定向,将原本输出到标准输出的数据重定向到一个文件中,因为标准输出(/dev/stdout)本身也是一个文件,我们将命令输出导向另一个文件,自然也是没有任何...原创 2019-03-07 15:19:13 · 654 阅读 · 0 评论 -
Linux中的简单文本处理
文本处理命令tr命令(可以用来删除一段文本信息中的某些文字,或者将其进行转换)格式: tr [option] … SET1 [SET2]可选参数:-d: 删除和set1匹配的字符-s:去除set1指定的在输入文本中连续并重复的字符如,删除"hello curry"中所有的’o’, ‘l’, ‘h’:echo “hello curry” | tr -d ‘olh’如,将...原创 2019-03-07 15:19:49 · 364 阅读 · 0 评论 -
linux学习笔记1
1.终端仿真器terminal2.启动终端仿真器,出现shell提示符。显示格式: 用户名@主机名当前工作目录$注:如果shell提示符的最后一个字符是#,而不是$, 那么这个终端会话就有超级用户权限。这意味着我们以root用户的身份登录,提供超级用户的权限。3.shell(命令行): 它是一个程序,接受从键盘输入的指令,然后把命令依次传递给操作系统去执行。4.如果按上下键,会看...原创 2018-07-29 21:23:44 · 451 阅读 · 0 评论