Спятил, да? А ещё если напишу, что планировал сделать многопоточность и нечто CGI-интерфейса? Вполне может быть, в рамках just for fun
Но остановился на том, чтоб отдавать статические страницы - время не дало допилить, да и энтузиазм уменьшился. Идея мне пришла из за курсовой работа по "Системному программированию" В СПбГУ ИТМО. Всех заставили писать резидент под DOS, на 8086 архитектуре. Не торт.
Основные фитчи, которые я успел реализовать:
- Форк, при необходимости
- Чтение конфига(ini-like)
- Создание слушающего сокета, установка параметров
- Парсер заголовков и запроса
- Обработчик запросов статического контента(не в /cgi-bin/)
- В некоторых местах совершенно корявую работу со стеком
Реализовано на NetwideASM, c частичным использованием функций glibc. Работать сервер будет только на 32-битном процессоре i686+, из за того, что дёргается прерывание ядра Linux - а номера функций отличаются в зависимости от процессора.
Read more