Лекция 1. Генезис операционных систем. Назначение ОС. Базовые принципы организации ОС

preview_player
Показать описание
Лекция №1 в курсе "Архитектура операционной системы (на примере Linux)", осень 2017

Преподаватель курса: Кирилл Владимирович Кринкин
Рекомендации по теме
Комментарии
Автор

Все лекции Кирилла Владимировича - просто великолепны.

forfreereging
Автор

Благодарю. Кириллу Владимировичу здравия!

РадогостВедический
Автор

Ох! Если бы у меня в универе были все такие преподы. Я б на выходе знал больше.

razumov_uv
Автор

Какая же вкусная лекция
Я снова хочу жить, спасибо!

justman
Автор

Отдельное спасибо за Ultrawide! И это было в 2017!!

BaryshevAlexandr
Автор

Автор во многих вопросах плывет. Сегмент данных не изменяется в размере, это чаще всего обычные константы, и глобальные переменные фиксированной длины. .data .bss .text загружаются ровно так в память как они прописаны в исполняемом файле, с единственной разницей, что размер сегмента в бинарнике ради экономии места сокращается в местах где нули, а при запуске считывается в заголовке размер сегмента, и в памяти происходит заполнение до нужного размера нулями. Хип живет отдельно, и может выделяться в разных адресах где-то посредине между стеком - верхними адресами и нижними адресам заполненными кодом ОС, и программами с их сегментами кода и данных. Отсюда же возникает известная проблема, как фрагментация памяти, и снижение производительности из-за нее, последовательное чтение и запись памяти всегда быстрее чем случайные. ОС просто ищет свободный участок и выделяет программе по запросу, так же ОС при получении запроса на освобождение памяти не старается ее сразу освободить, а старается кешировать выделение и делит память на поколения, и по запросу старается вернуть программе память в том же участке памяти, если памяти достаточно для других программ. И еще ОС может дефрагментировать хип, и перемещать блоки памяти, чтобы снизить фрагментацию, когда у одной программы блоки памяти в разных участках физической памяти. И лектор не знает system v abi calling convention, что параметры в функции передаются как раз чаще всего не через стек, а через регистры 1-параметр rax, 2-параметр rdi, 3-параметр rsi, 4-параметр rdx, 5-параметр rcx, 6-параметр r8, 7-параметр r9 и от 8 параметра передаются уже через стек, но в обратно порядке т.е. сначала идет 10 параметр, потом 9 и 8. Так же регистры по этой же причины делятся на те, что сохраняются вызвавшей функцией и те что сохраняются вызываемой функцией, поэтому в зависимости от регистра кто-то из них должен сохранить регистр в стеке, а потом восстановить при выходе из функции, чтобы исключить ситуацию когда один изменил регистр, а другой функции нужно было значение регистра которое было затерто. Ну и код на ASM там бредовый на слайде...

grigoryvasilyev
Автор

Где он раньше был :( Многие вещи стал только щас понимать

Автор

Кирилл Владимирович, здравствуйте. После просмотра первой лекции уже есть вопросы.
Т.е. libc является библиотекой которая предоставляет интерфейс приложениям, для общения с ос?
Получается, если удалить libc, то сама ос будет работать? А если я такое сделаю, как я узнаю что она работает? Получается у мени ни shell, ни тем паче gui не заведется, так?

sliva
Автор

Здравствуйте. Когда будет доступен курс "Разработка модулей ядра Linux"? Можно ли где-то получить доступ к старой версии (0.8)?

DSGt
Автор

в конце несколько я понял вы сказали что ioctl( ) это плохо, но также для многих файлов это необходимо, тогда какую бы вы предложили альтернативу?

vdrmkr
Автор

У меня возникло желание, а главное - уверенность, попробовать создать свою ОС

MrDimonsky
Автор

Видимо ошибка в названии системного вызова Read n byes... вместо Read n bytes

sergiocarbuccini
Автор

Можно ссылочку на этот курс в stepik'е?

tsnp
Автор

Очень крутой преподаватель!! Спасибо за лекции!

bebe
Автор

Есть слайды, есть проектор, надо конечно же рисовать свою мелкую хуйнюшку на доске.
Программисты такие программисты.

trustmeimdolphin
Автор

испражнений которые вы делаете дома. все в прошлом. А виртуализация привела к мультиядерным ОС. Ядро активизируется исходя из состава железа...

ЦарицаПробкаЯнкаСупер
Автор

Очень странно что в базе людям это в мозг, ОС GNU (весь мир это знает как свободное программное обеспечение в соответствии с лицензией GNU) Linux ЯДРО для ОС GNU. Ричард Мэттью Столлман мог взять и другое яро а вернее и брал. Для понимания GNU = GNU's Not Unix, XNU = X — Not Unix . В первом случае ОС, а во втором ЯДРО для ОС macOS, Ядро NT (NexT) для ОС Windows существует и в современных ОС но мало кто об этом догадываются, думаю это не маловажное замечание не валить все в оду кучу

Проект Debian на OS GNU + ядро Linux
Проект Debian на OS GNU + ядро Hurd (здесь Линус Торвальдс даже близко не стоял :))) Так Дебиан это Линуск подобная ОС или нет (риторический вопрос)
единственное исключение не GNU это Андроид

Putins-mustache
Автор

Курс очень расплывчатый и довольно малоинформативный

mmas
Автор

какой же занудный препод боже.... сколько воды... ужасно

sofaking