![](https://img-blog.csdnimg.cn/86d572f17c66438a8084f2ced2941912.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
linux核心实作-黄敬群
文章平均质量分 74
声明:本专栏内容大多是转载、总结类型。如果有版权问题,请联系我删除。
WM_CH
Linux民工,多帅哦。
展开
-
浮点数在计算机中的表示,程序中浮点数的取值和比较。
整数部分除2取余,小数部分乘2取整。IEEE 754原创 2022-06-08 07:31:33 · 589 阅读 · 1 评论 -
使用 volatile 破坏系统代码的九种方法
首先怼上:It’s hard to overstate how bad an idea it is for a compiler to use strange heuristics about code structure to guess the developer’s intent.编译器使用奇怪的试探法来猜测开发人员的意图,这个想法有多糟糕,怎么强调都不为过。 1 两个典型用法(1)#define TCNT1 (*(volatile uint16_t *)(0x4C原创 2022-05-21 17:46:48 · 597 阅读 · 0 评论 -
linux lib/list_sort.c排序算法
linux lib/list_sort.c排序算法没看懂,留念一下。patch地址是https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1957556.html 知识点:__attribute__((nonnull)) 让 compiler 对指定位置的 pointer 是 NULL 时发出警告。比如:__attribute__((nonnull(2,3)))void list_sort(void原创 2022-05-03 16:46:19 · 600 阅读 · 1 评论 -
Linux中的READ_ONCE、WRITE_ONCE
READ_ONCE宏#define READ_ONCE(x) __READ_ONCE(x, 1)#define __READ_ONCE(x, check) \({ \ union { typeof(x) __val; char __c[1]; } __u; \ if (check) \ _原创 2022-04-30 10:42:00 · 663 阅读 · 0 评论 -
链表快速排序quick-sort(递归+迭代)
递归版直接上代码。static void list_qsort(struct list_head *head){ struct list_head list_less, list_greater; struct listitem *pivot; struct listitem *item = NULL, *is = NULL; if (list_empty(head) || list_is_singular(head)) return; IN原创 2022-04-26 01:15:24 · 2147 阅读 · 0 评论 -
Linux中的List,HList 和 Hash Table
本文是转载文章,如果有授权问题,请联系我删除。https://danielmaker.github.io/blog/linux/list_hlist_hashtable.html Listlinux里的list定义:include/linux/types.hstruct list_head { struct list_head *next, *prev;};container_of/** * container_of - cast a member of原创 2022-04-26 00:37:58 · 239 阅读 · 0 评论 -
你所不知道的C语言——链表内是否有环(龟兔赛跑算法)
判断链表中是否有环,这也是力扣的题:141 Linked List Cycle 142 Linked List Cycle II146 LRU缓存不多比比,直接上代码:变量 mu 指的是 碰头的节点变量 lamda 指的是 环的长度static inline Node *move(Node *cur) { return cur ? cur->next : NULL; }bool cycle_finding(Node *HEAD, Node **TAIL, int *length,原创 2022-04-22 00:58:09 · 1146 阅读 · 0 评论 -
你所不知道的C语言——链表
linus嘴里的good taste在一次TED演讲中,林老大在14分钟提到,代码的品味。The mind behind linux说实话,这是我第一次听到林老大的声线。看下边一段代码:void remove_list_node(List *list, Node *target){ Node *prev = NULL; Node *current = list->head; // Walk the list while (current != target)原创 2022-04-21 02:02:14 · 1127 阅读 · 2 评论 -
密码攻击——无分支的代码,执行时间是常量
基于时间的密码攻击考虑下边的代码int memcmp(const void *s1, const void *s2, size_t n) { if (n != 0) { const unsigned char *p1 = s1, *p2 = s2; do { if (*p1++ != *p2++) return ((*--p1) - (*--p2)); } while (--n != 0);原创 2022-04-17 18:08:29 · 551 阅读 · 0 评论 -
科普文章-另一个视角解读计算机编码(修订版)【一个吊丝的个人理解】
本文引用文章地址科普文章-另一个视角解读计算机编码(修订版)_dog250的博客-CSDN博客https://blog.csdn.net/dog250/article/details/73381875现将其内容搞下来,自己加一些理解。以下解读中,方括号是吊丝加上的。第一部分 另一个视角解读计算机编码-补码编码数学的计算机表示数学是一个完全抽象的学科,而计算机是这个学科的一种形象化的实现,显然无法处理一些仅在抽象意义上有意义的特殊“数字”,比如无穷之类的东西。像数学中的加法,乘法这样运算,转载 2022-04-17 02:56:51 · 173 阅读 · 0 评论