Єдина Країна! Единая Страна!

Archive for the 'Книжки' Category

Hacking: The Art of Exploitation

Четвер, Березень 7th, 2013

hacking_the_art_of_exploitation

Автори: Jon Erickson
Видавництво: No Starch Press
Рік видання: January 2008
Кількість сторінок: 488

ISBN-10: 1593271441
ISBN-13: 978-1593271442
 

 

 

 

“A book this good is a rare find, and certainly worth the read for any individual interested in security. Rating: 9/10”
—Slashdot

Я б дуже хотів, аби хтось змусив мене прочитати цю книжку після того, як я, будучи, здається, 12-літнім підлітком, подивився фільм Hacker, і вирішив стати програмістом. Жартую 🙂

Хтось з оглядачів книжки написав, що поперекомендував би її лише за перший розділ “Programming”, який сам по собі дає, мабуть, усі необхідні знання для кожного, хто має намір зайнятись системним програмуванням, безпекою інформаційних систем та просто зрозуміти, як влаштовані комп’ютери та, як працюють компілятори.

На щастя, її крутість не обмежується якісним ознайомленням читачів з основами програмування на С, і найцікавіше на цьому лише починається. Далі ви познайомитесь основними техніками експлуатації вразливостей у програмному забезпеченні, мережним програмуванням, навчитесь писати шел-коди та вивчите основи криптографії.

Найкраще те, що, як і кожна хороша книжка на практичні інженерні теми, “Hacking: The Art of Exploitation” дасть вам можливість залізти у кодинг та практику по самі лікті, надавши тим самим реальні практичні навички та досвід.

Must read усім, хто й досі хоче стати хакером з класичних фільмів 80-х — 90-х. Сумніваюсь, що є більш повні та якісні книжки на дану тему.

Зміст книжки:

0x100: Introduction
0x200: Programming
0x300: Exploitation
0x400: Networking
0x500: Shellcode
0x600: Countermeasures
0x700: Cryptography
0x800: Conclusion

Ступінь з комп’ютерних наук онлайн?

Четвер, Лютий 21st, 2013

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

Дистанційна освіта — нині великий тренд, і я вірю у те, що за цим майбутнє, і, що ми є свідками справжьої революції у системі освіти. Усіх, хто не поділяє мою думку, і скептично споглядає на усі ці процеси, я, як завжди, за замовчуванням, вважаю совковим лайном і бажаю їм здохнути.

Власне, одного разу, спілкуючись за філіжанкою кави з одним зі своїх колег, дізнався, що той також не має формальної освіти, і навіть не намагався вчитись в університеті. Найцікавіше те, що він є, певно, найкращим інженером у моєму відділі. Таких людей я зустрічав чимало, і, мене давно перестало дивувати те, що більшість з них були одними з найкращих програмістів, яких я зустрічав. Дивним було те, що жодному з них не бракувало фундаментальних знань, як то математики, алгоритмів, тощо, чому нібито нас і мав би навчати університет.

Усі вони отримали їх завдяки практичному досвіду, однак, мені стало цікаво, а чи можливо отримати формальні знання відповідні бакалаврському ступеню з комп’ютерних наук вдома: беручи онлайн курси та читаючи книжки? Ось відповідь.

Аби спростити, а також логічного та послідовного викласти матеріал, перелік курсів розбито на семестри. Однак, в умовах домашнього навчання, поняття семестру повністю втрачає сенс, оскільки, середній курс триває 8 тижнів, себто, є у ~2.5 рази коротшим за семестр в Українському університеті. Теоретично, за календарний рік можна було б, особливо не напрягаючись, поставити зелені галочки навпроти 4-х семестрів. Тож…

Підготовка

Це ніщо інше, як супер фундаментальні знання, без яких не варто й носа сунути до комп’ютерних наук.

  • Pre-Calculus: де-факто, в Україні — це шкільний курс алгебри. Якщо зовсім не вчили у школі математику, або ж просто є бажання швиденько пробігтись по вже трохи забутому матеріалі — то можна взагалі почати з основ алгебри, які неймовірно круто викладені у курсі від тих же викладачів під назвою Algebra.
  • Physics I: Classical Mechanics: знову ж, в Українських реаліях — це фізика старших класів так званої, загальноосвітньої школи.

Read the rest of this entry »

Книги по Linux kernel development

Понеділок, Червень 6th, 2011

Відповідь на одне з найпопулярніших запитань — “Порадьте книжки по розробці для ядра Linux”. Ось відповідь:

 

Linux device drivers (3-тє видання) — без сумніву, книжка, з якої варто почати. Цікава вона ти, що читачу пропонується написати драйвер простого “віртуального” пристрою, який ускладнюється/вдосконалюється по ходу отримання вами нових знань. На жаль, інтерфейси описані у книжці трохи застарілі (книга базується на ядрі 2.6.10), тому будьте готові витратити трохи часу на читання сирців нових версій ядра, що власне, й добре, адже одразу ж вчить неприємній істині — API ядра постійно змінюється, і ніхто особливо не дбає про зворотню сумісність.

Її авторами є такі люди, як Jonathan Corbet, Alessandro Rubini, та Greg Kroah-Hartman.

 

 

Linux kernel development (3-тє видання) — найпопулярніша та без сумніву, найкраща книга по ядру Linux. Це книжка, яку просто варто бодай 2-3 рази прочитати від початку до кінця.

