linux内核完全剖析0.12笔记--第三章 内核编程语言和环境

Linux 0.12 内核学习笔记开篇语 大家在乌班图官网的链接里面,或者是在国内的开源镜像站点里面,在我写作的当前,你所能够直接找到的乌班图18.04版,是乌班图18.04.6。但是呢,如果,你的Linux技能属于是普通水平,出现了编译问题的时候,你容易束手无策,那么,我还是建议你,选择一个比较容易使用的操作系统,会更好一些。之所以要选择去讲解自己所写的代码,而不是原作的代码,这是因为,我认为,学习了内核以后,我们不仅仅是为了了解其运行机制与原理,更为重要的,是自己能够将内核给编译出来。并且呢,在编写代码的时候,对局部的代码,进行个性化的修改。 阅读详情

    本章主要是as86与gas两种汇编语言的简要介绍,C语言与汇编语言的相互嵌套,目标文件的结构与及makefile文件的简要语法。

  1,as86汇编的简要语法及命令可以参考http://blog.youkuaiyun.com/astraylinux/article/details/7301596

  2,gas汇编与intel汇编的主要区别:(具体语法参考:http://blog.youkuaiyun.com/astraylinux/article/details/7301620)   

   * 寄存器名前缀%

   * 操作数是源在前,目的在后。与Intel语法刚好相反。

   * 操作数长度在指令名后缀,b表示8位,w表示16位,l表示32位,如movl %ebx,%eax。

   * 立即操作数(常量)用$标示,如addl $5,%eax

   * 变量加不加$有区别。如movl $foo, %eax表示把foo变量地址放入寄存器%eax。movl foo,%eax表示把foo变量值放入寄存器%eax。

Intel CodeAT&T Code
mov eax,1movl $1,%eax
mov ebx,0ffhmovl $0xff,%ebx
int 80hint $0x80
mov ebx, eaxmovl %eax, %ebx
mov eax,[ecx]movl (%ecx),%eax
mov eax,[ebx+3]movl 3(%ebx),%eax
mov eax,[ebx+20h]movl 0x20(%ebx),%eax
add eax,[ebx+ecx*2h]addl (%ebx,%ecx,0x2),%eax
lea eax,[ebx+ecx]leal (%ebx,%ecx),%eax
sub eax,[ebx+ecx*4h-20h]subl -0x20(%ebx,%ecx,0x4),%eax


         3,两个目标文件连接示意图(注意子区与不可重定义区absolute)

    

     4,C语言程序的编译和链接过程

         

   5,在C语言中嵌入汇编的语法格式

     

   6,C语言调用的堆栈结构,栈内控制权转移,AT&T的栈组织方式与intel汇编应该是一样的,主要是cpu指令所决定的。

        

    7,在C语言中调用汇编的函数主要是实现方法是汇编,参数获取是从栈中根据esp偏移来取得,而调用函数的C这些语言代码与调用C语言的函数形式上是一样的。

    8,目标文件格式及链接操作:

        

                                  

as86汇编语法 立即下载

相关推荐

as86汇编指南~~

linux 下as86汇编指令,英文文档pdf格式

(转)Linux 中的汇编语言

Linux 中的汇编语言  在阅读 Linux 源代码时,你可能碰到一些汇编语言片段,有些汇编语言出现在以.S 为扩展名的汇编文件中,在这种文件中,整个程序全部由汇编语言组成。有些汇编命令出 现在以.c 为扩展名的 C 文件中,在这种文件中,既有 C 语言,也有汇编语言,我们把出 现在 C 代码中的汇编语言叫所“嵌入式”汇编。不管这些汇编代码出现在哪里,它在一定 程度上都成为阅读源代码的

hairetz的专栏 1万+

爬取国家统计局最近10年年度数据

一、编码流程 1.目标网址:https://data.stats.gov.cn/easyquery.htm?cn=C01 2.编码思路: (1) 解析左侧指标树,实现4级标签定位 (难点:层层嵌套,下一级指标的xpath路径以上一级指标为基础;不是所有二级指标都含有三和四级指标,需要进行判断) (2) 使用selenium webdriver 点选指标,加载出右侧表格数据 (难点:当指标无法在全局页面显示时,需向下拖动滚动条) (3) 解析右侧数据,实现数据存储 3.使用模块: (1) selenium:解

weixin_39645690的博客 4560

自己动手写操作系统之汇编基础——as86汇编和GNU as汇编简介与对比

概述:在自己动手写操作系统的时候,往往在开始阶段对汇编语言感到困难。汇编语言之所以会感觉困难,往往是既是因为偏底层,而我们平时接触的多为高级语言;另一方面是由于其平台相关性:C语言是通用的,但汇编不是。这就是说,intel和MIPS上的汇编语言是不同的,因为它们底层支持的机器指令集就不同,这是汇编向下的一方面;另一方面,向上,即使在一类处理器上,汇编语言也会因为编译器的不同而有所差别,这也正是本文

河西无名式 6431

导带、价带

价带是电子的“束缚态”能量区间,决定材料的化学性质;导带是电子的“自由态”能量区间,直接决定材料的导电能力;禁带宽度则是区分金属、半导体与绝缘体的核心参数。通过调控能带结构(如掺杂、应变工程),可设计出具有特定电学和光学特性的功能材料,推动电子信息、能源转换等领域的技术革新。

weixin_51552564的博客 5116

NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()

Please use torch.nn.Module.to_empty() instead of torch.nn.Module.to()输出(llama) (base) [root@localhost home]# nvidia-smi Unable to determine the device handle for GPU0000:09:00.0: Unknown Error。这是典型的“孤儿进程”,但它还是。(僵尸进程),占用 GPU 资源。如果进程仍然不消失,并且。,这意味着它的父进程是。

m0_61636632的博客 2096

Linux内核完全注释 阅读笔记:3.1、as86汇编器

By: Ailson Jack Date: 2018.09.05 个人博客:  http://www.only2fire.com/        本文在我博客的地址是:http://www.only2fire.com/archives/77.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。       欢迎大家访问我博客中的文章,对文章的修改、更新,以及相关主题文章...

Ailson Jack的专栏 1696

CTF命令执行绕过实战:从空格过滤到无回显外带的7种核心姿势

命令执行漏洞是Web安全中的常见高危漏洞,其核心原理在于应用程序未对用户输入进行充分过滤,导致攻击者能够注入并执行系统命令。在真实环境中,安全防护措施(如WAF、输入过滤函数)普遍存在,因此漏洞利用的关键技术在于“绕过”这些过滤机制。理解过滤器的运作逻辑(如黑名单、白名单、转义、长度限制)是成功绕过的前提。通过系统学习**空格绕过**、**命令黑名单绕过**、**编码混淆**等基础技巧,并结合**无回显外带**、**反弹Shell**等高级利用链,安全研究人员能够有效应对复杂防护场景。本文以CTFshow

weixin_29315091的博客 370

第3章 内核编程语言与环境(1)

第3章 内核编程语言与环境 3.1 as86汇编器 3.1.1 as86汇编语言语法 3.1.2 as86汇编语言程序 ! ! boot.s -- bootsect.s的程序框架。用代码0x07替换串msg1中1字符,然后在屏幕第1行显示 ! .global begtext,begdata,begbss,endtext,enddata,endbss !全局标识符,供ld86链接使用; .text !正文段; begtext: .data !数据段; begdata: .bss

weixin_43358213的博客 1018

SSL证书验证:VMware Horizon Client的安全隐患与临时解决方案

本文深入分析了VMware Horizon Client中SSL证书验证失败的安全隐患,提供了临时解决方案与长期防御策略。针对自签名证书、证书链断裂等常见问题,文章详细解析了风险成因,并给出分级响应方案,帮助企业平衡安全与效率。通过实战案例和自动化脚本,指导IT管理员构建主动防御体系,有效降低中间人攻击风险。

weixin_29290863的博客 337

【unity知识】最新的虚拟相机Cinemachine3简单使用介绍

本文介绍了Unity中Cinemachine 3虚拟相机系统的使用方法。相比旧版本,新版功能更强大且参数分类更直观。文章详细讲解了摄像机镜头参数、旋转控制(包括None、目标跟随、样条线推拉、旋转追随等6种模式)和位置控制(跟随、样条轨道、硬锁定等5种模式)。重点演示了样条轨道摄像机的创建与配置,以及如何实现第一人称和第三人称视角。通过丰富的GIF图示,展示了各种模式的运行效果,帮助用户快速掌握Cinemachine 3的核心功能。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 866

《 Linux内核完全剖析》、《linux内核完全注释》学习

《 Linux内核完全剖析》、《linux内核完全注释》学习

青少年趣味编程 1537

关于海康MVS软件显示速率低与1GB、相机丢包的设置优化

工控机主要应用与视觉检测!相机网线及工控机网口都是千兆的!设置完巨帧数和速度与双工(选择为全双工),显示速度低与1GB,不能够正常工作。C.LA-Properdes-Advanced-将RecerveBuffers更改为2048。E.LAN-属性-电源管理-取消选中允许计算机关闭此设备以保存电源。这种情况均为MVS设置不熟悉,可参照如下设置优化相应端口相机配置。D.局域网-属性-高级-将传输缓冲区更改为20484。B.LAN-属性-高级-将中断记录部分更改为执行。A.关闭采集控制帧速率控制。

米可的博客! 8827

LINUX内核完全剖析基于0.12内核:深入理解Linux内核运作机制

LINUX内核完全剖析基于0.12内核:深入理解Linux内核运作机制 【下载地址】LINUX内核完全剖析基于0.12内核 《LINUX内核完全剖析:基于0.12内核》是一份深度解析Linux内核的珍贵资源,专注于0.12版本的Linux内核,全面涵盖内核架构、内存管理、进程调度等核心主题。通过本资料,您将深入理解Lin...

gitblog_06789的博客 765

YOLOv8集成CPCA(Combined Parallel Convolutional Attention)注意力机制模块YOLOv8深度教程

YOLOv8集成CPCA注意力模块教程摘要 本教程详细介绍了如何将YOLOv8 CPCA(Combined Parallel Convolutional Attention)注意力模块集成到YOLOv8目标检测框架中。CPCA模块结合了通道注意力和多尺度空间注意力机制,通过全局池化和双路径融合增强通道特征,并利用多尺度深度可分离卷积捕获空间上下文信息。YOLOv8 教程包含完整的实现步骤:创建CPCA模块代码、修改YOLOv8模型解析逻辑、编写自定义配置文件,YOLOv8YOLOv8YOLOv8YOLOv8

FJN110的博客 1620

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

《Linux内核完全剖析-基于0.12内核》书评之陈莉君

.yewlloc_box { BORDER-RIGHT: #e1e2e4 1px solid; BORDER-TOP: #e1e2e4 1px solid; BORDER-LEFT: #e1e2e4 1px solid; BORDER-BOTTOM: #e1e2e4 1px solid; BACKGROUND:#e1e2e4}.line_table{}

每天进步一点 4999

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LINUX内核完全剖析:基于0.12内核

LINUX内核完全剖析:基于0.12内核 【下载地址】LINUX内核完全剖析基于0.12内核 《LINUX内核完全剖析:基于0.12内核》是一份深度解析Linux内核的珍贵资源,专注于0.12版本的Linux内核,全面涵盖内核架构、内存管理、进程调度等核心主题。通过本资料,您将深入理解Linux内核的基本结构和工作原理,...

gitblog_06791的博客 496

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

《Linux内核完全剖析基于0.12内核.pdf》——深入Linux内核的绝佳伴侣

《Linux内核完全剖析基于0.12内核.pdf》——深入Linux内核的绝佳伴侣 【下载地址】Linux内核完全剖析基于0.12内核.pdf详细介绍 《Linux内核完全剖析基于0.12内核》是一份为Linux内核爱好者量身打造的深度解析资料。它以早期0.12内核为基础,带领读者从源头探索Linux内核的构建与演变。文...

gitblog_06750的博客 467

【免费下载】 Linux内核完全剖析笔记(基于0.12内核)

Linux内核完全剖析笔记(基于0.12内核) 去发现同类优质开源项目:https://gitcode.com/ 资源介绍 本仓库提供了一个名为“笔记_Linux内核完全剖析_基于0.12内核.pdf”的资源文件下载。该文件是一份详细的笔记,内容涵盖了对Linux内核0.12版本的全面剖析。 文件内容 这份笔记详细记录了Linux内核0.12版本的核心概念、架构设计、关键模块以及实现细节。通过阅读...

gitblog_06639的博客 638

《Linux内核完全剖析基于0.12内核.pdf》详细介绍

《Linux内核完全剖析基于0.12内核.pdf》详细介绍 【下载地址】Linux内核完全剖析基于0.12内核.pdf详细介绍 《Linux内核完全剖析基于0.12内核》是一份为Linux内核爱好者量身打造的深度解析资料。它以早期0.12内核为基础,带领读者从源头探索Linux内核的构建与演变。文档全面剖析了内存管理、进...

gitblog_06721的博客 681

LINUX内核完全剖析-0.12内核资源下载介绍:深度解读Linux内核运作原理

LINUX内核完全剖析-0.12内核资源下载介绍:深度解读Linux内核运作原理 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在开源操作系统领域,Linux内核无疑是最为核心的部分。《LINUX内核完全剖析-0.12内核资源下载介绍》是一个专注于Linux 0.12内核的深度解析项目,为开发者提供了宝贵的资料,帮助大家更全面、更深入地理解Linux内核的运作机制。 ...

gitblog_06767的博客 429

LINUX内核完全剖析-0.12内核资源下载介绍

LINUX内核完全剖析-0.12内核资源下载介绍 去发现同类优质开源项目:https://gitcode.com/ 资源简介 本仓库提供的资源是《LINUX内核完全剖析-0.12内核》的扫描版电子文件。该资源包含完整的目录结构,方便读者查阅和学习。此版本为0.12内核的完全剖析,内容详实,对Linux内核的运作原理进行了深入探讨。 使用说明 本资源为扫描版,可能存在图片文字识别不清的情况,请谅解...

gitblog_06735的博客 362

读书笔记:LINUX内核完全剖析:基于0.12内核 之基础

读书笔记:LINUX内核完全剖析 之基础 16位微处理器 Intel 8086 20条地址线(寻址范围1M)16条数据总线 Intel 8088 8086的8位版,8条数据总线 IBM PC和PC/XT及同档次的兼容机都采用8088作为CPU Intel 80186 Intel 80286 24条地址线(寻址范围16M)可按实方式和保护方式运行 实方式下只能寻址1M字节空

肥叔菌的博客 8957

《Linux内核完全剖析》资源下载介绍

《Linux内核完全剖析》资源下载介绍 【下载地址】Linux内核完全剖析资源下载介绍 《Linux内核完全剖析》是一本深入解析Linux内核的经典书籍,基于0.12版内核,由赵炯编著。书中全面剖析了内核架构、进程管理、内存管理、文件系统等关键内容,为读者提供了系统性的内核知识。本书以实用性著称,通过详细讲解内核源码,帮...

gitblog_06730的博客 390

《Linux内核完全剖析》读书笔记

接下来几个月是个人阅读《linux内核完全剖析——基于0.12内核》的读书笔记,供个人以后回看,复习。

duozhoujiang2116的博客 791
上一篇: GNU as汇编简介 (AT&T语法)
下一篇: Linux C 动态内存分配 malloc及相关内容
AstrayLinux
博客等级 码龄15年 55粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值