![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 51
Farmwang
博采众长,兼收并蓄!
展开
-
linux 下安装SQLServer
1:get yum sourcecurlhttps://packages.microsoft.com/config/rhel/7/mssql-server.repo>/etc/yum.repos.d/mssql-server.repo2:yum get sqlserveryuminstall-ymssql-server原创 2021-09-08 21:21:11 · 271 阅读 · 0 评论 -
分析Linux内核创建一个新进程的过程
进程描述进程描述符(task_struct)用来描述进程的数据结构,可以理解为进程的属性。比如进程的状态、进程的标识(PID)等,都被封装在了进程描述符这个数据结构中,该数据结构被定义为task_struct进程控制块(PCB)是操作系统核心中一种数据结构,主要表示进程状态。进程状态fork()fork()在父、子进程各返回一转载 2017-04-13 17:16:23 · 313 阅读 · 0 评论 -
Linux内核进程调度schedule深入理解
一.说明本文以linux-2.4.10 为例主要分析Linux 进程调度模块中的schedule 函数及其相关的函数。另外相关的前提知识也会说明。默认系统平台是自己的i386 架构的pc。二.前提知识在进行schedule 分析之前有必要简单说明一下系统启动过程,内存分配使用等。这样才能自然过渡到schedule 模块。首先是Linux各个功能模块之间的依赖关系:转载 2017-04-13 17:24:37 · 5309 阅读 · 0 评论 -
内核栈
为什么需要内核栈进程在内核态运行时需要自己的堆栈信息, 因此linux内核为每个进程都提供了一个内核栈kernel stack,struct task_struct{ // ... void *stack; // 指向内核栈的指针 // ...};内核态的进程访问处于内核数据段的栈,这个栈不同于用户态的进程所用的栈。用户态进程所用转载 2017-04-13 17:37:30 · 3152 阅读 · 0 评论 -
schedule-调度器
1.1.1 进程的基本知识 1. 调度类型 每个Linux进程总是按照下面的调度类型被调度:l SCHED_FIFO 这是先进先出的实时进程。当调度程序把CPU分配给进程的时候,它把该进程描述符保留在运行队列链表的当前位置。如果没有其它可运行的更高优先级实时进程,进程就继续使用CPU,想用多久就用多久,即使还有其他具有相同优先级的实时进程处于可运行状态。l SCHED_R转载 2017-04-13 17:46:42 · 1381 阅读 · 0 评论 -
task_struct结构描述
1. 进程状态(State)进程执行时,它会根据具体情况改变状态 。进程状态是调度和对换的依据。Linux中的进程主要有如下状态,如表4.1所示。 内核表示含义TASK_RUNNING可运行TASK_INTERRUPTIBLE可中断的等待状态转载 2017-04-13 17:48:47 · 450 阅读 · 0 评论 -
Linux之时钟中断
在Linux的0号中断是一个定时器中断。在固定的时间间隔都发生一次中断,也是说每秒发生该中断的频率都是固定的。该频率是常量HZ,该值一般是在100 ~ 1000之间。该中断的作用是为了定时更新系统日期和时间,使系统时间不断地得到跳转。另外该中断的中断处理函数除了更新系统时间外,还需要更新本地CPU统计数。指的是调用scheduler_tick递减进程的时间片,若进程的时间片递减到0,进程则被调度出转载 2017-04-14 16:33:13 · 15011 阅读 · 1 评论 -
linux RTC 驱动模型分析
摘要: 最近学习RTC(real time clock)实时时钟,RTC实时时钟主要作用是给Linux系统提供时间。RTC因为是电池供电的,所以掉电后时间不丢失。Linux内核把RTC用作“离线”的时间 与日期维护器。最近学习RTC(real time clock)实时时钟,RTC实时时钟主要作用是给Linux系统提供时间。RTC因为是电池供电的,所以掉电后时间不丢失。Linux内核把转载 2017-04-14 16:55:11 · 289 阅读 · 0 评论 -
try_to_wake_up函数
try_to_wake_up函数通过把进程状态设置为TASK_RUNNING,并把该进程插入本地CPU运行队列rq来达到唤醒睡眠和停止的进程的目的。例如:调用该函数唤醒等待队列中的进程,或恢复执行等待信号的进程。该函数接受的参数有:- 被唤醒进程的描述符指针(p)- 可以被唤醒的进程状态掩码(state)- 一个标志(sync),用来禁止被唤醒的进程抢占本地CPU上正在运行的进程转载 2017-04-14 17:00:01 · 5002 阅读 · 0 评论 -
scheduler_tick函数
当每次时钟节拍到来时,即我们提到过的timer_interrupt会调用do_timer_interrupt_hook,从而调用do_timer和update_process_times函数,update_process_times则就是用来更新进程使用到的一些跟时间相关的字段,其罪重要的是调用scheduler_tick()更新时间片剩余节拍数:void scheduler_tick(voi转载 2017-04-14 17:11:41 · 514 阅读 · 0 评论 -
core dumped 核心转储
core dumped是核心转储。进程异常终止,进程用户空间的数据就会被写到磁盘。在Unix/Linux中,有时程序并未经过彻底的调试,使得它们有可能在执行的时候出现一些比如段错误之类的情况,此时可能会导致核心转储(core dumps)。 套用《Classis Shell Scripting》一书的解释:“在Unix系统中,常将‘主内存’(main memor转载 2017-05-05 09:26:43 · 1306 阅读 · 0 评论 -
linux 新建用户、用户组 以及为新用户分配权限
1、添加新的用户账号使用 useradd命令,其语法如下: 代码:useradd 选项 用户名其中各选项含义如下:代码:-c comment 指定一段注释性描述。-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。-g 用户组 指定用户所属的用户组。-G 用户组,用户组 指定用户所属的附加组。-s Shell文件 指定用户的转载 2017-05-25 22:42:25 · 8914 阅读 · 0 评论 -
POSIX 信号
dd转载 2017-07-16 18:59:40 · 223 阅读 · 0 评论 -
Linux 函数库调用 VS 系统调用
Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Working with files。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底...转载 2018-10-07 18:55:54 · 201 阅读 · 0 评论 -
Linux中fork,vfork和clone详解(区别与联系)
fork,vfork,cloneUnix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量级进程,也叫线程,是共享资源的进程)系统调用描述forkfork创造的子进程是父进程的完整副本,转载 2017-04-13 17:08:49 · 394 阅读 · 0 评论 -
linux常见进程与内核线程
发现大量jdb2进程占用io资源.jdb2进程是一个文件系统的写journal的进程kthreadd:这种内核线程只有一个,它的作用是管理调度其它的内核线程。它在内核初始化的时候被创建,会循环运行一个叫做kthreadd的函数,该函数的作用是运行kthread_create_list全局链表中维护的kthread。可以调用kthread_create创建一个kthread,它会被加入到kthr转载 2017-04-13 16:35:54 · 1618 阅读 · 0 评论 -
Linux下3个特殊的进程
Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2)* idle进程由系统自动创建, 运行在内核态 idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个没有通过fork或者kernel_thread产生的进程。完成加载系统后,演变为进程调度、交换* init进程由idle通过ker转载 2017-04-13 16:33:47 · 789 阅读 · 0 评论 -
0x7C00 理解
对于很多人来讲0x7C00这个地址是很神秘的,不知道这是干什么的。但是对于了解过x86平台下BIOS启动过程的人,对这个地址再熟悉不过了。BIOS就是将MBR读入0x7C00地址,然后进行后续的引导的。操作系统或是bootloader开发者必须假设 他们的汇编代码被加载并从0x7C00处开始执行。0x7C00的定义对于这个地址,它不属于Intel x86平台规范的,而是属于BI转载 2015-11-19 19:56:01 · 5717 阅读 · 1 评论 -
内核引导过程
原文标题:The Kernel Boot Process原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。] 上一篇文章解释了计算机的引导过程,正好讲到引导装载程序把系统内核镜像塞进内存,准备跳转到内核入口点去执行的时刻。作为引导启动系列文章的最后一篇,转载 2015-11-29 11:41:59 · 524 阅读 · 0 评论 -
剖析程序的内存布局
原文标题:Anatomy of a Program in Memory原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。] 内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章中,我将着眼于实际的内存问题,但也不避讳其中的转载 2015-11-29 11:45:55 · 439 阅读 · 0 评论 -
内核是如何管理内存的
原文标题:How The Kernel Manages Your Memory原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下。一来自己复习,二来与大家分享。] 在仔细审视了进程的虚拟地址布局之后,让我们把目光转向内核以及其管理用户内存的机制。再次从gonzo图示开始:转载 2015-11-29 11:46:34 · 956 阅读 · 0 评论 -
linux commen cmd
1: delete file/fileslinux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就是向下递归,不管有多少级目录,一并删除-f 就是直接强行删除,不作任何提示的意思原创 2016-08-03 20:11:51 · 225 阅读 · 0 评论 -
linux setup flashplayer
1: DownLoad install_flash_player_11_linux.x86_64.tar.gz2: tar -zx -f install_flash_player_11_linux_x86_64.tar.gz3:find-name plugins4: sudo cp libflashplayer.so browser/plugins原创 2016-08-01 22:03:50 · 260 阅读 · 0 评论 -
进程上下文和中断上下文的区别
进程上下文和中断上下文的区别 内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,而用户态应用程序运行在用户空间。它们代表不同的级别,而对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),这个级下所有的操作都受系统信任,而应用程序运行在较低级别(用户态)。在这个级别,处理器控制着对硬件的直接访问以及对内存的非授权访问。内核态和用户态有自己的内存映射,即自己的地转载 2016-08-27 22:29:39 · 1009 阅读 · 0 评论 -
Linux下系统调用的实现
Linux下系统调用的实现Unix/Linux操作系统的体系结构及系统调用介绍什么是操作系统和系统调用 操作系统是从硬件抽象出来的虚拟机,在该虚拟机上用户可以运行应用程序。它负责直接与硬件交互,向用户程序提供公共服务,并使它们同硬件特性隔离。因为程序不应该依赖于下层的硬件,只有这样应用程序才能很方便的在各种不同的Unix系统之间移动。系统调用是Unix/Linux转载 2016-08-27 22:46:17 · 4015 阅读 · 0 评论 -
te
原创 2016-08-25 21:08:11 · 409 阅读 · 0 评论 -
中断之中断向量表IDT的初始化
中断的初始化是在哪里完成的呢?是在start_kernel()中:512 trap_init();535 /* init some links before init_ISA_irqs() */536 early_irq_init(); 537 init_IRQ(); //最终调用native_init_IRQ,由它来完成主要工作。中断向量表的初始化分为转载 2016-08-25 21:54:48 · 3710 阅读 · 0 评论 -
内核 驱动 硬件直接的关系
linux驱动是直接和硬件打交道的软件程序。层次结构上它处于操作系统和硬件之间。 驱动与linux操作系统内核的关系1.驱动程序提供的一组设备驱动接口函数DeviceDriverInterface给操作系统。 在linux中这一组设备驱动接口函数一般包括open,close,read,write,ioctl等。 这一组函数是通过一个叫做fileopera转载 2017-03-22 19:21:28 · 2615 阅读 · 0 评论 -
Linux2.6X内核中文件相关结构体总结
一个进程中各主要的文件相关结构的关系图:下图为多个进程打开同一文件的情况:1.1 struct filestruct file结构体定义在include/Linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例转载 2017-03-24 14:58:00 · 749 阅读 · 0 评论 -
LINUX内核线程
本文以ARM架构为例,讲解linux的内核线程是如何创建的。Linux内核在完成初始之后,会把控制权交给应用程序。只有当硬件中断、软中断、异常等发生时,CPU才会从用户空间切换到内核空间来执行相应的处理,完成后又回来用户空间。如果内核需要周期性地做一些事情(比如页面的换入换出,磁盘高速缓存的刷新等),又该怎么办呢?内核线程(内核进程)可以解决这个问题。内核线程(kernel转载 2017-04-13 16:19:53 · 290 阅读 · 0 评论 -
计算机基础知识二
1. 进入32位模式并导入C语言制作真正的IPL(启动程序加载器)-用他来装载程序BIOS 0x13号函数(INT 0x13)读写磁盘。将硬盘内容装入内存。JC error ;jump if carry,如果有进位标志则跳转到error。2. 软盘就像一棵树的截面,他有上下两面,向上的面用磁头0读写,下面用磁头1读写。树有很多年轮,软盘也类似,软件年轮之间的转载 2015-11-18 22:34:11 · 449 阅读 · 0 评论