Minęło zaledwie siedem miesięcy od wypuszczenia pierwszej stabilnej wersji wirtualnego systemu operacyjnego Argante, a już znajdziecie w sieci pierwsze przymiarki do Argante 2. Nowe Argante będzie przepisane praktycznie od początku, ponieważ poprzednio przyjęte założenia utrudniały pełen rozwój tego OSa w kierunku w pełni autonomicznego oprogramowania. Napisany przez lcamtufa kod, który będzie teraz rozszerzany, znajdziecie tutaj, a po poprzednią wersję nie ma już co sięgać, ponieważ prace nad nią zostały praktycznie wstrzymane. Jest ona za to na tyle dobra, żeby stosować ją na niektórych serwerach produkcyjnych…

  From lcamtuf@bos.bindview.com Sat Jul 14 23:32:26 2001  Date: Sat, 14 Jul 2001 16:18:27 -0400 (EDT)  From: Michal Zalewski   To: argante@linuxpl.org  Subject: [argante] argante2      Hi,    This is what I have so far. This is a result of +/- 6-8 hours of  development of development around 2000 lines of code, that is all I was  able to develop some time ago. Except for finished boot stage and almost  done agent connection subsystem, you have almost complete file hierarchy  there. You might want to take a look around.    Do whatever you want. You might want to examine it, decide whether you  want to add some code. I'm completely open, I can explain you my ideas  behind Argante 2 if it is not self-explainatory. For now, I'm completely  screwed up. I feel really bad about it. I do not want to abandon this  project or to forget about it, I identify with it more than with any other  (maybe except for catty ;))). So almost every night I'm really angry I  didn't develop few hundred lines more. I really wish it can happen in the  future, but... ehh, all the stuff is way too complicated to explain there,  basically I have emotional fuckup, it has nothing to do with my work or  stuff like that, I do not have any important things to do to justify my  inability to code... working on it.    I do not want to keep you without an ability to write new code or to think  about it, so here it is.    http://lcamtuf.na.export.pl/a2.tgz    Files:    lrwxrwxrwx    1 root     root           12 Jun  2 16:21 README2      Well, README2, nothing too interesting there for today.    drwxr-xr-x    2 root     root         4096 Jun  2 16:23 agents      -rw-r--r--    1 root     root          216 Jun  3 22:32 console.c      Console management agent. Basically, it should read commands from    console and send them to kernel. For tests, I used uc (suncat)    utility instead, get it from wastebasket/. Please refer to    list archives for more on management agents, and to existing    AOSr2 kernel sources. Should be able to read scripts, as well.      -rw-r--r--    1 root     root          214 Jun  3 22:32 direct.c      Direct execution agent. Basically, it should be invoked as a loader    for ELF binary or using #!sth convention. It should read the    executable it was invoked for, pass this image to kernel, and    arrange console I/O for the lifetime of this process. Fast    and clear alternative for agtexe.      -rw-r--r--    1 root     root          224 Jun  3 22:32 nsplug.c      Leave it for now, netscape plugin in distant future, if ever ;)      -rw-r--r--    1 root     root          212 Jun  3 22:32 servlet.c      Servlet should be a version of loader for Apache CGI scripts.    Basically, it would be blazing fast because it can be done without    fork().    -rwxr-xr-x    1 root     root         3186 Jun  6 20:21 build      Build script. That is it, no autoconf, no make, just lame script.    Advantages: less dependencies, better control. Disadvantages:    outmodern and lame ;) Who cares.    drwxr-xr-x    5 root     root         4096 Jun  2 16:11 compilers      drwxr-xr-x    2 root     root         4096 Jun  2 16:21 aga2      Argante Assembler. f00f.      drwxr-xr-x    2 root     root         4096 Jun  2 16:21 aghl2      HLL (the "major" one, AHLLv1 alike, but significantly improved;    other HLLs are welcome)      drwxr-xr-x    2 root     root         4096 Jun  2 16:21 agml2      MLL, assembler-for-dummies    drwxr-xr-x    2 root     root         4096 Jun  2 16:21 docs      Documentation, bah    drwxr-xr-x    8 root     root         4096 Jun  6 20:59 examples      Examples, you know...    drwxr-xr-x    2 root     root         4096 Jun  6 20:04 include      ...check it out! most of the ideas are here.    drwxr-xr-x    2 root     root         4096 Jul 14 15:54 kernel      Ok!      -rw-r--r--    1 root     root          239 Jun  6 20:44 bcode.c      Bytecode interpreter, using new bytecode notation (multipurpose    regs and 'interpret as' values, as discussed).      -rw-r--r--    1 root     root        14716 Jul 14 15:53 command.c      This is, basically, to communicate with agents - I mean receive    commands, execute programs, arrange I/O, manage the system in    fast, clean and multisession way.      -rw-r--r--    1 root     root          291 Jun  6 20:44 hac.c      Access control, relatively simple, we'll stick to AOSr1 access    control, I guess?      -rw-r--r--    1 root     root          267 Jun  6 20:44 loader.c      Binary loader, invoked from command.c, should load binary and    symbols. You can add shared libs here, but I am not sure if it    is very necessary at this point. Please consult task struct .h    file and try to understand how new tasks are supposed to work.      -rw-r--r--    1 root     root         2079 Jun  6 20:04 main.c      Launch all the stuff, go into background, wait for agents. No    auto-boot or so, agent can perform auto-boot.      -rw-r--r--    1 root     root          357 Jun  6 20:45 module.c      Loadable modules, almost like in AOSr1, but there are few new    features, like per-module stuff is attached to task struct instead    of keeping it in the module, so stateful module hotswap is possible.    There are few differences, like module functionality ID, to manage    that (you have to discard and free all resources properly when    the last module of given kind is unloaded, but have to keep them    if module A is loaded for the second time, and then first instance    of A is unloaded). See .h files.      -rw-r--r--    1 root     root          845 Jun  6 20:05 taskman.c      You know. Should be extremely fast. Instead of conditional    constructions, put pointers in task struct, and modify it somewhere    else.    drwxr-xr-x    2 root     root         4096 Jun  3 22:38 modules      -rw-r--r--    1 root     root          223 Jun  3 22:36 libfs.c      FS, like in r1.      -rw-r--r--    1 root     root          155 Jun  3 22:36 libggi.c      GGI      -rw-r--r--    1 root     root          224 Jun  3 22:37 libhac.c      like in r1      -rw-r--r--    1 root     root          141 Jun  3 22:37 libmath.c      z33d, like in r1, but better ;)      -rw-r--r--    1 root     root          225 Jun  3 22:37 libmem.c      ...the same...      -rw-r--r--    1 root     root          219 Jun  3 22:37 libnet.c      ...the same...      -rw-r--r--    1 root     root          148 Jun  3 22:38 libraw.c      ...raw sockets, packet.c from r1...      -rw-r--r--    1 root     root          218 Jun  3 22:38 libsys.c      Like liblocal.    drwxr-xr-x    2 root     root         4096 Jun  6 20:12 tools      Less of them, thanks to agents:      -rw-r--r--    1 root     root          201 Jun  3 22:39 actest.c    -rw-r--r--    1 root     root          213 Jun  3 22:39 binedit.c    -rw-r--r--    1 root     root          205 Jun  3 22:39 disasm.c    -rw-r--r--    1 root     root          223 Jun  5 22:21 ripcd.c      You know them, right? ripcd should be probably slightly improved,    binedit and disasm improved for new assembler and image format.    drwxr-xr-x    2 root     root         4096 Jun  2 16:02 untested      ...empty...    drwxr-xr-x    2 root     root         4096 Jun  6 12:31 wastebasket      ...suncat, for now.    -rw-r--r--    1 root     root          831 Jun  3 23:01 word      Am, some of my priv junk ;)    

Archiwalny news dodany przez użytkownika: honey.
Kliknij tutaj by zobaczyć archiwalne komentarze.

Oznaczone jako → 
Share →