Linux
小__Q
宁静致远,淡泊明志
展开
-
一个C语言程序(进程)运行时原理的剖析
Linux1. 入口函数main函数之前运行的函数称为入口函数或入口点!程序入口点实际上是指一个程序的初始化和结束部分。glibc的程序入口为_start(这个入口是由ld链接器默认的链接脚本所指定)_start 由汇编实现,并且和平台相关。 _start: xorl %ebp, %ebp popl %esi movl %esp,%ecx p...原创 2018-10-15 16:03:18 · 1904 阅读 · 0 评论 -
计算机内核学习
1. 文件结构前言:内核的文件树如下所示:编译文件如下:# All Phony Targets.PHONY : everything final image clean realclean disasm all buildimg# Default starting positioneverything : $(TINIXBOOT) $(TINIXKERNEL)all : re...原创 2018-11-05 16:12:58 · 370 阅读 · 0 评论 -
Linux中源码安装构建软件
得到源文件wget + url #得到压缩文件unzip or tar 解压压缩文件即可git clone + url #得到源文件构建系统构建系统就是我们常说的“编译源代码”,其实,编译只是从源代码中生成一个可以使用的软件的其中一个阶段。构建系统是一套工具,用于自动处置不同的任务,以便可以仅通过几个命令就能构建整个软件。写出和调优一个构建系统是一个非常复杂的任务。但是,作为“终端...原创 2018-11-15 17:05:42 · 180 阅读 · 0 评论 -
gcc,make,gdb学习
gcc(编译器)gcc编译器可以将C、C++等语言源程序、汇编程序编译、链接成可执行程序。make通常是用make来调用gcc编译.代码文件多了,就涉及到管理问题,让你每个都gcc xxx …一下,累啊,所以用make来管理一下,间接调用gcc就方便多了,通常一个make命令完成编译,甚至安装什么的。make了,你必须有makefile文件,makefile文件中就有一系列的编译过程,...原创 2018-11-30 16:13:13 · 198 阅读 · 0 评论 -
MSYS2的学习
前言:Minimal GNU(POSIX)system on windows,是一个小型的GNU环境,包括基本的bash,make等等。MSYS2是一个MSYS的独立改写版本,主要用于shell命令开发环境。同时,它也是在Cygwin(POSIX兼容性层)和MinGW-w64基础上产生的,追求更好的互操作性的Windows软件。起源原本GNU工具只在Linux/Unix系统才有,随着Win...原创 2018-11-28 16:39:16 · 3043 阅读 · 0 评论 -
Cake和make的学习
前言:make是GNU下的一个命令,该指令读入一个名为makefile的文件,然后执行这个文件中指定的指令。cmake是一个跨平台的安装工具,可以用简捷的语句来描述所有平台的安装(编译过程)。它不直接构建出最终的软件,而是产生标准的构建档(如Unix的makefile或者Windows Visual C++的projects/workspace),然后再依一般的构建方式使用。这使得熟悉某个集成...原创 2018-11-27 21:27:24 · 1243 阅读 · 1 评论 -
ubuntu18.04安装Vundle插件管理器
下载Vundle到制定目录git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim编写适用Vundle最小的配置文件:vim ~/.vim/vimrc参考:https://github.com/VundleVim/Vundle.vim安装插件运行vim再运行:PluginInstall...原创 2019-01-04 12:13:36 · 2494 阅读 · 0 评论 -
Vim编辑器的使用
跳到指定行n编辑模式下:ngg命令行模式下:n复制粘贴删除命令行模式复制::m,n co p 从m行到n行复制到p行的下一行移动::m,n m p 从m行到n行移动p行的下一行删除::m,n de从m行到n行删除编辑模式dd:删除光标处一行ndd:删除光标所在行及以下的n行(n计数从光标处计算)。...原创 2019-01-04 17:45:20 · 674 阅读 · 0 评论 -
Linux中程序的参数传递
参数传递一般是函数传参或程序执行传参程序执行传参比如:ls -l ,ls -a 等等#includeint main(int argc,char **argv){ int i = 0; for(i = 0; i < argc; i++) printf("argv[%d] = %s\n", i, argv[i]); return 0;}运行此程序:./test hell...原创 2019-01-02 16:07:04 · 2023 阅读 · 0 评论 -
Linux命令学习()
一:dd命令dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file &原创 2018-10-30 10:42:00 · 197 阅读 · 0 评论 -
多任务间通信和同步
信号:软件层次上对中断机制的一种模拟管道:亲缘关系的进程间通信消息队列:共享内存:进程间通信套接字:不同机器的进程间通信信号量:互斥锁:线程同步...原创 2018-10-24 16:11:45 · 513 阅读 · 0 评论 -
常用开发工具命令行参考Linux&Windows
运行程序代码 gcc hello.c ./a.out预编译: gcc -E hello.c -o hello.i或者 cpp hello.c >helo.i编译 gcc -S hello.i -o hello.s汇编 gcc -c hello.s -o helo.o or as hello.s -o hello.o or ...原创 2018-10-09 15:50:19 · 312 阅读 · 0 评论 -
计算机文件系统概述
EXT2文件系统The second Extended File System在Linux中应用极为广泛是GUN/Linux系统中标准的文件系统性能好,开销小,中小型文件的存储性能好,主要得益于优良的设计。EXT2文件系统由一系列逻辑上线形排列的数据块组成,数据就存储在这些数据块中。每个数据块具有相同的大小,所有块又被分为若干个组块,每个块组包含相同个数的数据块,整个文件系统布局如下:超级...原创 2018-10-22 10:38:07 · 1190 阅读 · 0 评论 -
程序编译过程linux与windows下的文件类型
动态链接情况1. linux.c C source, ASCII text 源文件.i ==C source, ASCII text ==预编译生成文件.s assembler source, ASCII text 单独编译生成文件.o ELF 汇编生成文件 目标文件.so ELF 共享对象文件.out ELF 可执行文件2. windows.c 源文件.dll...原创 2018-10-10 22:25:56 · 370 阅读 · 0 评论 -
mini2440串口调试
自己摸索了一块mini2440的板子,但是使用串口一直和电脑连接不上,最后参考文章连接好了,也就是说RS232的串口连接线有很大的问题,彼此是不对称,自己用了三根线,连接如下usb转串口公头2脚mini2440公头2脚usb转串口公头3脚mini2440公头3脚usb转串口公头5脚mini2440公头5脚最终问题解决!参考文章:https://blog.csdn.net/sharpblade...原创 2018-10-17 16:45:55 · 693 阅读 · 2 评论 -
计算机I/O设备学习
Linux内核源码有一半是由驱动组成,驱动在Linux完成其强大功能中扮演重要角色,而在开发自己的系统时,有时会发现无法在现有代码中找到支持特定的硬件的驱动,这是就需要自己动手写一些小程序来完成。Linux设备的分类:字符设备:字符设备是以字符为单位输入输出数据的设备,一般不需要使用缓冲区而直接对它进行读写。如打印机,显示终端块设备:是以一定大小的数据块为单位输入输出数据的,一般要使用缓冲...原创 2018-10-23 16:14:40 · 452 阅读 · 0 评论 -
用ssh远程登录Linux(ubuntu)
一般流程,如果有问题,按照下面步骤排查一遍即可查看ssh是否开启service ssh statusservice ssh startservice ssh restartservice ssh stop如果没有安装sudo apt-get install openssh-server配置相关信息vi /etc/ssh/sshd_config查看端口是否监听nets...原创 2018-10-25 21:39:04 · 214 阅读 · 0 评论 -
保护模式和实模式(系统调用)
前言:打开cpu是试运行在实模式下,经过某种机制之后,才进入保护模式。保护模式下CPU有巨大的寻址能力,并且为操作系统提供更好的硬件保护。实模式下能用的BIOS中断在保护模式下不能用。保护模式下,中断机制发生了很大的变化,原来的中断向量表已经被IDT所代替。(实模式下中断操作,保护模式下显示中断操作的信息)实模式:保护模式:有不同的特权级,有四个等级。每个等级下的堆栈也不相同,各个等级的...原创 2018-10-31 10:57:05 · 479 阅读 · 0 评论 -
Glibc的介绍
Glibc的主要功能头文件主要功能ctype.h字符测试stdio.h输入输出stdlib.h复杂的工具string.h字符串处理assert.h程序断言limits.h系统参数stddef.h通用类型和常量time.h时间处理errno.h错误检测locale.h自适应math.h数学函数...原创 2018-10-24 16:04:08 · 1813 阅读 · 0 评论 -
Linux的命令概念学习
什么是命令?命令可以是下面四种形式之一:是一个可执行程序,就像我们所看到的位于目录/usr/bin中的文件一样。属于这一类的程序,可以编译为二进制文件,诸如C和C++写成的程序,也可以是脚本写成的程序,比如说shell,perl,python,ruby等等。是一个内建于shell自身的命令。bash支持若干命令,内部叫做shell内部命令。例如cd是一个shell函数。这些是小规模的sh...原创 2019-01-02 16:39:32 · 186 阅读 · 0 评论