Мне было поручено добавить поддержку потоков (C89 / C90) в библиотеки для встроенного компилятора C моей компании. Наше целевое оборудование обычно имеет 1 МБ или меньше места в коде и не имеет операционной системы.
У нас есть много потоковых реализаций в кодовой базе, которые я могу использовать в качестве отправной точки. Например, консоль, которая работает через сокеты TCP или последовательный порт, веб-сервер, который читает данные из FAT на SD-карте или в файле в памяти, и даже средство обновления прошивки, которое читает из многих источников.
Прежде чем я пойду и заново изобрету колесо, мне интересно, существуют ли существующие реализации, которые я мог бы либо портировать, либо использовать в качестве отправной точки для своей работы. Несмотря на то, что мы предоставляем полный исходный код нашим клиентам, лицензированный по лицензии GPL код не подходит, поскольку наши клиенты не хотят выпускать исходный код для своих продуктов.
Кто-нибудь может порекомендовать книгу (аннотированный источник Unix, текст CompSci) или общедоступный / BSD-лицензированный источник? Я бы предпочел взглянуть на более старую ОС, ориентированную на одно устройство, так как современные операционные системы содержат клубок макросов и слоев typedef, которые затрудняют даже простое определение структуры.