Bitwise — обучающий проект по созданию программного и аппаратного стека компьютера с нуля

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В процессе обсуждения темы о различных принципах написания кода, я вдруг обнаружил, что на хабре нет ни одного упоминания о таком замечательном проекте как Bitwise. 

В 2017 году, Per Vognsen - программист с более чем 15-летним стажем, работавший в таких компаниях как NVIDIA и Oculus берет паузу и в марте 2018 стартует амбициозный обучающий проект Bitwise, в котором он собирается разработать и написать весь программно-аппаратный стек для простого компьютера с нуля и запустить его на FPGA. 

Проект должен был включать в себя операционную систему, компилятор, системные библиотеки, а также HDL код для центрального процессора и периферийных контроллеров. Пререквизиты к нему минимальны - свободное владение языком Cи (и немного Python), а также знание некоторых алгоритмов и структур данных из стандартных CS курсов. Все остальное объясняется по ходу написания кода.

Проекты подобные Bitwise можно пересчитать по пальцам (думаю многие еще вспомнят о знаменитом Handmade Hero от Casey Muratori). Автором данного проекта выступает отличный программист, который в формате скринкастов показывает и объясняет каждое решение по ходу написания кода. Этой короткой статьей я бы хотел заполнить пробел и познакомить большее число людей с проектом Bitwise, так как сам извлек из него много нового.

Для общего обзора я постарался условно разбить содержание на 5 логических частей: 

1. Проект начинается с написания Си-подобного системного языка программирования Ion, который будет использоваться для дальнейшей разработки. Автор приводит аргументы в пользу того, почему он принял решения писать компилятор для нового языка, а не просто использовать Си. Разработка Ion выполняется на чистом C99, без использования сторонних библиотек. Написанный компилятор на выходе генерирует Си код, который затем компилируется стандартным компилятором языка Си. Вся дальнейшая разработка производится на языке Ion. 

2. Во второй части автор приступает к написанию ассемблера и эмулятора процессора на базе архитектуры RISC-V и подробно разбирая документацию и систему команд.

3. В третьей части следует написание одной из версий языка программирования Forth на разработанном прежде ассемблере.

4. В четвертой части он переключается на Python и пишет прототип собственного DSL для разработки аппаратной части. 

5. В завершающей (на данный момент) части, автор проектирует различные аппаратные части компьютера начиная с базовых логических элементов.

К сожалению на данный момент проект не активен. В первый раз большая пауза произошла спустя несколько месяцев после запуска, а через некоторое время автор вернулся и обещал продолжать проект. Однако это продлилось недолго, так как по его последнему посту на github, мы узнаем, что он сильно выгорел и пока не хочет давать никаких обещаний насчет продолжения. Но в любом случае, то что уже было сделано, а это более 100 часов видео, я считаю заслуживающим внимания:

Официально проект базировался на платформе handmade network по ссылке https://bitwise.handmade.network/

Весь код с историей можно найти по ссылке https://github.com/pervognsen/bitwise, а видео доступны на канале https://www.youtube.com/pervognsen

Видео материал разделен на 2 плейлиста (основной и экстра, в котором некоторые моменты рассматриваются более подробно): 

Bitwise - https://www.youtube.com/watch?v=ZjwvMcP3Nf0&list=PLU94OURih-CiP4WxKSMt3UcwMSDM3aTtX

Bitwise extra - https://www.youtube.com/watch?v=t0YAOfZcSfw&list=PLU94OURih-ChlhR_dQ_nfcZoyteSPYfNx 

Еще есть надежда на возрождение проекта, но в любом случае, уже созданный материал является отличным пособием, из которого, как я считаю, можно почерпнуть информацию программистам самых разных уровней.

Источник: https://habr.com/ru/post/584078/


Интересные статьи

Интересные статьи

Привет, Хабр! Тема сегодняшней статьи — интересные технологические проекты российских разработчиков, которые поддержали инвесторы, включая как государство, так и коммерческие компании...
Привет, Хабр! Меня зовут Александр. 17 лет в КРОК. В основном я занимаюсь разработкой и внедрением заказного ПО, хранилищ данных, решений Big Data для бизнеса и госсектор...
Вы хотите узнать, как получить работу по проектированию электроники космического корабля? Мне надавно пришло предложение поинтервьироваться на позицию FPGA designer для Blue Origi...
В 1С-Битрикс: Управление сайтом (как и в Битрикс24) десятки, если не сотни настраиваемых типов данных (или сущностей): инфоблоки, пользователи, заказы, склады, форумы, блоги и т.д. Стр...
Разочаровавшись в недостатках существовавших языков программирования, Гвидо Ван Россум создал язык Python. Сейчас этот язык используют миллионы людей, и Ник Хит беседует с ван Россумом о прошлом ...