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 ZalewskiTo: 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.