在 Assembly x86 上构建 Web 服务器,第一部分,简介

2025-06-07

在 Assembly x86 上构建 Web 服务器,第一部分,简介

集会

Para alguns,嗯 monstrinho。 Pra outros,algo antiquado。 Mas pra quem tem curiosidade em entend como as coisas funcionam,机会

Nesta saga que Será uma série de artigos, vamos explorar Assembly com NASM para arquitetura x86-64 em GNU/Linux enquanto desenvolvemos um web server multi-thread bastante simples.

如果您直观地了解 Web 服务器的功能,则可以使用 HTML 格式向响应者发送“Hello, world”消息,这非常适合您的构建。

我们不熟悉任何在计算和协调中的基本概念,但我们不关心这些问题,但我们最关心的问题是“复杂的”问题,并且可能会更容易这些好奇心,让我们对多明戈的巴西烤肉或纳塔尔的简塔印象深刻。

谨此致各位,请支持大会召开各种场合,并恳请您支持


关于内容

长久以来,我们一直致力于各种计算概念的研究,从表面的角度出发,从本质上讲,从本质上讲,要提及的问题:

  • 计算机建筑
  • 建筑类型
  • Padrões,二进制和十六进制系统
  • x86-64 汇编基础知识
  • 使用 GDB 进行调试
  • 文件系统、套接字
  • 线程、池和内存分配
  • 阵列、细线、ponteiros
  • 自旋锁和 futex 的同步和原始同步
  • h1HTML标签(LOL)

您可以考虑一些必要的事项、地图和详细信息。


什么是汇编教程?

绝对不是。

一个关于在网络上实践和服务的想法,是关于组装和不做任何事情的想法,这是最重要的主题。

我们将在您熟悉的 x86 汇编教程中快速提供教程,您可以在32 位中使用该教程,也可以在 64 位中使用此教程(当然,传输起来也很方便)。


议会课程是什么?

当然不行

当然,您可以在传奇故事中了解多种想法,并且可以通过有趣的方式了解Assembly的基础知识,并与Blau Araújo的Assembly x86-64的播放列表一起使用。请参考 PT-BR 中的后续操作,以及其他操作。


环境要求

该代码是在基于 UNIX 的系统中执行的,优先使用 GNU/Linux x86_64,并在测试中执行。

  • Ubuntu 22.04.4 LTS 操作系统(GNU/Linux 6.5.0-17-generic x86_64)
  • NASM 2.16.01
  • GNU ld 2.38(二进制实用程序)

E para 调试(claro、nesta casa fazemos 调试、não somos brincalhões):

  • GNU gdb 12.1
  • strace 5.16

在环境结束时,您可以选择容器 Docker 的选项,然后继续执行其他操作。

Dockerfile示例(validar isto plmdds):

FROM ubuntu
RUN apt-get update && apt-get -y install make binutils gdb build-essential wget strace
WORKDIR /app
RUN wget https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.gz -O nasm.tar.gz && tar -xzvf nasm.tar.gz && cd nasm-2.16.01 && ./configure && make && make install
Enter fullscreen mode Exit fullscreen mode

您需要陪伴吗?

您可以通过自己的想法和想法,或者可以亲自动手,并在医疗中获得更多帮助。

建议加强对代码的实验,并使用自己的计算机来满足环境、主机、虚拟化或容器化的要求。

我们的存储库是在leandronsp/magali上完成的


这是我们在 x86-64 上开发的一系列主要组件,它涉及到 Web 服务器的零操作,并且可以帮助您进行大量操作。

我们将介绍计算机结构和基本必要的术语以及计算机、教师和语言大会的历史。

敬请关注!

文章来源:https://dev.to/leandronsp/construindo-um-web-server-em- assembly-x86-parte-i-introducao-14p5
PREV
Kubernetes 101,第八部分,网络基础知识
NEXT
使用 Bash 构建 Web 服务器,第一部分 - 套接字遇见 netcat