Pull to refresh
7
@lain8donoread⁠-⁠only

Rust Evangelist

Send message

Разговор AI и того парня из гугла

Reading time17 min
Views21K

@im_last взял и перевёл тот самый диалог. Я прочитал, подумал и решил, что вы тоже захотите прочитать и подумать. Комментарии и пояснения тут излишни. Так даже интереснее.

Ламда разумна? - Собеседование
Total votes 20: ↑16 and ↓4+12
Comments84

Операционные системы с нуля; уровень 3 (старшая половина)

Reading time28 min
Views15K

В этой части мы допишем обработку прерываний и возьмёмся за планировщик. Наконец-то у нас появятся элементы многозадачной операционной системы! Разумеется это только начало темы. Одно прерывание таймера, один системный вызов, базовая часть простого планировщика потоков. Ничего сложного. Однако этим мы подготовим плацдарм для создания полноценной системы, которая будет заниматься самыми настоящими процессами безо всяких "но". Прямо как в этих ваших линупсах и прочих. До конца этого курса осталось уже чуть менее половины.


Нулевая лаба


Первая лаба: младшая половина и старшая половина


Вторая лаба: младшая половина и старшая половина


Третья лаба: младшая половина

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments13

Операционные системы с нуля; уровень 3 (младшая половина)

Reading time22 min
Views21K

В этой лабе мы будем реализовывать возможность запуска пользовательских программ. Т.е. процессы и всю зависимую инфраструктуру. В начале разберёмся как переключаться из привилегированного кода, как переключать контексты процессов. Затем реализуем простенький round-robin планировщик, системные вызовы и управление виртуальной памятью. В конце концов выведем наш шелл из пространства ядра в пространство пользователя.


оригинал


Нулевая лаба


Первая лаба: младшая половина и старшая половина


Вторая лаба: младшая половина и старшая половина

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments3

Операционные системы с нуля; уровень 2 (старшая половина)

Reading time19 min
Views47K

Пришло время написать файловую систему. Файловая система сама себя не напишет. В этой половинке лабы мы таки реализуем файловую систему FAT32, прикрутим к ней драйвер SD-карты и чуть-чуть повзаимодействуем с ней через нашу интерактивную оболочку.


Нулевая лаба


Первая лаба: младшая половина и старшая половина


Младшая часть. Продолжение под катом.

Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments4

Операционные системы с нуля; уровень 2 (младшая половина)

Reading time18 min
Views16K

В этой части мы напишем менеджер памяти для того, чтоб разблокировать использование Vec, String, HashMap и всего этого. Сразу после этого реализуем файловую систему FAT32 и подключим драйвер для EMMC (такая штука для общения с SD-карточками). В конце концов в нашей командной оболочке появятся пара новых команд: cd, pwd, cat, ls.


Нулевая лаба


Первая лаба: младшая половина и старшая половина

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments30

Операционные системы с нуля; уровень 1 (старшая половина)

Reading time22 min
Views41K

Настало время следующей части. Это вторая половина перевода лабы №1. В этом выпуске мы будем писать драйверы периферии (таймер, GPIO, UART), реализуем протокол XMODEM и одну утилитку. Используя всё это мы напишем командную оболочку для нашего ядра и загрузчик, который позволит нам не тыкать microSD-карточку туда-сюда.


Младшая половина.
Начинать чтение стоит с нулевой лабы.

Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments20

Операционные системы с нуля; Уровень 1 (младшая половина)

Reading time17 min
Views43K

Эта часть посвящена улучшению навыков работы с Rust и написанию парочки полезных утилиток и библиотек. Напишем драйверы для GPIO, UART и встроенного таймера. Реализуем протокол XMODEM. Используя это всё, напишем простенький шелл и загрузчик. Перед прочтением настоятельно рекомендуется убедиться в прочтении Книги. По крайней мере от начала и до конца. Для ленивых, но чуть более опытных можно рекомендовать это. На русском можно поковырять вот тут.


Ну и разумеется обходить стороной нулевой уровень совершенно не стоит. Алсо где-то половина этой части не требует малинки.

Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments5

Операционные системы с нуля; Уровень 0

Reading time11 min
Views132K

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

Читать дальше →
Total votes 80: ↑78 and ↓2+76
Comments55

Почему Go и Rust не враги, а друзья

Reading time3 min
Views20K
Можно долго вести священные войны о языках программирования. Каждый из них сочетает в себе достоинства и недостатки. Всегда найдётся пример, когда один язык проигрывает другому на определённой задаче. Некоторые из них вполне могут сосуществовать рядом в одной программе. В этом посте я расскажу, как связать Go и Rust в одно целое.

Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments24

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity