Vladislav Shpilevoy PRO
Database C developer at Tarantool. Backend C++ developer at VirtualMinds.
Системное программирование
Лекция 0:
О курсе СП. История Unix, Linux. Архитектуры. Стандарты.
Version: 2
The presentation is outdated and not maintained anymore. Please, refer to the English version for the most actual slides.
Владислав Шпилевой
v.shpilevoy@corp.mail.ru
@gerold103
Книги:
Обратная связь: goo.gl/forms/TAeraYrqJcil7GDt1
и на портале Техносферы
Любой Linux или Mac
Что делать, если Windows?
Делай раз
Делай два
Установить Virtualbox
Скачать ISO образ Ubuntu или другого Linux
Делай три
Установить ОС из образа, пользоваться
Uniplexed Information and Computing Service
Деннис
Ритчи
Кен
Томпсон
Bell Labs
В 1969 г. Bell Labs покидает проект и создает Unix
Multiplexed Information and Computing Service
1 - Унифицированная память процесса
Write
Write
Process memory
void *
mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset);
2 - Динамическая линковка
Process memory
data[]
mov edx, [ebp+8]
Код
Данные
.so, .dll, .dylib
PIC - Position Independent Code
$> man gcc
-fpic
...
-fPIC
...
3 - Изменение аппаратной конфигурации
4 - Shell
v.shpilevoy$> echo 'hello world'
5 - Кольца безопасности
6 - Иерархическая файловая система
UNIX / eunuchs
Компьютер для работы в Multics
1969
Создание
1970
Имя
1971
man
1973
AT&T выпускает Unix System V
1977
Berkeley Software Distribution
1982
Переписана на С
Unix системы
AT&T продает UNIX
"Unix Wars"
Эндрю
Танненбаум
Линус
Торвальдс
Ядро
Окружение
Драйверы, файловая система, виртуальная память, ...
GUI, компилятор, консоль, библиотеки, текстовые редакторы
Linux
"GNU is Not Unix"
Ричард Столлман
Torvalds UniX
TUX
Оригинал
IPC
Virtual Memory
Scheduler
Адресное пространство ядра
Адресное пространство пользователя
Keyboard driver
Sound
driver
<mute sound>
Обмен сообщениями через ядро
Darwin
Mach
Unix
MacOS
iOS
watchOS
tvOS
#Mac
v.shpilevoy$ uname
Darwin
IPC
Virtual Memory
Scheduler
Keyboard driver
Sound
driver
<mute sound>
Вызов функции в том же процессе
Адресное пространство ядра
Адресное пространство пользователя
Системные вызовы
Research Unix Release 7 | 50 |
4.4BSD | 110 |
System V Release 4 | 120 |
Linux 3.2.0 | 380 |
FreeBSD 8.0 | > 450 |
First Unix | 6 |
Количество системных вызовов
Стандарты - для переносимости, совместимости
Uniform Draft Standard 1983
Berkeley Sockets
Обратная связь: goo.gl/forms/TAeraYrqJcil7GDt1
и на портале Техносферы
В следующий раз:
Ядро. Устройство. Планировщики процессов.
By Vladislav Shpilevoy
Linux vs Unix. Microkernel. FreeBSD, Ubuntu, Mac, System III, V, Unix time-sharing system, 4.4BSD. Стандарты: ISO C, POSIX, Single Unix Specifications. Организации: Open Group, IEEE.
Database C developer at Tarantool. Backend C++ developer at VirtualMinds.