但现在,即使你还有一张能用的3.5英寸软盘,可1.44MB的容量远远装不下一个现代linux内核,更不用说还得加上所有支持软件了。
和UNIX系统相同,Linux超级用户root拥有系统的最高权限。当由于用户的疏忽,遗忘了root 密码,或者系统受到黑客的入侵,无法用root 账号登录系统时,可以通过下列办法来恢复root 的密码。
通电后,主板上BIOS或者UEFI,会加电自检(检查硬件有没错误),加载bootloader(执行程序)到内存 bootloader被写死在磁盘上第一个扇区,启动后被加载到内存的一个固定的位置。BIOS去这个位置执行第一条指令。
在这里,我们尝试探讨了第一个 Linux 内核问世后,诸如 Red Hat、Debian、Slackware、SUSE、Ubuntu 等诸多流行的发行版的想法是如何产生的。
我对复古游戏和让我们有今天的生活的电脑历史的保存十分着迷。我认为大多数程序员都有一台帮助他们培养对编程热爱的机器;对我来说,那就是Commodore Amiga。我现在正在恢复几个Amiga,让他们重新工作。这将需要一些时间,但我想要一些可以迅速运行起来的东西,以便使我可以使用操作系统,并完成一些我从来没有完成过的孩子一样的游戏。
/ 根目录,与Windows不同Linux下只有一个根目录,所有其他目录都在根目录下,而不象Windows那样一个分区一个根目录。如果有多个分区的话,就需要将其它分区mount到根目录上来用。
---- 概述 实现一个基于Intel x86的32位操作系统。 ---- 环境搭建 Ubuntu虚拟机。 Ubuntu - 汇编编译器NASM - C编译器GCC - 软盘绝对扇区读写工具dd - qemu虚拟机 - Bochs模拟器 - 磁盘映像工具bximage $ sudo apt-get install build-essential nasm 这里的build-essential软件包中包含GCC和GNU Make。 一些常用指令 汇编命令 $ nasm boot.asm
1下载http://blog.hengch.com/software/dos622.img 复制并重命名为uninstall.img,一会能用到
mkbootdisk 命令 可用于创建能够单独使用的系统引导软盘,以便在系统出现故障时能够启动操作进行适当的修复工作。
这里有两个为运行于Linux的Mono系统的Live CD。. Monoppix Mono Live 这两个都包含mono 运行环境和工具. Mono Live 分发包中包含一些运行在Mono的程序 例如beagle、tomboy. 也包含一些asp.net 程序。所以他们都很大,像Monoppix有200多兆. 这些cd是Live cd也就是说你可以通过运行他们而不需要硬盘。.net开发人员使用的都是windows系统,也许想体验一下开源的.net 实现Mono。 相信不少朋友玩过虚拟机,比如VMW
insmod命令用于将给定的模块加载到内核中。Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块通常是设备驱动程序。
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。 PXE协议的成功运行需要解决以下两个问题: 既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置; 通过什么协议下载Linux内核和根文件系统 对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。 至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。 这样,PXE协议运行的条件就具备了,下面我们就来看看PXE协议的工作过程。 工作过程 在上图中,PXE client是需要安装Linux的计算机,TFTP Server和DHCP Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录下。 PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。 步骤 有了前面的背景知识,接下来就可以正式操作了,下面按照顺序给出了操作步骤: 配置DHCP Server 选用ISC dhcp-3.0,DHCP Server的配置文件是/etc/dhcpd.conf,配置文件的内容如下:
Markdown 命令教程
unix2dos: converting file baby to DOS format ...
最近开始看《自己动手写操作系统》,虽然很早以前就读过一点点,但一直没有机会动手实践。本着光说不练假把式的原则,
上一篇文章中,我们介绍了如何创建一个简单的引导扇区,触发 BIOS 中断,从而在计算机屏幕上显示出一行我们想要的字符串。 计算机是如何启动的?如何制作自己的操作系统
mkbootdisk命令用来为当前运行的系统创建能够单独使用的系统引导软盘,以便在系统出现故障时能够启动操作进行适当的修复工作。
几十年来,个人电脑一直受到病毒、蠕虫和其他恶意软件的困扰。最早的一些个人电脑病毒是以引导扇区病毒的形式传播的:它们以代码形式存在于软盘的引导扇区中,当用户使用受感染的 DOS 软盘启动计算机时,病毒就会从一台计算机传播到另一台计算机。虽然随着软盘的淘汰和互联网连接的普及,其他病毒传播方式也逐渐受到重视,但预启动的恶意软件对系统安全仍造成巨大威胁。通过在操作系统内核获得计算机控制权之前执行,恶意软件可以 "隐藏 "起来,从而使病毒扫描程序几乎无法检测到恶意软件。
/dev/fdx 主设备号 fd 是软盘驱动器(floppydisk) 的缩写,次设备号x 是软盘驱动器相应的编号。
近期有个需求,要从一个U盘对拷出一个完全一样的U盘内容,带一些隐藏文件及系统引导功能。并且U盘的容量有如下两种情况:
大家好,又见面了,我是你们的朋友全栈君。 最近装一个linux版本,就要用到dos,找来找去,忙乎了半天,又是缺文件,又是改配置。发现,一直用dos,但是还没有好好研究它。要研究dos,得从它的启动信息开始。。。。
来源:马哥教育链接:https://mp.weixin.qq.com/s/wwBt5H68tHmf_lHXrd_eSQ本文是 Linus 写于 1991年10月10日LINUX是什么?LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码。主要让黑客、计算机科学学生使用,学习和享受。它大部分用C编写,但是一小部分是用gnu格式汇编,而且引导序列用的是因特尔086汇编语言。C代码是相对ANSI的,使用一些GNU增强特性(大多为 __asm__ 和 inline)。然而有很多可用于386电脑的unices,他们大部分要花很多钱,而且不附带源码。因此他们是使用计算机的理想选择,但是如果你想了解他们如何工作,那是不可能的。也有一些 Unix 是附带源码的。Minix,Andrew S. Tanenbaum编写的学习工具,已经在大学中作为教学工具使用了很多年了。BSD-386系统是附带源码的,但是有版权限制,而且要花很多钱(我记得起始价格为$995)。GNU内核(Hurd)将会是免费的,但是现在还没有准备好,而且对于了解和学习它们来说有点庞大。LINUX与Minix是最相似的,由于它很小而且不是非常复杂,因此易于理解(嗯…)。LINUX是基于Minix编写的,因此有相当多的相同点,任何Minix黑客在使用LINUX的时候都感觉非常熟悉。不过,没有在项目中使用Minix代码,因此Minix版权没有限制到这个新系统。它也是完全免费的,而且它的版权非常宽松。因此不像使用Minix,它不需要几兆字节大小的区别。LINUX版权虽然是免费的发布版,我还是从以下几个方面限制了LINUX的使用:你可以自由复制和重新发布源码和二进制,只要是:1. 完全开源。因此不能单独发布二进制,即使你只修改了一点。2. 你不能从发布版获取利益。事实上甚至“装卸费用”都是不被接受的。3. 你要保持完整的适当版权。· 根据需要你可能会修改源码,但是如果你发布了新系统的一部分(或者只有二进制),必须将新的代码包含进去。· 除了不包含版权的代码之外,你可能会做一些小的修改。这由你来定,但是如果能将相关内容或者代码告诉我,将不胜感激。对任何使用或者扩展系统的人来说,这应该足够宽松而不会引起任何担忧。如果你有朋友真的不想要源码,只想要一个能运行的二进制,你当然可以给他而不用担心我会起诉你。不过最好只在朋友之间这么做。LINUX运行所需的硬件/软件LINUX是在一个运行Minix的386-AT上开发的。由于LINUX是一个真正的操作系统,而且需要直接与硬件交互来做一些事情,你必须有一个非常相似的系统来让他顺利运行:· 386-AT(PS/2之类是不同的,不能正常运行)· VGA或者EGA屏幕硬件。· 标准AT硬盘接口,IDE盘可以运行(实际上我用的就是这个)。· 正常实模式BIOS。一些机器看起来是用虚-86模式运行启动程序,而且在这样的机器LINUX不会启动和正常运行。LINUX会发展成为一个自给自足的系统,现在需要Minix-386才能正常运行。你需要Minix让初始化启动文件系统,和编译OS二进制。在那之后LINUX是一个自给自足的系统,但是为了做文件系统检查(fsck)和修改之后重编译系统,推荐使用Minix。获取LINUXLINUX现在可以使用匿名ftp从‘nic.funet.fi’的‘/pub/OS/Linux’目录获取。这个目录包含操作系统的所有源码,还有一些二进制文件,因此你可以真正使用系统了。注意!二进制大多是GNU软件,而且版权比LINUX的严格(GNU非盈利性版权)。因此你不能在不发布他们源码的情况下重新发布他们,可以在/pub/GNU中找到。关于GNU非盈利性版权,从任何GNU软件包了解更多。此目录中各类文件如下:· linux-0.03.tar.Z–系统的完全源码,16位tar压缩文件格式。· Linux.tex–这个文件的LATEX源码。· bash.Z–在LINUX下运行的bash二进制文件。这个二进制文件应该放到预留给LINUX文件系统中的/bin/sh下(参见installation)。· update.Z–更新二进制文件,要放到/bin/update。· gccbin.tar.Z–GNU cc二进制文件需要由一个可运行的编译器。这个tar压缩包含有编译器,加载器,汇编程序和支持程序(nm,strip等)。它还包含一个小型的库,可用于大部分程序。· include.tar.Z–让gcc运行的必要include文件。· unistd.tar.Z–unistd库程序的源码(即系统调用接口)。通过这个你可以使用系统独立库源码编译一个大一些的库。· utilbin.tar.Z–各种GNU工具的二进制文件,包括GNU的fileutils,make和tar。也包含克隆emacs的uemacs。· README, RELNOTES-
在我和实际使用中,字符集用utf8效果很好,没有出现乱码的问题,在终端挂载的代码如下: mount -t vfat /dev/hda2 /mnt/d -o codepage=936,iocharset=utf8 我的fstab # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/hdc8 / ext3 defaults,errors=remount-ro 0 1 /dev/hdc9 none swap sw 0 0 /dev/hdb /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/hdc1 /mnt/winc vfat defaults,codepage=936,iocharset=utf8 0 0 /dev/hdc5 /mnt/wind ntfs defaults,iocharset=utf8,umask=0222 0 0 /dev/hdc6 /mnt/wine ntfs defaults,iocharset=utf8,umask=0222 0 0 /dev/hdc7 /mnt/winf vfat defaults,codepage=936,iocharset=utf8 0 0 (以下转自网络) 1、挂载点必须是一个目录。 2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内 容将不可用。 对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作 系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是 fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和 windowsXP是fat16、fat32、NTFS。挂载前要了解linux是否支持所要挂载的文件系统格式。 挂载时使用mount命令: 格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有 -t<文件系统类型> 指定设备的文件系统类型,常见的有: minix linux最早使用的文件系统 ext2 linux目前常用的文件系统 msdos MS-DOS的fat,就是fat16 vfat windows98常用的fat32 nfs 网络文件系统 iso9660 CD-ROM光盘标准文件系统 ntfs windows NT 2000的文件系统 hpfs OS/2文件系统 auto 自动检测文件系统 -o<选项> 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的有 codepage=XXX 代码页 iocharset=XXX 字符集 ro 以只读方式挂载 rw 以读写方式挂载 nouser 使一般用户无法挂载 user 可以让一般用户挂载设备 提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存 在。(不懂?说白了点就是你要把文件系统挂载到哪,首先要先建上个目录。这样OK?) 例子:windows98装在hda1分区,同时计算机上还有软盘和光盘需要挂载。 # mk /mnt/winc # mk /mnt/floppy # mk /mnt/cdrom # mount -t vfat /dev/hda1 /mnt/winc # mount -t msdos /dev/fd0 /mnt/floppy # mount -t iso9660 /dev/cdrom /mnt/cdrom 现在就可以进入/mnt/winc等目录读写这些文件系统了。 要保证最后两行的命令不出错,要确保软驱和光驱里有盘。(要是硬盘的磁盘片也可以经常随时 更换的话,我想就不会犯这样的错误了 :-> ) 如果你的windows98目录里有中文文件名,使用上面的命令挂载后,显示的是一堆乱码。这就要 用到 -o 参数里的codepage iocharset选项。codepage指定文件系统的代码页,简体中文中文代 码是936;io
LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码。主要让黑客、计算机科学学生使用,学习和享受。它大部分用C编写,但是一小部分是用gnu格式汇编,而且引导序列用的是因特尔086汇编语言。C代码是相对ANSI的,使用一些GNU增强特性(大多为 __asm__ 和 inline)。
重导与管道: 重导(redirect)可将某命令的结果输出导文件中, 它有两中命令: “>”和“>>”。 “>”可将结果输出到文件中, 该文件原有的内容会被删除: “>>”则将结果附加到文件中, 原文件内容不会被清除。范例如下: ls –a>dir.txt ← 将 ls –a命令执行结果输出到 dir.txt文件。 cat data1.txt >> data2.txt ← 将 data1.txt 内容附加到 data2.txt文件之后。 通道(pipe)命令的符号是“ ”,可将某命令的结果输出给另一命令,一下范例将 ls命令的输出结果传给 grep命令过滤: ls grep conf ← 搜索并显示 ls命令运行结果中包含有“conf”字符串 在举一个删除文件或目录的例子,可以利用 yes命令重复输出“y”字符的特性,将结果传给 rm命令,如此即可避免重复输入“y”: yes rm –r mydi 用光盘及软盘在 Linux的文字模式下要使用光盘或软盘, 并不是只将光盘或软盘放入即可, 用户需要运行加载的命令, 才可读写数据。 所谓加载就是将存储介质( 如光盘和软盘)指定成系统中的某个目录(如/mnt/cdrom或 mnt/floppy)。通过直接存取此加载目录,即可读写存储介质中的数据。以下就来看看文字模式下的加载及卸载命令。 加载的mount(登上、增加)命令 要使用光盘时先把光盘放入光驱, 然后执行加载的mount命令, 将光盘加载至系统中: mount /dev/mut/cdrom← 加载光盘 同理,使用软盘之前也需要和光盘一样,必须先加载后才能使用: mount /dev/mut/floppy← 加载软盘 卸载的umount命令 如果不需要使用光盘或软盘, 则需先执行卸载命令之后, 才能将光盘或软盘退出。 范例如下:umount /mnt/← 光盘卸载 在不使用软盘时执行umount 命令卸载软盘,再将软盘拿出 umount /mnt/← 软盘卸载 后台运行程序 用户有时的程序有可能要花费很多时间, 如果将它放在前台运行, 将导致无法继续做其他事情, 最好的方法就是将它放在后台运行, 甚至可能希望在用户注销系统后, 程序还可以继续运行。让我们看看那如何实现这一目的。 在后台运行程序的&、 bg命令 将程序放到后台运行的最简单方法就是在命令最后加上“&”,范例如下: update db &← 在后台执行 locate 数据库更新命令 bg ← 将更新操作放到后台运行 前台运行的程序fg命令 如果用户当前已有程序在后台运行,可以输入fg命令,将它从背景中移到前台运行: fg ← 放到前台执行的命令会显示出来 在退出后让程序继续运行的nohup命令 此命令可使用户退出系统后,程序继续运行。范例如下: nohup myserver&然后用户就可以退出了, 当再次登录的时候, 可以用ps–aux命令看到程序仍在后台中运行。
最近开始看于渊的《自己动手写操作系统》这本书,刚开始看就发现做系统的引导盘竟然是软盘!心里那个汗啊!
许多在 shell 提示下键入的 Linux 命令都与你在 DOS 下键入的命令相似。事实上,某些命令完全相同。
在80年代90年代,可是有不少宝贵的代码数据,都是存储在这样的载体之中的,比如DOS版的仙剑1。
Linux 内核今年就要满 30 岁了! 如果你像我们一样对此特别重视,那么让我们本周用几个特别的文章来庆祝 Linux。
操作系统与所运行的硬件环境密切相关。如果想彻底理解操作系统运行全过程,那么就需要了解它的运行硬件环境。本章基于传统微机系统的硬件组成框图,介绍了微机中各个主要部分的功能。这些内容已基本能够建立起阅读Linux 0.11内核的硬件基础。为了便于说明,术语PC/AT将用来指示具有80386或以上CPU的IBMPC及其兼容微机,而PC则用来泛指所有微机,包括IBMPC/XT及其兼容微机。
Linux通过i节点表将文件的逻辑结构和物理结构进行转换。i节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息,在i节点表中最主要的内容是磁盘地址表。在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。Linux文件系统通过把i节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查询该文件名对应的项,由于此得到该文件相对应的i节点号,通过该i节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。
在 AIGC 全面爆发的今天,美国旧金山地铁仍然沿用着已经被淘汰的软盘技术,而纽约地铁还被困在 100 年前的 IT 架构上。
计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或者错误信息。了解计算机开机过程有助于我们修复开机可能出现的问题。
计算机开机是一个神秘的过程。我们只是按了开机键,就看到屏幕上的进度条或者一行行的输出,直到我们到达登录界面。然而,计算机开机又是个异常脆弱的过程,我们满心期望的登录界面可能并不会出现,而是一个命令行或者错误信息。了解计算机开机过程有助于我们修复开机可能出现的问题。 最初始阶段 当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序。这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从
开机的时候,寄存器cs:ip会强行指向FFFF0H这个地方,这是bios的地址。然后开始执行bios指令,bois指令会把启动盘第一个扇区的数据加载到0x07c00。然后开始修改cs:ip为0x07c00,接着执行。这时候,操作系统开始登上舞台。而启动盘第一个扇区的代码就是下面这块代码。这段代码主要作用是加载其他代码。加载完后,跳到被加载代码的地方继续执行。下面我们分析这个过程。
Perc10 RAID卡具备更多缓存和更高IO性能,可搭载戴尔易安信第十四代服务器使用,支持市面上的主流操作系统。然而,出于软件更新速度的考虑,很多用户仍然使用较低版本的Linux操作系统,由此带来配置完磁盘阵列后操作系统需要手动安装的情况。对此,戴尔易安信的工程师特地针对低版本Linux如何在搭载了Perc10 RAID卡的戴尔易安信 14G服务器上进行安装提供了解决方法,供相关人员参考。
豌豆贴心提醒,本文阅读时间3分钟,文末有秘密! 文 | 豌豆 图 | 来源网络 Linux cat命令 命令:cat cat 命令用于连接文件并打印到标准输出设备上。 使用权限 所有使用者
接下来一段时间打算学一下linux 学习来源书本《Linux命令行与shell脚本编程大全 第三版》
BusyBox 是很多标准Linux® 工具的一个单个可执行实现。BusyBox 包含了一些简单的工具,例如cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet(不过它的选项比传统的版本要少);有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。
最近在学习Linux和.Net Core,学习一些跨平台的知识。首先我用的虚拟机软件是VMware-15.1.0,Linux系统是CentOS-8-x86_64-1905-dvd1。
计算机操作系统诞生至今,已经出现了很多的操作系统,操作系统是计算机与人中间的缓冲部分,人是通过操作系统来编写程序控制机器。目前的操作系统大概可以分为以下几种类型
记得十几年前还在用早期 Windows 系统的时候,每用一段时间系统都会变得很卡顿,这时候需要打开系统提供的下面的磁盘碎片整理程序,当碎片整理完成后会感觉到系统变得稍微流畅了一些。
上一篇文章中,我们详细介绍了 FAT12 文件系统的构成,并且在 linux 环境下构建了我们自己的软盘,虽然这在此前我们已经实现过了很多次。 实战 FAT12 文件系统
关于Linux详细介绍可以参见:http://blog.csdn.net/hguisu/article/details/6122513 关于Linux的常用命令可以参见:http://blog.csdn.net/xiaoguaihai/article/details/8705992 【Linux】Linux中常用操作命令 1、Linux操作系统的安装 目前基本上都是基于windows操作系统上的安装,在安装在windows上搞得虚拟机上加载安装Linux系统,主要有CentOS(企业服务用这个比较多)
在操作系统启动的过程中,第一步启动的是Booter,由于我们需要找到Loader.bin这个引导文件,我们需要在软盘上实现一个FAT12文件系统,从而方便我们的文件管理。
USB-HDD即USB Hard Drives 的缩写,硬盘模式,即硬盘模式。通过把U盘模拟成硬盘来启动安装在U盘里的PE系统,通过模拟之后,就像是直接使用硬盘启动是一样的。 USB-ZIP模式即大容量软盘模式,使用这个模式制作U盘启动盘,进入U盘PE系统之后,它显示的盘符为A盘,即软盘。
CrowdStrike公司安全研究员称,一个名为“毒液(VENOM)”的QEMU漏洞使数以百万计的虚拟机处于网络攻击风险之中,该漏洞可以造成虚机逃逸,威胁到全球各大云服务提供商的数据安全。QEMU是一个指令级模拟器的自由软件实现,被广泛用于各大GNU/Linux发行版。 漏洞原理 这个名为毒液(VENOM,编号CVE-2015-3456)的安全漏洞威胁到了整个安全行业,可以造成虚拟机逃逸。QEMU是一个指令级模拟器的自由软件实现,被广泛用于各大GNU/Linux发行版(包括Debian, Gentoo,
前期我们介绍了经典的8位处理器——理光6502。与此同时,Intel也设计了8008,8051等应用广泛的8位处理器。1976年,Intel推出了新一代处理器8086。
领取专属 10元无门槛券
手把手带您无忧上云