![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
傲世阿龍
这个作者很懒,什么都没留下…
展开
-
解析grub.conf文件(boot.cfg)
转载地址:http://blog.51cto.com/zz6547/1852788grub是什么: grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后, 内核会根据grub配置文件中的配置,找到根分区所使用的文件系统对应的驱动,通过根分区文件系统 对应的驱动,挂载根分区,从而达到启动操作系统的目的。转载 2017-12-07 15:03:44 · 2570 阅读 · 0 评论 -
分析mips架构linux启动流程(一)
mips架构内核启动时默认从BFC00000地址开始取指运行,也就是对应KSEG1,物理地址的1fc00000开始运行。在文件arch/mips/kernel/vmlinux.lds中指定了第一个运行的函数:#define mips mipsOUTPUT_ARCH(mips)ENTRY(kernel_entry)PHDRS { text PT_LOAD FLAGS(7); /*原创 2017-11-13 17:05:46 · 2195 阅读 · 1 评论 -
mips架构linux启动分析(三)(setup_arch--->cpu_probe)
接下来就要介绍板级初始化了。这篇主要是说一下板级初始化函数setup_arch中的cpu_probe函数。这里看一下setup_arch函数的样子:void __init setup_arch(char **cmdline_p){ cpu_probe(); prom_init();#ifdef CONFIG_EARLY_PRINTK setup_early_printk原创 2017-11-14 20:20:03 · 1213 阅读 · 0 评论 -
linux中platform总线解析(一)(platform总线初始化)
platform初始化的函数调用:start_kernel-->rest_init-->kernel_init-->kernel_init_freeable-->do_base_setup--->driver_init--->platform_bus_init初始化函数:platform初始化函数:int __init platform_bus_init(void){原创 2017-11-17 11:35:16 · 1012 阅读 · 0 评论 -
fedora安装mysql数据库
yum install mysql-community-mysql -y哦拉~~~原创 2017-10-17 09:34:21 · 245 阅读 · 0 评论 -
默认的fedora有java,没有javac解决
默认的fedora对于java的安装不是完整的,当需要自己编译程序时,就需要进行一下完整的安装:yum install java*jdk*devel* 哦拉,现在就可以进行编译了。原创 2017-10-17 09:31:56 · 622 阅读 · 0 评论 -
GCC对C语言的一些扩展小结
最近在看一些源代码,遇到了一些使用__attribute__修饰函数和变量的属性方面的代码,不是太了解,很是汗颜,再此做个总结:GCC使用__attribute__关键字来描述函数,变量和数据类型的属性,用于编译器对源代码的优化。描述函数属性的几个重要的关键字:void noreturnfun() __attribute__((noreturn));//函数转载 2017-11-09 17:32:33 · 537 阅读 · 0 评论 -
linux用户栈和内核栈解析
进程是程序的一次执行过程。用剧本和演出来类比,程序相当于剧本,而进程则相当于剧本的一次演出,舞台、灯光则相当于进程的运行环境。进程的堆栈每个进程都有自己的堆栈,内核在创建一个新的进程时,在创建进程控制块task_struct的同时,也为进程创建自己堆栈。一个进程 有2个堆栈,用户堆栈和系统堆栈;用户堆栈的空间指向用户地址空间,内核堆栈的空间指向内核地址空间。当进程在用户态运行时转载 2017-10-23 16:58:34 · 1901 阅读 · 0 评论 -
linux内核栈和用户栈解析
内核栈在每一个进程的生命周期中,必然会通过到系统调用陷入内核。在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内核栈”。内核栈主要用于进程陷入内核时使用的栈,主要涉及进程切换时保存用户态进程信息(寄存器值,一部分硬件上下文等),以及进程在内核执行时分配空间使用。进程是动态实体,其生命周期范围很大。因此内核必须能够同时处理转载 2017-10-23 16:57:17 · 1266 阅读 · 0 评论 -
linux多核多进程访问文件示例程序(每个核上运行一个程序)
#include #include #include #include #include #include #include #include #define __USE_GNU#include #include #include #include #define THREAD_MAX_NUM 100int num;void *threadWrite(void原创 2017-10-12 19:16:13 · 1309 阅读 · 0 评论 -
linux线程绑定到指定cpu运行
CPU亲合力就是指在Linux系统中能够将一个或多个进程绑定到一个或多个处理器上运行.一个进程的CPU亲合力掩码决定了该进程将在哪个或哪几个CPU上运行.在一个多处理器系统中,设置CPU亲合力的掩码可能会获得更好的性能. 一个CPU的亲合力掩码用一个cpu_set_t结构体来表示一个CPU集合,下面的几个宏分别对这个掩码集进行操作: ·CPU_ZERO()转载 2017-10-12 15:20:40 · 1257 阅读 · 1 评论 -
linux多线程编程示例
线程概念 线程是指运行中的程序的调度单位。一个线程指的是进程中一个单一顺序的控制流,也被称为轻量级线程。它是系统独立调度和分配的基本单位。同一进程中的多个线程将共享该系统中的全部系统资源,比如文件描述符和信号处理等。一个进程可以有很多线程,每个线程并行执行不同的任务。线程与进程比较 ① 和进程相比,它是一种非常“节俭”的多任务操作方式。在Linux系统中,启动一个新的进程必转载 2017-10-12 15:18:21 · 2544 阅读 · 0 评论 -
别人分析的mips架构的linux启动第一步(作为对比)
系统加电启动后,MIPS处理器默认的程序入口是0xBFC00000(虚拟地址),此地址在KSEG1(无缓存)区域内,对应的物理地址是0x1FC00000(高3位清零),所以CPU从物理地址0x1FC00000开始取第一条指令,这个地址在硬件上已经确定为FLASH(BIOS)的位置,BIOS将Linux内核镜像文件拷贝到RAM中某个空闲地址(LOAD地址)处,然后一般有个内存移动的操作(Entry转载 2017-11-13 17:27:19 · 2557 阅读 · 0 评论 -
int __builtin_constant_p (exp)函数的使用
int __builtin_constant_p (exp)是GCC内置函数功能:— Built-in Function: int __builtin_constant_p (exp)You can use the built-in function __builtin_constant_p todetermine if a value is known to be consta原创 2017-11-14 09:40:09 · 542 阅读 · 0 评论 -
____cacheline_aligned和____cacheline_aligned_in_smp
这两个都属于GCC扩展函数。____cacheline_aligned instructs the compiler to instantiate a struct or variable at an address corresponding to the beginning of an L1 cache line, for the specific architecture, i.e原创 2017-11-14 11:29:03 · 5330 阅读 · 0 评论 -
安装linux系统时怎么手动分区
安装环境:fedora21,loongson3a2000平台这是中国自主生产的台式机,其他架构可以借鉴。(linux是世界的)平时安装linux系统都是自动分区,之后一路下一步就完成了,真正的傻瓜式安装。那么为什么需要手动安装?又怎么样去手动安装呢?一,为什么需要手动去安装呢?明明一路点击就完成的,为什么要手动。对于没有需求的,当然怎么样都可以啦。可是当原创 2017-12-07 15:02:20 · 11294 阅读 · 0 评论 -
linux(fedora)怎么解压.7z文件
在linux上解压.7z文件,需要安装一个软件, p7zip在命令行下执行yum install p7zip -y安装软件完成后,再执行7za x filename.7z就把文件解压缩了。原创 2017-12-07 10:15:20 · 2006 阅读 · 0 评论 -
Fedora23上编译openGL程序前的准备工作
Fedora下OpenGl开发环境配置开发OpenGL工程需要3个库文件和对应的头文件:libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h这些库在linux系统中默认都有,使用locate命令验证都在标准库目录(/usr/lib)下:[root@localhost GL]# locate libglut.so/usr/lib/li转载 2017-12-07 10:04:38 · 199 阅读 · 0 评论 -
linux宏定义likely和unlikely解析
在看linux内核代码的时候,经常会看到likely(x)和unlikely(x)宏的使用。那这两个宏有什么作用呢?这两个宏在内核中的定义如下:# define likely(x) __builtin_expect(!!(x), 1)# define unlikely(x) __builtin_expect(!!(x), 0)可见这里使用了gcc的内建函数__builtin_e转载 2017-11-09 15:30:13 · 264 阅读 · 0 评论 -
vim中的折叠功能
vim代码折叠功能问题:怎样在vim中实现代码折叠功能? 解决方法:直接使用vim自带的快捷键和命令,便可以实现功能强大的折叠 小试折叠: 1 :set fdm=marker 在vim中执行该命令 2 5G 将光标跳转到第5行 3 zf10G 折叠第5行到第10行的代码,vim会在折叠的开始和结束自动添加三个连续的花括号作为标记 4 zR转载 2017-11-20 15:11:03 · 1892 阅读 · 0 评论 -
介绍GNU中__attribute__机制的网址
这里记录一下介绍gnu中__attribute__机制的网址http://www.unixwiz.net/techtips/gnu-c-attributes.html介绍GNU中对C扩展的网址https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/C-Extensions.html#C-ExtensionsGNU中特点介绍的首页https://原创 2017-11-14 19:29:59 · 212 阅读 · 0 评论 -
GNU中__attribute__机制介绍
1. __attribute__ GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)__attribute__前后都有两个下划线,并且后面会紧跟一对原括弧,括弧里面是相应的__attrib转载 2017-11-14 21:01:04 · 230 阅读 · 0 评论 -
linux中的typeof使用
Another way to refer to the type of an expression is with typeof. The syntax of using of this keyword looks likesizeof, but theconstruct acts semantically like a type name defined withtypedef.Th原创 2017-11-15 09:44:37 · 644 阅读 · 0 评论 -
一篇不错的关于GCC特性的文章
Linux 内核中的 GCC 特性了解用于 C 语言的 GCC 扩展文章原来的地址:https://www.ibm.com/developerworks/cn/linux/l-gcc-hacks/GCC 和 Linux 是出色的组合。尽管它们是独立的软件,但是 Linux 完全依靠 GCC 在新的体系结构上运行。Linux 还利用 GCC 中的特性(称为扩展)实转载 2017-11-15 09:34:09 · 402 阅读 · 0 评论 -
__read_mostly的使用
在linux中好多内容被定义为__read_mostly,那么这有什么作用呢?首先看一个使用:structr cpuinfo_mips cpu_data[NR_CPUS] __read_mostly再看一下其定义:#define __read_mostly __attribute__((__section__(".data..read_mostly")))也就是说被__rea原创 2017-11-14 14:19:32 · 5648 阅读 · 0 评论 -
mips架构linux启动分析(二)
在start_kernel函数的开始部分:asmlinkage void __init start_kernel(void){ char * command_line; extern const struct kernel_param __start___param[], __stop___param[]; lockdep_init(); smp_setup_processor_原创 2017-11-14 11:59:46 · 511 阅读 · 0 评论 -
fedora启动mysql
systemctl start mysqld.servicesystemctl emable mysqld.service启动服务现在新版本名字变了,可以两个都试验一下:systemctl start mariadb.servicesystemctl emable mariadb.service打开程序:[(32) root@Fedo原创 2017-10-17 10:11:07 · 671 阅读 · 0 评论 -
开发内核时怎么设置参数来挂接文件系统
平台介绍:loongson(MIPS)3A平台,bios是pmon文件系统:在硬盘上安装了一个fedora系统,当作文件系统使用情况介绍:每次编译完内核后,及直接使用加载到板子上run起来,导致最后没有文件系统挂接。文件系统已经安装到硬盘上,就是参数设置的不正确才导致的。(本身开发板也就是一个台式机的主板,系统启动后挂接好文件系统就是一个主机)那要怎么设置呢?原创 2017-09-08 14:55:06 · 248 阅读 · 0 评论 -
在linux系统上安装多个内核
linux系统启动时,有一个选项,选择启动哪个内核,但是我的机器只安装了一个,能不能安装多个内核,然后启动时选择启动不同版本的内核呢?答案是:完全可以。先介绍一下我的这个使用情况:我的主机是mips架构的(公司),在远程X86上进行编译,然后呢把编译好的内核,模块等拷贝到本地进行配置。安装多个内核所需要的东西:1,内核(这个当然需要了,就是配置这个东西麻)2,对应这原创 2017-09-08 14:46:43 · 5881 阅读 · 2 评论 -
fedora21配置tftp服务器
1,tftp的安装yum install tftp tftp-service -y (配置过很多centos ubuntu的tftp,感觉方法都很统一,这次配置fedora感觉怪怪,可能只是方法不一样把,现在记录下来)2,启动和允许systemctl start xinetd.servicesystemctl enable xinetd.servic原创 2017-05-17 18:06:30 · 822 阅读 · 0 评论 -
fedora21设置yum代理
在公司上班,不能直接访问外网,需要进行代理的设置。1,首先为系统设置一个代理,以便让系统上网在.bashrc文件中加上:export ftp_proxy="ftp://username:password@ip:port"export http_proxy="http://username:password@ip:port"export https_proxy="https://原创 2017-05-17 09:44:17 · 383 阅读 · 0 评论 -
centos安装emacs
CentOS安装Emacs(2013-03-03 18:02:36)转载▼标签:centosemacsit分类:IT小了解我这里安装的是:emacs.24.2下载地址:http://ftp.gnu.org/pub/gnu/emacs/ 下载文件:emacs-24.2.tar.gz 步骤: 一、安装转载 2017-05-08 16:36:14 · 1848 阅读 · 0 评论 -
centos6.4安装tftp服务器
首先安装相关的软件,配置好源之后开始安装1, yum -y install tftp 2,yum -y install tftp-server3, yum -y install xinetd之后进行配置:service tftp{ disable = no #打开服务 socket_type = dgram protocol = udp原创 2017-05-08 11:54:31 · 278 阅读 · 0 评论 -
linux中对于文件sudoers的配置以及使用
一、sudo执行命令的流程将当前用户切换到超级用户下,或切换到指定的用户下,然后以超级用户或其指定切换到的用户身份执行命令,执行完成后,直接退回到当前用户。具体工作过程如下:当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限-->确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认-->若密码输入成功,则开始执行转载 2017-05-26 09:53:36 · 651 阅读 · 0 评论 -
centos6.4怎么看pdf文件
yum install evince使用这个软件进行pdf文件的查看原创 2017-05-05 17:42:20 · 3125 阅读 · 0 评论 -
centos6.4设置终端中文显示问题
支持中文显示设置文件/etc/sysconfig/i18n文件当安装系统时没有选择中文,进入系统终端对中文肯定显示乱码首先安装一下中文支持yum groupinstall chinese-support之后看一下文件/etc/sysconfig/i18n默认设置是LANG="en_US.UTF-8"SUPPORTED="en_US.en:zh_CN:zh"SYSFONT="lat0原创 2017-05-05 14:00:01 · 2484 阅读 · 0 评论 -
PS1环境变量的设置
export PS1='[\[\e[32;1m\](\#) \[\e[34;1m\]\u@\[\e[33;1m\]\h\[\e[31;1m\]\w]\[\e[30;1m\]\$' 首先介绍下其中的关键字:\# 执行命令数\u 用户名\h 主机名\w 路径名 \$ 提示符当然主要是介绍对于这个颜色设置的使用:1,首先对于要设置颜色原创 2017-05-24 10:59:47 · 1171 阅读 · 0 评论 -
在修改了PS1环境变量后,系统终端出现不换行问题解决
正常的Linux服务器只要输入长度超过屏宽就会换行、但我的现在长度达到了、就是不自动换行、还会从开头输出、把PS1都掩盖了、不是键盘的问题、我是用Xshell登录的、其他的服务器都正常、设置也一样、就算用其他的软件登录有问题的那台服务器、也是不换 我的终端命令打的太长了,不会自动换到下一行继续,而是会从行首覆盖下去,使用的时候特别的不方便。今天我才发现是在 .bashrc文转载 2017-05-24 10:51:52 · 3310 阅读 · 0 评论 -
linux修改hostname
这个修改方法是属于大部分系统,fedora的修改有点不同,单独进行了记录。Linux修改主机名的方法用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值。#hostname //查看机器名#hostname -i //查看本机器名对应的ip地址另外一种方法就是之久修改配置文件修改/etc/sysconfig/network 修改这个文件转载 2017-05-24 09:57:22 · 212 阅读 · 0 评论 -
fedora修改hostname
Linux Distribution:Fedora 19方式一(重启后失效,需root权限):[plain] view plain copyprint?hostname 新主机名 hostname 新主机名[plain] view plain copyprint?[root@promote h转载 2017-05-24 09:55:19 · 2050 阅读 · 0 评论