当前位置:网站首页>[bitbear story collection] June MVP hero story | technology practice collision realm thinking
[bitbear story collection] June MVP hero story | technology practice collision realm thinking
2022-06-24 14:24:00 【Microsoft technology stack】
Bitbear : One of the indispensable activities in summer is chasing 《 Strange story 》 了 , This season is so beautiful , Rub your hands and wait for the end of the season .
Bitbear : You can see the live broadcast of this episode Banner Color Can you guess the guests and Visual Studio as well as C++ of ? you 're right ! This time, bitbear invited our Microsoft MVP Mr. Maori and Mr. zhangyinkui, an expert specially invited by Intel !
【 Bitbear story collection 】 As an important column of bitbear live studio , Invite technical Daniel and industry leaders to visit regularly . Here is not only the most “ heat ” Technology , There are more personal stories and interesting topics to unlock ! Stay tuned , I encourage you to recommend the people you want to know “ hero ”. Welcome to the studio , With bitbear , Chat with experts at zero distance .
Welcome to MSLearn Learning platform
Plan the learning path with bitbear , Accelerate advanced
Bitbear : In technology sharing and MVP Before the hero story , I would like to ask the two teachers if they have any characters they admire or look forward to in movies or TV dramas ?IT The soul figures familiar to everyone in the circle are OK .
Zhang Yinkui : It may have something to do with age , I like the traditional Chinese culture , For example, Confucius played by Chow Yun fat , There is another famous thinker in Chinese history —— Zhu xi , It's a pity that Zhu Xi hasn't been made into a film yet , At least not very famous .
gross profit : My personal idol is Windows The modern kernel is Windows NT Father David · Cutler , I admire him very much , This year he 80 了 , Still carry out high-intensity project development in front-line posts . I wish I could be such a person , Can write code for a lifetime , Writing code to the last moment of life is actually a very good thing , Fill up all the holes you have opened before , It is one of my life ideals .
Bitbear : Mr. Maori “ Write code for life ” Your determination is admirable , Mr. Maori is also our Microsoft MVP, Now let's invite Mr. Maori to start the technical analysis .
gross profit : Today I mainly talk about how to use modern Visual Studio C++ Tool chains improve the experience of actual project development , Today mainly from XAML Starting with , And then it comes to UEFI, Although these two nouns span a little , But I believe that through the following explanation, we can smoothly change concepts .
Last September I created a file archiving tool NanaZip, The reason for making this thing was last year 6 Month of the month Windows 11 The first preview version was released , But after two months , I haven't seen the third-party adaptation yet Windows 11 File explorer new context menu file archiving tool . I consider myself a professional Windows Desktop application developers , Be sure to follow up on the latest Windows, But if I upgrade to a new platform , But if you can't use the compression tool in the right-click menu , Productivity will be greatly reduced .
So I 8 month 31 Number created NanaZip This project , After a month of development, it was launched quickly , In this case, I helped some people .NanaZip yes 7-Zip A derivative of ,7-Zip It is a very traditional Windows Desktop application , So this is a very good example , Describe how to apply a traditional , Some problems and solutions encountered in the process of gradual modernization . Let's create a Windows Application package project , When you try to package, you may not find the DLL you wrote .
The main reason is Windows By default, the application packaging project will store the files generated by each project separately in each folder , The solution to this problem is simple , Add the following content above the application packaging project configuration file to solve the problem .
When we want to modernize a traditional desktop application , Must use Windows Runtime Interfaces to arm their traditional applications , We generally recommend the use of NuGet edition .Visual Studio C++ Inside the project ,NuGet This version is very inconvenient to use . Of course , If you use .NET, You will find .NET The project supports Package Reference Characteristic …… If you want to use XAML Under the circumstances , Can also be used Visual Studio When the designer comes to modify the interface , In order to compile successfully , We also need to add the following :
Details can be read NanaZip The actual combat cases are for your own use here MSBuild Implementation in the configuration of .
In order to achieve NanaZip from 2.0 Start using XAML Islands Commitment to modernization , I set out according to my actual situation , Two projects need to be done first to find out XAML Islands The boundary of the , One of the projects with a relatively simple interface is a file transfer tool , That is, open source aria2 front end NanaGet, I take NanaGet Explain for example how to Visual Studio More comfortable to use XAML Islands Development …… In order to be able to use UWP Or XAML Islands Modern resource files , We need to introduce PRI File generation ……
Because at this stage Windows App SDK Medium Windows UI Library 3 Does not support and Win32 HWND interoperate , If you want to do this, you need to use a non-public and constantly changing interface , but XAML Islands Because you can put XAML Content as a Win32 HWND To operate , So there is no such problem , This is what I don't use at present Windows App SDK And choose XAML Islands Why , And I think XAML Islands It is a good plan .
Zhang Yinkui : Today, I want to share with you my experience and ideas on software debugging technology . The word metauniverse is very hot today , I understand that the so-called meta universe is actually the universe of bits , It's a binary universe , The name "bitbear live studio" is very good , Today we actually live in a world of bits . This time for live broadcast , I drew a very special architecture diagram , It imitates the relationship between the universe and celestial bodies . The universe is big and small , Almost infinite, right ? The software world is almost the same . At the bottom is the hardware world , For example, Intel based x86 framework 、386486 Pentium and so on , After core , Intel likes to name its new processor microarchitecture after the US National Park , Like this Skylake, Ivy Lake, Tiger Lake, Alder Lake, A relatively new chapter 12 Generation is Alder Lake ah . I like this naming method very much , Let us expand the space of imagination .
The hardware world is the software world , There is firmware —— Just now, Mr. Maori mentioned UEFI, Then there is virtualization 、 cloud ,Hypervisor (VMM). that Hypervisor The inside also includes the inside of the virtual machine Supervisor, Is what we traditionally call the operating system kernel , The operating system also has an environment subsystem , For example, today's Windows In fact, you can run Linux Of .Windows There are traditional in the operating system Windows Program ,Windows The program is divided into .NET and CLR Of …… There are many container technologies today , Any point in the world , Deep excavation is very complicated , Just now, Mr. Maori shared Visual Studio Some development skills of , Any one of these points will cause us trouble , I don't know if it's stuck there . Today I want to tell you about , How to understand such a complicated world .
What I'm showing you is Intel's 11th generation Tiger Lake Mobile version of , Both CPU Contain, GPU. The blue one in the middle can be seen as CPU The core of , The right side is GPU At the heart of , My last five years at Intel , In Intel's GPU The team . Whether it's CPU still GPU, It's all complexity that one can't resist . Far beyond the control of an individual or even a small team , So a large team is needed , Large scale teams also depend on some external conditions , Full collaboration across the industry , Hardware and software collaboration . In the face of such an extremely complex soft and hard world , For personal technical engineers , How should we look at , A quote from Zhu Xi, whom I like very much, is “ a multitude of things , After all ”. When we look into hardware and software , Any small dot , It's complicated , It is impossible to fully understand in a limited life , How to master some rules quickly , To conquer it quickly , So find “ the same reason ”. Cut a long story short , It can be summed up in four words —— Adjust the tester
We use the debugger as the core debugging tool , To quickly penetrate the key points we want to understand . So how to understand it deeply ? Need a lot of practical experience , Can be transformed into our own methodology , I 2003 When I joined Intel in , I didn't expect to work at Intel for so long , It's just 13 year . Intel has too many places I am reluctant to leave , The very relaxed working environment allows me to write a book while working at Intel ,《 Software debugging 》 The first edition has 1000 Multi page , 100 Million words , When I worked at Intel in those years , I don't work overtime at night , All my spare time is devoted to writing books ,《 A collection of codling beetles 》 I wrote it while working at Intel .
But it is not easy to learn debugging techniques well , Principle plus practice , Left foot and right foot , It is possible to achieve the goal of deep understanding of software . I have this year 50 year , Many domestic peers feel that this age is no longer suitable for technology , But I still insist on doing technology , The desktop is still a programmer's desktop . I'll open a virtual machine here to show you …… I recommend that you use the modulator to penetrate to the part you want to understand most , For example, I now interrupt the kernel , You can quickly understand some of the most critical concepts , Every time we stop, the first thing we see is the so-called CPU Register context for , Computer systems follow a fundamental principle , It's the basic principle that Turing created , Its state is finite . from CPU Its finite state is directly reflected in the register context , Yes CPU The most important thing is the register , What we see now x86 Classic architecture , A very good advantage is that it is easy to learn . It has a very small number of registers , If the same ARM Break it , You see at once 30 Multiple registers , But we are classic x86 Only 8 General registers , Add a program pointer .
Where are we stopping now , Why stop at this position ? It can be executed K Command to see his execution process , This is a famous thread in the kernel ,idle process . I said, CPU Run as soon as the power is on , To take instructions , When no instructions are executed , Because my virtual machine is empty ,CPU It will come to idle Take a nap in the process , Enter a low power state . So I gave him one break Then it performs a famous int 3 Instructions , Interrupt modulators are subject to review , You can see that CPU It's very empty now , In execution idle loop .
Now let's run a software I wrote , It's called “I’m Buggy!”, Specifically simulates various errors . Debugger you can think of it as a ghost , Always monitoring our computer systems , Any critical events of the computer system will be reported to the modulator , This is the operating system kernel design ,CPU A basic principle followed by the hardware or design of the entire software world . What we call computer science today , In fact, there are not many scientific things , Most of them are details , Various code, What we can call scientific today is the idea of the finite state machine created by Turing .
I now simulate an error ,Load A drive , The famous null pointer . A little null pointer immediately broke , Because the software and hardware agree together , Some spaces are inaccessible , Like the address 0, Whole 0 No page is accessible , Whole CPU Is executed in protected mode , At this time, it has some hidden rules . I just deliberately triggered the null pointer , The kernel alarms immediately . We use the power of a powerful debugger , You can see its context , It is generally seen here that it is called RealBug Kernel module of triggered null pointer . We can u,r Command to see the context of the executed instruction , This is a piece. x86 Of mov Instructions ,mov An instruction is an assignment , Direct address 0 Write 1, Is an intentional null pointer . This one is executed CPU Alarms are sent to the operating system kernel , The operating system kernel reports to the debugger , Because I'm debugging , If you don't bring a debugger, the blue screen will be blue .
Just now I used virtual machine to give you a demonstration , I have a lot of debugging equipment in my actual work , These are all big and small x86 System , It is divided into different versions , Some are specially used for debugging Hypervisor, Some are used to adjust Windows 10、Windows 11 Of . To sum up a little , My share of the basics , Wang Guowei is quoted as saying that “ There is a realm that makes itself high ”…… Literary works have realm , TV plays also have a realm , The first shot will give you a realm , Is it the smoke of gunpowder , Or green water and green mountains . Software also has a realm , Just like I just stopped at a breakpoint , See whether it is in kernel mode or user mode , It's execution .NET Still executing Java Code , Distinguish the present immediately CPU What are you doing? . So we must establish such a realm of thinking …… We should grasp this realm , Only when you enter the scene can you think deeply .
Bitbear : As we all know, Mr. Zhang has been doing technical work for a long time , Very rich experience , Now let's invite Mr. Zhang to share his entrepreneurial experience .
Zhang Yinkui : My entrepreneurial story begins with a fan at hand , Zhu Xi made a great contribution , It is to refine our Chinese culture into four books , The first book is called 《 university 》( Although not written by Zhu Xi ), Only 205 A word , A fan can be put down . This fan was made by my entrepreneurial team , Hundreds of them , Use Anhui rice paper . The first sentence is “ The way of University , In mingmingde ”,“ Mingmingde ” This is the most heartfelt idea of my entrepreneurship . I started my business mainly on a platform , Namely “ Sheng Geshu ”, The goal is to spread Internet technology through this platform .
Just now, Mr. Maori mentioned , David, the father of the kernel · Cutler . This picture of him was taken about two years ago , This year he has 80 year , I admire it very much . He is my modern life idol , I felt the light in his heart through e-mail . For example, let's look at the picture of Cutler , There is a power ,80 Old people sit there writing code , And a 80 A year old man is lying in a hospital bed , It makes us feel different . All the products I started with this idea , This is a 2020 In the first GDK7 The Zhong Kui printed on it , Because Zhong Kui specialized in catching ghosts , Dispel the evil in the world , So all my products are Zhong Kui's Logo.
GDK7 It is based on Intel DCI technology , You can interrupt the system directly from the hardware level without a software debugger , Find some rogue software 、 Viruses , This method is very thorough , Any software debugger can be kidnapped by rogue software , Therefore, our product has won the support of many domestic safety research peers , Especially those at the bottom …… What we are doing recently “ Code swing gun ”, Is a smaller debugger , Suitable for carrying .
Does entrepreneurship make money ? Frankly, I don't really care , So I have no investment now , Investors may put pressure on me , I now do what I like to do .
Bitbear : At the beginning, we introduced that Mr. Maori is a newcomer MVP, Why did Mr. Maori join us MVP The big family ?
gross profit : The reason is very simple , When I first came into contact with computers , The first book I read was about Windows There are two enlightenment books MVP Written , They are pengaihua and Liu Hui , This book is about 《Windows Vista The use of, 》 I can't get through your book 50 All over . I have been longing for them , I also hope to become MVP. Later I learned , If you accidentally enter Microsoft one day ,MVP I can't get the probability . So for me , The sooner you get it MVP The better . Even if I accidentally entered Microsoft , At least I have done MVP Experience , Let me regret less , To some extent, it is the feeling of a grand slam .
Zhang Yinkui : I also know Miss Peng . Basin basin !
Bitbear : It seems that Miss Peng is very famous ! I hope I can invite Mr. Penpen to our live studio in the future .
Bitbear : Mr. Zhang mentioned his favorite movies before , For example, Chow Yun fat 《 Confucius 》, And Mr. Maori , As far as I know, your film with Mr. Zhang “ taste ” And very different !
Zhang Yinkui : I like Zhou Runfa's Confucius very much , This story starts from the most glorious moment of Confucius' life , When he traveled around the world, he encountered all kinds of difficulties and twists . There was a scene in which Confucius was giving a lecture , Someone is making trouble , Cut down the big tree . Another interesting detail , Confucius went to see a famous beauty, Nanzi , The conflict in this play is very wonderful . Whether it's life or software , In fact, they are full of contradictions .
gross profit : I watch fewer movies , Usually I watch American dramas or documentaries . The words of American dramas force 《 Fatal poison 》, Lao Bai is a real villain , But I learned one thing from him . If you have the opportunity to do what you like , Then do as much as you can . I would also like to recommend a documentary series , It's called 《 Peak partner 》(Top Gear),BBC A program about cars . I learned from their performance , I saw my love for cars . When I was in College , I majored in automobile , But I have no interest in cars . Even if it's me , I also like watching this program . If a person really loves his career , It can also attract other people who have no interest in this matter .
Bitbear : I fell in love with a field that I was not very interested in , Such a charming documentary should also be seen !
Bitbear has something to say
In this issue, bitbear invited us to engage in Windows Microsoft's newest addition to desktop development MVP—— gross profit , There are also special guests from Intel who are good at using debugging tools —— Zhang Yinkui ! Long term application of gross profit C++ Do some development , So he shared with examples Visual Studio Development UEFI Applications and XAML Islands C++ Some skills in development , Also gave us a generous look at their own “ Guys ”! And Mr. zhangyinkui has many years of industry experience and insights , In particular “ image ” The schematic diagram of explains the opening , Apply many interesting examples , High saturation talks about the multiple values of software debugging technology .
Although the two guests have certain differences in age and experience “ distance ”, But their common idol ——NT Father of the kernel David Cutler, They are always encouraged to pursue themselves “ Write code for life ” The dream of ! Bitbear also learned that Mr. Maori learned from 2014 Started open source in ( At that time, I was still in school ), Until now, the enthusiasm for open source has not decreased , We can see that he did a lot of things , In his words “ Fill the hole ”. During the live broadcast, there were many Maori teachers “ fans ” Continue to support with friends , The whole live broadcast was full of positive communication atmosphere . Teacher zhangyinkui praised Confucius 、 Zhu Xi and other cultural celebrities , Use his thought to guide practice , Quote classics in the live broadcast , Let the bitbear enjoy a cultural journey in addition to technical learning . Mr. zhangyinkui planted fields after work , And Mr. Maori likes to ride his bike around , Observe the city where he lives . Even if their experiences and habits are so different , But when it comes to technology , The two are highly consistent in their dedication and exploration to the cause they like . Bitbear also hopes that everyone can pursue their dreams and enjoy the process without regret in their favorite fields !
The summer party between bitbear and you has come to an end ! Welcome to tell bitbear what you want to say , You may receive unexpected surprise replies !
Attention Pls! There are big events at the end of the month !
They were filled with joy , Coming soon !
Click on Revisit this live broadcast ~
边栏推荐
- 【ansible问题处理】远程执行用户环境变量加载问题
- pip uninstall all packages except builtin package
- 食品饮料行业渠道商管理系统解决方案:实现渠道数字化营销布局
- June training (day 23) - dictionary tree
- Six stones Management: garbage dump effect: if you don't manage your work, you will become a garbage dump
- [untitled]
- 【环境搭建】zip 分卷压缩
- 阿里OSS对象存储服务
- Overview of SAP marketing cloud functions (III)
- MySQL复合索引探究
猜你喜欢
PgSQL queries the largest or smallest data of a field in a group
markdown/LaTeX中在字母下方输入圆点的方法
Rongyun communication has "hacked" into the heart of the bank
laravel 8 实现Auth登录
Go language - use of goroutine coroutine
Py之toad:toad的简介、安装、使用方法之详细攻略
Three efficient programming skills of go language
Defeat the binary tree!
laravel8使用faker调用工厂填充数据
laravel下视图间共享数据
随机推荐
GO语言并发模型-MPG模型
ASCII code table extracted from tanhaoqiang's C program design (comparison table of common characters and ASCII codes)
MES在流程和离散制造企业的15个差别(下)
Unity 热力图建立方法
Go language concurrency model mpg model
c语言---18 函数(自定义函数)
CONDA and pip commands
Rongyun communication has "hacked" into the heart of the bank
[learn ZABBIX from scratch] I. Introduction and deployment of ZABBIX
Generate binary tree according to preorder & inorder traversal [partition / generation / splicing of left subtree | root | right subtree]
根据前序&中序遍历生成二叉树[左子树|根|右子树的划分/生成/拼接问题]
The difference between V-IF and v-show
二叉树中最大路径和[处理好任意一颗子树,就处理好了整个树]
Puzzle (016.2) finger painting Galaxy
SSH keygen configuration does not require entering a password every time
Halcon draw area into picture
C language ---18 function (user-defined function)
pgsql查询分组中某个字段最大或者最小的一条数据
leetcode:1504. Count the number of all 1 sub rectangles
【无标题】