首页
学习
活动
专区
工具
TVP
发布

菜菜的技术博客

专栏作者
47
文章
122127
阅读量
13
订阅数
Linux驱动之网卡驱动剖析
网络设备不同于字符设备和块设备,并不对应于/dev目录下的文件,应用程序通过 socket 完成与网络设备的交互,在网络设备上并不体现”一切皆文件”的设计思想。
菜菜cc
2022-11-15
55.5K1
AF_XDP socket 介绍
eBPF 相当于在内核中有一个运行特定字节码的虚拟机,可以动态将 eBPF 字节码注入进内核。eBPF 程序会 attach 到指定的内核代码路径中,当执行到该代码路径时,会执行对应的 eBPF 程序
菜菜cc
2022-11-15
1.8K0
上古神器 awk 笔记
file 为 awk 要读取的文件,可以是一个或多个文件。如果不指定文件,则从标准输入中读取
菜菜cc
2022-11-15
1.7K0
Linux 同步机制之原子操作
使用原子操作典型例子众所周知就是多个线程操作同一个全局变量 i++, 由于对应的汇编指令并不只是一条,在并发访问下可能出现多个线程中的多条指令交错导致部分加操作丢失。全局变量i属于临界资源,当然可以使用加锁的方式保护临界资源,但是加锁开销比较大,用在这里有些杀鸡焉用牛刀。最好的方式是使用内核提供的atomic_t类型的原子变量来进行原子操作。
菜菜cc
2022-11-15
9530
k8s first commit 源码分析之 Cloudcfg
cloudcfg 可以看做是 kubectl 的前身,负责与 API server 的交互,只存在于上古时代的 k8s 中,我们现在接触到的都是叫做 kubectl 的命令行工具了。该组件做的事情非常简单,就是将用户的命令行操作转化为对 API server 的 HTTP 请求。
菜菜cc
2022-11-15
2400
k8s first commit 源码分析之 API Server
api-server 是 k8s 的核心组件之一,用于接收 kubelet 的请求,并将请求信息保存到后端存储 etcd 中。核心功能是提供 k8s 各类资源对象的 CURD 等操作。
菜菜cc
2022-11-15
3230
Docker 入门之网络
Docker 网络使用了 Linux 的 network namespace 机制,隔离了网络设备, ip 协议栈,路由表以及防火墙规则。
菜菜cc
2022-11-15
4010
公网环境搭建 k8s 集群
笔者利用手头几台云服务器搭建 k8s 集群,由于这几台云服务属于不同的云服务厂商,无法搭建局域网环境的 k8s 集群,故笔者搭建的是公网环境的 k8s 集群,在此做个记录, 以下均在 ubuntu 20.04 环境下进行
菜菜cc
2022-11-15
2.8K0
内核链表介绍
应要求分享一下内核链表结构,故写了本blog。本文对内核链表做一个简单介绍,以及引出内核中大量使用的分离思想和数据结构的定义。
菜菜cc
2022-11-15
2610
C/C++与Python双剑合璧
    python作为一门动态语言,语法的灵活性和强大的模块支持使得开发效率大大提升,传统C/C++程序员可以借助python来实现业务逻辑来减少开发成本。而另一方面,python灵活的语言特性带来的代价是性能的降低,在一些密集计算型任务面前显得力不从心,但这个问题可以由C/C++来解决,将对性能要求较高的部分用C语言来实现即可, 而且对于一些加密解密算法,还可以保持源码的私密性。而本文正是针对两者的双剑合璧,对C/C++与python相互调用的讲解。
菜菜cc
2022-11-15
8120
OpenResty入门笔记
OpenResty 是一个高性能 Web 平台,打包了标准的 Nginx 核心,集成了很多常用的第三方模块。简单理解,OpenResty 是 Nginx 的加强。
菜菜cc
2022-11-15
5040
Express入门笔记
Node.js是基于chrome浏览器中的v8引擎而构建的js运行时环境, 并提供了一系列的工具模块和一个包管理工具npm. Node脱离于浏览器运行, 并提供了一系列自带的os相关接口, 从而使其能像传统后端语言一样操作文件、获取os相关信息等.
菜菜cc
2022-11-15
1.1K0
SELinux之解决avc denied
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是 Linux 的一个安全子系统。SELinux 主要作用是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。对资源的访问控制分为两类: DAC和MAC.
菜菜cc
2022-11-15
2.8K0
Linux驱动之SPI子系统剖析
SPI总线由四根通信线组成,全双工、主从方式串行同步通信,一次传输8bit,高位在前,低位在后。
菜菜cc
2022-11-15
4.3K0
rk3399-android9.0-secureboot介绍
RK完整的Secureboot包括两部分,第一部分为Linux的Secureboot,第二部分为Android特有的AVB(Android Verified Boot)。开启了Secureboot的设备,会在启动时逐级校验各分区,一旦某一级校验不通过,则设备就无法启动。
菜菜cc
2022-11-15
2K0
Java之JNI开发流程
​ 之前介绍过C/C++和Python的相互调用,这一次笔者讲解C/C++和Java的相互调用。Java与C的相互调用需要使用JNI,JNI即Java Native Interface(Java本地接口)。Google提供了NDK(Native Development Kit), NDK包含了一套Android的交叉编译环境和开发库,使用它可以编写C/C++程序后编译成Android环境下使用的动态链接库,Java代码使用JNI规范调用C/C++实现的动态链接库。本文先介绍在命令行下使用JNI,随后介绍在Android Studio中使用JNI。
菜菜cc
2022-11-15
1.4K0
Linux驱动之I2C子系统剖析
源码中会涉及到一部分SMBus相关内容,SMBus是Intel在I2C的基础上开发的类似I2C的总线,本文不探讨SMBus相关内容(其实说白了,还是懒QAQ)。笔者会大体上对I2C子系统的源码进行分析,如若分析的有出入,还望指出。
菜菜cc
2022-11-15
6.3K0
Linux驱动之PCI子系统剖析
PCI是外围设备互连(Peripheral Component Interconnect)的简称,作为一种通用的总线接口标准,它已经普遍使用在了计算机中。PCI总线常见于x86体系,本文默认面向的体系为x86,注意x86架构下IO与内存是独立编址的。
菜菜cc
2022-11-15
3.2K0
Linux驱动之Input子系统剖析
为了对多种不同类型的输入设备进行统一的处理,内核在字符设备驱动上抽象出一层,即输入子系统。
菜菜cc
2022-11-15
2K0
驱动GPIO操作总结
设备驱动程序是软件概念和硬件电路之间的一个抽象层,软件操作硬件的关键就是对寄存器的操作。笔者使用的S5PV210是IO与内存统一编址的,在裸机中直接操作IO端口的物理地址,而在驱动中必须使用虚拟地址。直接基于IO的虚拟地址用指针解引用的方式来读写有两种方式,静态映射和动态映射。除了可以直接将指针解引用的方式,内核中提供了专用的读写接口来读写寄存器。考虑到GPIO作为硬件资源,存在着被多个驱动使用,还有复用的问题,所以内核提供了GPIO驱动gpiolib框架来统一管控GPIO资源,gpiolib在内核中作为一个驱动所实现。
菜菜cc
2022-11-15
8730
点击加载更多
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档