#工程师学习 假如你想入门 Web 前端开发,可以试试微软推出的这个「Web Development for Beginners」,很适合初学者,提供的全面的 12 周课程,通过简单项目的方式学习前端基础知识,累计 24 个课时包括课前和课后测验、详细的书面指导、解决方案、作业等。
🤖 https://t.co/CTcwn7JZxv
Type confusion bugs, container_of() macros, Linux kernel
Very cool research!
Blog post: https://t.co/tg0qaJpGmd
Paper: https://t.co/FJuDl4NAEJ
GitHub: https://t.co/P8swSsTajI
#Linux#kernel#vulnerability
How does Chrome work?
The diagram below shows the architecture of a modern browser. It is based on our understanding of “Inside look at modern web browser” published by the chrome team.
There are in general 4 processes: browser process, renderer process, GPU process, and plugin process.
🔹 Browser process controls address bar, bookmarks, back and forward buttons, etc.
🔹 Renderer process controls anything inside of the tab where a website is displayed.
🔹 GPU process handles GPU tasks.
🔹 Plugin process controls the plugins used by the websites.
The browser process coordinates with other processes.
When Chrome runs on powerful hardware, it may split each service in the browser process into different threads, as the diagram below shows. This is called Servicification.
Now let’s go through the steps when we enter a URL in Chrome.
Step 1: The user enters a URL into the browser. This is handled by the UI thread.
Step 2: When the user hits enter, the UI thread initiates a network call to get the site content.
Steps 3-4: The network thread goes through appropriate network protocols and retrieves the content.
Step 5: When the network thread receives responses, it looks at the first few bytes of the stream. If it is an HTML file, it is passed to the renderer process by the browser process.
Steps 6-9: An IPC is sent from the browser process to the renderer process to commit the navigation. A data pipe is established between the network thread and the renderer process so that the renderer can receive data. Once the browser process hears confirmation that the commit has happened in the renderer process, the navigation is complete and the document loading phase begins.
🔹 Over to you: Why does Chrome assign each tab a renderer process?
Reference:
developer .chrome .com/blog/inside-browser-part1/
–
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/uc5M7CdXXC
(1/2)
Excellent series by @LordNoteworthy explaining how virtualization on x86 works
Intro to Virtualization: https://t.co/kuDRlu1fnm
VMWare and Full Virtualization using Binary Translation: https://t.co/OlqHuul7df
#virtualization#hacking#infotech#infosec#learning
Are fuzzers guided enough❓
▶️ Do they keep enough seeds, as not all interesting inputs improve branch coverage?
▶️ How to provide finer-grained guidance without changing all fuzzers?
Our @acm_tosem paper on finer-grained fuzzing is now at https://t.co/G0WqiUmA4u
A thread ⬇️