E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《程序员的自我修养》
操作系统-
程序员的自我修养
一、温故而知新所有的应用程序都以进程process的方式运行在比操作系统权限更低的级别,每个进程都投自己独立的地址空间,使得进程之间的地址空间相互隔离。抢占式CPU分配方式:操作系统可以强制剥夺CPU资源并且分配给它认为目前最需要的进程。磁盘被抽象成普通的系统文件。CPU提供两条专门的指令“in”和“out”来实现对硬件端口的读和写。地址空间分为:虚拟地址空间、物理地址空间我们把程序给出的地址看作
HBryce24
·
2024-02-14 09:46
java
【
程序员的自我修养
】8. Linux共享库的组织
共享库版本共享库兼容性更新方式:兼容更新:在原有的基础上添加内容,原有接口保持不变不兼容更新:原有接口改变,使用该共享库原有的接口程序可能不能允许或运行不正常ABI接口(二进制接口):包含函数的堆栈接口、符号命名、参数规则和数据结构的内存分布导致C语言共享库ABI改变的行为包括:函数的产生的结果和之前不一样函数被删除数据结构发生变化,如结构成员的删除、顺序改变等函数接口发生改变,如函数参数和返回值
杨主任o_o
·
2024-02-12 00:03
linux
运维
服务器
【
程序员的自我修养
11】栈与函数调用过程
绪论大家好,欢迎来到【
程序员的自我修养
】专栏。正如其专栏名,本专栏主要分享学习《
程序员的自我修养
——链接、装载与库》的知识点以及结合自己的工作经验以及思考。
谢艺华
·
2024-02-06 05:21
编译
链接
装载
库
java
数据库
服务器
栈帧
——
程序员的自我修养
——链接、装载与库》笔记
“可执行文件在装载时实际上是被映射的虚拟空间”——《
程序员的自我修养
——链接、装载与库》“可执行文件”与“执行该可执行文件进程的虚拟空间”存在着一种映射关系,这种映射关系只是保存在OS内部的一个数据结构
Tadecanlan
·
2024-01-26 22:05
计算机体系知识
c++
c语言
程序员的自我修养
-笔记
一、2024-1-211、.bss在目标文件、可执行文件中并不占用空间,但在装载时占用地址空间。链接器将.bss合并时,也分配虚拟空间2、链接器为目标文件分配地址和空间,.test、.data在可执行文件及装载后的虚拟地址中均占空间;.bss仅在虚拟地址空间中。3、链接分两步:空间与地址分配:获取各个.o各个段的长度、属性、位置;收集各个.o中的符号定义、符号引用,统一放到全局符号表。计算合并后的
Tadecanlan
·
2024-01-26 22:04
计算机体系知识
c语言
c++
【
程序员的自我修养
—内存模型】
程序的内存布局kernelspace内核空间:程序无法直接访问stack栈:1.用于维护函数调用的上下文;2.通常有几M的容量向下生长dynamiclibraries动态链接库映射区:用于映射装载的动态链接库向上生长heap堆:1.用来容纳应用程序动态分配的内存区域;2.使用malloc或者new分配内存;3.一般比栈大,几十到几百M的容量read/wirtessections(.data/.bs
杨主任o_o
·
2024-01-18 05:20
算法
c++
【
程序员的自我修养
—系统调用与API】
系统调用背景:为了避免有限的系统资源被多个不同的应用程序同时访问,需要加以保护,避免冲突;提供一套统一的接口,是应用程序能做一些由操作系统支持的行为;接口通过中断的方式实现,Linux使用0x80作为系统调用的入口,通用寄存器用于传递参数。弊端:使用不方便,程序员需要了解与操作系统的相关细节;操作系统之间的系统调用不兼容;通过增加抽象层(标准库)来解决该问题,如,C语言中被定义在/usr/incl
杨主任o_o
·
2024-01-18 05:19
c++
【
程序员的自我修养
10】动态库的兼容问题——GLIBC_2.34‘ not found
绪论大家好,欢迎来到【
程序员的自我修养
】专栏。正如其专栏名,本专栏主要分享学习《
程序员的自我修养
——链接、装载与库》的知识点以及结合自己的工作经验以及思考。
谢艺华
·
2024-01-15 23:49
编译
链接
装载
库
java
算法
linux
动态库兼容
【
程序员的自我修养
09】动态链接过程的场景补充及其思考
绪论大家好,欢迎来到【
程序员的自我修养
】专栏。正如其专栏名,本专栏主要分享学习《
程序员的自我修养
——链接、装载与库》的知识点以及结合自己的工作经验以及思考。
谢艺华
·
2024-01-15 23:48
编译
链接
装载
库
服务器
运维
全局符号冲入
【
程序员的自我修养
08】精华!!!动态库的由来及其实现原理
绪论大家好,欢迎来到【
程序员的自我修养
】专栏。正如其专栏名,本专栏主要分享学习《
程序员的自我修养
——链接、装载与库》的知识点以及结合自己的工作经验以及思考。
谢艺华
·
2024-01-15 23:18
编译
链接
装载
库
算法
动态库
【
程序员的自我修养
—进程虚拟地址空间】
虚拟地址空间每个进程拥有独立的虚拟地址空间,CPU的位数决定了最大理论上限;32位计算机的地址空间是0-2^32-1,即4GB;C语言中指针的大小通常和虚拟地址空间的位数相同,在32位平台的大小是4个字节。分配状态:操作系统使用;用户进程,包含了代码、数据以及通过malloc申请的空间等。问题:程序使用的空间能不能超过4GB?如果是指操作虚拟地址空间,是不能超过的如果是计算机内存空间,是可以操作的
杨主任o_o
·
2024-01-14 17:41
linux
运维
服务器
【
程序员的自我修养
—目标文件中有什么】
目标文件定义与分类目标文件:源代码编译后未经过链接的中间文件Linux:.o文件Windows:.obj文件可执行文件和目标文件在内容和结构上很相似,广义上可以看作一种类型的文件Linux:ELF文件(a.out)Windows:PE文件(Intel/Microsoft的OMF文件,MS-DOS的.COM文件)动态链接库和静态链接库也按照这种格式存储Linux:.so(动态链接库)、.a(静态链接
杨主任o_o
·
2024-01-14 17:11
c++
【
程序员的自我修养
—静态链接】
静态链接例子//a.cexternintshared;intmain(){inta=100;swap(&a,&shared);}//b.cintshared=1;voidswap(int*a,int*b){*a^=*b^=*a^=*b;}$gcc-ca.cb.c-fno-stack-protectora.c:Infunction‘main’:a.c:4:5:warning:implicitdecl
杨主任o_o
·
2024-01-14 17:11
算法
数据结构
【
程序员的自我修养
—编译和链接】
IDE或者编译器的构建过程构建过程分为4个过程:预处理、编译、汇编、链接。通过gcc命令来进行编译,实际上是对预编译程序cc1、汇编器as、连接器ld的封装,可以直接使用这些命令来得到对应的文件。以"helloworld"程序为例子,整个过程可以用如下的图表示。#includeintmain(){printf("HelloWorld!\n");return0;}//编译执行的过程如下//gcche
杨主任o_o
·
2024-01-14 17:40
算法
程序员的自我修养
程序员的价值程序员的迷茫-找寻不到价值在浩大的软件世界里,作为一名普通程序员,显得十分渺小,甚至会感到迷茫。我们内心崇拜技术,却也对日新月异的技术抱有深深的恐惧。技术市场就像这喜怒不定的老天爷,今天下个大数据雨,明天刮个人工智能风,面对琳琅满目的技术浪潮的冲击,程序员难免深感无力,深怕错过了技术潮流从而失去了职场竞争力。有时候我会思考难道在技术领域内不断紧跟新潮,不断提升技能就是我的价值所在?那么
GJG
·
2024-01-12 15:45
论
程序员的自我修养
图片发自App一、编程能力不用多说,作为Java程序员,精通Java基础是必须的。这种精通,不是说看了一本《24小时精通XXX》,抄了几个程序就能说精通的,要靠长时间的积累和浸淫。我曾经看多很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的。就像一个菜市场,杂乱无比,估计10天后,他自己都无法看的懂。遵守编码规范,是
大师兄爱上芭蕉扇
·
2024-01-10 22:41
《
程序员的自我修养
--链接,装载与库》
第一章:温故而知新过度优化的问题:我们知道volatile关键字可以阻止过度优化,因为它可以完成两件事:阻止编译器为了提高速度将一个变量缓存到寄存器而不写回阻止编译器调整操作volatile变量的指令顺序然而,在优化这一块,不仅编译器会做优化,CPU也会做优化。volatile就管不着了CPU了。经典的例子当然是单例模式。单例模式有一种常规的解决方案是DCL,也就是双重检查锁,但是在C++中new
zaizai1007
·
2024-01-06 19:25
书籍
开发
程序员的自我修养
:链接、装载与库-3 目标文件里有什么
1目标文件的格式2目标文件是什么样的3挖掘SimpleSection.o3.1代码段3.2数据段和只读数据段3.3BSS段3.4其他段4ELF文件结构描述4.1文件头4.2段表4.3重定位表4.4字符串表5链接的接口-符号待补充107
你回到了你的家
·
2023-12-22 13:13
编译原理
编译器
程序员的自我修养
(二)
共享对象在编译时不能假设自己在进程虚拟地址空间中的位置,可执行文件可以确认。装载时重定位如果使用静态链接的重定位方法,即模块装载地址确认,对所有绝对地址引用重定位。但是指令部分是多个进程共享的,装载时重定位需要修改指令,所以指令部分不能这么做。而可修改数据部分对于不同进程有多个副本可以这么做。地址无关代码-fPIC只用装载时重定位无法做到指令部分在多个进程之间共享。引入地址无关代码,就是把代码中可
LSteven
·
2023-12-16 12:01
【
程序员的自我修养
01】编译流程概述
绪论大家好,欢迎来到【
程序员的自我修养
】专栏。正如其专栏名,本专栏主要分享学习《
程序员的自我修养
——链接、装载与库》的知识点以及结合自己的工作经验以及思考。
谢艺华
·
2023-11-25 20:47
编译
链接
装载
库
linux
编译原理
浅谈链接、装载与库
本文迁移于个人博客http://www.chenonm.com最近阅读了《
程序员的自我修养
》这本书,自己得以更加深入地一窥系统软件的运行机制和原理,获益匪浅。
iline
·
2023-11-24 20:35
工程师&
程序员的自我修养
Episode.6 深度学习实现人脸检测及人数统计项目
深度学习实现人脸检测及人数统计项目实现及代码示例手动@王婆,自取不谢【doge】。本项目利用Ultra-Light-Fast-Generic-Face-Detector-1MB模型完成人脸检测。该模型是针对边缘计算设备或低算力设备(如用ARM推理)设计的实时超轻量级通用人脸检测模型,可以在低算力设备中如用ARM进行实时的通用场景的人脸检测推理。此处感谢参考部分来自@wangwei8638大佬的程序
笙歌散尽
·
2023-11-23 09:40
深度学习
机器学习
python
人工智能
计算机视觉
研读《
程序员的自我修养
—链接、装载与库》
前言仔细研读《
程序员的自我修养
—链接、装载与库》,对编译、链接、装载、静态库和动态库有连贯的认知。这种知识先在学校学习一遍,然后遗忘;工作用到,百思不得其解;然后再看书,才能深深记住和理解。
辉辉岁月
·
2023-11-22 14:55
聊一聊
程序员的自我修养
首先要谈的是,今天的话题所聊的程序员包含哪些人?在中国,写程序,不仅仅是一种兴趣,更多的时候,还是一种普通职业和谋生工具大公司有厉害的程序员,优秀的架构师,但大量的小公司也有很多普通的程序员。在我这些年的工作经历中,也越来越深刻的感受到普通程序员的影响和力量。对于高阶程序员,所谓八仙过海各有神通,各有各的成就,各有各的修养,但程序员在达成较高的水平之前,有一些“自我修养”,是最基础的,是普世的。所
白日梦批发商
·
2023-11-19 13:41
前端
javascript
开发语言
从0到1 学习zookeeper
学习背景,毕业一年的渣渣科班菜鸡,
程序员的自我修养
。
莱昂纳德小迷弟
·
2023-11-18 20:00
zookeeper
java
hadoop
kafka
rpc
C++——基础
(像了解详细的可以去看看《
程序员的自我修养
》,在它的第二章会详细讲解)汇编阶段会将汇编生成二进制,然后在这一阶段生成符号表链接阶段会合并段表,
這~悸ベ雨落憂殇
·
2023-11-11 05:13
C++
c++
开发语言
c语言
汇编
一个
程序员的自我修养
目录第一章基础编码规范1.1命名规范1.2常量定义1.3代码格式1.4OOP规约1.5集合处理1.6并发处理1.7控制语句1.8注释规约1.9其它第二章异常与日志规范2.1异常处理2.2日志规约第三章数据库规范3.1建表规约3.2SQL语句3.3ORM映射3.4索引规范安全规约第一章基础编码规范1.1命名规范代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。tips:JDK动
donet_expert
·
2023-11-07 09:51
大数据
程序员的自我修养
——SQL语言及MySQL数据库
SQL简介SQL语言介绍SQL全称:StructuredQueryLanguage,是结构化查询语言,用于访问和处理数据库的标准的计算机语言。SQL的特点具有综合统一性,不同数据库的支持的SQL稍有不同。非过程化语言。语言简捷,用户容易接受。以一种语法结构提供两种使用方式。SQL语言的组成数据定义语言(DDL)数据操纵语言(DML)数据查询语言(DQL)数据控制语言(DCL)SQL语法特点SQL对
_遮云壑_
·
2023-10-28 01:52
程序员的自我修养
数据库
mysql
sql
C++11新特性
程序员的自我修养
_Will.zhang关注多核计算&高性能计算目录视图摘要视图订阅深度学习代码专栏攒课--我的学习我做主【hot】直播技术精选C++112013-03-1110:1811849人阅读评论
Answer-3
·
2023-10-21 23:27
C++技术类
程序员的自我修养
: 如何写出高质量的代码
目录我们为什么需要高质量的代码?知名程序员如何看待高质量的代码BjarneStroustrupGradyBoochWardCunningham代码质量指标可维护性可读性可扩展性与可复用性鲁棒性(健壮性)稳定性能可测试性与完整性测试金字塔与单元测试完整性设计原则SOLID单一职责原则开放-封闭原则里氏替换原则依赖倒置原则接口隔离原则KISS坏味道的代码编码神秘命名重复代码与数据泥团过长函数/参数列表
chengbo_eva
·
2023-10-20 03:41
方法论
开发语言
原子操作 线程安全
之前读《
程序员的自我修养
》一书,一知半解,仅在单线程下进行了演绎,误以为原子操作本身就是线程安全的。
季天泽
·
2023-10-19 23:59
如何写出优雅健壮的代码?
既然代码规范能引起这么大的共鸣,那么今天我们谈谈一个
程序员的自我修养
——如何写出优雅的代码?
zhongmeizhi
·
2023-10-19 15:16
javascript
java
js
vue
html
C/C++/Linux编程经典电子书pdf下载
C++Primer(中文版第5版)C++学习头牌全球读者千万C++编程思想(两卷合订本)C语言接口与实现创建可重用软件的技术effectivec++C++API设计
程序员的自我修养
:链接、装载与库深入理解计算机系统
weixin_30663471
·
2023-10-09 11:39
c/c++
网络
操作系统
程序员的自我修养
读后感
1、你的薪酬与工作量无关你的薪酬取决于很多因素,技术能力、经验资历、工作量但最本质却是你对公司是否重要,换句话就是你是否容易被取代,正确认识自己在公司的位置,努力修炼内功,让自己变得越来越重要,你的薪酬也会随之提升。2、为优秀的人工作环境对于一个人的影响是巨大的,最可怕的是当你身处其中,你很难意识到你正在变得越来越糟糕,当你发现所有的环境已经无法让你获得提升时,选择一个更好的环境,尽可能与那些优秀
程序员青菜学厨艺
·
2023-10-07 11:05
不好归类
其他
程序员的自我修养
笔记第一天
基础知识点CPU:执行指令,控制计算机操作,协调计算机处理数据。处理器:整合cpu芯片上的各种电路和模块(运算器、控制器、寄存器)内核:负责管理和控制计算机的硬件资源,提供系统调用和管理进程的能力。三者之间的关系:CPU执行指令需要调用操作系统的代码,而这些代码都存放在内核中,因此处理器和CPU的运行都受到内核的管理和控制。第一章1.2万变不离其宗早期的没有复杂的图形处理,所以CPU的核心频率也不
攻城狮啊尧
·
2023-10-07 06:51
程序员的自我修养
笔记
c++
c语言
java
python
程序员的自我修养
编写文档能力PPT能力演讲能力说服他人的能力GitHub,学会用Git来管理和分享你的代码寿司之神-小野二郎SublimeEclipse学习资源:CDSN慕课网稀土掘金网易云课堂学习途径:阅读官方文档Google(BingEnglish)Twitter技术开发者
Elwyn
·
2023-10-04 00:58
排毒,养眼,护肝,
程序员的自我修养
排毒,养眼,护肝,
程序员的自我修养
长期使用电脑,首先就不利于眼睛的健康。
箜泊Blank
·
2023-10-02 22:42
C++内存分布
面试官就问下一个问题了.....后来在《
程序员的自我修养
》这本书中,看了相关的概念,在这里整理一下:VisualStudio查看虚函数表在这里首先插一个话题,讲解一下如何查看虚函数表。
MrYun
·
2023-09-27 03:52
《
程序员的自我修养
》-读书笔记
第1章温故知新操作系统操作系统的两个主要功能:提供抽象接口和管理硬件资源硬件资源CPU 分时系统:每个程序运行一段时间以后都主动让出CPU给其他程序,使得一段时间内每个程序都有机会运行一小段时间 多任务:以进程为单位,操作系统统一分配,安好进程优先级进行资源分配 抢占式:运行时间过长,系统会暂停该进程,资源重新分配存储器内存早期的计算机,程序是直接运行到物理内存上的,这样产生了三个问题地址空间不隔
Michale_Zuo
·
2023-09-11 05:44
linux 如何判断一个文件是否是「ELF共享对象」
最近在看《
程序员的自我修养
--链接、装载与库》里面提到一个概念「ELF共享对象」所以我想知道:「linux如何判断一个文件是否是「ELF共享对象」问了一下chatGPT要判断一个文件是否是ELF共享对象
·
2023-09-09 23:42
linux
fishhook实现原理分析
fishhook是FaceBook开源的可以用来重绑定Mach-O格式的外部动态库中符号的一个库,这里一定要理解为什么hook的是动态库,想要真正搞清楚这个库的原理可以阅读《
程序员的自我修养
》这本书,首先要理解什么是静态库
LikeHeiDi
·
2023-09-09 00:22
《
程序员的自我修养
》读书笔记(二):编译和链接
平常的程序开发很少关注编译和链接过程,因为通常的开发环境都是流行的集成开发环境(IDE)。这样的IDE一般都将编译和链接的过程合并到一起称为构建(build)。C语言的经典代码#includeintmain(){printf("helloworld\n");return0;}在Linux下,使用GCC来编译这个程序时,只需使用最简单的命令$gcchello.c$./a.outhelloworld上
MichealXXX
·
2023-09-08 14:01
2022年iOS程序员最新面试指南
《
程序员的自我修养
》推荐指数豆瓣评分8.8这本书主要讲的是系统软件的运行机制和原理,涉及在Windows和Linux两个系统平台上,
zhimingcow
·
2023-09-01 04:37
《
程序员的自我修养
》笔记3——可执行文件的装载
一、进程的装载方式1.1覆盖装载覆盖装载现在可能被淘汰了,这是一种非常久远的装载方式,它在计算机发展初期提供了内存受限下,程序正常运行的解决方式。程序员需要编译辅助代码来管理代码模块的装载和卸载,这个辅助代码也称为覆盖管理器。假设有一个程序,分为3个模块:main(1024Byte)、A模块(512Byte)和B模块(256Byte),其中A模块和B模块不会相互调用。理论上需要有1792Byte的
wipping的技术小栈
·
2023-08-31 15:16
〖
程序员的自我修养
- 认知剖析篇⑩〗- 学习编程的高效率方法
说明:该文属于
程序员的自我修养
专栏,购买任意白宝书体系化专栏可加入易编程社区,早鸟价订阅模式除外。
哈哥撩编程
·
2023-08-30 06:18
程序员的自我修养
程序员的自我修养
程序员的自我认知
编程的高效学习方法
【Linux】多线程概念&线程控制
本质上是轻量级进程id,换句话说,就是线程IDLinux内核是如何创建一个线程的线程的共享和独有线程的优缺点线程控制POSIX线程库线程创建线程终止线程等待线程分离多线程概念Linux下进程和线程的关系在《
程序员的自我修养
林深方见鹿
·
2023-08-27 20:20
Linux
linux
书籍推荐
《Cprimerplus》----《C程序设计语言》-----《C和指针》、《C专家编程》、《C缺陷与陷阱》-----《
程序员的自我修养
》和《深入理解计算机系统》
zhaihongxia
·
2023-08-25 16:11
一个神奇的开源项目,一行命令解锁某易云音乐....
但只是简单的使用这样的工具不足以符合一个优秀
程序员的自我修养
。咱必须挖掘真实的代码,探索背后的原理。
菜鸟要飞rookiefly
·
2023-08-22 10:20
程序员的自我修养
——提高软件工程质量书籍推荐
为什么强调质量?建筑工程生产房子,软件工程生成软件,优秀的建筑设计和施工质量生产出优质的房子,而精准的需求分解、良好的架构设计、严谨的开发和测试管理方法决定着软件产品是否成功。其中起着关键作用的程序员,需要将分解后的需求,按照整体的架构设计,以模块化的方法编写出容易维护和测试的高质量代码,所以其专业技能的掌握程度,是软件工程产品能否顺利交付的保障。下面推荐三本书,在我个人看来,是专门为提高软件工程
大匡先生
·
2023-08-22 03:29
《
程序员的自我修养
——链接、装载与库》——选读笔记
文章目录
程序员的自我修养
———读书笔记第一章温故而知新1.基本概念2.线程基础3.Linux的多线程4.线程安全第二章静态链接1.编译过程中隐藏的细节1.1预编译1.2编译1.3汇编1.4链接2.编译器做了什么
星光125
·
2023-08-17 15:01
C++
C语言相关
c++
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他