diff --git a/Makefile b/Makefile index dc2396a..88c7700 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,11 @@ # $Id$ # The System Makefile (C) 2002 The UbixOS Project -all: kernel libc ubix libcpp bin tools +all: kernel libc_old ubix libcpp bin tools # depend kernel tools -libc: src - (cd src/lib/libc;make) +libc_old: src + (cd src/lib/libc_old;make) objgfx40: src (cd src/lib/objgfx40;make) @@ -39,7 +39,7 @@ clean: (cd src/sys;make clean) - (cd src/lib/libc;make clean) + (cd src/lib/libc_old;make clean) (cd src/bin;make clean) (cd src/lib/ubix;make clean) (cd src/lib/objgfx40;make clean) diff --git a/src/bin/Makefile.inc b/src/bin/Makefile.inc index 23cac6f..c0d449f 100644 --- a/src/bin/Makefile.inc +++ b/src/bin/Makefile.inc @@ -1,7 +1,7 @@ # 'bin' options -CFLAGS = -nostdlib -nostdinc -fomit-frame-pointer +CFLAGS = -nostdlib -nostdinc -fomit-frame-pointer -fno-builtin INCLUDES = -I../../include -LIBRARIES = ../../lib/libc/math/*.o ../../lib/libc/quad/*.o ../../lib/libc/stdio/*.o ../../lib/libc/stdlib/*.o ../../lib/libc/sys/*.o ../../lib/libc/string/*.o ../../lib/libc/locale/*.o ../../lib/libc/gen/*.o ../../lib/libc/generic/*.o +LIBRARIES = ../../lib/libc_old/math/*.o ../../lib/libc_old/quad/*.o ../../lib/libc_old/stdio/*.o ../../lib/libc_old/stdlib/*.o ../../lib/libc_old/sys/*.o ../../lib/libc_old/string/*.o ../../lib/libc_old/locale/*.o ../../lib/libc_old/gen/*.o ../../lib/libc_old/generic/*.o diff --git a/src/bin/clock/Makefile b/src/bin/clock/Makefile index 411bc55..134a45f 100644 --- a/src/bin/clock/Makefile +++ b/src/bin/clock/Makefile @@ -20,7 +20,7 @@ #Startup File STARTUP = ../../lib/ubix/startup.o -LIBRARIES = ../../lib/libc/libc.so +LIBRARIES = ../../lib/libc_old/libc_old.so # Link The Binary $(BINARY) : $(OBJS) diff --git a/src/bin/cp/Makefile b/src/bin/cp/Makefile index 8f6dc57..8271b82 100644 --- a/src/bin/cp/Makefile +++ b/src/bin/cp/Makefile @@ -20,7 +20,7 @@ #Startup File STARTUP = ../../lib/ubix/startup.o -LIBRARIES = ../../lib/libc/libc.so +LIBRARIES = ../../lib/libc_old/libc_old.so # Link The Binary $(BINARY) : $(OBJS) diff --git a/src/bin/disklabel/Makefile b/src/bin/disklabel/Makefile index 41d3422..9d52209 100644 --- a/src/bin/disklabel/Makefile +++ b/src/bin/disklabel/Makefile @@ -21,7 +21,7 @@ STARTUP = ../../lib/ubix/startup.o -LIBRARIES = ../../lib/libc/libc.so +LIBRARIES = ../../lib/libc_old/libc_old.so # Link The Binary $(BINARY) : $(OBJS) diff --git a/src/bin/edit/Makefile b/src/bin/edit/Makefile index 319a799..6779c67 100644 --- a/src/bin/edit/Makefile +++ b/src/bin/edit/Makefile @@ -20,7 +20,7 @@ #Startup File STARTUP = ../../lib/ubix/startup.o -LIBRARIES = ../../lib/libc/libc.so +LIBRARIES = ../../lib/libc_old/libc_old.so # Link The Binary $(BINARY) : $(OBJS) diff --git a/src/bin/fdisk/Makefile b/src/bin/fdisk/Makefile index 4a890bc..ed3c040 100644 --- a/src/bin/fdisk/Makefile +++ b/src/bin/fdisk/Makefile @@ -20,7 +20,7 @@ #Startup File STARTUP = ../../lib/ubix/startup.o -LIBRARIES = ../../lib/libc/libc.so +LIBRARIES = ../../lib/libc_old/libc_old.so # Link The Binary $(BINARY) : $(OBJS) diff --git a/src/bin/ld/addlibrary.c b/src/bin/ld/addlibrary.c index 698fd55..5853025 100644 --- a/src/bin/ld/addlibrary.c +++ b/src/bin/ld/addlibrary.c @@ -15,7 +15,7 @@ if (tmpLib->output == 0x0) { linkerFd = fopen(lib,"rb"); - if (linkerFd == 0x0) { + if (linkerFd->fd == 0x0) { printf("Cant Open Library: %s\n",lib); exit(-1); } diff --git a/src/bin/login/main.c b/src/bin/login/main.c index 11881f7..6a5de0a 100644 --- a/src/bin/login/main.c +++ b/src/bin/login/main.c @@ -68,6 +68,9 @@ exit(-1); } data = (struct passwd *)malloc(4096); + + printf("Starting Login Daemon\n"); + if (!(fd = fopen("sys:/userdb","r"))) { printf("Error Opening File"); memcpy(data[0].username,"root",4); diff --git a/src/bin/ls/Makefile b/src/bin/ls/Makefile index 154fbe4..f9f2e02 100644 --- a/src/bin/ls/Makefile +++ b/src/bin/ls/Makefile @@ -20,7 +20,7 @@ #Startup File STARTUP = ../../lib/ubix/startup.o -LIBRARIES = ../../lib/libc/libc.so +LIBRARIES = ../../lib/libc_old/libc_old.so # Link The Binary $(BINARY) : $(OBJS) diff --git a/src/bin/shell/Makefile b/src/bin/shell/Makefile index 9cfa222..b85cf44 100644 --- a/src/bin/shell/Makefile +++ b/src/bin/shell/Makefile @@ -20,7 +20,7 @@ #Startup File STARTUP = ../../lib/ubix/startup.o -LIBRARIES = ../../lib/libc/libc.so +LIBRARIES = ../../lib/libc_old/libc_old.so # Link The Binary $(BINARY) : $(OBJS) diff --git a/src/bin/ubistry/Makefile b/src/bin/ubistry/Makefile index 46bea2a..b2cd7fd 100644 --- a/src/bin/ubistry/Makefile +++ b/src/bin/ubistry/Makefile @@ -20,7 +20,7 @@ #Startup File STARTUP = ../../lib/ubix/startup.o -LIBRARIES = ../../lib/libc/libc.so +LIBRARIES = ../../lib/libc_old/libc_old.so # Link The Binary $(BINARY) : $(OBJS) diff --git a/src/lib/libc/i386/SYS.h b/src/lib/libc/i386/SYS.h new file mode 100644 index 0000000..209f0b2 --- /dev/null +++ b/src/lib/libc/i386/SYS.h @@ -0,0 +1,61 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * William Jolitz. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)SYS.h 5.5 (Berkeley) 5/7/91 + * $FreeBSD: src/lib/libc/i386/SYS.h,v 1.24 2002/09/17 01:48:51 peter Exp $ + */ + +#include +#include + +#define SYSCALL(x) 2: PIC_PROLOGUE; jmp PIC_PLT(HIDENAME(cerror)); \ + ENTRY(__CONCAT(__sys_,x)); \ + .weak CNAME(x); \ + .set CNAME(x),CNAME(__CONCAT(__sys_,x)); \ + .weak CNAME(__CONCAT(_,x)); \ + .set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(__sys_,x)); \ + mov __CONCAT($SYS_,x),%eax; KERNCALL; jb 2b + +#define RSYSCALL(x) SYSCALL(x); ret + +#define PSEUDO(x) ENTRY(__CONCAT(__sys_,x)); \ + .weak CNAME(__CONCAT(_,x)); \ + .set CNAME(__CONCAT(_,x)),CNAME(__CONCAT(__sys_,x)); \ + mov __CONCAT($SYS_,x),%eax; KERNCALL; ret + +/* gas messes up offset -- although we don't currently need it, do for BCS */ +#define LCALL(x,y) .byte 0x9a ; .long y; .word x + +#define KERNCALL int $0x80 diff --git a/src/lib/libc/i386/_fpmath.h b/src/lib/libc/i386/_fpmath.h new file mode 100644 index 0000000..daebe95 --- /dev/null +++ b/src/lib/libc/i386/_fpmath.h @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2002, 2003 David Schultz + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: src/lib/libc/i386/_fpmath.h,v 1.3 2004/01/18 07:57:01 das Exp $ + */ + +union IEEEl2bits { + long double e; + struct { + unsigned int manl :32; + unsigned int manh :32; + unsigned int exp :15; + unsigned int sign :1; + unsigned int junk :16; + } bits; +}; + +#define mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) + +#define LDBL_MANH_SIZE 32 +#define LDBL_MANL_SIZE 32 + +#define LDBL_TO_ARRAY32(u, a) do { \ + (a)[0] = (uint32_t)(u).bits.manl; \ + (a)[1] = (uint32_t)(u).bits.manh; \ +} while(0) diff --git a/src/lib/libc/i386/arith.h b/src/lib/libc/i386/arith.h new file mode 100644 index 0000000..c55a4df --- /dev/null +++ b/src/lib/libc/i386/arith.h @@ -0,0 +1,15 @@ +/* + * MD header for contrib/gdtoa + * + * $FreeBSD: src/lib/libc/i386/arith.h,v 1.2 2003/05/08 13:50:43 das Exp $ + */ + +/* + * NOTE: The definitions in this file must be correct or strtod(3) and + * floating point formats in printf(3) will break! The file can be + * generated by running contrib/gdtoa/arithchk.c on the target + * architecture. See contrib/gdtoa/gdtoaimp.h for details. + */ + +#define IEEE_8087 +#define Arith_Kind_ASL 1 diff --git a/src/lib/libc_old/Makefile b/src/lib/libc_old/Makefile index 10c2e96..7b2fcc6 100644 --- a/src/lib/libc_old/Makefile +++ b/src/lib/libc_old/Makefile @@ -25,7 +25,7 @@ (cd generic;make) (cd gen;make) # $(LD) $(LDFLAGS) -o $(OUTPUT) $(OBJS) ./stdio/*.o ./sys/*.o ./string/*.o ./stdlib/*.o - $(CC) -nostdlib -shared -Wl,-soname,libc.so -o $(OUTPUT) $(OBJS) $(SUBS) + $(CC) -nostdlib -shared -Wl,-soname,libc_old.so -o $(OUTPUT) $(OBJS) $(SUBS) # Compile the source files .cc.o: diff --git a/src/sys/lib/libcpp.cc b/src/sys/lib/libcpp.cc index 007dd45..b804c70 100644 --- a/src/sys/lib/libcpp.cc +++ b/src/sys/lib/libcpp.cc @@ -24,6 +24,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. $Log$ + Revision 1.2 2004/05/19 04:07:43 reddawg + kmalloc(size,pid) no more it is no kmalloc(size); the way it should of been + Revision 1.1.1.1 2004/04/15 12:07:10 reddawg UbixOS v1.0 @@ -42,6 +45,8 @@ #include void __pure_virtual() { while(1); } void __cxa_pure_virtual() { while(1); } +void __cxa_atexit() { while(1); } +void __dso_handle() { while(1); } } #include diff --git a/src/sys/sys/syscall.mk b/src/sys/sys/syscall.mk new file mode 100644 index 0000000..7cabd19 --- /dev/null +++ b/src/sys/sys/syscall.mk @@ -0,0 +1,300 @@ +# FreeBSD system call names. +# DO NOT EDIT-- this file is automatically generated. +# $FreeBSD: src/sys/sys/syscall.mk,v 1.111 2004/06/22 04:36:25 rwatson Exp $ +# created from FreeBSD: src/sys/kern/syscalls.master,v 1.173 2004/06/22 04:34:55 rwatson Exp +MIASM = \ + syscall.o \ + exit.o \ + fork.o \ + read.o \ + write.o \ + open.o \ + close.o \ + wait4.o \ + link.o \ + unlink.o \ + chdir.o \ + fchdir.o \ + mknod.o \ + chmod.o \ + chown.o \ + break.o \ + getpid.o \ + mount.o \ + unmount.o \ + setuid.o \ + getuid.o \ + geteuid.o \ + ptrace.o \ + recvmsg.o \ + sendmsg.o \ + recvfrom.o \ + accept.o \ + getpeername.o \ + getsockname.o \ + access.o \ + chflags.o \ + fchflags.o \ + sync.o \ + kill.o \ + getppid.o \ + dup.o \ + pipe.o \ + getegid.o \ + profil.o \ + ktrace.o \ + getgid.o \ + getlogin.o \ + setlogin.o \ + acct.o \ + sigaltstack.o \ + ioctl.o \ + reboot.o \ + revoke.o \ + symlink.o \ + readlink.o \ + execve.o \ + umask.o \ + chroot.o \ + msync.o \ + vfork.o \ + sbrk.o \ + sstk.o \ + vadvise.o \ + munmap.o \ + mprotect.o \ + madvise.o \ + mincore.o \ + getgroups.o \ + setgroups.o \ + getpgrp.o \ + setpgid.o \ + setitimer.o \ + swapon.o \ + getitimer.o \ + getdtablesize.o \ + dup2.o \ + fcntl.o \ + select.o \ + fsync.o \ + setpriority.o \ + socket.o \ + connect.o \ + getpriority.o \ + bind.o \ + setsockopt.o \ + listen.o \ + gettimeofday.o \ + getrusage.o \ + getsockopt.o \ + readv.o \ + writev.o \ + settimeofday.o \ + fchown.o \ + fchmod.o \ + setreuid.o \ + setregid.o \ + rename.o \ + flock.o \ + mkfifo.o \ + sendto.o \ + shutdown.o \ + socketpair.o \ + mkdir.o \ + rmdir.o \ + utimes.o \ + adjtime.o \ + setsid.o \ + quotactl.o \ + nfssvc.o \ + lgetfh.o \ + getfh.o \ + getdomainname.o \ + setdomainname.o \ + uname.o \ + sysarch.o \ + rtprio.o \ + semsys.o \ + msgsys.o \ + shmsys.o \ + pread.o \ + pwrite.o \ + ntp_adjtime.o \ + setgid.o \ + setegid.o \ + seteuid.o \ + stat.o \ + fstat.o \ + lstat.o \ + pathconf.o \ + fpathconf.o \ + getrlimit.o \ + setrlimit.o \ + getdirentries.o \ + mmap.o \ + __syscall.o \ + lseek.o \ + truncate.o \ + ftruncate.o \ + __sysctl.o \ + mlock.o \ + munlock.o \ + undelete.o \ + futimes.o \ + getpgid.o \ + poll.o \ + __semctl.o \ + semget.o \ + semop.o \ + msgctl.o \ + msgget.o \ + msgsnd.o \ + msgrcv.o \ + shmat.o \ + shmctl.o \ + shmdt.o \ + shmget.o \ + clock_gettime.o \ + clock_settime.o \ + clock_getres.o \ + nanosleep.o \ + minherit.o \ + rfork.o \ + openbsd_poll.o \ + issetugid.o \ + lchown.o \ + getdents.o \ + lchmod.o \ + netbsd_lchown.o \ + lutimes.o \ + netbsd_msync.o \ + nstat.o \ + nfstat.o \ + nlstat.o \ + fhopen.o \ + fhstat.o \ + modnext.o \ + modstat.o \ + modfnext.o \ + modfind.o \ + kldload.o \ + kldunload.o \ + kldfind.o \ + kldnext.o \ + kldstat.o \ + kldfirstmod.o \ + getsid.o \ + setresuid.o \ + setresgid.o \ + aio_return.o \ + aio_suspend.o \ + aio_cancel.o \ + aio_error.o \ + aio_read.o \ + aio_write.o \ + lio_listio.o \ + yield.o \ + mlockall.o \ + munlockall.o \ + __getcwd.o \ + sched_setparam.o \ + sched_getparam.o \ + sched_setscheduler.o \ + sched_getscheduler.o \ + sched_yield.o \ + sched_get_priority_max.o \ + sched_get_priority_min.o \ + sched_rr_get_interval.o \ + utrace.o \ + kldsym.o \ + jail.o \ + sigprocmask.o \ + sigsuspend.o \ + sigpending.o \ + sigtimedwait.o \ + sigwaitinfo.o \ + __acl_get_file.o \ + __acl_set_file.o \ + __acl_get_fd.o \ + __acl_set_fd.o \ + __acl_delete_file.o \ + __acl_delete_fd.o \ + __acl_aclcheck_file.o \ + __acl_aclcheck_fd.o \ + extattrctl.o \ + extattr_set_file.o \ + extattr_get_file.o \ + extattr_delete_file.o \ + aio_waitcomplete.o \ + getresuid.o \ + getresgid.o \ + kqueue.o \ + kevent.o \ + extattr_set_fd.o \ + extattr_get_fd.o \ + extattr_delete_fd.o \ + __setugid.o \ + nfsclnt.o \ + eaccess.o \ + nmount.o \ + kse_exit.o \ + kse_wakeup.o \ + kse_create.o \ + kse_thr_interrupt.o \ + kse_release.o \ + __mac_get_proc.o \ + __mac_set_proc.o \ + __mac_get_fd.o \ + __mac_get_file.o \ + __mac_set_fd.o \ + __mac_set_file.o \ + kenv.o \ + lchflags.o \ + uuidgen.o \ + sendfile.o \ + mac_syscall.o \ + getfsstat.o \ + statfs.o \ + fstatfs.o \ + fhstatfs.o \ + ksem_close.o \ + ksem_post.o \ + ksem_wait.o \ + ksem_trywait.o \ + ksem_init.o \ + ksem_open.o \ + ksem_unlink.o \ + ksem_getvalue.o \ + ksem_destroy.o \ + __mac_get_pid.o \ + __mac_get_link.o \ + __mac_set_link.o \ + extattr_set_link.o \ + extattr_get_link.o \ + extattr_delete_link.o \ + __mac_execve.o \ + sigaction.o \ + sigreturn.o \ + getcontext.o \ + setcontext.o \ + swapcontext.o \ + swapoff.o \ + __acl_get_link.o \ + __acl_set_link.o \ + __acl_delete_link.o \ + __acl_aclcheck_link.o \ + sigwait.o \ + thr_create.o \ + thr_exit.o \ + thr_self.o \ + thr_kill.o \ + _umtx_lock.o \ + _umtx_unlock.o \ + jail_attach.o \ + extattr_list_fd.o \ + extattr_list_file.o \ + extattr_list_link.o \ + kse_switchin.o \ + ksem_timedwait.o \ + thr_suspend.o \ + thr_wake.o diff --git a/src/tools/Makefile b/src/tools/Makefile index 87d03e4..f2ff4c6 100644 --- a/src/tools/Makefile +++ b/src/tools/Makefile @@ -43,25 +43,25 @@ (cp ../bin/shell/shell ./) (cp ../bin/ls/ls ./) (cp ../bin/clock/clock ./) - (cp ../lib/libc/libc.so ./) + (cp ../lib/libc_old/libc_old.so ./) (cp ../bin/fdisk/fdisk ./) (cp ../bin/cp/cp ./) #(cp ../bin/format/format ./) (cp ../bin/ubistry/ubistry ./) (cp ../sys/boot/mbr/mbr ./) (cp ../bin/ld/ld.so ./) - (./format 50 2000 /dev/fd0 ubix.elf 0 login 3754 ROM8X14.DPF 3754 init 3754 ubistry 3754 shell 3754 userdb 3754 ls 3754 motd 3754 fdisk 3754 mbr 3754 cp 3754 clock 3754 libc.so 3754 ld.so 3754) + (./format 50 2000 /dev/fd0 ubix.elf 0 login 3754 ROM8X14.DPF 3754 init 3754 ubistry 3754 shell 3754 userdb 3754 ls 3754 motd 3754 fdisk 3754 mbr 3754 cp 3754 clock 3754 libc_old.so 3754 ld.so 3754) #(./format 263 204361 /dev/md1 ubix.elf 0 format 3754 fdisk 3754 ROM8X14.DPF 3754 init 3754 login 3754 shell 3754 userdb 3754 ls 3754 motd 3754 cp 3754) (./format 1064 2000 /dev/fd0 shell 3754 clock 3754) - #(./format 200 2000 /dev/md1 ubix.elf 0 shell 3754 motd 3754 libc.so 3754) + #(./format 200 2000 /dev/md1 ubix.elf 0 shell 3754 motd 3754 libc_old.so 3754) (rm -fr ubix.elf) (rm -fr login) (rm -fr init) (rm -fr shell) (rm -fr ls) (rm -fr clock) - (rm -fr libc.so) + (rm -fr libc_old.so) (rm -fr cp) (rm -fr fdisk) #(rm -fr format)