Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Ryazan
Next
Download to read offline and view in fullscreen.

Share

Go и fuse

Download to read offline

Опыт использования FUSE вместе с Go

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Go и fuse

  1. 1. Go и FUSE опыт практического применения
  2. 2. Кто я такой? Я – не программист, я – системный администратор. Я люблю статические бинарники и кроскомпиляцию. Я «знаю» десяток языков. Ну – почти десяток. Ни на одном из них я не пишу, но все знаю достаточно, чтобы читать чужой код, и вставлять куда надо отправку метрик в Graphite. Go был мной освоен в рамках моей собственной программы повышения моей собственной квалификации. Язык как язык, но несколько новых конструкций и отсутствие нескольких привычных заставляют пересматривать паттерны, что весьма полезно.
  3. 3. Что такое FUSE? With FUSE it is possible to implement a fully functional filesystem in a userspace program. Картинка из википедии:
  4. 4. Зачем нужен FUSE в современном мире? Вообще – я не знаю. Может быть – и не нужен вовсе. Нам – для создания собственной FS поверх NoSQL СУБД Для файлового хранилища файловая система – нативный интерфейс, как ни крути.
  5. 5. Приятная неожиданность FUSE-bindings для GO • На «официальном» сайте • Go-FUSE • CGO wrapper • На просторах интернета • bazil.org/fuse – и он-то как раз правильный!
  6. 6. Почему bazil.org/fuse правильный? Не использует базовую библиотеку на С – kernel-userspace протокол реимплементирован на GO Использует объектную модель, позволяющую бесплатно получить кеширование
  7. 7. Особенности реализации По методу на интерфейс Это означает широкое использование рефлексии Рефлексия – увеличивает накладные расходы, но это не важно. Минимальная имплементация содержит ровно один интерфейс с ровно одним методом. Для решения некоторых задач имеется более, чем один путь. Например, есть и ReadDir, и OpenDir с последующим Read Один вызов – одна рутина
  8. 8. Бенчмарков не будет, извините Поверьте мне на слово – оно ни чуть не медленнее, чем любой другой FUSE
  9. 9. Почему теперь я буду писать FUSE-драйвера именно на Go? Кеширование бесплатно Модель многозадачности Статические бинарники Отсутствие привязки с C-библиотеке (которая очень C)
  10. 10. Вопросы?

Опыт использования FUSE вместе с Go

Views

Total views

398

On Slideshare

0

From embeds

0

Number of embeds

4

Actions

Downloads

4

Shares

0

Comments

0

Likes

0

×