Написана вона була Робертом Лавом (Robert Love), інженером Google, котрий працює на операційною системою Android, і відомий своїм активним внеском у такі вільні проекти, як ядро LinuxNetworkManagerGNOME Volume ManagerProject UtopiaBeagle та ін.

Я б також рекомендував до прочитання дві інших його книжки: Linux System Programming: Talking Directly to the Kernel and C Library та Linux kernel in a Nutshell.

 

Understanding Linux Network Internals

Через великий об’єм мережної підсистеми ядра та через те, що вона використовується сторонніми розробниками ледве не частіше за усі інші, їй присвячено окрему книжку. Якщо займаєтесь, або ж маєте намір займатись мережними технологіями — обов’язково прочитайте цю книжку.

 

 

 

Embedded Linux Primer: A Practical Real-World Approach

Середа, Березень 23rd, 2011


Embedded Linux Primer: A Practical Real-World Approach

Автори: Christopher Hallinan
Видавництво: Prentice Hall
Рік видання: 2010
Кількість сторінок: 656

 

 

Розповідаючи про цю книжку своїм колегам, я кажу: “хочеш займатись embedded Linux`ом — негайно прочитай цю книжку”.

Я дуже шкодую, що ця книжка не потрапила до моїх рук місяців 7 тому, коли я лиш почав професійно займатись embedded Linux’ом. Тоді б мені дуже знадобилися знання, якими ділиться її автор.

Ось, що автор успішно зумів впихнути до книжки:

  • Tour the typical embedded system and development environment and understand its concepts and components.
  • Understand the Linux kernel and userspace initialization processes.
  • Preview bootloaders, with specific emphasis on U-Boot.
  • Configure the Memory Technology Devices (MTD) subsystem to interface with flash (and other) memory devices.
  • Make the most of BusyBox and latest open source development tools.
  • Learn from expanded and updated coverage of kernel debugging.
  • Build and analyze real-time systems with Linux.
  • Learn to configure device files and driver loading with UDEV.
  • Walk through detailed coverage of the USB subsystem.
  • Introduces the latest open source embedded Linux build systems.
  • Reference appendices include U-Boot and BusyBox commands.

Запевняю, це 90% того, що потрібно для розуміння архітектури embedded Linux систем інженерам junior та middle рівня.

“Менше книжок, більше телебачення” (с) Доктор Хаус

Середа, Березень 23rd, 2011

Мене анітрохи не дивує те, що люди не читають книжок, адже у світі стільки у рази цікавіших та важливіших речей: телесеріали, пиво, дівчата в міні спідницях (привіт, Весно!). Читати — це так напряжно: тре нехтувати розвагами, напружувати мозок, а потім ще й обдувати прочитане… Як сказав би Едуард Воловіц, “БОтани”.

Кожне повнолітнє пацаня розуміє, що у нього більше шансів у житті, якщо він читатиме більше бодай спеціалізованої літератури. Кожен має у своєму оточенні людей, які постійно навчаються читаючи книжки, відвідуючи різноманітні тренінги, беручи участь в open source проектах, і кожен бачить на скільки позитивно це впливає на авторитет і становище цих людей у суспільстві, і, звісно ж, на їхню кар’єру. Але майже ніхто не робить того ж. Чому? А яка різниця, це їхня проблема. Я лиш дуже швидко поясню, що ви втрачаєте:

  • світ рухається шаленими темпами, і ваші знанні дуже швидко втрачають свою актуальність; якщо ви бодай не підтягуватимете свій рівень до середнячкового, то дуже швидко опинитись на узбіччі дороги “Життя”;
  • Брайн Трейсі (Brian Tracy) стверджує: якщо ви читатимете по одній спеціалізованій книжці в тиждень, то через якийсь 7 років станете експертом світового класу у даній галузі. Ого-го, чи не так?
  • постійне читання насправді робить ваше життя менш нудним, оскільки звичка читати може допомогти вбити час, відволікти від поганого настрою, тощо; а ще це змушує ваш мозок постійно працювати, обдумуючи прочитане;
  • це дуже різко виділяє вас з когорти середнячкових спеціалістів, якими переповнений ринок праці;
  • читаючи багато книжок, ви починаєте краще розуміти світ та людей навколо;
  • підвищуючи свій рівень, ви притягуєте до себе кращих та цікавіших людей — це закон всесвіту.

Чули історію про викладача, який під час екзамену усім бажаючим ставив у заліковки хороші оцінки “екстерном”? Один зі студентів не витримав, і запитав: “Ви були до нас такі жорстокі під час усього семестру, а тепер просто даруєте нам цей екзамен. Чому?”, і почув у відповідь одну з найбільш повчальних фраз, які мені траплялися: “Що менше ви знаєте і вмієте, то більш цінний я, як спеціаліст”.

А тепер кульмінація у вигляді розкриття нереально крутої таємниці, яка одразу ж винесе вам мозок: для того, щоб мати змогу більше читати, придбайте собі електронну читалку. Носячи її постійно з собою, ви матимете змогу і навіть бажання читати в метро, тролейбусі, навіть ескалаторі, що, запевняю, складає велику частину вашого життя. Думки штибу “знову цілу годину пертися у клятому метро на роботу” перетворяться на щось, типу “швидше б у метро, почати читати”. Для мене це стало найбільшим відкриттям цього року, а Amazon Kindle найвдалішою покупкою за останній час.

Успіхів!